Class | clockset |
In: |
../src/setup/clockset.f90
|
CPU 時間の計測を行うためのサブルーチンを束ねたモジュール
ClocksetInit : | 初期化ルーチン |
ClocksetClose : | CPU 時間計測の終了処理 |
ClocksetPredict : | プログラムが終了までの予測 CPU 時間・日時を表示 |
ClockSetPreStart : | CPU 時間計測開始 (初期化ルーチン) |
ClockSetPreStop : | CPU 時間計測終了 (初期化ルーチン) |
ClockSetLoopStart : | CPU 時間計測開始 (時間ループ) |
ClocksetLoopStop : | CPU 時間計測終了 (時間ループ) |
Subroutine : |
計測を終了し, CPU 時間を表示する.
subroutine ClocksetClose ! != CPU 時間計測の終了処理 ! ! 計測を終了し, CPU 時間を表示する. ! implicit none if (myrank == 0) then call DCClockResult( clks = (/clock_init, clock_loop/), total_auto = .true. ) ! (in) end if call DCClockClose( clk = clock_init ) ! (inout) ! Finalize (後処理) call DCClockClose( clk = clock_loop ) ! (inout) ! Finalize (後処理) end subroutine ClocksetClose
Subroutine : |
subroutine ClocksetInit ! != CPU 時間計測 初期化ルーチン ! implicit none ! 初期化ルーチン用の時刻計測初期化 ! call DCClockCreate( clk = clock_init, name = 'initialization' ) ! (in) ! 時間発展ループ用の時刻計測初期化 ! call DCClockCreate( clk = clock_loop, name = 'time-integration' ) ! (in) end subroutine ClocksetInit
Subroutine : |
subroutine ClocksetLoopStart ! != CPU 時間計測開始 (時間ループ) ! implicit none call DCClockStart(clk = clock_loop) ! (inout) ! Start CPU time counting end subroutine ClocksetLoopStart
Subroutine : |
subroutine ClocksetLoopStop ! != CPU 時間計測終了 (時間ループ) ! implicit none call DCClockStop(clk = clock_loop) ! (inout) ! Stop CPU time counting ! (CPU 時間計測終了) end subroutine ClocksetLoopStop
Subroutine : |
subroutine ClocksetPreStart ! != CPU 時間計測開始 (初期化ルーチン) ! implicit none call DCClockStart(clk = clock_init) ! (inout) ! Start CPU time counting end subroutine ClocksetPreStart
Subroutine : |
subroutine ClocksetPreStop ! != CPU 時間計測修了 (初期化ルーチン) ! implicit none call DCClockStop(clk = clock_init) ! (inout) ! Stop CPU time counting ! (CPU 時間計測終了) end subroutine ClocksetPreStop
Subroutine : |
一旦計測を止めてから, 予想値を表示し, 計測を再開する.
subroutine ClocksetPredict ! != プログラムが終了するまでの予測 CPU 時間, および日時を表示 ! ! 一旦計測を止めてから, 予想値を表示し, 計測を再開する. ! implicit none real(4) :: progress ! 計算の進行の割合を計算 progress = real((TimeA - RestartTime) / IntegPeriod, 4) ! CPU time measurement stops, temporarily. call ClocksetLoopStop if (myrank == 0) then call MessageNotify( "M", "ClockSet", "Time = %f", d=(/TimeA/) ) call DCClockPredict( clk = clock_init + clock_loop, progress = progress ) end if ! CPU time measurement starts again. call ClocksetLoopStart end subroutine ClocksetPredict