ESMF_InfoDescribeInitialize Subroutine

private subroutine ESMF_InfoDescribeInitialize(self, addBaseAddress, addObjectInfo, createInfo, searchCriteria, vmIdMap, rc)

Type Bound

ESMF_InfoDescribe

Arguments

Type IntentOptional Attributes Name
class(ESMF_InfoDescribe), intent(inout) :: self
logical, intent(in), optional :: addBaseAddress
logical, intent(in), optional :: addObjectInfo
logical, intent(in), optional :: createInfo
type(ESMF_Info), intent(in), optional, target :: searchCriteria
type(ESMF_VMId), intent(in), optional, dimension(:), pointer :: vmIdMap
integer, intent(inout), optional :: rc

Calls

proc~~esmf_infodescribeinitialize~~CallsGraph proc~esmf_infodescribeinitialize ESMF_InfoDescribe%ESMF_InfoDescribeInitialize interface~esmf_infocreate ESMF_InfoCreate proc~esmf_infodescribeinitialize->interface~esmf_infocreate proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_infodescribeinitialize->proc~esmf_logfounderror proc~esmf_infocreatebykey ESMF_InfoCreateByKey interface~esmf_infocreate->proc~esmf_infocreatebykey proc~esmf_infocreatebyparse ESMF_InfoCreateByParse interface~esmf_infocreate->proc~esmf_infocreatebyparse proc~esmf_infocreateempty ESMF_InfoCreateEmpty interface~esmf_infocreate->proc~esmf_infocreateempty proc~esmf_infocreatefrominfo ESMF_InfoCreateFromInfo interface~esmf_infocreate->proc~esmf_infocreatefrominfo 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~esmf_infocreatebykey->proc~esmf_logfounderror interface~c_info_create_by_key c_info_create_by_key proc~esmf_infocreatebykey->interface~c_info_create_by_key proc~esmf_infocreatebyparse->proc~esmf_logfounderror interface~c_info_create_by_parse c_info_create_by_parse proc~esmf_infocreatebyparse->interface~c_info_create_by_parse proc~esmf_infocreateempty->proc~esmf_logfounderror interface~c_info_create c_info_create proc~esmf_infocreateempty->interface~c_info_create proc~esmf_infocreatefrominfo->proc~esmf_logfounderror interface~c_info_copy c_info_copy proc~esmf_infocreatefrominfo->interface~c_info_copy c_esmc_loggeterrormsg c_esmc_loggeterrormsg proc~esmf_logrc2msg->c_esmc_loggeterrormsg c_esmc_vmwtime c_esmc_vmwtime proc~esmf_logwrite->c_esmc_vmwtime proc~esmf_logclose ESMF_LogClose proc~esmf_logwrite->proc~esmf_logclose proc~esmf_logflush ESMF_LogFlush proc~esmf_logwrite->proc~esmf_logflush proc~esmf_logopenfile ESMF_LogOpenFile proc~esmf_logwrite->proc~esmf_logopenfile proc~esmf_utiliounitflush ESMF_UtilIOUnitFlush proc~esmf_logwrite->proc~esmf_utiliounitflush proc~esmf_utilstring2array ESMF_UtilString2Array proc~esmf_logwrite->proc~esmf_utilstring2array proc~esmf_logclose->proc~esmf_logflush proc~esmf_logflush->proc~esmf_utiliounitflush proc~esmf_utilarray2string ESMF_UtilArray2String proc~esmf_logflush->proc~esmf_utilarray2string proc~esmf_logopenfile->proc~esmf_utiliounitflush proc~esmf_utiliounitget ESMF_UtilIOUnitGet proc~esmf_logopenfile->proc~esmf_utiliounitget

Called by

