Next: , Previous: ERFC, Up: Intrinsic Procedures

8.52 ETIME — Execution time subroutine (or function)

ETIME(TARRAY, RESULT) returns the number of seconds of runtime since the start of the process's execution in RESULT. TARRAY returns the user and system components of this time in TARRAY(1) and TARRAY(2) respectively. RESULT is equal to TARRAY(1) + TARRAY(2).

On some systems, the underlying timings are represented using types with sufficiently small limits that overflows (wraparounds) are possible, such as 32-bit types. Therefore, the values returned by this intrinsic might be, or become, negative, or numerically less than previous values, during a single run of the compiled program.

If ETIME is invoked as a function, it can not be invoked as a subroutine, and vice versa.

TARRAY and RESULT are INTENT(OUT) and provide the following:

TARRAY(1): User time in seconds.
TARRAY(2): System time in seconds.
RESULT: Run time since start in seconds.


RESULT = ETIME(TARRAY), (not recommended).


TARRAYThe type shall be REAL, DIMENSION(2).
RESULTThe type shall be REAL.

Return value:
Elapsed time in seconds since the start of program execution.
          program test_etime
              integer(8) :: i, j
              real, dimension(2) :: tarray
              real :: result
              call ETIME(tarray, result)
              print *, result
              print *, tarray(1)
              print *, tarray(2)
              do i=1,100000000    ! Just a delay
                  j = i * i - i
              end do
              call ETIME(tarray, result)
              print *, result
              print *, tarray(1)
              print *, tarray(2)
          end program test_etime