FrequencyAspect Derived Type

type, public, extends(StateItemAspect) :: FrequencyAspect


Inherits

type~~frequencyaspect~~InheritsGraph type~frequencyaspect FrequencyAspect ESMF_TimeInterval ESMF_TimeInterval type~frequencyaspect->ESMF_TimeInterval timestep_ type~stateitemaspect StateItemAspect type~frequencyaspect->type~stateitemaspect

Inherited by

type~~frequencyaspect~~InheritedByGraph type~frequencyaspect FrequencyAspect type~aspectcollection AspectCollection type~aspectcollection->type~frequencyaspect frequency_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~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~servicespec->type~variablespec variable_spec 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~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~actualptspecptrpair ActualPtSpecPtrPair type~actualptspecptrpair->type~stateitemspecptr second type~map_s_node~12 map_s_Node type~map_s_node~12->type~actualptstateitemspecpair value type~map_s_node~13 map_s_Node type~map_s_node~13->type~stateitemspecpair value type~map_s_node~15 map_s_Node type~map_s_node~15->type~virtualptstateitemspecpair value type~stateitemextensionptr StateItemExtensionPtr type~stateitemextensionptr->type~stateitemextension ptr type~stateitemvector StateItemVector type~stateitemvector->type~vector_wrapper~22 elements type~stateitemvectoriterator StateItemVectorIterator type~stateitemvectoriterator->type~vector_wrapper~22 elements type~variablespecvector VariableSpecVector type~variablespecvector->type~vector_wrapper~25 elements type~variablespecvectoriterator VariableSpecVectorIterator type~variablespecvectoriterator->type~vector_wrapper~25 elements type~vector_wrapper~21 vector_wrapper type~vector_wrapper~21->type~stateitemspecptr item type~vector_wrapper~24 vector_wrapper type~vector_wrapper~24->type~stateitemextension item type~virtualptstateitemptrpair VirtualPtStateItemPtrPair type~virtualptstateitemptrpair->type~stateitemspecptr second

Constructor

public interface FrequencyAspect

  • private function construct_frequency_aspect(timestep, accumulation_type) result(aspect)

    Arguments

    Type IntentOptional Attributes Name
    type(ESMF_TimeInterval), intent(in), optional :: timestep
    character(len=*), intent(in), optional :: accumulation_type

    Return Value type(FrequencyAspect)


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 :: get_accumulation_type

  • private function get_accumulation_type(this) result(at)

    Arguments

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

    Return Value character(len=:), allocatable

procedure, public :: get_timestep

  • private function get_timestep(this) result(ts)

    Arguments

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

    Return Value type(ESMF_TimeInterval)

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

  • private function make_action(src, dst, rc) result(action)

    Arguments

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

    Return Value class(ExtensionAction), allocatable

procedure, public :: matches

  • private function matches(src, dst) result(does_match)

    Arguments

    Type IntentOptional Attributes Name
    class(FrequencyAspect), 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 :: set_accumulation_type

  • private subroutine set_accumulation_type(this, accumulation_type)

    Arguments

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

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

procedure, public :: set_timestep

  • private subroutine set_timestep(this, timestep)

    Arguments

    Type IntentOptional Attributes Name
    class(FrequencyAspect), intent(inout) :: this
    type(ESMF_TimeInterval), intent(in) :: timestep

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

  • private function supports_conversion_general(src) result(supports)

    Arguments

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

    Return Value logical

procedure, public :: supports_conversion_specific

  • private function supports_conversion_specific(src, dst) result(supports)

    Arguments

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

    Return Value logical

Source Code

   type, extends(StateItemAspect) :: FrequencyAspect
      private
      type(ESMF_TimeInterval) :: timestep_
      character(len=:), allocatable :: accumulation_type_
   contains
      ! These are implementations of extended derived type.
      procedure :: matches
      procedure :: supports_conversion_general
      procedure :: supports_conversion_specific
      procedure :: make_action
      ! These are specific to FrequencyAspect.
      procedure :: get_timestep
      procedure :: set_timestep
      procedure :: get_accumulation_type
      procedure :: set_accumulation_type
      procedure, private :: zero_timestep
   end type FrequencyAspect