updateWithArrayBundle Subroutine

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

Type Bound

ESMF_InfoDescribe

Arguments

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

Calls

proc~~updatewitharraybundle~~CallsGraph proc~updatewitharraybundle ESMF_InfoDescribe%updateWithArrayBundle interface~esmf_arraybundleget ESMF_ArrayBundleGet proc~updatewitharraybundle->interface~esmf_arraybundleget none~fillmembers ESMF_InfoDescribe%FillMembers proc~updatewitharraybundle->none~fillmembers proc~esmf_arraybundlegetthis ESMF_ArrayBundleGetThis proc~updatewitharraybundle->proc~esmf_arraybundlegetthis proc~esmf_logfounderror ESMF_LogFoundError proc~updatewitharraybundle->proc~esmf_logfounderror proc~updategeneric ESMF_InfoDescribe%updateGeneric proc~updatewitharraybundle->proc~updategeneric proc~esmf_arraybundlegetitem ESMF_ArrayBundleGetItem interface~esmf_arraybundleget->proc~esmf_arraybundlegetitem proc~esmf_arraybundlegetlist ESMF_ArrayBundleGetList interface~esmf_arraybundleget->proc~esmf_arraybundlegetlist proc~esmf_arraybundlegetlistall ESMF_ArrayBundleGetListAll interface~esmf_arraybundleget->proc~esmf_arraybundlegetlistall proc~fillmembersarraybundle ESMF_InfoDescribe%fillMembersArrayBundle none~fillmembers->proc~fillmembersarraybundle proc~fillmembersfield ESMF_InfoDescribe%fillMembersField none~fillmembers->proc~fillmembersfield proc~fillmembersfieldbundle ESMF_InfoDescribe%fillMembersFieldBundle none~fillmembers->proc~fillmembersfieldbundle proc~fillmembersstate ESMF_InfoDescribe%fillMembersState none~fillmembers->proc~fillmembersstate 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 proc~updategeneric->proc~esmf_logfounderror interface~c_infodescribe_search c_infodescribe_search proc~updategeneric->interface~c_infodescribe_search interface~esmf_infoset ESMF_InfoSet proc~updategeneric->interface~esmf_infoset proc~esmf_basegetid ESMF_BaseGetId proc~updategeneric->proc~esmf_basegetid proc~esmf_basegetvmid ESMF_BaseGetVMId proc~updategeneric->proc~esmf_basegetvmid proc~esmf_infogetfrombase ESMF_InfoGetFromBase proc~updategeneric->proc~esmf_infogetfrombase proc~esmf_infosetnull ESMF_InfoSetNULL proc~updategeneric->proc~esmf_infosetnull proc~esmf_vmidcompare ESMF_VMIdCompare proc~updategeneric->proc~esmf_vmidcompare proc~itoa itoa proc~updategeneric->proc~itoa

Called by

proc~~updatewitharraybundle~~CalledByGraph proc~updatewitharraybundle ESMF_InfoDescribe%updateWithArrayBundle none~update ESMF_InfoDescribe%Update none~update->proc~updatewitharraybundle 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 updateWithArrayBundle(self, target, root_key, keywordEnforcer, rc)
  class(ESMF_InfoDescribe), intent(inout) :: self
  type(ESMF_ArrayBundle), 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
  type(ESMF_Base) :: newbase
  type(ESMF_Pointer) :: this
  character(*), parameter :: etype = "ArrayBundle"
  character(:), allocatable :: uname

  if (present(rc)) rc = ESMF_RC_NOT_IMPL

  call ESMF_ArrayBundleGetThis(target, this, rc=localrc)
  if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return

  newbase%this = this

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

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

  if (self%createInfo) 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

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