fillMembersField Subroutine

private subroutine fillMembersField(self, field, root_key, keywordEnforcer, rc)

Type Bound

ESMF_InfoDescribe

Arguments

Type IntentOptional Attributes Name
class(ESMF_InfoDescribe), intent(inout) :: self
type(ESMF_Field), intent(in) :: field
character(len=*), intent(in) :: root_key
type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
integer, intent(inout), optional :: rc

Calls

proc~~fillmembersfield~~CallsGraph proc~fillmembersfield ESMF_InfoDescribe%fillMembersField esmf_fieldget esmf_fieldget proc~fillmembersfield->esmf_fieldget none~update ESMF_InfoDescribe%Update proc~fillmembersfield->none~update proc~esmf_logfounderror ESMF_LogFoundError proc~fillmembersfield->proc~esmf_logfounderror proc~updatewitharray ESMF_InfoDescribe%updateWithArray none~update->proc~updatewitharray proc~updatewitharraybundle ESMF_InfoDescribe%updateWithArrayBundle none~update->proc~updatewitharraybundle proc~updatewithcplcomp ESMF_InfoDescribe%updateWithCplComp none~update->proc~updatewithcplcomp proc~updatewithdistgrid ESMF_InfoDescribe%updateWithDistGrid none~update->proc~updatewithdistgrid proc~updatewithfield ESMF_InfoDescribe%updateWithField none~update->proc~updatewithfield proc~updatewithfieldbundle ESMF_InfoDescribe%updateWithFieldBundle none~update->proc~updatewithfieldbundle proc~updatewithgrid ESMF_InfoDescribe%updateWithGrid none~update->proc~updatewithgrid proc~updatewithgridcomp ESMF_InfoDescribe%updateWithGridComp none~update->proc~updatewithgridcomp proc~updatewithlocstream ESMF_InfoDescribe%updateWithLocStream none~update->proc~updatewithlocstream proc~updatewithmesh ESMF_InfoDescribe%updateWithMesh none~update->proc~updatewithmesh proc~updatewithroutehandle ESMF_InfoDescribe%updateWithRouteHandle none~update->proc~updatewithroutehandle proc~updatewithscicomp ESMF_InfoDescribe%updateWithSciComp none~update->proc~updatewithscicomp proc~updatewithstate ESMF_InfoDescribe%updateWithState none~update->proc~updatewithstate proc~updatewithxgrid ESMF_InfoDescribe%updateWithXGrid none~update->proc~updatewithxgrid esmf_breakpoint esmf_breakpoint proc~esmf_logfounderror->esmf_breakpoint proc~esmf_logrc2msg ESMF_LogRc2Msg proc~esmf_logfounderror->proc~esmf_logrc2msg proc~esmf_logwrite ESMF_LogWrite proc~esmf_logfounderror->proc~esmf_logwrite

Called by

