f_esmf_stateaddarray Subroutine

subroutine f_esmf_stateaddarray(state, array, rc)

Uses

  • proc~~f_esmf_stateaddarray~~UsesGraph proc~f_esmf_stateaddarray f_esmf_stateaddarray ESMF_ArrayCreateMod ESMF_ArrayCreateMod proc~f_esmf_stateaddarray->ESMF_ArrayCreateMod module~esmf_logerrmod ESMF_LogErrMod proc~f_esmf_stateaddarray->module~esmf_logerrmod module~esmf_statemod ESMF_StateMod proc~f_esmf_stateaddarray->module~esmf_statemod module~esmf_utiltypesmod ESMF_UtilTypesMod proc~f_esmf_stateaddarray->module~esmf_utiltypesmod module~esmf_logerrmod->module~esmf_utiltypesmod module~esmf_ioutilmod ESMF_IOUtilMod module~esmf_logerrmod->module~esmf_ioutilmod module~esmf_utilstringmod ESMF_UtilStringMod module~esmf_logerrmod->module~esmf_utilstringmod ESMF_StateAPIMod ESMF_StateAPIMod module~esmf_statemod->ESMF_StateAPIMod ESMF_StateRemRepMod ESMF_StateRemRepMod module~esmf_statemod->ESMF_StateRemRepMod iso_c_binding iso_c_binding module~esmf_utiltypesmod->iso_c_binding module~esmf_ioutilmod->module~esmf_utiltypesmod

Arguments

Type IntentOptional Attributes Name
type(ESMF_State) :: state
type(ESMF_Array) :: array
integer, intent(out) :: rc

Calls

proc~~f_esmf_stateaddarray~~CallsGraph proc~f_esmf_stateaddarray f_esmf_stateaddarray esmf_arraycopythis esmf_arraycopythis proc~f_esmf_stateaddarray->esmf_arraycopythis esmf_arraysetinitcreated esmf_arraysetinitcreated proc~f_esmf_stateaddarray->esmf_arraysetinitcreated esmf_stateadd esmf_stateadd proc~f_esmf_stateaddarray->esmf_stateadd proc~esmf_logfounderror ESMF_LogFoundError proc~f_esmf_stateaddarray->proc~esmf_logfounderror 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 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

Source Code

   subroutine f_esmf_stateaddarray(state, array, rc)
#undef  ESMF_METHOD
#define ESMF_METHOD "f_esmf_stateaddarray"

       use ESMF_UtilTypesMod
       use ESMF_LogErrMod
      !use ESMF_BaseMod    ! ESMF base class
       use ESMF_StateMod
       use ESMF_ArrayCreateMod
       implicit none

       type(ESMF_State) :: state        !inout
       type(ESMF_Array) :: array        !in
       integer, intent(out) :: rc       !out

       ! local variable
       type(ESMF_Array) :: farray

       integer :: localrc

       ! Must first create a proper ESMF_Array that contains the 
       ! required "isInit" class member.
       
       ! Initialize return code; assume routine not implemented
       rc = ESMF_RC_NOT_IMPL

       ! Copy the this pointer a new ESMF_Array object
       call ESMF_ArrayCopyThis(array, farray, localrc)
       if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU,  &
           ESMF_CONTEXT, rcToReturn=rc)) return

       !  set the valid init code of the new object
       call ESMF_ArraySetInitCreated(farray, localrc)
       if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU,  &
           ESMF_CONTEXT, rcToReturn=rc)) return

       call ESMF_StateAdd(state=state, arrayList=(/farray/), rc=localrc)
       if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU,  &
           ESMF_CONTEXT, rcToReturn=rc)) return

       rc = localrc

   end subroutine f_esmf_stateaddarray