CPU_TIMESous-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 . . . .
SYSTEM_CLOCKSous-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
. . .