TimeProfiler Derived Type

type, public, extends(BaseProfiler) :: TimeProfiler


Inherits

type~~timeprofiler~~InheritsGraph type~timeprofiler TimeProfiler type~baseprofiler BaseProfiler type~timeprofiler->type~baseprofiler type~meternode MeterNode type~baseprofiler->type~meternode root_node type~meternodestack MeterNodeStack type~baseprofiler->type~meternodestack stack type~abstractmeter AbstractMeter type~meternode->type~abstractmeter meter type~abstractmeternode AbstractMeterNode type~meternode->type~abstractmeternode type~meternodevector MeterNodeVector type~meternode->type~meternodevector children type~vector_wrapper~16 vector_wrapper type~meternodestack->type~vector_wrapper~16 elements type~v_wrapper~3 v_Wrapper type~meternodevector->type~v_wrapper~3 elements type~meternodeptr MeterNodePtr type~vector_wrapper~16->type~meternodeptr item

Constructor

public interface TimeProfiler

  • private function new_TimeProfiler(name, comm_world) result(prof)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: name
    integer, intent(in), optional :: comm_world

    Return Value type(TimeProfiler), target


Type-Bound Procedures

procedure, public :: accumulate

  • private recursive subroutine accumulate(a, b)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout), target :: a
    class(BaseProfiler), intent(in), target :: b

generic, public :: assignment(=) => copy

  • private subroutine copy(new, old)

    Arguments

    Type IntentOptional Attributes Name
    class(StubProfiler), intent(inout), target :: new
    class(BaseProfiler), intent(in), target :: old

procedure, public :: begin => begin_profiler

  • private function begin_profiler(this) result(iterator)

    Arguments

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

    Return Value type(BaseProfilerIterator)

procedure, public :: copy

  • private subroutine copy(new, old)

    Arguments

    Type IntentOptional Attributes Name
    class(TimeProfiler), intent(inout), target :: new
    class(BaseProfiler), intent(in), target :: old

procedure, public :: copy_profiler

  • private subroutine copy_profiler(new, old)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout), target :: new
    class(BaseProfiler), intent(in), target :: old

procedure, public :: end => end_profiler

  • private function end_profiler(this) result(iterator)

    Arguments

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

    Return Value type(BaseProfilerIterator)

procedure, public :: finalize

  • private subroutine finalize(this)

    Arguments

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

procedure, public :: get_depth

  • private function get_depth(this) result(depth)

    Arguments

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

    Return Value integer

procedure, public :: get_num_meters

  • private function get_num_meters(this) result(num_meters)

    Arguments

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

    Return Value integer

procedure, public :: get_root_node

  • private function get_root_node(this) result(root_node)

    Arguments

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

    Return Value class(AbstractMeterNode), pointer

procedure, public :: get_status

  • private function get_status(this) result(status)

    Arguments

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

    Return Value integer

procedure, public :: make_meter

  • private function make_meter(this) result(meter)

    Arguments

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

    Return Value class(AbstractMeter), allocatable

procedure, public :: reset

  • private recursive subroutine reset(this)

    Arguments

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

procedure, public :: set_comm_world

  • private subroutine set_comm_world(this, comm_world)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout) :: this
    integer, intent(in), optional :: comm_world

procedure, public :: set_node

  • private subroutine set_node(this, node)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout) :: this
    class(MeterNode), intent(in) :: node

generic, public :: start => start_name

  • private subroutine start_name(this, name, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(StubProfiler), intent(inout), target :: this
    character(len=*), intent(in) :: name
    integer, intent(out), optional :: rc

generic, public :: start => start_node

  • private subroutine start_node(this, node)

    Arguments

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

generic, public :: start => start_self

  • private subroutine start_self(this, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(StubProfiler), intent(inout), target :: this
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: start_name

  • private subroutine start_name(this, name, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout), target :: this
    character(len=*), intent(in) :: name
    integer, intent(out), optional :: rc

procedure, public :: start_node

  • private subroutine start_node(this, node)

    Arguments

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

procedure, public :: start_self

  • private subroutine start_self(this, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout), target :: this
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

generic, public :: stop => stop_name

  • private subroutine stop_name(this, name, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(StubProfiler), intent(inout) :: this
    character(len=*), intent(in) :: name
    integer, intent(out), optional :: rc

generic, public :: stop => stop_node

  • private subroutine stop_node(this, node)

    Arguments

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

generic, public :: stop => stop_self

  • private subroutine stop_self(this, rc)

    Arguments

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

procedure, public :: stop_name

  • private subroutine stop_name(this, name, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout) :: this
    character(len=*), intent(in) :: name
    integer, intent(out), optional :: rc

procedure, public :: stop_node

  • private subroutine stop_node(this, node)

    Arguments

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

procedure, public :: stop_self

  • private subroutine stop_self(this, rc)

    Arguments

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

generic, public :: zeit_ci => start_name

  • private subroutine start_name(this, name, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(StubProfiler), intent(inout), target :: this
    character(len=*), intent(in) :: name
    integer, intent(out), optional :: rc

generic, public :: zeit_co => stop_name

  • private subroutine stop_name(this, name, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(StubProfiler), intent(inout) :: this
    character(len=*), intent(in) :: name
    integer, intent(out), optional :: rc

Source Code

   type, extends(BaseProfiler) :: TimeProfiler
      private
   contains
      procedure :: make_meter
      procedure :: copy
   end type TimeProfiler