Time management utility
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=wp), | public | :: | dt |
Timestep |
|||
logical, | public | :: | finish | = | .false. |
Instructs simulation to end |
|
real(kind=wp), | public | :: | freq_output | = | huge(1.0_wp) |
Frequency of visualization writes |
|
real(kind=wp), | public | :: | freq_write | = | huge(1.0_wp) |
Frequency of restart writes |
|
integer, | public | :: | iter | = | 0 |
Current iteration |
|
integer, | public | :: | iter_max | = | huge(1) |
Maximum iterations |
|
real(kind=wp), | public | :: | itertime |
Wall clock time at beginning of iteration (in seconds) |
|||
real(kind=wp), | public | :: | lasttime |
Wall clock time at last update (in seconds) |
|||
type(parallel_obj), | public, | pointer | :: | parallel |
Parallel object |
||
type(parser_obj), | public, | pointer | :: | parser |
Parser object |
||
real(kind=wp), | public | :: | starttime |
Wall clock time at initialization (in seconds) |
|||
real(kind=wp), | public | :: | time | = | 0.0_wp |
Time at the n-th timestep |
|
real(kind=wp), | public | :: | time_max | = | huge(1.0_wp) |
Maximum simulation time |
|
real(kind=wp), | public | :: | time_wall | = | huge(1.0_wp) |
Wall time (in hours) |
|
real(kind=wp), | public, | allocatable | :: | timing(:) |
Timing array |
||
type(hashtbl_obj), | private | :: | tbl |
Hash table for timing info |
Add timing info
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(timer_obj), | intent(inout) | :: | this |
Timer |
||
character(len=*), | intent(in) | :: | name |
Name of timing data |
Determines whether simulation is over
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(timer_obj), | intent(inout) | :: | this |
Timer |
Change run status to finished
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(timer_obj), | intent(inout) | :: | this |
Timer |
Finalize
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(timer_obj), | intent(inout) | :: | this |
Timer |
Updates timing info with elapsed time since beginning of current iteration
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(timer_obj), | intent(inout) | :: | this |
Timer |
||
character(len=*), | intent(in) | :: | name |
Name of timing data |
Timing
Initialize the timer
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(timer_obj), | intent(inout) | :: | this |
Timer |
||
type(parallel_obj), | intent(in), | target | :: | parallel |
parallel structure from main program |
|
type(parser_obj), | intent(in), | target | :: | parser |
Input file parsing tool |
Move timer from n to n+1
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(timer_obj), | intent(inout) | :: | this |
Timer |
Determine whether it is time to write visualization files
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(timer_obj), | intent(inout) | :: | this |
Timer |
Determine whether it is time to write restart files
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(timer_obj), | intent(inout) | :: | this |
Timer |
Updates timing info with elapsed time since beginning of current iteration
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(timer_obj), | intent(inout) | :: | this |
Timer |
||
character(len=*), | intent(in) | :: | name |
Name of timing data |