DCPAM Reference Manual

GFD Dennou Club

平成 17 年 2 月 18 日

目次

1 Module time mod 2 1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Known Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.5 Future Plans . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.6 Dependency . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.7 Public Interface . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.8 Public Data . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.9 Procedure Interface . . . . . . . . . . . . . . . . . . . . . . . 3

1.9.1 Initialize module and acquire NAMELIST . . . . . . 3 1.9.2 Progress Time and Number of Loop . . . . . . . . . . 4 1.9.3 Terminate module . . . . . . . . . . . . . . . . . . . . 4

1 Module time mod

• Developers: Morikawa Yasuhiro

• Version: $Id: time.f90,v 1.10 2005/01/19 08:52:41 morikawa Exp $

• Tag Name: $Name: $

• Change History:

1.1 Overview

This module set ”Time” and ”Step”.

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

1.2 Error Handling

1.3 Known Bugs

1.4 Note

1.5 Future Plans

1.6 Dependency

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

1.7 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

1.8 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    ! 現在のループ回数

1.9 Procedure Interface

1.9.1 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               ! 時刻の単位

1.9.2 Progress Time and Number of Loop

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

subroutine time_progress

Dependency

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

1.9.3 Terminate module

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

subroutine time_end

Dependency

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