Fonctions Fortran de mesure de temps


Temps CPU en Fortran 95 : CPU_TIME

Sous-programme intrinsèque Fortran 90. Mesure le temps CPU d'une portion de code encadrée par deux appels à CPU_TIME. Exemple d'utilisation :

implicit none
integer               :: j, n
real,dimension(10000) :: x
real                  :: t1,t2
. . . . 
call CPU_TIME( t1 )
do j=1,10000
x(j)=log(23.)*j
end do
call CPU_TIME( t2 )
. . . .
read *, n ; print *, x(n)
print *,t2 - t1
. . . .

Notes

Temps d'horloge en Fortran 90 : SYSTEM_CLOCK

Sous-programme intrinsèque Fortran 90. Donne un temps elapsed en retournant un nombre de périodes d'horloge consommées. Exemple d'utilisation :

. . .
INTEGER :: &
nb_periodes_initial, & ! valeur initiale du compteur de périodes d'horloge
nb_periodes_final,   & ! valeur finale   du compteur de périodes d'horloge
nb_periodes_max,     & ! valeur maximale du compteur d'horloge
nb_periodes_sec,     & ! nombre de périodes d'horloge par seconde
nb_periodes            ! nombre de périodes d'horloge du code
REAL :: temps_elapsed  ! temps réel en secondes

! Initialisations

CALL SYSTEM_CLOCK(COUNT_RATE=nb_periodes_sec, COUNT_MAX=nb_periodes_max)
. . .
CALL SYSTEM_CLOCK(COUNT=nb_periodes_initial)
. . .
!      <<<<<<<<<<<<< partie du code à évaluer >>>>>>>>>>>>>
. . .
CALL SYSTEM_CLOCK(COUNT=nb_periodes_final)
nb_periodes = nb_periodes_final - nb_periodes_initial
IF (nb_periodes_final < nb_periodes_initial) &
        nb_periodes = nb_periodes + nb_periodes_max
temps_elapsed   = REAL(nb_periodes) / nb_periodes_sec
. . .

© CNRS - IDRIS, 13/01/2012