Intel® Fortran Compiler 18.0 Developer Guide and Reference

SYSTEM_CLOCK

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.

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

See Also