This module set "Time" and "Step".
時刻や「計算ステップ」に関して設定するためのモジュールである。
use type_mod, only : REKIND, DBKIND, INTKIND, TOKEN, STRING
private
public :: time_init, time_progress, time_end,  & ! subroutines
     &    InitTime, DelTime,                   & ! variables
     &    StepInterval, OutputStep,            & ! variables
     &    CurrentTime, CurrentLoop,            & ! variables
     &    tvar, ttype, tname, tunit              ! variables
データ出力の際のステップ間隔や出力回数などに関する情報。 time_init で設定。
real(DBKIND)     , save ::  &
     & InitTime = 0.0     , & ! 積分開始時刻
     & DelTime  = 300         ! 時間ステップ
integer(INTKIND) , save ::  & 
     & StepInterval = 1   , & ! 出力ステップ間隔
     & OutputStep   = 1       ! 出力回数
character(STRING), save ::  &
     & tvar  = 'time'     , & ! 時刻変数名
     & ttype = 'float'    , & ! 時刻変数の型
     & tname = 'time'     , & ! 時刻の名称
     & tunit = 'seconds'      ! 時刻の単位
現在の時刻やループ回数を保持してある変数。 time_init で初期設定され、 time_progress で更新される。
real(DBKIND) , save :: CurrentTime = 0.0 ! 現在時刻 integer(INTKIND) , save :: CurrentLoop = 1 ! 現在のループ回数
モジュールを初期化し、NAMELIST から値を取得する。 NAMELIST から値が取得できないものに関しては上記のデフォルト値が 用いられる。
NAMELIST ファイルは、メインプログラムにて nmlfile_mod の nmlfile_init で指定されることが想定されているが、 もしもこの初期化ルーチンより以前に指定されていなければ、 nmlfile_init のデフォルトで指定される NAMELIST ファイルを 読む。
subroutine time_init
use type_mod, only : REKIND, DBKIND, INTKIND, TOKEN, STRING use nmlfile_mod, only : nmlfile_init, nmlfile_open, nmlfile_close use dc_trace, only : BeginSub, EndSub, DbgMessage use dc_message, only : MessageNotify
InitTime に与えられた数値に DelTime を加えた値が、 CurrentTime に代入される。
namelist /time_nml/    &
     &
     & InitTime      , &   ! 積分開始時刻
     & DelTime       , &   ! 時間ステップ
     &
     & StepInterval  , &   ! 出力回数
     & OutputStep    , &   ! 出力ステップ間隔
     &
     & tvar          , &   ! 時刻変数名
     & ttype         , &   ! 時刻変数の型
     & tname         , &   ! 時刻の名称
     & tunit               ! 時刻の単位
CurrentTime を time_init で指定された DelTime 分だけ進め、 CurrentLoop を 1 増やす。 今の所、時間を指定したり巻戻したりできない。
subroutine time_progress
use type_mod, only : STRING use dc_trace, only : BeginSub, EndSub, DbgMessage
NAMELIST から読み込んだ値を破棄し、各定数をデフォルトの値に戻す。
subroutine time_end
use type_mod, only : STRING use dc_trace, only : BeginSub, EndSub, DbgMessage