RegridderManager Derived Type

type, public :: RegridderManager


Inherits

type~~regriddermanager~~InheritsGraph type~regriddermanager RegridderManager type~regriddertypespecregriddermap RegridderTypeSpecRegridderMap type~regriddermanager->type~regriddertypespecregriddermap prototypes type~regriddervector RegridderVector type~regriddermanager->type~regriddervector regridders type~set2~19 set2 type~regriddertypespecregriddermap->type~set2~19 tree type~v_wrapper~14 v_Wrapper type~regriddervector->type~v_wrapper~14 elements type~ivector~18 iVector type~set2~19->type~ivector~18 parents, lefts, rights, heights type~tvector~18 tVector type~set2~19->type~tvector~18 items type~abstractregridder AbstractRegridder type~v_wrapper~14->type~abstractregridder item type~regridderspec RegridderSpec type~abstractregridder->type~regridderspec spec type~pair~18 pair type~tvector~18->type~pair~18 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