BaseFrameworkComponent Derived Type

type, public, abstract, extends(CompositeComponent) :: BaseFrameworkComponent


Inherits

type~~baseframeworkcomponent~~InheritsGraph type~baseframeworkcomponent BaseFrameworkComponent 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~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~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 type~mapl_varspectype MAPL_VarSpecType type~mapl_varspec->type~mapl_varspectype SpecPtr type~set2~3 set2 type~stringcompositemap->type~set2~3 tree type~vector_wrapper~19 vector_wrapper type~varspecvector->type~vector_wrapper~19 elements

Inherited by

type~~baseframeworkcomponent~~InheritedByGraph type~baseframeworkcomponent BaseFrameworkComponent type~maplgenericcomponent MaplGenericComponent type~maplgenericcomponent->type~baseframeworkcomponent 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

Components

Type Visibility Attributes Name Initial
class(AbstractComponent), public, allocatable :: component
type(ComponentSpecification), public :: component_spec
class(ConcreteComposite), public, pointer :: composite => null()
type(MaplGrid), public :: grid

Type-Bound Procedures

procedure, public :: add_child

procedure(i_AddChildComponent), public, deferred :: add_child_component

  • function i_AddChildComponent(this, name, user_component) result(child) Prototype

    Arguments

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

    Return Value class(AbstractFrameworkComponent), pointer

procedure(i_Run), public, deferred :: finalize

  • subroutine i_Run(this, clock, phase, unusable, rc) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(SurrogateFrameworkComponent), 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

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(i_GetState), public, deferred :: get_internal_state

  • function i_GetState(this) result(state) Prototype

    Arguments

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

    Return Value type(ESMF_State), 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(i_Run), public, deferred :: initialize

  • subroutine i_Run(this, clock, phase, unusable, rc) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(SurrogateFrameworkComponent), 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(i_Run), public, deferred :: run

  • subroutine i_Run(this, clock, phase, unusable, rc) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(SurrogateFrameworkComponent), 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(i_RunChild), public, deferred :: run_child

  • subroutine i_RunChild(this, name, clock, phase, unusable, rc) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(SurrogateFrameworkComponent), 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

Source Code

   type, abstract, extends(CompositeComponent) :: BaseFrameworkComponent
      ! private
      class(AbstractComponent), allocatable :: component
      type(ComponentSpecification) :: component_spec
      type(MaplGrid) :: grid
   contains
      procedure :: set_component
      procedure :: get_component
   end type BaseFrameworkComponent