我通过system_clock
以下方式使用 Fortran90(用 gfortran 编译)的函数:
! Variables for clock
integer count_0, count_1
integer count_rate, count_max
double precision time_init, time_final, elapsed_time
! Starting time
call system_clock(count_0, count_rate, count_max)
time_init = count_0*1.0/count_rate
.... Main code
! Ending time
call system_clock(count_1, count_rate, count_max)
time_final = count_1*1.0/count_rate
! Elapsed time
elapsed_time = time_final - time_init
! Write elapsed time
write(*,1003) int(elapsed_time),elapsed_time-int(elapsed_time)
1003 format(' Wall Clock = ',i0,f0.9)
我想知道我是否正确使用了这个功能。确实,我没有为 and 指定值count_rate
,count_max
但我猜有默认值。此外,似乎我必须考虑count_0
或count_1
超过count_max
价值的情况,不是吗。如您所见,为了漂亮的格式,我将秒数和经过时间的小数部分分开。