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.
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
pure function parse_date(datestring)result(fields)character(len=*),intent(in)::datestringtype(date_fields)::fieldsinteger,parameter::LENGTH=8character,parameter::DELIMITER='-'integer,parameter::YEAR_POSITION=1integer,parameter::MONTH_POSITION=5integer,parameter::DAY_POSITION=7character(len=LENGTH)::undelimited! Eliminate delimiters so that there is one parsing blockundelimited=undelimit(datestring,DELIMITER)if(len(undelimited)==LENGTH)thenfields%year_=read_whole_number(undelimited(YEAR_POSITION:MONTH_POSITION-1))fields%month_=read_whole_number(undelimited(MONTH_POSITION:DAY_POSITION-1))fields%day_=read_whole_number(undelimited(DAY_POSITION:LENGTH))fields%is_valid_=is_valid_date(fields)elsefields%is_valid_=.FALSE.end if end function parse_date