Routines for logging model date, wall clock time, integration time.
REVISION HISTORY:
2003-Aug-28 - B. Kauffman, 1st version.INTERFACE:
module tStamp_modUSES:
use shr_sys_mod ! share system routines use cpl_kind_mod ! kinds implicit none private ! exceptPUBLIC TYPES:
public :: tStamp_tic type tStamp_tic integer(IN) :: count ! value of hardware tic counter integer(IN) :: accum ! tic counts accumulated since initialization integer(IN) :: n ! number of samples in accumulated count end type tStamp_ticPUBLIC MEMBER FUNCTIONS:
public :: tStamp_write ! write the time stampPUBLIC DATA MEMBERS:
! no public data
Logs model date and wall clock time to stdout using input argument year, month, day and sec and also output the average and instantaneous time difference between calls to this routine. Include str in output.
Generally it is expected that this routine is called periodically, eg. once per day, in which the average and instantaneous time difference info becomes quite useful.
If optional argument tic_ext is present, use it to determine when last call was made. If using tic_ext, an initial count value of less than zero implies this is the first call, thus accum and n are set zero.
REVISION HISTORY:
2002-aug-21 - B. Kauffman, 1st version.INTERFACE:
subroutine tStamp_write(str,year,month,day,sec,tic_ext)USES:
implicit noneINPUT/OUTPUT PARAMETERS:
character(*) ,intent(in) :: str ! info text string integer(IN) ,intent(in) :: year ! model year (4-digits) integer(IN) ,intent(in) :: month ! model month (2-digits) integer(IN) ,intent(in) :: day ! model day (2-digits) integer(IN) ,intent(in) :: sec ! model secs (5-digits) type(tStamp_tic),intent(inout),optional :: tic_ext ! external tic count data