Next: CSHIFT, Previous: COUNT, Up: Intrinsic Procedures

### 8.58 `CPU_TIME` — CPU elapsed time in seconds

Description:
  Returns a `REAL` value representing the elapsed CPU time in seconds. This is useful for testing segments of code to determine execution time.

  If a time source is available, time will be reported with microsecond resolution. If no time source is available, TIME is set to `-1.0`.

  Note that TIME may contain a, system dependent, arbitrary offset and may not start with `0.0`. For `CPU_TIME`, the absolute value is meaningless, only differences between subsequent calls to this subroutine, as shown in the example below, should be used.

Standard:
  Fortran 95 and later
Class:
  Subroutine
Syntax:
  `CALL CPU_TIME(TIME)`
Arguments:

  TIME | The type shall be `REAL` with `INTENT(OUT)`.

Return value:
  None
Example:

                program test_cpu_time
                    real :: start, finish
                    call cpu_time(start)
                        ! put code to test here
                    call cpu_time(finish)
                    print '("Time = ",f6.3," seconds.")',finish-start
                end program test_cpu_time

See also:
  SYSTEM_CLOCK, DATE_AND_TIME