AbstractMeter Derived Type

type, public, abstract :: AbstractMeter


Inherited by

type~~abstractmeter~~InheritedByGraph type~abstractmeter AbstractMeter type~advancedmeter AdvancedMeter type~advancedmeter->type~abstractmeter type~meternode MeterNode type~meternode->type~abstractmeter meter type~baseprofiler BaseProfiler type~baseprofiler->type~meternode root_node type~distributedmeter DistributedMeter type~distributedmeter->type~advancedmeter type~meternodeiterator MeterNodeIterator type~meternodeiterator->type~meternode reference type~distributedprofiler DistributedProfiler type~distributedprofiler->type~baseprofiler type~memoryprofiler MemoryProfiler type~memoryprofiler->type~baseprofiler type~timeprofiler TimeProfiler type~timeprofiler->type~baseprofiler type~mapl_metacomp MAPL_MetaComp type~mapl_metacomp->type~distributedprofiler t_profiler

Type-Bound Procedures

procedure(i_accumulate), public, deferred :: accumulate

  • subroutine i_accumulate(this, lap) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractMeter), intent(inout) :: this
    class(AbstractMeter), intent(in) :: lap

procedure(i_add_cycle), public, deferred :: add_cycle

  • subroutine i_add_cycle(this, increment) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractMeter), intent(inout) :: this
    real(kind=REAL64), intent(in) :: increment

procedure, public :: finalize

  • private subroutine finalize(this, rc)

    Arguments

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

procedure(i_get), public, deferred :: get_total

  • function i_get(this) result(val) Prototype

    Arguments

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

    Return Value real(kind=REAL64)

procedure(i_action), public, deferred :: reset

  • subroutine i_action(this) Prototype

    Arguments

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

procedure(i_action), public, deferred :: start

  • subroutine i_action(this) Prototype

    Arguments

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

procedure(i_action), public, deferred :: stop

  • subroutine i_action(this) Prototype

    Arguments

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

Source Code

   type, abstract :: AbstractMeter
      private
   contains
      ! Override in subclasses for different timing mechanisms
      procedure(i_action), deferred :: start
      procedure(i_action), deferred :: stop
      procedure(i_action), deferred :: reset
      procedure(i_add_cycle), deferred :: add_cycle

      procedure(i_get), deferred :: get_total
      procedure(i_accumulate), deferred :: accumulate
      procedure :: finalize

   end type AbstractMeter