AbstractMeterNode Derived Type

type, public, abstract :: AbstractMeterNode


Inherited by

type~~abstractmeternode~~InheritedByGraph type~abstractmeternode AbstractMeterNode type~meternode MeterNode type~meternode->type~abstractmeternode type~meternodevector MeterNodeVector type~meternode->type~meternodevector children type~meternodeiterator MeterNodeIterator type~meternodeiterator->type~abstractmeternode current type~meternodeiterator->type~meternode reference type~meternodevectoriterator MeterNodeVectorIterator type~meternodeiterator->type~meternodevectoriterator iterator_over_children type~meternodeptr MeterNodePtr type~meternodeptr->type~abstractmeternode ptr type~v_wrapper~3 v_Wrapper type~v_wrapper~3->type~abstractmeternode item type~baseprofiler BaseProfiler type~baseprofiler->type~meternode root_node type~meternodestack MeterNodeStack type~baseprofiler->type~meternodestack stack type~meternodevector->type~v_wrapper~3 elements type~meternodevectoriterator->type~v_wrapper~3 elements type~meternodevectorriterator MeterNodeVectorRIterator type~meternodevectorriterator->type~v_wrapper~3 elements type~vector_wrapper~2 vector_wrapper type~vector_wrapper~2->type~meternodeptr item type~distributedprofiler DistributedProfiler type~distributedprofiler->type~baseprofiler type~memoryprofiler MemoryProfiler type~memoryprofiler->type~baseprofiler type~meternodestack->type~vector_wrapper~2 elements type~meternodestackiterator MeterNodeStackIterator type~meternodestackiterator->type~vector_wrapper~2 elements type~timeprofiler TimeProfiler type~timeprofiler->type~baseprofiler type~mapl_metacomp MAPL_MetaComp type~mapl_metacomp->type~distributedprofiler t_profiler type~vectorriterator~2 VectorRIterator type~vectorriterator~2->type~meternodestackiterator iterator

Type-Bound Procedures

procedure(i_accumulate), public, deferred :: accumulate

  • subroutine i_accumulate(this, other) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractMeterNode), intent(inout) :: this
    class(AbstractMeterNode), intent(in), target :: other

procedure(i_add_child), public, deferred :: add_child

  • subroutine i_add_child(this, name, meter) Prototype

    Arguments

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

procedure(i_make_iterator), public, deferred :: begin

  • function i_make_iterator(this) result(iterator) Prototype

    Arguments

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

    Return Value class(AbstractMeterNodeIterator), allocatable

procedure(i_make_iterator), public, deferred :: end

  • function i_make_iterator(this) result(iterator) Prototype

    Arguments

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

    Return Value class(AbstractMeterNodeIterator), allocatable

procedure(i_get_child), public, deferred :: get_child

  • function i_get_child(this, name) result(children) Prototype

    Arguments

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

    Return Value class(AbstractMeterNode), pointer

procedure(i_get_depth), public, deferred :: get_depth

  • function i_get_depth(this) result(depth) Prototype

    Arguments

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

    Return Value integer

procedure(i_get_inclusive), public, deferred :: get_exclusive

  • function i_get_inclusive(this) result(inclusive) Prototype

    Arguments

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

    Return Value real(kind=REAL64)

procedure(i_get_inclusive), public, deferred :: get_inclusive

  • function i_get_inclusive(this) result(inclusive) Prototype

    Arguments

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

    Return Value real(kind=REAL64)

procedure(i_get_meter), public, deferred :: get_meter

  • function i_get_meter(this) result(meter) Prototype

    Arguments

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

    Return Value class(AbstractMeter), pointer

procedure(i_get_name), public, deferred :: get_name

  • function i_get_name(this) result(name) Prototype

    Arguments

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

    Return Value character(len=:), pointer

procedure(i_get_num_nodes), public, deferred :: get_num_children

  • function i_get_num_nodes(this) result(num_nodes) Prototype

    Arguments

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

    Return Value integer

procedure(i_get_num_nodes), public, deferred :: get_num_nodes

  • function i_get_num_nodes(this) result(num_nodes) Prototype

    Arguments

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

    Return Value integer

procedure(i_has_child), public, deferred :: has_child

  • function i_has_child(this, name) Prototype

    Arguments

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

    Return Value logical

procedure(i_reset), public, deferred :: reset

  • subroutine i_reset(this) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractMeterNode), intent(inout), target :: this

Source Code

   type, abstract :: AbstractMeterNode
      private
   contains
      procedure(i_get_meter), deferred :: get_meter
      procedure(i_get_name), deferred :: get_name
      procedure(i_get_depth), deferred :: get_depth
      procedure(i_get_inclusive), deferred :: get_inclusive
      procedure(i_get_inclusive), deferred :: get_exclusive
      procedure(i_add_child), deferred :: add_child
      procedure(i_get_child), deferred :: get_child
      procedure(i_has_child), deferred :: has_child
      procedure(i_get_num_nodes), deferred :: get_num_children
      procedure(i_get_num_nodes), deferred :: get_num_nodes
      procedure(i_reset), deferred :: reset
      procedure(i_accumulate), deferred :: accumulate

      ! Iterator factory methods
      procedure(i_make_iterator), deferred :: begin
      procedure(i_make_iterator), deferred :: end
   end type AbstractMeterNode