StateItemExtension Derived Type

type, public :: StateItemExtension


Inherits

type~~stateitemextension~~InheritsGraph type~stateitemextension StateItemExtension type~componentdriverptrvector ComponentDriverPtrVector type~stateitemextension->type~componentdriverptrvector consumers type~griddedcomponentdriver GriddedComponentDriver type~stateitemextension->type~griddedcomponentdriver producer type~stateitemspec StateItemSpec type~stateitemextension->type~stateitemspec spec type~vector_wrapper~21 vector_wrapper type~componentdriverptrvector->type~vector_wrapper~21 elements 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 StringVector StringVector type~stateitemspec->StringVector raw_dependencies type~actualptvector ActualPtVector type~stateitemspec->type~actualptvector dependencies type~vector_wrapper~10 vector_wrapper type~actualptvector->type~vector_wrapper~10 elements 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~componentdriverptr ComponentDriverPtr type~vector_wrapper~21->type~componentdriverptr item type~componentdriverptr->type~componentdriver ptr type~actualconnectionpt ActualConnectionPt type~vector_wrapper~10->type~actualconnectionpt item type~vector_wrapper~22->type~componentdriver item

Inherited by

type~~stateitemextension~~InheritedByGraph type~stateitemextension StateItemExtension type~stateitemextensionptr StateItemExtensionPtr type~stateitemextensionptr->type~stateitemextension ptr type~vector_wrapper~24 vector_wrapper type~vector_wrapper~24->type~stateitemextension item 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~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 type~extensionfamily ExtensionFamily type~extensionfamily->type~stateitemextensionptrvector extensions type~modelverticalgrid ModelVerticalGrid type~modelverticalgrid->type~stateregistry registry type~outermetacomponent OuterMetaComponent type~outermetacomponent->type~stateregistry registry type~servicespec ServiceSpec type~servicespec->type~stateregistry registry type~vectorriterator~18 VectorRIterator type~vectorriterator~18->type~stateitemextensionptrvectoriterator iterator

Constructor

public interface StateItemExtension

  • private function new_StateItemExtension_spec(spec) result(ext)

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemSpec), intent(in) :: spec

    Return Value type(StateItemExtension)

  • private function new_StateItemExtension_w_producer(spec, producer) result(ext)

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemSpec), intent(in) :: spec
    type(GriddedComponentDriver), intent(in) :: producer

    Return Value type(StateItemExtension)


Type-Bound Procedures

procedure, public :: add_consumer

procedure, public :: get_consumers

procedure, public :: get_producer

  • private function get_producer(this) result(producer)

    Arguments

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

    Return Value type(GriddedComponentDriver), pointer

procedure, public :: get_spec

  • private function get_spec(this) result(spec)

    Arguments

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

    Return Value class(StateItemSpec), pointer

procedure, public :: has_producer

  • private function has_producer(this)

    Arguments

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

    Return Value logical

procedure, public :: make_extension

  • private recursive function make_extension(this, goal, rc) result(extension)

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemExtension), intent(inout), target :: this
    class(StateItemSpec), intent(in), target :: goal
    integer, intent(out) :: rc

    Return Value type(StateItemExtension), target

Source Code

   type StateItemExtension
      private
      class(StateItemSpec), allocatable :: spec
      type(GriddedComponentDriver), allocatable :: producer ! coupler that computes spec
      type(ComponentDriverPtrVector) :: consumers ! couplers that depend on spec
   contains
      procedure :: get_spec
      procedure :: get_producer
      procedure :: get_consumers
      procedure :: has_producer
      procedure :: add_consumer
      procedure :: make_extension
   end type StateItemExtension