RegridderManager Derived Type

type, public :: RegridderManager


Inherits

type~~regriddermanager~2~~InheritsGraph type~regriddermanager~2 RegridderManager type~regriddertypespecregriddermap RegridderTypeSpecRegridderMap type~regriddermanager~2->type~regriddertypespecregriddermap prototypes type~regriddervector~2 RegridderVector type~regriddermanager~2->type~regriddervector~2 regridders type~set2~17 set2 type~regriddertypespecregriddermap->type~set2~17 tree type~v_wrapper~13 v_Wrapper type~regriddervector~2->type~v_wrapper~13 elements type~ivector~16 iVector type~set2~17->type~ivector~16 parents, lefts, rights, heights type~tvector~16 tVector type~set2~17->type~tvector~16 items type~abstractregridder AbstractRegridder type~v_wrapper~13->type~abstractregridder item type~regridderspec~2 RegridderSpec type~abstractregridder->type~regridderspec~2 spec type~pair~16 pair type~tvector~16->type~pair~16 elements

Type-Bound Procedures

generic, public :: add_prototype => add_prototype_by_spec

  • private subroutine add_prototype_by_spec(this, regridder_type, prototype)

    Arguments

    Type IntentOptional Attributes Name
    class(RegridderManager), intent(inout) :: this
    type(RegridderTypeSpec), intent(in) :: regridder_type
    class(AbstractRegridder), intent(in) :: prototype

generic, public :: add_prototype => add_prototype_by_grid_types

$ procedure :: make_regridder_from_fields

  • private subroutine add_prototype_by_grid_types(this, grid_type_in, grid_type_out, regrid_method, prototype)

    Arguments

    Type IntentOptional Attributes Name
    class(RegridderManager), intent(inout) :: this
    character(len=*), intent(in) :: grid_type_in
    character(len=*), intent(in) :: grid_type_out
    integer, intent(in) :: regrid_method
    class(AbstractRegridder), intent(in) :: prototype

procedure, public :: add_prototype_by_grid_types

  • private subroutine add_prototype_by_grid_types(this, grid_type_in, grid_type_out, regrid_method, prototype)

    Arguments

    Type IntentOptional Attributes Name
    class(RegridderManager), intent(inout) :: this
    character(len=*), intent(in) :: grid_type_in
    character(len=*), intent(in) :: grid_type_out
    integer, intent(in) :: regrid_method
    class(AbstractRegridder), intent(in) :: prototype

procedure, public :: add_prototype_by_spec

  • private subroutine add_prototype_by_spec(this, regridder_type, prototype)

    Arguments

    Type IntentOptional Attributes Name
    class(RegridderManager), intent(inout) :: this
    type(RegridderTypeSpec), intent(in) :: regridder_type
    class(AbstractRegridder), intent(in) :: prototype

procedure, public :: delete_regridder

  • private subroutine delete_regridder(this, regridder)

    Arguments

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

procedure, public :: init

  • private subroutine init(this)

    Arguments

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

generic, public :: make_regridder => make_regridder_from_grids

$ generic :: make_regridder => make_regridder_from_fields

  • private function make_regridder_from_grids(this, grid_in, grid_out, regrid_method, unusable, hints, rc) result(regridder)

    Arguments

    Type IntentOptional Attributes Name
    class(RegridderManager), intent(inout) :: this
    type(ESMF_Grid), intent(in) :: grid_in
    type(ESMF_Grid), intent(in) :: grid_out
    integer, intent(in) :: regrid_method
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(in), optional :: hints
    integer, intent(out), optional :: rc

    Return Value class(AbstractRegridder), pointer

procedure, public :: make_regridder_from_grids

  • private function make_regridder_from_grids(this, grid_in, grid_out, regrid_method, unusable, hints, rc) result(regridder)

    Arguments

    Type IntentOptional Attributes Name
    class(RegridderManager), intent(inout) :: this
    type(ESMF_Grid), intent(in) :: grid_in
    type(ESMF_Grid), intent(in) :: grid_out
    integer, intent(in) :: regrid_method
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(in), optional :: hints
    integer, intent(out), optional :: rc

    Return Value class(AbstractRegridder), pointer

Source Code

   type :: RegridderManager
      private
      logical :: initialized = .false.
      type (RegridderTypeSpecRegridderMap) :: prototypes
      type (RegridderVector) :: regridders
   contains
      procedure :: init
      procedure :: add_prototype_by_spec
      procedure :: add_prototype_by_grid_types
      generic :: add_prototype => add_prototype_by_spec
      generic :: add_prototype => add_prototype_by_grid_types
!!$      procedure :: make_regridder_from_fields
      procedure :: make_regridder_from_grids
      generic :: make_regridder => make_regridder_from_grids
!!$      generic :: make_regridder => make_regridder_from_fields
      procedure :: delete_regridder
   end type RegridderManager