f_esmf_regrid Subroutine

subroutine f_esmf_regrid(srcField, dstField, routehandle, zeroregion, zrpresent, rc)

Uses

  • proc~~f_esmf_regrid~~UsesGraph proc~f_esmf_regrid f_esmf_regrid module~esmf_basemod ESMF_BaseMod proc~f_esmf_regrid->module~esmf_basemod module~esmf_fieldmod ESMF_FieldMod proc~f_esmf_regrid->module~esmf_fieldmod module~esmf_fieldregridmod ESMF_FieldRegridMod proc~f_esmf_regrid->module~esmf_fieldregridmod module~esmf_logerrmod ESMF_LogErrMod proc~f_esmf_regrid->module~esmf_logerrmod module~esmf_rhandlemod ESMF_RHandleMod proc~f_esmf_regrid->module~esmf_rhandlemod module~esmf_utiltypesmod ESMF_UtilTypesMod proc~f_esmf_regrid->module~esmf_utiltypesmod

Arguments

Type IntentOptional Attributes Name
type(ESMF_Field) :: srcField
type(ESMF_Field) :: dstField
type(ESMF_RouteHandle) :: routehandle
type(ESMF_Region_Flag) :: zeroregion
integer, intent(in) :: zrpresent
integer :: rc

Calls

proc~~f_esmf_regrid~~CallsGraph proc~f_esmf_regrid f_esmf_regrid proc~esmf_fieldregrid ESMF_FieldRegrid proc~f_esmf_regrid->proc~esmf_fieldregrid proc~esmf_logfounderror ESMF_LogFoundError proc~f_esmf_regrid->proc~esmf_logfounderror proc~esmf_routehandlecopythis ESMF_RouteHandleCopyThis proc~f_esmf_regrid->proc~esmf_routehandlecopythis proc~esmf_routehandlesetinitcreated ESMF_RouteHandleSetInitCreated proc~f_esmf_regrid->proc~esmf_routehandlesetinitcreated proc~esmf_fieldregrid->proc~esmf_logfounderror esmf_fieldget esmf_fieldget proc~esmf_fieldregrid->esmf_fieldget proc~esmf_arraysmm ESMF_ArraySMM proc~esmf_fieldregrid->proc~esmf_arraysmm proc~esmf_logseterror ESMF_LogSetError proc~esmf_fieldregrid->proc~esmf_logseterror 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

  subroutine f_esmf_regrid(srcField, dstField, routehandle, zeroregion, zrpresent, rc)

    use ESMF_UtilTypesMod
    use ESMF_BaseMod
    use ESMF_LogErrMod
    use ESMF_RHandleMod
    use ESMF_FieldRegridMod
    use ESMF_FieldMod

    implicit none

    type(ESMF_Field)        :: srcField
    type(ESMF_Field)        :: dstField
    type(ESMF_RouteHandle)  :: routehandle
    type(ESMF_Region_Flag)  :: zeroregion
    integer, intent(in)     :: zrpresent
    integer                 :: rc 

    integer :: localrc
    type(ESMF_RouteHandle)  :: l_routehandle
  
    ! initialize return code; assume routine not implemented
    rc = ESMF_RC_NOT_IMPL
    localrc = ESMF_RC_NOT_IMPL

    ! Must first create a proper ESMF_RouteHandle that contains the 
    ! required "isInit" class member.
    ! Copy the this pointer a new ESMF_RouteHandle object
    call ESMF_RouteHandleCopyThis(routehandle, l_routehandle, localrc)
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
      ESMF_CONTEXT, rcToReturn=rc)) return
    ! set the valid init code of the new object
    call ESMF_RouteHandleSetInitCreated(l_routehandle, localrc)
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
      ESMF_CONTEXT, rcToReturn=rc)) return

    ! handle the zeroregion flag
    if (zrpresent == 0) then
      call ESMF_FieldRegrid(srcField, dstField, routehandle=l_routehandle, &
        rc=localrc)
    elseif (zrpresent == 1) then
      call ESMF_FieldRegrid(srcField, dstField, routehandle=l_routehandle, &
        zeroregion=zeroregion, rc=localrc)
    endif
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
      ESMF_CONTEXT, rcToReturn=rc)) return
  
    rc = ESMF_SUCCESS
  
  end subroutine f_esmf_regrid