GriddedComponentDriver Derived Type

type, public, extends(ComponentDriver) :: GriddedComponentDriver


Inherits

type~~griddedcomponentdriver~~InheritsGraph type~griddedcomponentdriver GriddedComponentDriver ESMF_Clock ESMF_Clock type~griddedcomponentdriver->ESMF_Clock clock ESMF_GridComp ESMF_GridComp type~griddedcomponentdriver->ESMF_GridComp gridcomp type~componentdriver ComponentDriver type~griddedcomponentdriver->type~componentdriver type~componentdrivervector ComponentDriverVector type~griddedcomponentdriver->type~componentdrivervector export_couplers, import_couplers type~multistate MultiState type~griddedcomponentdriver->type~multistate states type~vector_wrapper~22 vector_wrapper type~componentdrivervector->type~vector_wrapper~22 elements ESMF_State ESMF_State type~multistate->ESMF_State internalState, importState, exportState type~vector_wrapper~22->type~componentdriver item

Inherited by

type~~griddedcomponentdriver~~InheritedByGraph type~griddedcomponentdriver GriddedComponentDriver type~actualptcomponentdrivermappair ActualPtComponentDriverMapPair type~actualptcomponentdrivermappair->type~griddedcomponentdriver second type~griddedcomponentdriverpair GriddedComponentDriverPair type~griddedcomponentdriverpair->type~griddedcomponentdriver second type~outermetacomponent OuterMetaComponent type~outermetacomponent->type~griddedcomponentdriver user_gc_driver type~stateitemextension StateItemExtension type~stateitemextension->type~griddedcomponentdriver producer type~verticalregridaction VerticalRegridAction type~verticalregridaction->type~griddedcomponentdriver v_in_coupler, v_out_coupler type~map_s_node~14 map_s_Node type~map_s_node~14->type~actualptcomponentdrivermappair value type~map_s_node~14->type~map_s_node~14 parent type~stateitemextensionptr StateItemExtensionPtr type~stateitemextensionptr->type~stateitemextension ptr type~vector_wrapper~24 vector_wrapper type~vector_wrapper~24->type~stateitemextension item type~map_setiterator~14 map_SetIterator type~map_setiterator~14->type~map_s_node~14 node type~stateitemextensionvector StateItemExtensionVector type~stateitemextensionvector->type~vector_wrapper~24 elements type~stateitemextensionvectoriterator StateItemExtensionVectorIterator type~stateitemextensionvectoriterator->type~vector_wrapper~24 elements type~vector_wrapper~23 vector_wrapper type~vector_wrapper~23->type~stateitemextensionptr item type~actualptcomponentdrivermapiterator ActualPtComponentDriverMapIterator type~actualptcomponentdrivermapiterator->type~map_setiterator~14 set_iter type~stateitemextensionptrvector StateItemExtensionPtrVector type~stateitemextensionptrvector->type~vector_wrapper~23 elements type~stateitemextensionptrvectoriterator StateItemExtensionPtrVectorIterator type~stateitemextensionptrvectoriterator->type~vector_wrapper~23 elements type~stateregistry StateRegistry type~stateregistry->type~stateitemextensionvector owned_items type~vectorriterator~19 VectorRIterator type~vectorriterator~19->type~stateitemextensionvectoriterator iterator

Constructor

public interface GriddedComponentDriver

  • private interface new_GriddedComponentDriver()

    Arguments

    None

Type-Bound Procedures

procedure, public :: add_export_coupler

  • interface

    private module subroutine add_export_coupler(this, driver)

    Arguments

    Type IntentOptional Attributes Name
    class(GriddedComponentDriver), intent(inout) :: this
    type(GriddedComponentDriver), intent(in) :: driver

procedure, public :: add_import_coupler

  • interface

    private module subroutine add_import_coupler(this, driver)

    Arguments

    Type IntentOptional Attributes Name
    class(GriddedComponentDriver), intent(inout) :: this
    type(GriddedComponentDriver), intent(in) :: driver

procedure, public :: clock_advance

  • interface

    private module subroutine clock_advance(this, rc)

    Arguments

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

procedure, public :: finalize

  • interface

    private recursive module subroutine finalize(this, unusable, phase_idx, rc)

    Arguments

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

procedure, public :: get_clock

  • interface

    private module function get_clock(this) result(clock)

    Arguments

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

    Return Value type(ESMF_Clock)

procedure, public :: get_gridcomp

  • interface

    private module function get_gridcomp(this) result(gridcomp)

    Arguments

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

    Return Value type(ESMF_GridComp)

procedure, public :: get_name

  • interface

    private module function get_name(this, rc) result(name)

    Arguments

    Type IntentOptional Attributes Name
    class(GriddedComponentDriver), intent(in) :: this
    integer, intent(out), optional :: rc

    Return Value character(len=:), allocatable

procedure, public :: get_states

  • interface

    private module function get_states(this) result(states)

    Arguments

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

    Return Value type(MultiState)

procedure, public :: initialize

  • interface

    private recursive module subroutine initialize(this, unusable, phase_idx, rc)

    Arguments

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

procedure, public :: read_restart

  • interface

    private recursive module subroutine read_restart(this, unusable, phase_idx, rc)

    Arguments

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

procedure, public :: run

  • interface

    private recursive module subroutine run(this, unusable, phase_idx, rc)

    Arguments

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

procedure, public :: run_export_couplers

  • interface

    private recursive module subroutine run_export_couplers(this, unusable, phase_idx, rc)

    Arguments

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

procedure, public :: run_import_couplers

  • interface

    private recursive module subroutine run_import_couplers(this, rc)

    Arguments

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

procedure, public :: set_clock

  • interface

    private module subroutine set_clock(this, clock)

    Arguments

    Type IntentOptional Attributes Name
    class(GriddedComponentDriver), intent(inout) :: this
    type(ESMF_Clock), intent(in) :: clock

procedure, public :: write_restart

  • interface

    private recursive module subroutine write_restart(this, unusable, phase_idx, rc)

    Arguments

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

Source Code

   type, extends(ComponentDriver) :: GriddedComponentDriver
      private
      type(ESMF_GridComp) :: gridcomp
      type(MultiState) :: states
      type(ESMF_Clock) :: clock
      type(ComponentDriverVector) :: export_couplers
      type(ComponentDriverVector) :: import_couplers
   contains
      procedure :: run
      procedure :: initialize
      procedure :: finalize
      procedure :: read_restart
      procedure :: write_restart
      procedure :: clock_advance

      ! Accessors
      procedure :: get_clock
      procedure :: set_clock
      procedure :: get_states
      procedure :: get_gridcomp
      procedure :: get_name

      ! Couplers
      procedure :: run_export_couplers
      procedure :: run_import_couplers
      procedure :: add_export_coupler
      procedure :: add_import_coupler
   end type GriddedComponentDriver