AbstractComponent Derived Type

type, public, abstract :: AbstractComponent


Inherited by

type~~abstractcomponent~~InheritedByGraph type~abstractcomponent AbstractComponent type~basecomponent BaseComponent type~basecomponent->type~abstractcomponent type~baseframeworkcomponent BaseFrameworkComponent type~baseframeworkcomponent->type~abstractcomponent component type~decoratorcomponent DecoratorComponent type~decoratorcomponent->type~abstractcomponent type~maplcomponent MaplComponent type~decoratorcomponent->type~maplcomponent decorated type~maplcomponent->type~basecomponent 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~stubcomponent StubComponent type~stubcomponent->type~maplcomponent type~usercomponent UserComponent type~usercomponent->type~maplcomponent

Type-Bound Procedures

procedure(i_Run), public, deferred :: finalize

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

    Arguments

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

procedure(i_GetFramework), public, deferred :: get_framework

  • function i_GetFramework(this) result(framework) Prototype

    Arguments

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

    Return Value class(SurrogateFrameworkComponent), pointer

procedure(i_GetLogger), public, deferred :: get_logger

  • function i_GetLogger(this) result(logger) Prototype

    Arguments

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

    Return Value class(t_Logger), pointer

procedure(i_GetName), public, deferred :: get_name

  • function i_GetName(this) result(name) Prototype

    Arguments

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

    Return Value character(len=:), allocatable

procedure(i_Run), public, deferred :: initialize

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

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractComponent), intent(inout) :: this
    type(ESMF_State), intent(inout) :: import_state
    type(ESMF_State), intent(inout) :: export_state
    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, import_state, export_state, clock, phase, unusable, rc) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractComponent), intent(inout) :: this
    type(ESMF_State), intent(inout) :: import_state
    type(ESMF_State), intent(inout) :: export_state
    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(AbstractComponent), 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(i_SetFramework), public, deferred :: set_framework

  • subroutine i_SetFramework(this, framework) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractComponent), intent(inout) :: this
    class(SurrogateFrameworkComponent), target :: framework

procedure(i_SetLogger), public, deferred :: set_logger

  • subroutine i_SetLogger(this, logger) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractComponent), intent(inout) :: this
    class(t_Logger), target :: logger

procedure(i_SetName), public, deferred :: set_name

  • subroutine i_SetName(this, name) Prototype

    Arguments

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

Source Code

   type, abstract :: AbstractComponent
   contains
      ! Primary methods
      procedure(i_Run), deferred :: initialize
      procedure(i_Run), deferred :: run
      procedure(i_Run), deferred :: finalize

      ! Framework methods
      procedure(i_RunChild), deferred :: run_child

      ! Accessors
      procedure(i_SetName), deferred :: set_name
      procedure(i_GetName), deferred :: get_name
      procedure(i_SetFramework), deferred :: set_framework
      procedure(i_GetFramework), deferred :: get_framework
      procedure(i_SetLogger), deferred :: set_logger
      procedure(i_GetLogger), deferred :: get_logger

      !procedure(i_GetState), deferred :: get_internal_state

   end type AbstractComponent