user_init Subroutine

public subroutine user_init(comp, importState, exportState, clock, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_CplComp) :: comp
type(ESMF_State) :: importState
type(ESMF_State) :: exportState
type(ESMF_Clock) :: clock
integer :: rc

Calls

proc~~user_init~63~~CallsGraph proc~user_init~63 user_init esmf_stateget esmf_stateget proc~user_init~63->esmf_stateget esmf_stategetfield esmf_stategetfield proc~user_init~63->esmf_stategetfield interface~esmf_fieldregridstore ESMF_FieldRegridStore proc~user_init~63->interface~esmf_fieldregridstore proc~esmf_cplcompget ESMF_CplCompGet proc~user_init~63->proc~esmf_cplcompget proc~esmf_fieldregridstorenx ESMF_FieldRegridStoreNX interface~esmf_fieldregridstore->proc~esmf_fieldregridstorenx proc~esmf_fieldregridstorex ESMF_FieldRegridStoreX interface~esmf_fieldregridstore->proc~esmf_fieldregridstorex proc~esmf_compget ESMF_CompGet proc~esmf_cplcompget->proc~esmf_compget proc~esmf_compstatusget ESMF_CompStatusGet proc~esmf_cplcompget->proc~esmf_compstatusget proc~esmf_cplcompgetinit ESMF_CplCompGetInit proc~esmf_cplcompget->proc~esmf_cplcompgetinit proc~esmf_imerr ESMF_IMErr proc~esmf_cplcompget->proc~esmf_imerr proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_cplcompget->proc~esmf_logfounderror

Source Code

    subroutine user_init(comp, importState, exportState, clock, rc)
      type(ESMF_CplComp) :: comp
      type(ESMF_State) :: importState, exportState
      type(ESMF_Clock) :: clock
      integer :: rc

      ! Local variables
      integer :: itemcount
      type(ESMF_Field) :: humidity1, humidity2
      type(ESMF_VM) :: vm


      print *, "User Coupler Init starting"

      call ESMF_StateGet(importState, itemcount=itemcount, rc=rc)
      print *, "Import State contains ", itemcount, " items."
       
      ! Get input data
      call ESMF_StateGetField(importState, "humidity", humidity1, rc=rc)
      ! call ESMF_FieldPrint(humidity1, rc=rc)

      ! Get location of output data
      call ESMF_StateGetField(exportState, "humidity", humidity2, rc=rc)
      ! call ESMF_FieldPrint(humidity2, rc=rc)

      ! Get VM from coupler component
      call ESMF_CplCompGet(comp, vm=vm, rc=rc)

      ! These are fields on different IGrids - call RegridStore to set
      ! up the precomputed Regrid communication calls.

      call ESMF_FieldRegridStore(humidity1, humidity2, vm, &
                                 routehandle, &
                                 regridmethod=ESMF_REGRIDMETHOD_BILINEAR, &
                                 rc=rc)


      print *, "User Coupler Init returning"
   
      rc = ESMF_SUCCESS

    end subroutine user_init