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