EsmfRegridder Derived Type

type, public, extends(AbstractRegridder) :: EsmfRegridder


Inherits

type~~esmfregridder~~InheritsGraph type~esmfregridder EsmfRegridder ESMF_DynamicMask ESMF_DynamicMask type~esmfregridder->ESMF_DynamicMask dynamic_mask type~abstractregridder AbstractRegridder type~esmfregridder->type~abstractregridder type~regridderspec RegridderSpec type~abstractregridder->type~regridderspec spec ESMF_Grid ESMF_Grid type~regridderspec->ESMF_Grid grid_in, grid_out

Components

Type Visibility Attributes Name Initial
integer, public :: regrid_method
type(ESMF_DynamicMask), public :: dynamic_mask

Constructor

public interface EsmfRegridder

  • private function new_EsmfRegridder() result(regridder)

    Arguments

    None

    Return Value type(EsmfRegridder)


Type-Bound Procedures

procedure, public :: clear_undef_value

  • private subroutine clear_undef_value(this)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(inout) :: this

procedure, public :: clone

  • private function clone(this)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this

    Return Value class(AbstractRegridder), allocatable

procedure, public :: create_route_handle

  • private subroutine create_route_handle(this, kind, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(in) :: this
    type(ESMF_TypeKind_Flag), intent(in) :: kind
    integer, intent(out), optional :: rc

procedure, public :: destroy

  • private subroutine destroy(this, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(inout) :: this
    integer, intent(out), optional :: rc

procedure, public :: destroy_route_handle

  • private subroutine destroy_route_handle(this, kind, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(inout) :: this
    type(ESMF_TypeKind_Flag), intent(in) :: kind
    integer, intent(out), optional :: rc

procedure, public :: do_regrid

  • private subroutine do_regrid(this, src_field, dst_field, unusable, doTranspose, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(in) :: this
    type(ESMF_Field), intent(in) :: src_field
    type(ESMF_Field), intent(inout) :: dst_field
    class(KeywordEnforcer), intent(in), optional :: unusable
    logical, intent(in), optional :: doTranspose
    integer, intent(out), optional :: rc

procedure, public :: get_regrid_method

  • private function get_regrid_method(this) result(method)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this

    Return Value integer

procedure, public :: get_spec

  • private function get_spec(this) result(spec)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this

    Return Value type(RegridderSpec)

procedure, public :: get_undef_value

  • private function get_undef_value(this) result(undef_value)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this

    Return Value real

procedure, public :: has_undef_value

  • private function has_undef_value(this)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this

    Return Value logical

generic, public :: initialize => initialize_base, initialize_subclass

  • private subroutine initialize_base(this, spec, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(inout) :: this
    type(RegridderSpec), intent(in) :: spec
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc
  • private subroutine initialize_subclass(this, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(TilingRegridder), intent(inout) :: this
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: initialize_base

  • private subroutine initialize_base(this, spec, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(inout) :: this
    type(RegridderSpec), intent(in) :: spec
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: initialize_subclass

  • private subroutine initialize_subclass(this, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(inout) :: this
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: isTranspose

  • private function isTranspose(this) result(amTranspose)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this

    Return Value logical

generic, public :: regrid => regrid_esmf_fields_scalar

  • private subroutine regrid_esmf_fields_scalar(this, f_in, f_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    type(ESMF_Field), intent(in) :: f_in
    type(ESMF_Field), intent(in) :: f_out
    integer, intent(out), optional :: rc

generic, public :: regrid => regrid_esmf_fields_vector

  • private subroutine regrid_esmf_fields_vector(this, f_in, f_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    type(ESMF_Field), intent(in) :: f_in(NUM_DIM)
    type(ESMF_Field), intent(in) :: f_out(NUM_DIM)
    integer, intent(out), optional :: rc

generic, public :: regrid => regrid_scalar_2d_real32

  • private subroutine regrid_scalar_2d_real32(this, q_in, q_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(TilingRegridder), intent(in) :: this
    real(kind=REAL32), intent(in) :: q_in(:,:)
    real(kind=REAL32), intent(out) :: q_out(:,:)
    integer, intent(out), optional :: rc

generic, public :: regrid => regrid_scalar_2d_real64

  • private subroutine regrid_scalar_2d_real64(this, q_in, q_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL64), intent(in) :: q_in(:,:)
    real(kind=REAL64), intent(out) :: q_out(:,:)
    integer, intent(out), optional :: rc

generic, public :: regrid => regrid_scalar_3d_real32

  • private subroutine regrid_scalar_3d_real32(this, q_in, q_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL32), intent(in) :: q_in(:,:,:)
    real(kind=REAL32), intent(out) :: q_out(:,:,:)
    integer, intent(out), optional :: rc

generic, public :: regrid => regrid_scalar_3d_real64

  • private subroutine regrid_scalar_3d_real64(this, q_in, q_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL64), intent(in) :: q_in(:,:,:)
    real(kind=REAL64), intent(out) :: q_out(:,:,:)
    integer, intent(out), optional :: rc

generic, public :: regrid => regrid_vector_2d_real32

  • private subroutine regrid_vector_2d_real32(this, u_in, v_in, u_out, v_out, rotate, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL32), intent(in) :: u_in(:,:)
    real(kind=REAL32), intent(in) :: v_in(:,:)
    real(kind=REAL32), intent(out) :: u_out(:,:)
    real(kind=REAL32), intent(out) :: v_out(:,:)
    logical, intent(in), optional :: rotate
    integer, intent(out), optional :: rc

generic, public :: regrid => regrid_vector_2d_real64

  • private subroutine regrid_vector_2d_real64(this, u_in, v_in, u_out, v_out, rotate, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL64), intent(in) :: u_in(:,:)
    real(kind=REAL64), intent(in) :: v_in(:,:)
    real(kind=REAL64), intent(out) :: u_out(:,:)
    real(kind=REAL64), intent(out) :: v_out(:,:)
    logical, intent(in), optional :: rotate
    integer, intent(out), optional :: rc

generic, public :: regrid => regrid_vector_3d_real32

  • private subroutine regrid_vector_3d_real32(this, u_in, v_in, u_out, v_out, rotate, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL32), intent(in) :: u_in(:,:,:)
    real(kind=REAL32), intent(in) :: v_in(:,:,:)
    real(kind=REAL32), intent(out) :: u_out(:,:,:)
    real(kind=REAL32), intent(out) :: v_out(:,:,:)
    logical, intent(in), optional :: rotate
    integer, intent(out), optional :: rc

generic, public :: regrid => regrid_vector_3d_real64

  • private subroutine regrid_vector_3d_real64(this, u_in, v_in, u_out, v_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL64), intent(in) :: u_in(:,:,:)
    real(kind=REAL64), intent(in) :: v_in(:,:,:)
    real(kind=REAL64), intent(out) :: u_out(:,:,:)
    real(kind=REAL64), intent(out) :: v_out(:,:,:)
    integer, intent(out), optional :: rc

procedure, public :: regrid_esmf_fields_scalar

  • private subroutine regrid_esmf_fields_scalar(this, f_in, f_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    type(ESMF_Field), intent(in) :: f_in
    type(ESMF_Field), intent(in) :: f_out
    integer, intent(out), optional :: rc

procedure, public :: regrid_esmf_fields_vector

  • private subroutine regrid_esmf_fields_vector(this, f_in, f_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    type(ESMF_Field), intent(in) :: f_in(NUM_DIM)
    type(ESMF_Field), intent(in) :: f_out(NUM_DIM)
    integer, intent(out), optional :: rc

procedure, public :: regrid_scalar_2d_real32

  • private subroutine regrid_scalar_2d_real32(this, q_in, q_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(in) :: this
    real(kind=REAL32), intent(in) :: q_in(:,:)
    real(kind=REAL32), intent(out) :: q_out(:,:)
    integer, intent(out), optional :: rc

procedure, public :: regrid_scalar_2d_real64

  • private subroutine regrid_scalar_2d_real64(this, q_in, q_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(in) :: this
    real(kind=REAL64), intent(in) :: q_in(:,:)
    real(kind=REAL64), intent(out) :: q_out(:,:)
    integer, intent(out), optional :: rc

procedure, public :: regrid_scalar_3d_real32

  • private subroutine regrid_scalar_3d_real32(this, q_in, q_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(in) :: this
    real, intent(in) :: q_in(:,:,:)
    real, intent(out) :: q_out(:,:,:)
    integer, intent(out), optional :: rc

procedure, public :: regrid_scalar_3d_real64

  • private subroutine regrid_scalar_3d_real64(this, q_in, q_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(in) :: this
    real(kind=real64), intent(in) :: q_in(:,:,:)
    real(kind=real64), intent(out) :: q_out(:,:,:)
    integer, intent(out), optional :: rc

procedure, public :: regrid_vector_2d_real32

  • private subroutine regrid_vector_2d_real32(this, u_in, v_in, u_out, v_out, rotate, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(in) :: this
    real, intent(in) :: u_in(:,:)
    real, intent(in) :: v_in(:,:)
    real, intent(out) :: u_out(:,:)
    real, intent(out) :: v_out(:,:)
    logical, intent(in), optional :: rotate
    integer, intent(out), optional :: rc

procedure, public :: regrid_vector_2d_real64

  • private subroutine regrid_vector_2d_real64(this, u_in, v_in, u_out, v_out, rotate, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(in) :: this
    real(kind=real64), intent(in) :: u_in(:,:)
    real(kind=real64), intent(in) :: v_in(:,:)
    real(kind=real64), intent(out) :: u_out(:,:)
    real(kind=real64), intent(out) :: v_out(:,:)
    logical, intent(in), optional :: rotate
    integer, intent(out), optional :: rc

procedure, public :: regrid_vector_3d_real32

  • private subroutine regrid_vector_3d_real32(this, u_in, v_in, u_out, v_out, rotate, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(in) :: this
    real, intent(in) :: u_in(:,:,:)
    real, intent(in) :: v_in(:,:,:)
    real, intent(out) :: u_out(:,:,:)
    real, intent(out) :: v_out(:,:,:)
    logical, intent(in), optional :: rotate
    integer, intent(out), optional :: rc

procedure, public :: regrid_vector_3d_real64

  • private subroutine regrid_vector_3d_real64(this, u_in, v_in, u_out, v_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(in) :: this
    real(kind=real64), intent(in) :: u_in(:,:,:)
    real(kind=real64), intent(in) :: v_in(:,:,:)
    real(kind=real64), intent(out) :: u_out(:,:,:)
    real(kind=real64), intent(out) :: v_out(:,:,:)
    integer, intent(out), optional :: rc

procedure, public :: select_route_handle

  • private function select_route_handle(this, kind, do_transpose, rc) result(route_handle)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(in) :: this
    type(ESMF_TypeKind_Flag), intent(in) :: kind
    logical, intent(in), optional :: do_transpose
    integer, intent(out), optional :: rc

    Return Value type(ESMF_RouteHandle)

procedure, public :: set_spec

  • private subroutine set_spec(this, spec)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(inout) :: this
    type(RegridderSpec), intent(in) :: spec

procedure, public :: set_undef_value

  • private subroutine set_undef_value(this, undef_value)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(inout) :: this
    real :: undef_value

procedure, public, nopass :: supports

  • private function supports(spec, unusable, rc)

    $ supports = .true.

    Arguments

    Type IntentOptional Attributes Name
    type(RegridderSpec), intent(in) :: spec
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

    Return Value logical

generic, public :: transpose_regrid => transpose_regrid_esmf_fields_scalar

  • private subroutine transpose_regrid_esmf_fields_scalar(this, f_in, f_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    type(ESMF_Field), intent(in) :: f_in
    type(ESMF_Field), intent(in) :: f_out
    integer, intent(out), optional :: rc

generic, public :: transpose_regrid => transpose_regrid_esmf_fields_vector

  • private subroutine transpose_regrid_esmf_fields_vector(this, f_in, f_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    type(ESMF_Field), intent(in) :: f_in(NUM_DIM)
    type(ESMF_Field), intent(in) :: f_out(NUM_DIM)
    integer, intent(out), optional :: rc

generic, public :: transpose_regrid => transpose_regrid_scalar_2d_real32

  • private subroutine transpose_regrid_scalar_2d_real32(this, q_in, q_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL32), intent(in) :: q_in(:,:)
    real(kind=REAL32), intent(out) :: q_out(:,:)
    integer, intent(out), optional :: rc

generic, public :: transpose_regrid => transpose_regrid_scalar_2d_real64

  • private subroutine transpose_regrid_scalar_2d_real64(this, q_in, q_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL64), intent(in) :: q_in(:,:)
    real(kind=REAL64), intent(out) :: q_out(:,:)
    integer, intent(out), optional :: rc

generic, public :: transpose_regrid => transpose_regrid_scalar_3d_real32

  • private subroutine transpose_regrid_scalar_3d_real32(this, q_in, q_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL32), intent(in) :: q_in(:,:,:)
    real(kind=REAL32), intent(out) :: q_out(:,:,:)
    integer, intent(out), optional :: rc

generic, public :: transpose_regrid => transpose_regrid_scalar_3d_real64

  • private subroutine transpose_regrid_scalar_3d_real64(this, q_in, q_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL64), intent(in) :: q_in(:,:,:)
    real(kind=REAL64), intent(out) :: q_out(:,:,:)
    integer, intent(out), optional :: rc

generic, public :: transpose_regrid => transpose_regrid_vector_2d_real32

  • private subroutine transpose_regrid_vector_2d_real32(this, u_in, v_in, u_out, v_out, rotate, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL32), intent(in) :: u_in(:,:)
    real(kind=REAL32), intent(in) :: v_in(:,:)
    real(kind=REAL32), intent(out) :: u_out(:,:)
    real(kind=REAL32), intent(out) :: v_out(:,:)
    logical, intent(in), optional :: rotate
    integer, intent(out), optional :: rc

generic, public :: transpose_regrid => transpose_regrid_vector_2d_real64

  • private subroutine transpose_regrid_vector_2d_real64(this, u_in, v_in, u_out, v_out, rotate, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL64), intent(in) :: u_in(:,:)
    real(kind=REAL64), intent(in) :: v_in(:,:)
    real(kind=REAL64), intent(out) :: u_out(:,:)
    real(kind=REAL64), intent(out) :: v_out(:,:)
    logical, intent(in), optional :: rotate
    integer, intent(out), optional :: rc

generic, public :: transpose_regrid => transpose_regrid_vector_3d_real32

  • private subroutine transpose_regrid_vector_3d_real32(this, u_in, v_in, u_out, v_out, rotate, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL32), intent(in) :: u_in(:,:,:)
    real(kind=REAL32), intent(in) :: v_in(:,:,:)
    real(kind=REAL32), intent(out) :: u_out(:,:,:)
    real(kind=REAL32), intent(out) :: v_out(:,:,:)
    logical, intent(in), optional :: rotate
    integer, intent(out), optional :: rc

generic, public :: transpose_regrid => transpose_regrid_vector_3d_real64

  • private subroutine transpose_regrid_vector_3d_real64(this, u_in, v_in, u_out, v_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL64), intent(in) :: u_in(:,:,:)
    real(kind=REAL64), intent(in) :: v_in(:,:,:)
    real(kind=REAL64), intent(out) :: u_out(:,:,:)
    real(kind=REAL64), intent(out) :: v_out(:,:,:)
    integer, intent(out), optional :: rc

procedure, public :: transpose_regrid_esmf_fields_scalar

  • private subroutine transpose_regrid_esmf_fields_scalar(this, f_in, f_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    type(ESMF_Field), intent(in) :: f_in
    type(ESMF_Field), intent(in) :: f_out
    integer, intent(out), optional :: rc

procedure, public :: transpose_regrid_esmf_fields_vector

  • private subroutine transpose_regrid_esmf_fields_vector(this, f_in, f_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    type(ESMF_Field), intent(in) :: f_in(NUM_DIM)
    type(ESMF_Field), intent(in) :: f_out(NUM_DIM)
    integer, intent(out), optional :: rc

procedure, public :: transpose_regrid_scalar_2d_real32

  • private subroutine transpose_regrid_scalar_2d_real32(this, q_in, q_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(in) :: this
    real(kind=REAL32), intent(in) :: q_in(:,:)
    real(kind=REAL32), intent(out) :: q_out(:,:)
    integer, intent(out), optional :: rc

procedure, public :: transpose_regrid_scalar_2d_real64

  • private subroutine transpose_regrid_scalar_2d_real64(this, q_in, q_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL64), intent(in) :: q_in(:,:)
    real(kind=REAL64), intent(out) :: q_out(:,:)
    integer, intent(out), optional :: rc

procedure, public :: transpose_regrid_scalar_3d_real32

  • private subroutine transpose_regrid_scalar_3d_real32(this, q_in, q_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(in) :: this
    real, intent(in) :: q_in(:,:,:)
    real, intent(out) :: q_out(:,:,:)
    integer, intent(out), optional :: rc

procedure, public :: transpose_regrid_scalar_3d_real64

  • private subroutine transpose_regrid_scalar_3d_real64(this, q_in, q_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL64), intent(in) :: q_in(:,:,:)
    real(kind=REAL64), intent(out) :: q_out(:,:,:)
    integer, intent(out), optional :: rc

procedure, public :: transpose_regrid_vector_2d_real32

  • private subroutine transpose_regrid_vector_2d_real32(this, u_in, v_in, u_out, v_out, rotate, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(in) :: this
    real, intent(in) :: u_in(:,:)
    real, intent(in) :: v_in(:,:)
    real, intent(out) :: u_out(:,:)
    real, intent(out) :: v_out(:,:)
    logical, intent(in), optional :: rotate
    integer, intent(out), optional :: rc

procedure, public :: transpose_regrid_vector_2d_real64

  • private subroutine transpose_regrid_vector_2d_real64(this, u_in, v_in, u_out, v_out, rotate, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL64), intent(in) :: u_in(:,:)
    real(kind=REAL64), intent(in) :: v_in(:,:)
    real(kind=REAL64), intent(out) :: u_out(:,:)
    real(kind=REAL64), intent(out) :: v_out(:,:)
    logical, intent(in), optional :: rotate
    integer, intent(out), optional :: rc

procedure, public :: transpose_regrid_vector_3d_real32

  • private subroutine transpose_regrid_vector_3d_real32(this, u_in, v_in, u_out, v_out, rotate, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EsmfRegridder), intent(in) :: this
    real, intent(in) :: u_in(:,:,:)
    real, intent(in) :: v_in(:,:,:)
    real, intent(out) :: u_out(:,:,:)
    real, intent(out) :: v_out(:,:,:)
    logical, intent(in), optional :: rotate
    integer, intent(out), optional :: rc

procedure, public :: transpose_regrid_vector_3d_real64

  • private subroutine transpose_regrid_vector_3d_real64(this, u_in, v_in, u_out, v_out, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractRegridder), intent(in) :: this
    real(kind=REAL64), intent(in) :: u_in(:,:,:)
    real(kind=REAL64), intent(in) :: v_in(:,:,:)
    real(kind=REAL64), intent(out) :: u_out(:,:,:)
    real(kind=REAL64), intent(out) :: v_out(:,:,:)
    integer, intent(out), optional :: rc

Source Code

   type, extends(AbstractRegridder) :: EsmfRegridder
      integer :: regrid_method
      type (ESMF_DynamicMask) :: dynamic_mask
   contains
      procedure :: initialize_subclass
      procedure, nopass :: supports

      procedure :: regrid_scalar_2d_real32
      procedure :: regrid_scalar_2d_real64
      procedure :: regrid_scalar_3d_real32
      procedure :: regrid_scalar_3d_real64

      procedure :: regrid_vector_2d_real32
      procedure :: regrid_vector_2d_real64
      procedure :: regrid_vector_3d_real32
      procedure :: regrid_vector_3d_real64

      procedure :: transpose_regrid_scalar_2d_real32
      procedure :: transpose_regrid_scalar_3d_real32
      procedure :: transpose_regrid_vector_2d_real32
      procedure :: transpose_regrid_vector_3d_real32

      ! internal
      procedure :: do_regrid
      procedure :: create_route_handle
      procedure :: select_route_handle
      procedure :: destroy
      procedure :: destroy_route_handle

   end type EsmfRegridder