StateItemSpec Derived Type

type, public, abstract :: StateItemSpec


Inherits

type~~stateitemspec~~InheritsGraph type~stateitemspec StateItemSpec 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~actualconnectionpt ActualConnectionPt type~vector_wrapper~10->type~actualconnectionpt item type~virtualconnectionpt VirtualConnectionPt type~actualconnectionpt->type~virtualconnectionpt v_pt

Inherited by

type~~stateitemspec~~InheritedByGraph type~stateitemspec StateItemSpec type~actualptstateitemspecpair ActualPtStateItemSpecPair type~actualptstateitemspecpair->type~stateitemspec second type~bracketspec BracketSpec type~bracketspec->type~stateitemspec type~fieldspec~2 FieldSpec type~bracketspec->type~fieldspec~2 reference_spec, field_specs type~fieldspec~2->type~stateitemspec type~invalidspec InvalidSpec type~invalidspec->type~stateitemspec type~mockitemspec MockItemSpec type~mockitemspec->type~stateitemspec type~servicespec ServiceSpec type~servicespec->type~stateitemspec type~stateitemspecptr StateItemSpecPtr type~servicespec->type~stateitemspecptr dependency_specs type~stateitemextension StateItemExtension type~stateitemextension->type~stateitemspec spec type~stateitemspecpair StateItemSpecPair type~stateitemspecpair->type~stateitemspec second type~stateitemspecptr->type~stateitemspec ptr type~statespec StateSpec type~statespec->type~stateitemspec type~vector_wrapper~14 vector_wrapper type~vector_wrapper~14->type~stateitemspec item type~virtualptstateitemspecpair VirtualPtStateItemSpecPair type~virtualptstateitemspecpair->type~stateitemspec second type~wildcardspec WildcardSpec type~wildcardspec->type~stateitemspec reference_spec type~wildcardspec->type~stateitemspec type~actualptspecptrpair ActualPtSpecPtrPair type~actualptspecptrpair->type~stateitemspecptr second type~map_s_node~10 map_s_Node type~map_s_node~10->type~stateitemspecpair value type~map_s_node~12 map_s_Node type~map_s_node~12->type~virtualptstateitemspecpair value type~map_s_node~9 map_s_Node type~map_s_node~9->type~actualptstateitemspecpair value type~stateitemextensionptr StateItemExtensionPtr type~stateitemextensionptr->type~stateitemextension ptr type~stateitemvector StateItemVector type~stateitemvector->type~vector_wrapper~14 elements type~stateitemvectoriterator StateItemVectorIterator type~stateitemvectoriterator->type~vector_wrapper~14 elements type~vector_wrapper~13 vector_wrapper type~vector_wrapper~13->type~stateitemspecptr item type~vector_wrapper~24 vector_wrapper type~vector_wrapper~24->type~stateitemextension item type~virtualptstateitemptrpair VirtualPtStateItemPtrPair type~virtualptstateitemptrpair->type~stateitemspecptr second

Type-Bound Procedures

procedure(I_add_to_bundle), public, deferred :: add_to_bundle

  • subroutine I_add_to_bundle(this, bundle, rc) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemSpec), intent(in) :: this
    type(ESMF_FieldBundle), intent(inout) :: bundle
    integer, intent(out), optional :: rc

procedure(I_add_to_state), public, deferred :: add_to_state

  • subroutine I_add_to_state(this, multi_state, actual_pt, rc) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemSpec), intent(in) :: this
    type(MultiState), intent(inout) :: multi_state
    type(ActualConnectionPt), intent(in) :: actual_pt
    integer, intent(out), optional :: rc

procedure(I_allocate), public, deferred :: allocate

  • subroutine I_allocate(this, rc) Prototype

    Arguments

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

procedure(I_can_connect), public, deferred :: can_connect_to

  • function I_can_connect(this, src_spec, rc) Prototype

    Arguments

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

    Return Value logical

procedure(I_connect), public, deferred :: connect_to

  • subroutine I_connect(this, src_spec, actual_pt, rc) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemSpec), intent(inout) :: this
    class(StateItemSpec), intent(inout) :: src_spec
    type(ActualConnectionPt), intent(in) :: actual_pt
    integer, intent(out), optional :: rc

