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 check_field_rank(expectations,state,short_name,description,rc)type(ESMF_HConfig),intent(in)::expectationstype(ESMF_State),intent(inout)::statecharacter(*),intent(in)::short_namecharacter(*),intent(in)::descriptioninteger,intent(out)::rctype(ESMF_Field)::fieldinteger::expected_field_rankinteger::rankinteger::statustype(ESMF_StateItem_Flag)::itemtypecharacter(len=:),allocatable::msgmsg=descriptionif(.not.ESMF_HConfigIsDefined(expectations,keyString='rank'))thenrc=0return end if call ESMF_StateGet(state,short_name,itemtype=itemtype)if(itemtype/=ESMF_STATEITEM_FIELD)then! that's okrc=0return end if call ESMF_StateGet(state,short_name,field,_RC)call ESMF_FieldGet(field,rank=rank,_RC)expected_field_rank=ESMF_HConfigAsI4(expectations,keyString='rank',_RC)@assert_that(msg//'field rank:',rank==expected_field_rank,is(true()))rc=0end subroutine check_field_rank