f_esmf_compreplicate Subroutine

recursive subroutine f_esmf_compreplicate(comp, comp_src, vm, rc)

Uses

  • proc~~f_esmf_compreplicate~~UsesGraph proc~f_esmf_compreplicate f_esmf_compreplicate module~esmf_basemod ESMF_BaseMod proc~f_esmf_compreplicate->module~esmf_basemod module~esmf_compmod ESMF_CompMod proc~f_esmf_compreplicate->module~esmf_compmod module~esmf_initmacrosmod ESMF_InitMacrosMod proc~f_esmf_compreplicate->module~esmf_initmacrosmod module~esmf_logerrmod ESMF_LogErrMod proc~f_esmf_compreplicate->module~esmf_logerrmod module~esmf_utiltypesmod ESMF_UtilTypesMod proc~f_esmf_compreplicate->module~esmf_utiltypesmod module~esmf_vmmod ESMF_VMMod proc~f_esmf_compreplicate->module~esmf_vmmod module~esmf_basemod->module~esmf_initmacrosmod module~esmf_basemod->module~esmf_logerrmod module~esmf_basemod->module~esmf_utiltypesmod module~esmf_basemod->module~esmf_vmmod iso_c_binding iso_c_binding module~esmf_basemod->iso_c_binding module~esmf_ioutilmod ESMF_IOUtilMod module~esmf_basemod->module~esmf_ioutilmod module~esmf_compmod->module~esmf_basemod module~esmf_compmod->module~esmf_initmacrosmod module~esmf_compmod->module~esmf_logerrmod module~esmf_compmod->module~esmf_utiltypesmod module~esmf_compmod->module~esmf_vmmod module~esmf_calendarmod ESMF_CalendarMod module~esmf_compmod->module~esmf_calendarmod module~esmf_clockmod ESMF_ClockMod module~esmf_compmod->module~esmf_clockmod module~esmf_configmod ESMF_ConfigMod module~esmf_compmod->module~esmf_configmod module~esmf_gridmod ESMF_GridMod module~esmf_compmod->module~esmf_gridmod module~esmf_hconfigmod ESMF_HConfigMod module~esmf_compmod->module~esmf_hconfigmod module~esmf_compmod->module~esmf_ioutilmod module~esmf_locstreammod ESMF_LocStreamMod module~esmf_compmod->module~esmf_locstreammod module~esmf_meshmod ESMF_MeshMod module~esmf_compmod->module~esmf_meshmod module~esmf_statemod ESMF_StateMod module~esmf_compmod->module~esmf_statemod module~esmf_statetypesmod ESMF_StateTypesMod module~esmf_compmod->module~esmf_statetypesmod module~esmf_utilmod ESMF_UtilMod module~esmf_compmod->module~esmf_utilmod module~esmf_xgridmod ESMF_XGridMod module~esmf_compmod->module~esmf_xgridmod module~esmf_initmacrosmod->module~esmf_logerrmod module~esmf_initmacrosmod->module~esmf_utiltypesmod module~esmf_logerrmod->module~esmf_utiltypesmod module~esmf_logerrmod->module~esmf_ioutilmod module~esmf_utilstringmod ESMF_UtilStringMod module~esmf_logerrmod->module~esmf_utilstringmod module~esmf_utiltypesmod->iso_c_binding module~esmf_vmmod->module~esmf_initmacrosmod module~esmf_vmmod->module~esmf_logerrmod module~esmf_vmmod->module~esmf_utiltypesmod module~esmf_vmmod->iso_c_binding module~esmf_f90interfacemod ESMF_F90InterfaceMod module~esmf_vmmod->module~esmf_f90interfacemod module~esmf_vmmod->module~esmf_ioutilmod

Arguments

Type IntentOptional Attributes Name
type(ESMF_CWrap) :: comp
type(ESMF_CWrap) :: comp_src
type(ESMF_VM) :: vm
integer :: rc

Calls

proc~~f_esmf_compreplicate~~CallsGraph proc~f_esmf_compreplicate f_esmf_compreplicate c_esmc_ftablecreate c_esmc_ftablecreate proc~f_esmf_compreplicate->c_esmc_ftablecreate proc~esmf_compclasssetinitcreated ESMF_CompClassSetInitCreated proc~f_esmf_compreplicate->proc~esmf_compclasssetinitcreated proc~esmf_compset ESMF_CompSet proc~f_esmf_compreplicate->proc~esmf_compset proc~esmf_cwrapsetinitcreated ESMF_CWrapSetInitCreated proc~f_esmf_compreplicate->proc~esmf_cwrapsetinitcreated proc~esmf_logfounderror ESMF_LogFoundError proc~f_esmf_compreplicate->proc~esmf_logfounderror proc~esmf_vmgetthis ESMF_VMGetThis proc~f_esmf_compreplicate->proc~esmf_vmgetthis proc~esmf_vmsetinitcreated ESMF_VMSetInitCreated proc~f_esmf_compreplicate->proc~esmf_vmsetinitcreated proc~esmf_vmsetthis ESMF_VMSetThis proc~f_esmf_compreplicate->proc~esmf_vmsetthis proc~esmf_compset->proc~esmf_logfounderror interface~esmf_configcreate ESMF_ConfigCreate proc~esmf_compset->interface~esmf_configcreate proc~esmf_basegetstatus ESMF_BaseGetStatus proc~esmf_compset->proc~esmf_basegetstatus proc~esmf_compclassgetinit ESMF_CompClassGetInit proc~esmf_compset->proc~esmf_compclassgetinit proc~esmf_configloadfile ESMF_ConfigLoadFile proc~esmf_compset->proc~esmf_configloadfile proc~esmf_imerr ESMF_IMErr proc~esmf_compset->proc~esmf_imerr proc~esmf_logseterror ESMF_LogSetError proc~esmf_compset->proc~esmf_logseterror proc~esmf_setname ESMF_SetName proc~esmf_compset->proc~esmf_setname 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

Source Code

recursive subroutine f_esmf_compreplicate(comp, comp_src, vm, rc)
  use ESMF_UtilTypesMod      ! ESMF utility types
  use ESMF_BaseMod           ! ESMF base class
  use ESMF_LogErrMod
  use ESMF_CompMod
  use ESMF_VMMod
  use ESMF_InitMacrosMod
  
  implicit none

  type(ESMF_CWrap) :: comp
  type(ESMF_CWrap) :: comp_src
  type(ESMF_VM)    :: vm
  integer :: rc

  type(ESMF_VM) :: vm_cpy
  type(ESMF_Pointer) :: this
  type (ESMF_CompClass), pointer :: compclass
  integer :: localrc
  
  ! Initialize return code; assume routine not implemented
  localrc = ESMF_RC_NOT_IMPL
  rc = ESMF_RC_NOT_IMPL

  nullify(comp%compp)
  nullify(compclass)
  allocate(compclass)
  compclass = comp_src%compp
  call ESMF_CompClassSetInitCreated(compclass)
  call c_ESMC_FTableCreate(compclass%ftable, localrc) 
  if (ESMF_LogFoundError(localrc, &
    ESMF_ERR_PASSTHRU, &
    ESMF_CONTEXT, rcToReturn=rc)) return
  call ESMF_VMGetThis(vm, this)
  call ESMF_VMSetThis(vm_cpy, this)
  call ESMF_VMSetInitCreated(vm_cpy)
  call ESMF_CompSet(compclass, vm=vm_cpy)
  comp%compp => compclass
  call ESMF_CWrapSetInitCreated(comp)
  
  ! return successfully
  rc = ESMF_SUCCESS
end subroutine f_esmf_compreplicate