procedure(I_create), public, deferred :: create

  • subroutine I_create(this, rc) Prototype

    Arguments

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

procedure(I_destroy), public, deferred :: destroy

  • subroutine I_destroy(this, rc) Prototype

    Arguments

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

procedure(I_extension_cost), public, deferred :: extension_cost

  • function I_extension_cost(this, src_spec, rc) result(cost) Prototype

    Arguments

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

    Return Value integer

procedure, public :: get_dependencies

  • private function get_dependencies(this) result(dependencies)

    Arguments

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

    Return Value type(ActualPtVector)

procedure, public :: get_raw_dependencies

  • private function get_raw_dependencies(this) result(raw_dependencies)

    Arguments

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

    Return Value type(StringVector)

procedure, public, non_overridable :: is_active

  • private pure function is_active(this)

    Arguments

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

    Return Value logical

procedure, public, non_overridable :: is_allocated

  • private pure function is_allocated(this)

    Arguments

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

    Return Value logical

procedure(I_make_adapters), public, deferred :: make_adapters

  • function I_make_adapters(this, goal_spec, rc) result(adapters) Prototype

    Arguments

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

    Return Value type(StateItemAdapterWrapper), allocatable, (:)

procedure(I_make_extension), public, deferred :: make_extension

  • recursive subroutine I_make_extension(this, dst_spec, new_spec, action, rc) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemSpec), intent(in) :: this
    class(StateItemSpec), intent(in) :: dst_spec
    class(StateItemSpec), intent(out), allocatable :: new_spec
    class(ExtensionAction), intent(out), allocatable :: action
    integer, intent(out), optional :: rc

procedure, public, non_overridable :: set_active

  • private pure subroutine set_active(this, active)

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemSpec), intent(inout) :: this
    logical, intent(in), optional :: active

procedure, public, non_overridable :: set_allocated

  • private pure subroutine set_allocated(this, allocated)

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemSpec), intent(inout) :: this
    logical, intent(in), optional :: allocated

procedure, public :: set_dependencies

  • private subroutine set_dependencies(this, dependencies)

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemSpec), intent(inout) :: this
    type(ActualPtVector), intent(in) :: dependencies

procedure(I_set_geometry), public, deferred :: set_geometry

  • subroutine I_set_geometry(this, geom, vertical_grid, rc) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemSpec), intent(inout) :: this
    type(ESMF_Geom), intent(in), optional :: geom
    class(VerticalGrid), intent(in), optional :: vertical_grid
    integer, intent(out), optional :: rc

procedure, public :: set_raw_dependencies

  • private subroutine set_raw_dependencies(this, raw_dependencies)

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemSpec), intent(inout) :: this
    type(StringVector), intent(in) :: raw_dependencies

Source Code

   type, abstract :: StateItemSpec
      private

      logical :: active = .false.
      logical :: allocated = .false.
      type(StringVector) :: raw_dependencies
      type(ActualPtVector) :: dependencies

   contains

      procedure(I_create), deferred :: create
      procedure(I_destroy), deferred :: destroy
      procedure(I_allocate), deferred :: allocate

      procedure(I_connect), deferred :: connect_to
      procedure(I_can_connect), deferred :: can_connect_to
      procedure(I_make_extension), deferred :: make_extension
      procedure(I_extension_cost), deferred :: extension_cost

      procedure(I_make_adapters), deferred :: make_adapters

      procedure(I_add_to_state), deferred :: add_to_state
      procedure(I_add_to_bundle), deferred :: add_to_bundle
      procedure(I_set_geometry), deferred :: set_geometry

      procedure, non_overridable :: set_allocated
      procedure, non_overridable :: is_allocated
      procedure, non_overridable :: is_active
      procedure, non_overridable :: set_active

      procedure :: get_dependencies
      procedure :: get_raw_dependencies
      procedure :: set_dependencies
      procedure :: set_raw_dependencies
  end type StateItemSpec