MaplGenericComponent Derived Type

type, public, extends(BaseFrameworkComponent) :: MaplGenericComponent

$ private


Inherits

type~~maplgenericcomponent~~InheritsGraph type~maplgenericcomponent MaplGenericComponent ESMF_GridComp ESMF_GridComp type~maplgenericcomponent->ESMF_GridComp gridcomp ESMF_State ESMF_State type~maplgenericcomponent->ESMF_State import_state, export_state, internal_state type~baseframeworkcomponent BaseFrameworkComponent type~maplgenericcomponent->type~baseframeworkcomponent type~entrypointvector entryPointVector type~maplgenericcomponent->type~entrypointvector run_entry_points type~subcomponent SubComponent type~maplgenericcomponent->type~subcomponent subcomponents type~abstractcomponent AbstractComponent type~baseframeworkcomponent->type~abstractcomponent component type~componentspecification ComponentSpecification type~baseframeworkcomponent->type~componentspecification component_spec type~compositecomponent CompositeComponent type~baseframeworkcomponent->type~compositecomponent type~maplgrid MaplGrid type~baseframeworkcomponent->type~maplgrid grid type~vector_wrapper~7 vector_wrapper type~entrypointvector->type~vector_wrapper~7 elements type~subcomponent->ESMF_GridComp gridcomp type~subcomponent->ESMF_State internal_state, import_state, export_state type~subcomponent->type~maplgrid grid type~statespecification StateSpecification type~componentspecification->type~statespecification import, export, internal, forcing type~abstractframeworkcomponent AbstractFrameworkComponent type~compositecomponent->type~abstractframeworkcomponent type~concretecomposite ConcreteComposite type~compositecomponent->type~concretecomposite composite ESMF_DELayout ESMF_DELayout type~maplgrid->ESMF_DELayout LAYOUT ESMF_Grid ESMF_Grid type~maplgrid->ESMF_Grid ESMFGRID type~runentrypoint runEntryPoint type~vector_wrapper~7->type~runentrypoint item type~surrogateframeworkcomponent SurrogateFrameworkComponent type~abstractframeworkcomponent->type~surrogateframeworkcomponent type~concretecomposite->type~abstractframeworkcomponent component type~concretecomposite->type~concretecomposite parent StringVector StringVector type~concretecomposite->StringVector children_names type~abstractcomposite AbstractComposite type~concretecomposite->type~abstractcomposite type~stringcompositemap StringCompositeMap type~concretecomposite->type~stringcompositemap children type~mapl_varspec MAPL_VarSpec type~statespecification->type~mapl_varspec old_var_specs type~varspecvector VarSpecVector type~statespecification->type~varspecvector var_specs

Inherited by

type~~maplgenericcomponent~~InheritedByGraph type~maplgenericcomponent MaplGenericComponent type~mapl_metacomp MAPL_MetaComp type~mapl_metacomp->type~maplgenericcomponent type~namedcomponent NamedComponent type~namedcomponent->type~maplgenericcomponent type~historytrajectory HistoryTrajectory type~historytrajectory->type~mapl_metacomp GENSTATE type~masksamplergeosat MaskSamplerGeosat type~masksamplergeosat->type~mapl_metacomp GENSTATE type~stationsampler StationSampler type~stationsampler->type~mapl_metacomp GENSTATE type~historycollection~2 HistoryCollection type~historycollection~2->type~historytrajectory trajectory type~historycollection~2->type~masksamplergeosat mask_sampler type~historycollection~2->type~stationsampler station_sampler type~historycollectionvectoriterator~2 HistoryCollectionVectorIterator type~historycollectionvectoriterator~2->type~historycollection~2 elements type~historycollectionvectorriterator~2 HistoryCollectionVectorRIterator type~historycollectionvectorriterator~2->type~historycollection~2 elements type~historycollectionvector~2 HistoryCollectionVector type~historycollectionvector~2->type~historycollection~2 elements

