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 MAPL_IOCountLevels(cf,nlev,rc)type(FileMetadata),intent(inout)::cfinteger,intent(out)::nlevinteger,intent(out),optional::rcinteger::statustype(StringVariableMap),pointer::varstype(StringVariableMapIterator)::itertype(StringIntegerMap),pointer::dimsinteger,pointer::dimsize=>null()character(len=:),pointer::nametype(StringVector),pointer::vdimstype(Variable),pointer::varinteger::levsizenlev=0dims=>cf%get_dimensions()vars=>cf%get_variables()iter=vars%begin()do while(iter/=vars%end())name=>iter%key()var=>iter%value()dimsize=>dims%at(trim(name))if(.not.associated(dimsize))thenvdims=>var%get_dimensions()if(vdims%get_index('lev')/=0)thenlevsize=cf%get_dimension('lev',rc=status)_VERIFY(status)nlev=nlev+levsizeelse if(vdims%get_index('edge')/=0)thenlevsize=cf%get_dimension('edge',rc=status)_VERIFY(status)nlev=nlev+levsizeelsenlev=nlev+1end if end if if(associated(dimsize))nullify(dimsize)call iter%next()end do_RETURN(ESMF_SUCCESS)end subroutine MAPL_IOCountLevels