Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Source Code
logical function is_valid_date(date)result(is_valid)! Function to validate what MAPL expects for a valid date as! passed to, say, History. integer,intent(in)::dateinteger::year,month,daylogical::is_leap_yearyear=date/10000month=mod(date,10000)/100day=mod(date,100)is_leap_year=mod(year,4)==0.and.(mod(year,100)/=0.or.mod(year,400)==0)is_valid=.true.! Obvious casesif(date<0)thenis_valid=.false.else if(month==0)thenis_valid=.false.else if(month>12)thenis_valid=.false.else if(day==0)thenis_valid=.false.end if select case(month)! 30 day monthscase(4,6,9,11)if(day>30)is_valid=.false.! Februarycase(2)if(is_leap_year)then if(day>29)is_valid=.false.else if(day>28)is_valid=.false.end if! 31 day monthscase defaultif(day>31)is_valid=.false.end select end function is_valid_date