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)
この機能を正しく使用しているかどうかを知りたいです。count_rate
確かに、 andの値は指定しませんでしたcount_max
が、デフォルト値があると思います。count_0
また、またはcount_1
が値を超えている場合も考慮しcount_max
なければならないようです。ご覧のとおり、見栄えを良くするために、秒と経過時間の小数部分を分割しました。