Module time_mod

Overview

This module set "Time" and "Step".

時刻や「計算ステップ」に関して設定するためのモジュールである。

Error Handling

Known Bugs

Note

Future Plans

Dependency

use type_mod,    only : REKIND, DBKIND, INTKIND, TOKEN, STRING

Public Interface

private
public :: time_init, time_progress, time_end,  & ! subroutines
     &    InitTime, DelTime,                   & ! variables
     &    StepInterval, OutputStep,            & ! variables
     &    CurrentTime, CurrentLoop,            & ! variables
     &    tvar, ttype, tname, tunit              ! variables

Public Data

データ出力の際のステップ間隔や出力回数などに関する情報。 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    ! 現在のループ回数

Procedure Interface

Initialize module and acquire NAMELIST

モジュールを初期化し、NAMELIST から値を取得する。 NAMELIST から値が取得できないものに関しては上記のデフォルト値が 用いられる。

NAMELIST ファイルは、メインプログラムにて nmlfile_mod nmlfile_init で指定されることが想定されているが、 もしもこの初期化ルーチンより以前に指定されていなければ、 nmlfile_init のデフォルトで指定される NAMELIST ファイルを 読む。

subroutine time_init

Dependency

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

NAMELIST

InitTime に与えられた数値に DelTime を加えた値が、 CurrentTime に代入される。

namelist /time_nml/    &

     & InitTime      , &   ! 積分開始時刻
     & DelTime       , &   ! 時間ステップ

     & StepInterval  , &   ! 出力回数
     & OutputStep    , &   ! 出力ステップ間隔

     & tvar          , &   ! 時刻変数名
     & ttype         , &   ! 時刻変数の型
     & tname         , &   ! 時刻の名称
     & tunit               ! 時刻の単位

Progress Time and Number of Loop

CurrentTime を time_init で指定された DelTime 分だけ進め、 CurrentLoop を 1 増やす。 今の所、時間を指定したり巻戻したりできない。

subroutine time_progress

Dependency

use type_mod,    only : STRING
use dc_trace,    only : BeginSub, EndSub, DbgMessage

Terminate module

NAMELIST から読み込んだ値を破棄し、各定数をデフォルトの値に戻す。

subroutine time_end

Dependency

use type_mod,    only : STRING
use dc_trace,    only : BeginSub, EndSub, DbgMessage