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.
FUNCTION upper_triangle(j,k,extra)INTEGER(I4B),INTENT(IN)::j,kINTEGER(I4B),OPTIONAL,INTENT(IN)::extraLOGICAL(LGT),DIMENSION(j,k)::upper_triangleINTEGER(I4B)::nn=0if(present(extra))n=extraupper_triangle=(outerdiff(arth_i(1,1,j),arth_i(1,1,k))<n)END FUNCTION upper_triangle