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.
elemental function upper(string)!< Return a string with all uppercase characters.character(len=*),intent(in)::string!< Input string.character(len=len(string))::upper!< Upper case string.integer::n1!< Characters counter.integer::n2!< Characters counter.upper=stringdo n1=1,len(string)n2=index(LOWER_ALPHABET,string(n1:n1))if(n2>0)upper(n1:n1)=UPPER_ALPHABET(n2:n2)enddo endfunction upper