Global timing structure to contain all timers within Lightkrylov
Add new timer group to the watch.
Type-bound to abstract_watch: Add timer group to watch. Note: The new group name must be unique. This is a quick hack and should be done better.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch), | intent(inout) | :: | self | |||
character(len=*), | intent(in) | :: | name | |||
integer, | intent(in) | :: | istart | |||
integer, | intent(in) | :: | iend | |||
integer, | intent(out), | optional | :: | count |
Add new timer to the watch.
Type-bound to abstract_watch: Add timer to watch and optionally start it immediately. Note: The new timer name must be unique.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch), | intent(inout) | :: | self | |||
character(len=*), | intent(in) | :: | name | |||
logical, | intent(in), | optional | :: | start | ||
integer, | intent(out), | optional | :: | count |
Print summary of registered timers and their current status.
Type-bound to abstract_watch: Summarize registered timers and their status.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch), | intent(in) | :: | self | |||
logical, | intent(in), | optional | :: | only_user |
Summarize only user defined timers? default: .false. |
Gather timing information and print it to screen/logfile.
Finalize global watch within LightKrylov and print used timers.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch), | intent(inout) | :: | self | |||
logical, | intent(in), | optional | :: | write_to_file |
Print timer summary to a dedicated timer logfile as well as the general log file? default: .true. |
Type-bound to abstract_watch: Getter routine to return the data for timer referenced by name. Notes: Wrapper of the corresponding routine from lightkrylov_timer. If it is running, the timer is stopped.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch), | intent(inout) | :: | self | |||
character(len=*), | intent(in) | :: | name | |||
logical, | intent(in), | optional | :: | restart | ||
real(kind=dp), | intent(out), | optional | :: | etime | ||
real(kind=dp), | intent(out), | optional | :: | etmin | ||
real(kind=dp), | intent(out), | optional | :: | etmax | ||
real(kind=dp), | intent(out), | optional | :: | etimp | ||
integer, | intent(out), | optional | :: | lcount | ||
integer, | intent(out), | optional | :: | rcount | ||
integer, | intent(out), | optional | :: | gcount |
Type-bound to abstract_watch: Getter routine to return the group id based on name.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch) | :: | self | ||||
character(len=*) | :: | name |
Timer name |
Type-bound to abstract_watch: Getter routine to return the current etime for timer referenced by name. Notes: Wrapper of the corresponding routine from lightkrylov_timer. If it is running, the timer is stopped.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch) | :: | self | ||||
character(len=*) | :: | name | ||||
logical, | optional | :: | restart |
Type-bound to abstract_watch: Getter routine to return the timer id based on name.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch) | :: | self | ||||
character(len=*) | :: | name |
Timer name |
Set up private timers, flags and counters. Switch on timing.
Initialize global watch within LightKrylov and define private system timers.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch), | intent(inout) | :: | self |
Type-bound to abstract_watch: Pause timer referenced by name. Note: Wrapper of the corresponding routine from lightkrylov_timer.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch), | intent(inout) | :: | self | |||
character(len=*), | intent(in) | :: | name |
Type-bound to abstract_watch: Print timing information for timer referenced by name. Note: Wrapper of the corresponding routine from lightkrylov_timer.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch), | intent(inout) | :: | self | |||
character(len=*), | intent(in) | :: | name |
Remove existing timer from the watch.
Type-bound to abstract_watch: Remove timer from watch. Note: Timers considered private (defined during initialisation) cannot be removed.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch), | intent(inout) | :: | self | |||
character(len=*), | intent(in) | :: | name | |||
integer, | intent(out), | optional | :: | count |
Type-bound to abstract_watch: Reset timer referenced by name. Note: Wrapper of the corresponding routine from lightkrylov_timer.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch), | intent(inout) | :: | self | |||
character(len=*), | intent(in) | :: | name | |||
logical, | intent(in), | optional | :: | soft | ||
logical, | intent(in), | optional | :: | clean |
Reset all timers in watch.
Type-bound to abstract_watch: Utility function to reset all timers at once. Note: Wrapper of the corresponding routine from lightkrylov_timer.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch), | intent(inout) | :: | self | |||
logical, | intent(in), | optional | :: | soft | ||
logical, | intent(in), | optional | :: | clean |
Initialize global watch within LightKrylov and define private system timers.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lightkrylov_watch), | intent(inout) | :: | self |
Type-bound to abstract_watch: Set name of watch
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch), | intent(inout) | :: | self | |||
character(len=*), | intent(in) | :: | name |
Watch name |
Type-bound to abstract_watch: Start timer referenced by name. Note: Wrapper of the corresponding routine from lightkrylov_timer.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch), | intent(inout) | :: | self | |||
character(len=*), | intent(in) | :: | name |
Type-bound to abstract_watch: Stop timer referenced by name. Note: Wrapper of the corresponding routine from lightkrylov_timer.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_watch), | intent(inout) | :: | self | |||
character(len=*), | intent(in) | :: | name |
type, extends(abstract_watch), public :: lightkrylov_watch !! Global timing structure to contain all timers within Lightkrylov contains private procedure, pass(self), public :: set_private_timers_and_name => set_lightkrylov_timers end type lightkrylov_watch