2

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なければならないようです。ご覧のとおり、見栄えを良くするために、秒と経過時間の小数部分を分割しました。

4

1 に答える 1