Intrinsic Subroutine: Returns integer data from a real-time clock. SYSTEM_CLOCK returns the number of seconds from 00:00 Coordinated Universal Time (CUT) on 1 JAN 1970. The number is returned with no bias. To get the elapsed time, you must call SYSTEM_CLOCK twice, and subtract the starting time value from the ending time value.
Syntax
CALL SYSTEM_CLOCK ([count] [, count_rate] [, count_max])
count
(Output; optional) Must be scalar and of type integer. It is set to a value based on the current value of the processor clock. The value is increased by one for each clock count until the value count_max is reached, and is reset to zero at the next count. (count lies in the range 0 to count_max.)
count_rate
(Output; optional) Must be scalar and of type integer. It is set to the number of processor clock counts per second.
If the type is INTEGER(2), count_rate is 1000. If the type is INTEGER(4), count_rate is 10000. If the type is INTEGER(8), count_rate is 1000000.
count_max
(Output; optional) Must be scalar and of type integer. It is set to the maximum value that count can have, HUGE(0).
All arguments used must have the same integer kind parameter.
See Also
Example
Consider the following:
integer(2) :: ic2, crate2, cmax2
integer(4) :: ic4, crate4, cmax4
call system_clock(count=ic2, count_rate=crate2, count_max=cmax2)
call system_clock(count=ic4, count_rate=crate4, count_max=cmax4)
print *, ic2, crate2, cmax2
print *, ic4, crate4, cmax4
end
This program was run on Thursday Dec 11, 1997 at 14:23:55 EST and produced the following output:
13880 1000 32767
1129498807 10000 2147483647