proc~~fillmembersfield~~CalledByGraph proc~fillmembersfield ESMF_InfoDescribe%fillMembersField none~update ESMF_InfoDescribe%Update proc~fillmembersfield->none~update none~fillmembers ESMF_InfoDescribe%FillMembers none~fillmembers->proc~fillmembersfield proc~updatewitharraybundle ESMF_InfoDescribe%updateWithArrayBundle proc~updatewitharraybundle->none~fillmembers proc~updatewithfield ESMF_InfoDescribe%updateWithField proc~updatewithfield->none~fillmembers proc~updatewithfieldbundle ESMF_InfoDescribe%updateWithFieldBundle proc~updatewithfieldbundle->none~fillmembers proc~updatewithstate ESMF_InfoDescribe%updateWithState proc~updatewithstate->none~fillmembers none~update->proc~updatewitharraybundle none~update->proc~updatewithfield none~update->proc~updatewithfieldbundle none~update->proc~updatewithstate proc~esmf_attributecopyarraybundletoarraybundle ESMF_AttributeCopyArrayBundleToArrayBundle proc~esmf_attributecopyarraybundletoarraybundle->none~update proc~esmf_attributecopyarraytoarray ESMF_AttributeCopyArrayToArray proc~esmf_attributecopyarraytoarray->none~update proc~esmf_attributecopycplcomptocplcomp ESMF_AttributeCopyCplCompToCplComp proc~esmf_attributecopycplcomptocplcomp->none~update proc~esmf_attributecopydistgridtodistgrid ESMF_AttributeCopyDistGridToDistGrid proc~esmf_attributecopydistgridtodistgrid->none~update proc~esmf_attributecopyfieldbundletofieldbundle ESMF_AttributeCopyFieldBundleToFieldBundle proc~esmf_attributecopyfieldbundletofieldbundle->none~update proc~esmf_attributecopyfieldtofield ESMF_AttributeCopyFieldToField proc~esmf_attributecopyfieldtofield->none~update proc~esmf_attributecopygridcomptogridcomp ESMF_AttributeCopyGridCompToGridComp proc~esmf_attributecopygridcomptogridcomp->none~update proc~esmf_attributecopygridtogrid ESMF_AttributeCopyGridToGrid proc~esmf_attributecopygridtogrid->none~update proc~esmf_attributecopylocstreamtolocstream ESMF_AttributeCopyLocStreamToLocStream proc~esmf_attributecopylocstreamtolocstream->none~update proc~esmf_attributecopymeshtomesh ESMF_AttributeCopyMeshToMesh proc~esmf_attributecopymeshtomesh->none~update proc~esmf_attributecopyscicomptoscicomp ESMF_AttributeCopySciCompToSciComp proc~esmf_attributecopyscicomptoscicomp->none~update proc~esmf_attributecopystatetostate ESMF_AttributeCopyStateToState proc~esmf_attributecopystatetostate->none~update proc~esmf_infocacheupdatefields ESMF_InfoCache%ESMF_InfoCacheUpdateFields proc~esmf_infocacheupdatefields->none~update proc~esmf_infosynccplcomp ESMF_InfoSyncCplComp proc~esmf_infosynccplcomp->none~update proc~esmf_infosyncfield ESMF_InfoSyncField proc~esmf_infosyncfield->none~update proc~esmf_infosyncfieldbundle ESMF_InfoSyncFieldBundle proc~esmf_infosyncfieldbundle->none~update proc~esmf_infosyncgridcomp ESMF_InfoSyncGridComp proc~esmf_infosyncgridcomp->none~update proc~esmf_infosyncscicomp ESMF_InfoSyncSciComp proc~esmf_infosyncscicomp->none~update proc~esmf_infosyncstate ESMF_InfoSyncState proc~esmf_infosyncstate->none~update proc~fillmembersarraybundle ESMF_InfoDescribe%fillMembersArrayBundle proc~fillmembersarraybundle->none~update proc~fillmembersfieldbundle ESMF_InfoDescribe%fillMembersFieldBundle proc~fillmembersfieldbundle->none~update proc~fillmembersstate ESMF_InfoDescribe%fillMembersState proc~fillmembersstate->none~update program~esmf_infocacheutest ESMF_InfoCacheUTest program~esmf_infocacheutest->none~update program~esmf_infodescribeutest ESMF_InfoDescribeUTest program~esmf_infodescribeutest->none~update program~esmf_infosyncutest ESMF_InfoSyncUTest program~esmf_infosyncutest->none~update

Source Code

subroutine fillMembersField(self, field, root_key, keywordEnforcer, rc)
 class(ESMF_InfoDescribe), intent(inout) :: self
 type(ESMF_Field), intent(in) :: field
 character(*), intent(in) :: root_key
type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below
 integer, intent(inout), optional :: rc
 type(ESMF_GeomType_Flag) :: geomtype
 type(ESMF_Grid) :: grid
 type(ESMF_LocStream) :: locstream
 type(ESMF_XGrid) :: xgrid
 type(ESMf_Mesh) :: mesh
 integer :: localrc

 localrc = ESMF_FAILURE
 if (present(rc)) rc = ESMF_RC_NOT_IMPL

 if (field%ftypep%status .eq. ESMF_FIELDSTATUS_GRIDSET .or. &
     field%ftypep%status .eq. ESMF_FIELDSTATUS_COMPLETE) then
   call ESMF_FieldGet(field, geomtype=geomtype, rc=localrc)
   if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return

   select case (geomtype%type)
     case (ESMF_GEOMTYPE_GRID%type)
       call ESMF_FieldGet(field, grid=grid, rc=localrc)
       if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return
       call self%Update(grid, root_key, rc=localrc)
       if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return
     case (ESMF_GEOMTYPE_LOCSTREAM%type)
       call ESMF_FieldGet(field, locstream=locstream, rc=localrc)
       if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return
       call self%Update(locstream, root_key, rc=localrc)
       if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return
     case (ESMF_GEOMTYPE_XGRID%type)
       call ESMF_FieldGet(field, xgrid=xgrid, rc=localrc)
       if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return
       call self%Update(xgrid, root_key, rc=localrc)
       if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return
     case (ESMF_GEOMTYPE_MESH%type)
       call ESMF_FieldGet(field, mesh=mesh, rc=localrc)
       if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return
       call self%Update(mesh, root_key, rc=localrc)
       if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return
     case default
       if (ESMF_LogFoundError(ESMF_RC_OBJ_NOT_CREATED, msg="Geometry type not supported for Inquire", &
        ESMF_CONTEXT, rcToReturn=rc)) return
   end select
 end if

 if (present(rc)) rc = ESMF_SUCCESS

end subroutine fillMembersField