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
subroutine Run(gcomp,istate,estate,clock,rc)type(ESMF_GridComp)::gcomptype(ESMF_State)::istate,estatetype(ESMF_Clock)::clockinteger,intent(out)::rcinteger::i,j,kcharacter(len=64)::name,name2call ESMF_TraceRegionEnter("my_run",rc=rc)if(rc/=ESMF_SUCCESS)return!print *, "Inside Run"! do i=1,25! write(name, "(A25,I2)") "region_with_longer_name_", i! call ESMF_TraceRegionEnter(trim(name), rc=rc)! if (rc /= ESMF_SUCCESS) return! ! waste some time! k=1! do j=1,i*10000! k=k+1! if (mod(k, 10000) == 0) then! write(name2, "(A13,I6)") "inner_region_", k! call ESMF_TraceRegionEnter(trim(name2), rc=rc)! if (rc /= ESMF_SUCCESS) return! call ESMF_TraceRegionExit(trim(name2), rc=rc)! if (rc /= ESMF_SUCCESS) return! endif! enddo! call ESMF_TraceRegionExit(trim(name), rc=rc)! if (rc /= ESMF_SUCCESS) return ! enddo call ESMF_TraceRegionExit("my_run",rc=rc)if(rc/=ESMF_SUCCESS)returnrc=ESMF_SUCCESSend subroutine Run