Actual source code: timer_f.h

  1: ! Copyright (c) 2019-2020 University of Oregon
  2: ! Distributed under the BSD Software License
  3: ! (See accompanying file LICENSE.txt)

  5: #ifdef PERFSTUBS_USE_TIMERS

  7: !
  8: !    Macro API for option of entirely disabling at compile time
  9: !    To use this API, set the Macro PERFSTUBS_USE_TIMERS on the command
 10: !    line or in a config.h file, however your project does it
 11: !

 13: #define PERFSTUBS_INITIALIZE() call ps_initialize()
 14: #define PERFSTUBS_FINALIZE() call ps_finalize()
 15: #define PERFSTUBS_DUMP_DATA() call ps_dump_data()
 16: #define PERFSTUBS_REGISTER_THREAD() call ps_register_thread()
 17: #define PERFSTUBS_TIMER_CREATE(_timer_object, _timer_name) \
 18:     call ps_timer_create_fortran(_timer_object, _timer_name//CHAR(0))
 19: #define PERFSTUBS_TIMER_START(_timer_object) \
 20:     call ps_timer_start_fortran(_timer_object)
 21: #define PERFSTUBS_TIMER_STOP(_timer_object) \
 22:     call ps_timer_stop_fortran(_timer_object)
 23: #define PERFSTUBS_SET_PARAMETER(_parameter_name, parameter_value) \
 24:     call ps_set_parameter(_parameter_name//CHAR(0), parameter_value)
 25: #define PERFSTUBS_DYNAMIC_PHASE_START(_phase_prefix, _iteration_index) \
 26:     call ps_dynamic_phase_start(_phase_prefix//CHAR(0), _iteration_index)
 27: #define PERFSTUBS_DYNAMIC_PHASE_STOP(_phase_prefix, _iteration_index) \
 28:     call ps_dynamic_phase_stop(_phase_prefix//CHAR(0), _iteration_index)
 29: #define PERFSTUBS_CREATE_COUNTER(_counter_object, _name) \
 30:     call ps_create_counter_fortran(_counter_object, _name//CHAR(0))
 31: #define PERFSTUBS_SAMPLE_COUNTER(_counter_object, _value) \
 32:     call ps_sample_counter_fortran(_counter_object, _value)
 33: #define PERFSTUBS_METADATA(_name, _value) \
 34:     call ps_set_metadata(_name//CHAR(0), _value//CHAR(0))

 36: ! // defined(PERFSTUBS_USE_TIMERS)
 37: #else

 39: #define PERFSTUBS_INIT()
 40: #define PERFSTUBS_DUMP_DATA()
 41: #define PERFSTUBS_REGISTER_THREAD()
 42: #define PERFSTUBS_TIMER_CREATE(_timer_object, _timer_name)
 43: #define PERFSTUBS_TIMER_START(_timer_object)
 44: #define PERFSTUBS_TIMER_STOP(_timer_object)
 45: #define PERFSTUBS_SET_PARAMETER(_parameter_name, _parameter_value)
 46: #define PERFSTUBS_DYNAMIC_PHASE_START(_phase_prefix, _iteration_index)
 47: #define PERFSTUBS_DYNAMIC_PHASE_STOP(_phase_prefix, _iteration_index)
 48: #define PERFSTUBS_TIMER_START_FUNC()
 49: #define PERFSTUBS_TIMER_STOP_FUNC()
 50: #define PERFSTUBS_CREATE_COUNTER(_counter_object, _name)
 51: #define PERFSTUBS_SAMPLE_COUNTER(_counter_object, _value)
 52: #define PERFSTUBS_METADATA(_name, _value)

 54: ! // defined(PERFSTUBS_USE_TIMERS)
 55: #endif