updateWithFieldBundle Subroutine

private subroutine updateWithFieldBundle(self, target, root_key, keywordEnforcer, rc)

Type Bound

ESMF_InfoDescribe

Arguments

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

Calls

proc~~updatewithfieldbundle~~CallsGraph proc~updatewithfieldbundle ESMF_InfoDescribe%updateWithFieldBundle esmf_fieldbundleget esmf_fieldbundleget proc~updatewithfieldbundle->esmf_fieldbundleget interface~esmf_infoset ESMF_InfoSet proc~updatewithfieldbundle->interface~esmf_infoset none~fillmembers ESMF_InfoDescribe%FillMembers proc~updatewithfieldbundle->none~fillmembers proc~esmf_logfounderror ESMF_LogFoundError proc~updatewithfieldbundle->proc~esmf_logfounderror proc~updategeneric ESMF_InfoDescribe%updateGeneric proc~updatewithfieldbundle->proc~updategeneric

Called by

proc~~updatewithfieldbundle~~CalledByGraph proc~updatewithfieldbundle ESMF_InfoDescribe%updateWithFieldBundle none~update ESMF_InfoDescribe%Update none~update->proc~updatewithfieldbundle 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~fillmembersfield ESMF_InfoDescribe%fillMembersField proc~fillmembersfield->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 interface~esmf_attributecopy ESMF_AttributeCopy interface~esmf_attributecopy->proc~esmf_attributecopyarraybundletoarraybundle interface~esmf_attributecopy->proc~esmf_attributecopyarraytoarray interface~esmf_attributecopy->proc~esmf_attributecopycplcomptocplcomp interface~esmf_attributecopy->proc~esmf_attributecopydistgridtodistgrid interface~esmf_attributecopy->proc~esmf_attributecopyfieldbundletofieldbundle interface~esmf_attributecopy->proc~esmf_attributecopyfieldtofield interface~esmf_attributecopy->proc~esmf_attributecopygridcomptogridcomp interface~esmf_attributecopy->proc~esmf_attributecopygridtogrid interface~esmf_attributecopy->proc~esmf_attributecopylocstreamtolocstream interface~esmf_attributecopy->proc~esmf_attributecopymeshtomesh interface~esmf_attributecopy->proc~esmf_attributecopyscicomptoscicomp interface~esmf_attributecopy->proc~esmf_attributecopystatetostate interface~esmf_infosync ESMF_InfoSync interface~esmf_infosync->proc~esmf_infosynccplcomp interface~esmf_infosync->proc~esmf_infosyncfield interface~esmf_infosync->proc~esmf_infosyncfieldbundle interface~esmf_infosync->proc~esmf_infosyncgridcomp interface~esmf_infosync->proc~esmf_infosyncscicomp interface~esmf_infosync->proc~esmf_infosyncstate none~fillmembers ESMF_InfoDescribe%FillMembers none~fillmembers->proc~fillmembersarraybundle none~fillmembers->proc~fillmembersfield none~fillmembers->proc~fillmembersfieldbundle none~fillmembers->proc~fillmembersstate none~updatefields ESMF_InfoCache%UpdateFields none~updatefields->proc~esmf_infocacheupdatefields

Source Code

subroutine updateWithFieldBundle(self, target, root_key, keywordEnforcer, rc)
  class(ESMF_InfoDescribe), intent(inout) :: self
  type(ESMF_FieldBundle), intent(in) :: target
  character(*), intent(in) :: root_key
type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below
  integer, intent(inout), optional :: rc
  character(ESMF_MAXSTR) :: name
  integer :: localrc
  character(*), parameter :: etype = "FieldBundle"
  character(:), allocatable :: uname
  logical :: isPacked
  type(ESMF_Info) :: infoh

  if (present(rc)) rc = ESMF_RC_NOT_IMPL

  call ESMF_FieldBundleGet(target, name=name, isPacked=isPacked, rc=localrc)
  if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return

  call self%updateGeneric(root_key, name, etype, target%this%base, uname=uname, rc=localrc)
  if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return

  if (self%createInfo) then
    call ESMF_InfoSet(self%info, root_key//"/"//uname//"/is_packed", isPacked, rc=localrc)
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return

    if (.not. isPacked) then
      call self%FillMembers(target, root_key//"/"//uname//"/members", rc=localrc)
      if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return
      deallocate(uname)
    endif
  endif

  if (present(rc)) rc = ESMF_SUCCESS
end subroutine updateWithFieldBundle