RegridderManager Derived Type

type, public :: RegridderManager


Inherits

type~~regriddermanager~~InheritsGraph type~regriddermanager RegridderManager type~regridderfactoryvector RegridderFactoryVector type~regriddermanager->type~regridderfactoryvector factories type~regridderspecvector RegridderSpecVector type~regriddermanager->type~regridderspecvector specs type~regriddervector RegridderVector type~regriddermanager->type~regriddervector regridders type~vector_wrapper~6 vector_wrapper type~regridderfactoryvector->type~vector_wrapper~6 elements type~vector_wrapper~15 vector_wrapper type~regridderspecvector->type~vector_wrapper~15 elements type~vector_wrapper vector_wrapper type~regriddervector->type~vector_wrapper elements Regridder Regridder type~vector_wrapper->Regridder item type~regridderspec RegridderSpec type~vector_wrapper~15->type~regridderspec item type~regridderfactory RegridderFactory type~vector_wrapper~6->type~regridderfactory item ESMF_Geom ESMF_Geom type~regridderspec->ESMF_Geom geom_in, geom_out type~regridderparam RegridderParam type~regridderspec->type~regridderparam param

Constructor

public interface RegridderManager

  • private function new_RegridderManager() result(mgr)

    $ call mgr%add_factory(horzHorzFluxRegridderFactory())

    Arguments

    None

    Return Value type(RegridderManager)


Type-Bound Procedures

procedure, public :: add_factory

  • private subroutine add_factory(this, factory)

    Arguments

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

procedure, public :: add_regridder

  • private subroutine add_regridder(this, spec, regriddr)

    Arguments

    Type IntentOptional Attributes Name
    class(RegridderManager), intent(inout) :: this
    class(RegridderSpec), intent(in) :: spec
    class(Regridder), intent(in) :: regriddr

procedure, public :: delete_regridder

  • private subroutine delete_regridder(this, spec, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(RegridderManager), intent(inout), target :: this
    class(RegridderSpec), intent(in) :: spec
    integer, intent(out), optional :: rc

procedure, public :: get_regridder

  • private function get_regridder(this, spec, rc) result(regriddr)

    Arguments

    Type IntentOptional Attributes Name
    class(RegridderManager), intent(inout), target :: this
    class(RegridderSpec), intent(in) :: spec
    integer, intent(out), optional :: rc

    Return Value class(Regridder), pointer

procedure, public :: make_regridder

  • private function make_regridder(this, spec, rc) result(regriddr)

    Arguments

    Type IntentOptional Attributes Name
    class(RegridderManager), intent(in), target :: this
    class(RegridderSpec), intent(in) :: spec
    integer, intent(out), optional :: rc

    Return Value class(Regridder), allocatable

Source Code

   type :: RegridderManager
      private
      type(RegridderFactoryVector) :: factories
      ! Next two vectors grow together
      type(RegridderSpecVector) :: specs
      type(RegridderVector) :: regridders
   contains
      procedure :: get_regridder
      procedure :: add_factory
      procedure :: make_regridder
      procedure :: add_regridder
      procedure :: delete_regridder
   end type RegridderManager