StateSpec Derived Type

type, public, extends(StateItemSpec) :: StateSpec


Inherits

type~~statespec~~InheritsGraph type~statespec StateSpec ESMF_State ESMF_State type~statespec->ESMF_State payload type~stateitemspec StateItemSpec type~statespec->type~stateitemspec type~stateitemspecmap StateItemSpecMap type~statespec->type~stateitemspecmap item_specs StringVector StringVector type~stateitemspec->StringVector raw_dependencies type~actualptvector ActualPtVector type~stateitemspec->type~actualptvector dependencies type~map_set~10 map_Set type~stateitemspecmap->type~map_set~10 tree type~vector_wrapper~10 vector_wrapper type~actualptvector->type~vector_wrapper~10 elements type~map_s_basenode~10 map_s_BaseNode type~map_set~10->type~map_s_basenode~10 root type~actualconnectionpt ActualConnectionPt type~vector_wrapper~10->type~actualconnectionpt item

Type-Bound Procedures

procedure, public :: add_item

  • private subroutine add_item(this, name, item)

    Arguments

    Type IntentOptional Attributes Name
    class(StateSpec), intent(inout), target :: this
    character(len=*), intent(in) :: name
    class(StateItemSpec), intent(in) :: item

procedure, public :: add_to_bundle

  • private subroutine add_to_bundle(this, bundle, rc)

    Arguments

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

procedure, public :: add_to_state

  • private subroutine add_to_state(this, multi_state, actual_pt, rc)

    Arguments

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

procedure, public :: allocate

  • private subroutine allocate(this, rc)

    Arguments

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

procedure, public :: can_connect_to

  • private function can_connect_to(this, src_spec, rc)

    Arguments

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

    Return Value logical

procedure, public :: connect_to

  • private subroutine connect_to(this, src_spec, actual_pt, rc)

    Arguments

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

procedure, public :: create

  • private subroutine create(this, rc)

    Arguments

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

procedure, public :: destroy

  • private subroutine destroy(this, rc)

    Arguments

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

procedure, public :: extension_cost

  • private function extension_cost(this, src_spec, rc) result(cost)

    Arguments

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

  • private function get_item(this, name) result(item)

    Arguments

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

    Return Value class(StateItemSpec), pointer

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, public :: make_adapters

  • private function make_adapters(this, goal_spec, rc) result(adapters)

    Arguments

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

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

procedure, public :: make_extension

  • private recursive subroutine make_extension(this, dst_spec, new_spec, action, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(StateSpec), 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, public :: set_geometry

  • private subroutine set_geometry(this, geom, vertical_grid, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(StateSpec), 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, extends(StateItemSpec) :: StateSpec
      private
      type(ESMF_State) :: payload
      type(StateItemSpecMap) :: item_specs
   contains
      procedure :: set_geometry
      procedure :: add_item
      procedure :: get_item

      procedure :: create
      procedure :: destroy
      procedure :: allocate
      
      procedure :: connect_to
      procedure :: can_connect_to
      procedure :: make_extension
      procedure :: extension_cost
      procedure :: make_adapters

      procedure :: add_to_state
      procedure :: add_to_bundle

   end type StateSpec