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
recursive function num_fields(state,rc)result(n)integer::ntype(ESMF_State),intent(inout)::stateinteger,optional,intent(out)::rcinteger::statusinteger::itemCount,icharacter(ESMF_MAXSTR),allocatable::itemNameList(:)type(ESMF_StateItem_Flag)::itemTypetype(ESMF_State)::substaten=0! defaultcall ESMF_StateGet(state,itemCount=itemCount,_RC)allocate(itemNameList(itemCount))call ESMF_StateGet(state,itemNameList=itemNameList,_RC)do i=1,itemCountcall ESMF_StateGet(state,itemName=trim(itemNameList(i)),itemType=itemType,_RC)if(itemType==ESMF_STATEITEM_FIELD)thenn=n+1elseif(itemType==ESMF_STATEITEM_STATE)then call ESMF_StateGet(state,trim(itemNameList(i)),substate,_RC)n=n+num_fields(substate,_RC)end if end do return end function num_fields