Components

Type Visibility Attributes Name Initial
logical, public :: threading_active = .FALSE.
logical, public :: use_threads = .FALSE.
type(ESMF_GridComp), public :: gridcomp
type(ESMF_State), public :: export_state
type(ESMF_State), public :: import_state
type(ESMF_State), public :: internal_state
class(AbstractComponent), public, allocatable :: component
type(ComponentSpecification), public :: component_spec
class(ConcreteComposite), public, pointer :: composite => null()
type(MaplGrid), public :: grid
type(SubComponent), public, allocatable :: subcomponents(:)
type(entryPointVector), public :: run_entry_points

Type-Bound Procedures

procedure, public :: activate_threading

  • private recursive subroutine activate_threading(this, num_threads, unusable, rc)

    Arguments

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

procedure, public :: add_child

procedure, public :: add_child_component

  • private function add_child_component(this, name, user_component) result(child)

    Arguments

    Type IntentOptional Attributes Name
    class(MaplGenericComponent), intent(inout), target :: this
    character(len=*), intent(in) :: name
    class(AbstractComponent), intent(in) :: user_component

    Return Value class(AbstractFrameworkComponent), pointer

procedure, public :: create_subobjects

  • private subroutine create_subobjects(this, num_threads, unusable, rc)

    Arguments

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

procedure, public :: deactivate_threading

  • private recursive subroutine deactivate_threading(this, unusable, rc)

    Arguments

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

procedure, public :: finalize => stub

  • private subroutine stub(this, clock, phase, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MaplGenericComponent), intent(inout) :: this
    type(ESMF_Clock), intent(inout) :: clock
    character(len=*), intent(in) :: phase
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: finalize_child => stub_child

  • private subroutine stub_child(this, name, clock, phase, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MaplGenericComponent), intent(inout) :: this
    character(len=*), intent(in) :: name
    type(ESMF_Clock), intent(inout) :: clock
    character(len=*), intent(in) :: phase
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

generic, public :: get_child => get_child_by_name, get_child_by_index

  • private function get_child_by_name(this, name) result(child)

    Arguments

    Type IntentOptional Attributes Name
    class(CompositeComponent), intent(in) :: this
    character(len=*), intent(in) :: name

    Return Value class(AbstractFrameworkComponent), pointer

  • private function get_child_by_index(this, i) result(child)

    Arguments

    Type IntentOptional Attributes Name
    class(CompositeComponent), intent(in) :: this
    integer, intent(in) :: i

    Return Value class(AbstractFrameworkComponent), pointer

procedure, public :: get_child_by_index

  • private function get_child_by_index(this, i) result(child)

    Arguments

    Type IntentOptional Attributes Name
    class(CompositeComponent), intent(in) :: this
    integer, intent(in) :: i

    Return Value class(AbstractFrameworkComponent), pointer

procedure, public :: get_child_by_name

  • private function get_child_by_name(this, name) result(child)

    Arguments

    Type IntentOptional Attributes Name
    class(CompositeComponent), intent(in) :: this
    character(len=*), intent(in) :: name

    Return Value class(AbstractFrameworkComponent), pointer

procedure, public :: get_component

  • private function get_component(this) result(component)

    Arguments

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

    Return Value class(AbstractComponent), pointer

procedure, public :: get_composite

  • private function get_composite(this) result(composite)

    Arguments

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

    Return Value class(AbstractComposite), pointer

procedure, public :: get_export_state

  • private function get_export_state(this) result(export_state)

    Arguments

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

    Return Value type(ESMF_State), pointer

procedure, public :: get_grid

  • public function get_grid(this) result(grid)

    Arguments

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

    Return Value type(MaplGrid), pointer

procedure, public :: get_gridcomp

  • private function get_gridcomp(this) result(gridcomp)

    Arguments

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

    Return Value type(ESMF_GridComp), pointer

