walltime Module

Classes and methods used to compute elasped wall time


Uses

  • module~~walltime~~UsesGraph module~walltime walltime globals globals module~walltime->globals module~base base module~walltime->module~base module~base->globals module~coarray coarray module~base->module~coarray module~coarray->globals

Used by

  • module~~walltime~~UsedByGraph module~walltime walltime module~swiftest swiftest module~swiftest->module~walltime module~s_walltime s_walltime module~s_walltime->module~walltime module~s_walltime->module~swiftest module~s_swiftest_orbel s_swiftest_orbel module~s_swiftest_orbel->module~swiftest module~s_helio_kick s_helio_kick module~s_helio_kick->module~swiftest module~helio helio module~s_helio_kick->module~helio module~s_fraggle_generate s_fraggle_generate module~s_fraggle_generate->module~swiftest module~fraggle fraggle module~s_fraggle_generate->module~fraggle module~symba symba module~s_fraggle_generate->module~symba module~s_operator_cross s_operator_cross module~s_operator_cross->module~swiftest module~s_symba_gr s_symba_gr module~s_symba_gr->module~swiftest module~s_symba_gr->module~symba module~s_tides_step_rot s_tides_step_rot module~s_tides_step_rot->module~swiftest module~fraggle->module~swiftest module~symba->module~swiftest module~symba->module~helio module~shgrav shgrav module~shgrav->module~swiftest module~whm whm module~whm->module~swiftest module~rmvs rmvs module~rmvs->module~swiftest module~rmvs->module~whm module~s_symba_step s_symba_step module~s_symba_step->module~swiftest module~s_symba_step->module~symba module~s_swiftest_user s_swiftest_user module~s_swiftest_user->module~swiftest module~s_symba_util s_symba_util module~s_symba_util->module~swiftest module~s_symba_util->module~fraggle module~s_symba_util->module~symba module~s_rmvs_encounter_check s_rmvs_encounter_check module~s_rmvs_encounter_check->module~swiftest module~s_rmvs_encounter_check->module~rmvs module~s_coarray_collect s_coarray_collect module~s_coarray_collect->module~swiftest module~s_swiftest_gr s_swiftest_gr module~s_swiftest_gr->module~swiftest module~s_swiftest_io s_swiftest_io module~s_swiftest_io->module~swiftest module~s_swiftest_io->module~symba module~s_fraggle_util s_fraggle_util module~s_fraggle_util->module~swiftest module~s_fraggle_util->module~fraggle module~s_symba_kick s_symba_kick module~s_symba_kick->module~swiftest module~s_symba_kick->module~symba module~s_swiftest_discard s_swiftest_discard module~s_swiftest_discard->module~swiftest module~s_symba_encounter_check s_symba_encounter_check module~s_symba_encounter_check->module~swiftest module~s_symba_encounter_check->module~symba module~s_symba_drift s_symba_drift module~s_symba_drift->module~swiftest module~s_symba_drift->module~symba module~s_swiftest_drift s_swiftest_drift module~s_swiftest_drift->module~swiftest module~bindings_module bindings_module module~bindings_module->module~swiftest module~s_collision_regime s_collision_regime module~s_collision_regime->module~swiftest module~s_swiftest_coarray s_swiftest_coarray module~s_swiftest_coarray->module~swiftest module~s_rmvs_step s_rmvs_step module~s_rmvs_step->module~swiftest module~s_rmvs_step->module~rmvs module~s_rmvs_discard s_rmvs_discard module~s_rmvs_discard->module~swiftest module~s_rmvs_discard->module~rmvs module~s_swiftest_driver s_swiftest_driver module~s_swiftest_driver->module~swiftest module~s_shgrav_accel s_shgrav_accel module~s_shgrav_accel->module~swiftest module~s_shgrav_accel->module~shgrav module~s_encounter_util s_encounter_util module~s_encounter_util->module~swiftest module~s_swiftest_obl s_swiftest_obl module~s_swiftest_obl->module~swiftest module~s_swiftest_obl->module~shgrav module~s_rmvs_kick s_rmvs_kick module~s_rmvs_kick->module~swiftest module~s_rmvs_kick->module~rmvs program~main main program~main->module~swiftest module~s_helio_gr s_helio_gr module~s_helio_gr->module~swiftest module~s_helio_gr->module~helio module~s_collision_util s_collision_util module~s_collision_util->module~swiftest module~s_helio_util s_helio_util module~s_helio_util->module~swiftest module~s_helio_util->module~helio module~s_shgrav_pot s_shgrav_pot module~s_shgrav_pot->module~swiftest module~s_shgrav_pot->module~shgrav module~s_rmvs_util s_rmvs_util module~s_rmvs_util->module~swiftest module~s_rmvs_util->module~rmvs module~s_helio_step s_helio_step module~s_helio_step->module~swiftest module~s_helio_step->module~helio module~s_collision_check s_collision_check module~s_collision_check->module~swiftest module~s_collision_check->module~symba module~helio->module~swiftest module~helio->module~whm module~s_symba_discard s_symba_discard module~s_symba_discard->module~swiftest module~s_symba_discard->module~symba module~s_whm_coord s_whm_coord module~s_whm_coord->module~swiftest module~s_whm_coord->module~whm module~s_whm_gr s_whm_gr module~s_whm_gr->module~swiftest module~s_whm_gr->module~whm module~s_encounter_io s_encounter_io module~s_encounter_io->module~swiftest module~s_coarray_clone s_coarray_clone module~s_coarray_clone->module~swiftest module~whm_drift whm_drift module~whm_drift->module~swiftest module~whm_drift->module~whm module~s_whm_util s_whm_util module~s_whm_util->module~swiftest module~s_whm_util->module~whm module~s_whm_step s_whm_step module~s_whm_step->module~swiftest module~s_whm_step->module~whm module~s_swiftest_util s_swiftest_util module~s_swiftest_util->module~swiftest module~s_swiftest_util->module~fraggle module~s_swiftest_util->module~symba module~s_swiftest_util->module~whm module~s_swiftest_util->module~rmvs module~s_swiftest_util->module~helio module~s_helio_drift s_helio_drift module~s_helio_drift->module~swiftest module~s_helio_drift->module~helio module~s_swiftest_kick s_swiftest_kick module~s_swiftest_kick->module~swiftest module~s_encounter_check s_encounter_check module~s_encounter_check->module~swiftest module~s_whm_kick s_whm_kick module~s_whm_kick->module~swiftest module~s_whm_kick->module~whm module~s_collision_generate s_collision_generate module~s_collision_generate->module~swiftest module~s_collision_io s_collision_io module~s_collision_io->module~swiftest module~s_collision_resolve s_collision_resolve module~s_collision_resolve->module~swiftest module~s_tides_kick_getacch s_tides_kick_getacch module~s_tides_kick_getacch->module~swiftest

