Zeitmessung in Fortran 77
Eine
REAL-Funktion
SECNDS(t) ist bei vielen Fortran-Compilern
definiert, obwohl es keine Standardfunktion der Sprache ist.
,,Bekannt'' ist die Funktion z. B. in
- VAX Fortran
- MS Fortran
- HP Fortran mit der Compiler-Option +E1
- Sun Fortran mit der Linker-Option -lV77
- GNU-Fortran g77 (leider nicht brauchbar, s.u.)
- Linux gfortran (F90) - liefert wieder brauchbare Werte
Vereinbarung und Aufruf:
...
REAL secnds,t0,t1
...
t0 = secnds(0.0) ! Startzeitpunkt auf t0 merken
C .... Programmteil, dessen Zeit zu messen ist
C .... (sollte keine Ein-/Ausgaben enthalten)
t1 = secnds(t0) ! Verstrichene Zeit in Sekunden
write(*,10) t1
10 Format (' Dauer:',F10.3,' sec')
...
Bemerkung:
In
GNU-Fortran (g77) liefert die
eingebaute (intrinsic) Funktion
secnds(t) zwar einen reellen
Funktionswert, der aber nur ganze Sekunden (bei
t=0.0 seit Mitternacht) anzeigt.
Daneben gibt es eine reelle Funktion ohne Argument:
second().
Sie liefert die durch den Nutzerprozess insgesamt verbrauchte (CPU-)Zeit seit Programmstart.
File translated from
TEX
by
TTH,
version 2.92.