proc~~esmf_infodescribeinitialize~~CalledByGraph proc~esmf_infodescribeinitialize ESMF_InfoDescribe%ESMF_InfoDescribeInitialize none~initialize ESMF_InfoDescribe%Initialize none~initialize->proc~esmf_infodescribeinitialize proc~esmf_attributecopyarraybundletoarraybundle ESMF_AttributeCopyArrayBundleToArrayBundle proc~esmf_attributecopyarraybundletoarraybundle->none~initialize proc~esmf_attributecopyarraytoarray ESMF_AttributeCopyArrayToArray proc~esmf_attributecopyarraytoarray->none~initialize proc~esmf_attributecopycplcomptocplcomp ESMF_AttributeCopyCplCompToCplComp proc~esmf_attributecopycplcomptocplcomp->none~initialize proc~esmf_attributecopydistgridtodistgrid ESMF_AttributeCopyDistGridToDistGrid proc~esmf_attributecopydistgridtodistgrid->none~initialize proc~esmf_attributecopyfieldbundletofieldbundle ESMF_AttributeCopyFieldBundleToFieldBundle proc~esmf_attributecopyfieldbundletofieldbundle->none~initialize proc~esmf_attributecopyfieldtofield ESMF_AttributeCopyFieldToField proc~esmf_attributecopyfieldtofield->none~initialize proc~esmf_attributecopygridcomptogridcomp ESMF_AttributeCopyGridCompToGridComp proc~esmf_attributecopygridcomptogridcomp->none~initialize proc~esmf_attributecopygridtogrid ESMF_AttributeCopyGridToGrid proc~esmf_attributecopygridtogrid->none~initialize proc~esmf_attributecopylocstreamtolocstream ESMF_AttributeCopyLocStreamToLocStream proc~esmf_attributecopylocstreamtolocstream->none~initialize proc~esmf_attributecopymeshtomesh ESMF_AttributeCopyMeshToMesh proc~esmf_attributecopymeshtomesh->none~initialize proc~esmf_attributecopyscicomptoscicomp ESMF_AttributeCopySciCompToSciComp proc~esmf_attributecopyscicomptoscicomp->none~initialize proc~esmf_attributecopystatetostate ESMF_AttributeCopyStateToState proc~esmf_attributecopystatetostate->none~initialize proc~esmf_infocacheupdatefields ESMF_InfoCache%ESMF_InfoCacheUpdateFields proc~esmf_infocacheupdatefields->none~initialize proc~esmf_infosynccplcomp ESMF_InfoSyncCplComp proc~esmf_infosynccplcomp->none~initialize proc~esmf_infosyncfield ESMF_InfoSyncField proc~esmf_infosyncfield->none~initialize proc~esmf_infosyncfieldbundle ESMF_InfoSyncFieldBundle proc~esmf_infosyncfieldbundle->none~initialize proc~esmf_infosyncgridcomp ESMF_InfoSyncGridComp proc~esmf_infosyncgridcomp->none~initialize proc~esmf_infosyncscicomp ESMF_InfoSyncSciComp proc~esmf_infosyncscicomp->none~initialize proc~esmf_infosyncstate ESMF_InfoSyncState proc~esmf_infosyncstate->none~initialize program~esmf_infodescribeutest ESMF_InfoDescribeUTest program~esmf_infodescribeutest->none~initialize program~esmf_infosyncutest ESMF_InfoSyncUTest program~esmf_infosyncutest->none~initialize 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~updatefields ESMF_InfoCache%UpdateFields none~updatefields->proc~esmf_infocacheupdatefields

Source Code

subroutine ESMF_InfoDescribeInitialize(self, addBaseAddress, addObjectInfo, createInfo, &
    searchCriteria, vmIdMap, rc)
  class(ESMF_InfoDescribe), intent(inout) :: self
  logical, intent(in), optional :: addBaseAddress
  logical, intent(in), optional :: addObjectInfo
  logical, intent(in), optional :: createInfo
  type(ESMF_Info), target, intent(in), optional :: searchCriteria
  type(ESMF_VMId), dimension(:), pointer, intent(in), optional :: vmIdMap
  integer, intent(inout), optional :: rc
  integer :: localrc

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

  if (self%is_initialized) then
    if (ESMF_LogFoundError(ESMF_FAILURE, msg="Object already initialized", ESMF_CONTEXT, rcToReturn=rc)) return
  endif


  nullify(self%searchCriteria)
  nullify(self%vmIdMap)
  if (present(searchCriteria)) then
    self%addBaseAddress = .true.
    self%addObjectInfo = .true.
    self%createInfo = .true.
    self%searchCriteria => searchCriteria
  else
    if (present(addBaseAddress)) self%addBaseAddress = addBaseAddress
    if (present(addObjectInfo)) self%addObjectInfo = addObjectInfo
    if (present(createInfo)) self%createInfo = createInfo
  end if
  if (self%createInfo) then
    self%info = ESMF_InfoCreate(rc=localrc)
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return
  end if
  if (present(vmIdMap)) then
    if (associated(vmIdMap)) then
      self%vmIdMap => vmIdMap
    else
      if (ESMF_LogFoundError(ESMF_FAILURE, msg="vmIdMap pointer provided but it is not associated", &
        ESMF_CONTEXT, rcToReturn=rc)) return
    end if
  end if

  self%is_initialized = .true.

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