Intel® Fortran Compiler 18.0 Developer Guide and Reference
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.
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 or real. 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 integer arguments used must have the same integer kind parameter. If the type is INTEGER(1), count, count_rate, and count_max are all zero, indicating that there is no clock available to Intel® Fortran with an 8-bit range.
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