StateItemAspect Derived Type

type, public, abstract :: StateItemAspect


Inherited by

type~~stateitemaspect~~InheritedByGraph type~stateitemaspect StateItemAspect type~attributesaspect AttributesAspect type~attributesaspect->type~stateitemaspect type~frequencyaspect FrequencyAspect type~frequencyaspect->type~stateitemaspect type~geomaspect GeomAspect type~geomaspect->type~stateitemaspect type~mockaspect MockAspect type~mockaspect->type~stateitemaspect type~typekindaspect TypekindAspect type~typekindaspect->type~stateitemaspect type~ungriddeddimsaspect UngriddedDimsAspect type~ungriddeddimsaspect->type~stateitemaspect type~unitsaspect UnitsAspect type~unitsaspect->type~stateitemaspect type~verticalgridaspect VerticalGridAspect type~verticalgridaspect->type~stateitemaspect type~aspectcollection AspectCollection type~aspectcollection->type~attributesaspect attributes_aspect type~aspectcollection->type~frequencyaspect frequency_aspect type~aspectcollection->type~geomaspect geom_aspect type~aspectcollection->type~typekindaspect typekind_aspect type~aspectcollection->type~ungriddeddimsaspect ungridded_dims_aspect type~aspectcollection->type~unitsaspect units_aspect type~aspectcollection->type~verticalgridaspect vertical_grid_aspect type~stateitemspec StateItemSpec type~stateitemspec->type~aspectcollection aspects type~variablespec VariableSpec type~variablespec->type~aspectcollection aspects type~actualptstateitemspecpair ActualPtStateItemSpecPair type~actualptstateitemspecpair->type~stateitemspec second type~bracketspec BracketSpec type~bracketspec->type~stateitemspec type~fieldspec~2 FieldSpec 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~servicespec->type~variablespec variable_spec type~stateitemextension StateItemExtension type~stateitemextension->type~stateitemspec spec type~stateitemspecpair StateItemSpecPair type~stateitemspecpair->type~stateitemspec second type~stateitemspecptr StateItemSpecPtr type~stateitemspecptr->type~stateitemspec ptr type~statespec StateSpec type~statespec->type~stateitemspec type~vector_wrapper~22 vector_wrapper type~vector_wrapper~22->type~stateitemspec item type~vector_wrapper~25 vector_wrapper type~vector_wrapper~25->type~variablespec item type~virtualptstateitemspecpair VirtualPtStateItemSpecPair type~virtualptstateitemspecpair->type~stateitemspec second type~wildcardspec WildcardSpec type~wildcardspec->type~stateitemspec reference_spec type~wildcardspec->type~stateitemspec

Type-Bound Procedures

procedure, public, non_overridable :: can_connect_to

  • private function can_connect_to(src, dst)

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemAspect), intent(in) :: src
    class(StateItemAspect), intent(in) :: dst

    Return Value logical

procedure, public, non_overridable :: is_mirror

  • private function is_mirror(this)

    Arguments

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

    Return Value logical

procedure, public, non_overridable :: is_time_dependent

  • private function is_time_dependent(this)

    Arguments

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

    Return Value logical

procedure(I_make_action), public, deferred :: make_action

  • function I_make_action(src, dst, rc) result(action) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemAspect), intent(in) :: src
    class(StateItemAspect), intent(in) :: dst
    integer, intent(out), optional :: rc

    Return Value class(ExtensionAction), allocatable

procedure(I_matches), public, deferred :: matches

  • function I_matches(src, dst) result(matches) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemAspect), intent(in) :: src
    class(StateItemAspect), intent(in) :: dst

    Return Value logical

procedure, public, non_overridable :: needs_extension_for

  • private function needs_extension_for(src, dst)

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemAspect), intent(in) :: src
    class(StateItemAspect), intent(in) :: dst

    Return Value logical

procedure, public, non_overridable :: set_mirror

  • private subroutine set_mirror(this, mirror)

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemAspect), intent(inout) :: this
    logical, intent(in), optional :: mirror

procedure, public, non_overridable :: set_time_dependent

  • private subroutine set_time_dependent(this, time_dependent)

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemAspect), intent(inout) :: this
    logical, intent(in), optional :: time_dependent

generic, public :: supports_conversion => supports_conversion_general, supports_conversion_specific

  • private function supports_conversion_general(src)

    Arguments

    Type IntentOptional Attributes Name
    class(GeomAspect), intent(in) :: src

    Return Value logical

  • private function supports_conversion_specific(src, dst)

    Arguments

    Type IntentOptional Attributes Name
    class(GeomAspect), intent(in) :: src
    class(StateItemAspect), intent(in) :: dst

    Return Value logical

procedure(I_supports_conversion_general), public, deferred :: supports_conversion_general

  • function I_supports_conversion_general(src) result(supports_conversion) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemAspect), intent(in) :: src

    Return Value logical

procedure(I_supports_conversion_specific), public, deferred :: supports_conversion_specific

  • function I_supports_conversion_specific(src, dst) result(supports_conversion) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(StateItemAspect), intent(in) :: src
    class(StateItemAspect), intent(in) :: dst

    Return Value logical

Source Code

   type, abstract :: StateItemAspect
      private
      logical :: mirror = .false.
      logical :: time_dependent = .false.
   contains
      ! Subclass must define these
      procedure(I_matches), deferred :: matches
      procedure(I_make_action), deferred :: make_action
      procedure(I_supports_conversion_general), deferred :: supports_conversion_general
      procedure(I_supports_conversion_specific), deferred :: supports_conversion_specific
      generic :: supports_conversion => supports_conversion_general, supports_conversion_specific

      procedure, non_overridable :: can_connect_to
      procedure, non_overridable :: needs_extension_for

      procedure, non_overridable :: is_mirror
      procedure, non_overridable :: set_mirror
      procedure, non_overridable :: is_time_dependent
      procedure, non_overridable :: set_time_dependent
   end type StateItemAspect