Contents


Variables

TypeVisibilityAttributesNameInitial
character(len=*), public, parameter:: ENCOUNTER_PLPL_TIMER_LOG_OUT ="encounter_check_plpl_timer.log"

Name of log file for recording results of encounter check method timing

character(len=*), public, parameter:: ENCOUNTER_PLTP_TIMER_LOG_OUT ="encounter_check_pltp_timer.log"

Name of log file for recording results of encounter check method timing

integer(kind=I4B), public :: INTERACTION_TIMER_CADENCE =1000

Minimum number of steps to wait before timing an interaction loop in ADAPTIVE mode

character(len=*), public, parameter:: INTERACTION_TIMER_LOG_OUT ="interaction_timer.log"

Name of log file for recording results of interaction loop timing


Interfaces

interface

  • public module module subroutine walltime_report(self, message, unit)

    Arguments

    TypeIntentOptionalAttributesName
    class(walltimer), intent(inout) :: self

    Walltimer object

    character(len=*), intent(in) :: message

    Message to prepend to the wall time terminal output

    integer(kind=I4B), intent(in) :: unit

    Output file unit for report text to be directed

interface

  • public module module subroutine walltime_reset(self)

    Arguments

    TypeIntentOptionalAttributesName
    class(walltimer), intent(inout) :: self

    Walltimer object

interface

  • public module module subroutine walltime_start(self)

    Arguments

    TypeIntentOptionalAttributesName
    class(walltimer), intent(inout) :: self

    Walltimer object

interface

  • public module module subroutine walltime_start_main(self)

    Arguments

    TypeIntentOptionalAttributesName
    class(walltimer), intent(inout) :: self

    Walltimer object

interface

  • public module module subroutine walltime_stop(self)

    Arguments

    TypeIntentOptionalAttributesName
    class(walltimer), intent(inout) :: self

    Walltimer object


Derived Types

type, public :: walltimer

Components

TypeVisibilityAttributesNameInitial
integer(kind=I8B), public :: count_max

Maximum value of the clock ticker

integer(kind=I8B), public :: count_pause

Value of the clock ticker at the end of a timed step

integer(kind=I8B), public :: count_rate

Rate at wich the clock ticks

integer(kind=I8B), public :: count_start_main

Value of the clock ticker at when the timer is first called

integer(kind=I8B), public :: count_start_step

Value of the clock ticker at the start of a timed step

integer(kind=I8B), public :: count_stop_step

Value of the clock ticker at the end of a timed step

logical, public :: is_paused =.false.

Logical flag indicating whether or not the timer is paused

logical, public :: main_is_started =.false.

Logical flag indicating whether or not the main timer has been reset or not

integer(kind=I4B), public :: nsubsteps

Number of substeps in an interval (number of times the timer is turned off and back on again)

real(kind=DP), public :: wall_main

Value of the main clock elapsed time

real(kind=DP), public :: wall_per_substep

Value of time per substep

real(kind=DP), public :: wall_step

Value of the step elapsed time

Type-Bound Procedures

procedure, public :: report => walltime_report

Prints the elapsed time information to the terminal

procedure, public :: reset => walltime_reset

Resets the clock ticker, settting main_start to the current ticker value

procedure, public :: start => walltime_start

Starts or resumes the step timer

procedure, public :: start_main => walltime_start_main

Starts the main timer

procedure, public :: stop => walltime_stop

Pauses the step timer