procedure, public :: get_import_state

  • private function get_import_state(this) result(import_state)

    Arguments

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

    Return Value type(ESMF_State), pointer

procedure, public :: get_internal_state

  • private function get_internal_state(this) result(internal_state)

    Arguments

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

    Return Value type(ESMF_State), pointer

procedure, public :: get_logger

  • private function get_logger(this) result(lgr)

    Arguments

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

    Return Value class(Logger), pointer

procedure, public :: get_num_children

  • private function get_num_children(this) result(num_children)

    Arguments

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

    Return Value integer

procedure, public :: get_parent

procedure, public :: get_use_threads

  • private function get_use_threads(this) result(use_threads)

    Arguments

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

    Return Value logical

procedure, public :: initialize => stub

  • private subroutine stub(this, clock, phase, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MaplGenericComponent), intent(inout) :: this
    type(ESMF_Clock), intent(inout) :: clock
    character(len=*), intent(in) :: phase
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: initialize_child => stub_child

  • private subroutine stub_child(this, name, clock, phase, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MaplGenericComponent), intent(inout) :: this
    character(len=*), intent(in) :: name
    type(ESMF_Clock), intent(inout) :: clock
    character(len=*), intent(in) :: phase
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: is_threading_active

  • private function is_threading_active(this) result(threading_active)

    Arguments

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

    Return Value logical

procedure, public :: run => stub

  • private subroutine stub(this, clock, phase, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MaplGenericComponent), intent(inout) :: this
    type(ESMF_Clock), intent(inout) :: clock
    character(len=*), intent(in) :: phase
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: run_child => stub_child

  • private subroutine stub_child(this, name, clock, phase, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MaplGenericComponent), intent(inout) :: this
    character(len=*), intent(in) :: name
    type(ESMF_Clock), intent(inout) :: clock
    character(len=*), intent(in) :: phase
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: set_component

  • private subroutine set_component(this, component)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseFrameworkComponent), intent(inout), target :: this
    class(AbstractComponent), intent(in) :: component

procedure, public :: set_composite

  • private subroutine set_composite(this, composite)

    Arguments

    Type IntentOptional Attributes Name
    class(CompositeComponent), intent(inout) :: this
    class(AbstractComposite), intent(in), target :: composite

procedure, public :: set_logger

  • private subroutine set_logger(this, lgr)

    Arguments

    Type IntentOptional Attributes Name
    class(MaplGenericComponent), intent(inout) :: this
    class(Logger), target :: lgr

procedure, public :: set_use_threads

  • private subroutine set_use_threads(this, use_threads)

    Arguments

    Type IntentOptional Attributes Name
    class(MaplGenericComponent), intent(inout) :: this
    logical, intent(in) :: use_threads

Source Code

   type, extends(BaseFrameworkComponent) :: MaplGenericComponent
!!$      private
      type(ESMF_GridComp) :: gridcomp
      type(SubComponent), allocatable :: subcomponents(:)
      type(EntryPointVector) :: run_entry_points
      type(ESMF_State) :: import_state
      type(ESMF_State) :: export_state
      type(ESMF_State) :: internal_state

      logical :: threading_active = .FALSE.
      logical :: use_threads = .FALSE.


   contains
      procedure :: initialize => stub
      procedure :: run => stub
      procedure :: finalize => stub

      procedure :: initialize_child => stub_child
      procedure :: run_child => stub_child
      procedure :: finalize_child => stub_child

      procedure :: add_child_component

      procedure :: activate_threading
      procedure :: deactivate_threading

      procedure :: create_subobjects

      ! accessors
      procedure :: get_logger
      procedure :: set_logger
      procedure :: set_use_threads
      procedure :: get_use_threads
      procedure :: is_threading_active
      procedure :: get_internal_state
      procedure :: get_import_state
      procedure :: get_export_state
      procedure :: get_grid
      procedure :: get_gridcomp
   end type MaplGenericComponent