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.
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 FillRequestBundle(request_list,state,rc)type(RequestedServiceItemVector),intent(INOUT)::request_listtype(ESMF_State),intent(IN)::stateinteger,optional,intent(out)::rcinteger::statusinteger::i,nltype(ESMF_Field),allocatable::fields(:)type(RequestedServiceItemVectorIterator)::itertype(RequestedServiceType),pointer::item_ASSERT(request_list%size()>0,'request_list should not be empty')iter=request_list%begin()! loop over requested servicesdo while(iter/=request_list%end())item=>iter%get()if(allocated(item%var_list))thennl=size(item%var_list)allocate(fields(nl),stat=status)_VERIFY(status)do i=1,nlcall ESMF_StateGet(state,item%var_list(i),&fields(i),rc=status)_VERIFY(status)end do call ESMF_FieldBundleAdd(item%bundle,fields,rc=status)_VERIFY(status)deallocate(fields)end if call iter%next()end do_RETURN(_SUCCESS)end subroutine FillRequestBundle