This module set 3 Dimensional Grid Information.
3 次元の格子点情報の設定を行うためのモジュールである。
もしかすると、「3次元」という枠組ではなく、それぞれの次元に分けた モジュールにすべきかも知れない。
use type_mod, only : INTKIND, STRING
private public :: grid_3d_init, grid_3d_end ! subroutines public :: im, jm, km ! variables
grid_3d_init において値が設定される。以下はデフォルト値。
integer(INTKIND), save :: im = 64 , & ! 格子点の設定(X) & jm = 32 , & ! 格子点の設定(Y) & km = 12 ! 格子点の設定(Y)
NAMELIST から x 軸、 y 軸、 z 軸の格子点数を取得する。 取得できない場合、またはゼロ以下の値が与えられた場合、 上記のデフォルト値が強制的に設定される。
NAMELIST ファイルは、メインプログラムにて nmlfile_mod の nmlfile_init で指定されることが想定されているが、 もしもこの初期化ルーチンより以前に指定されていなければ、 nmlfile_init のデフォルトで指定される NAMELIST ファイルを 読む。
subroutine grid_3d_init
use type_mod, only: INTKIND use nmlfile_mod,only: nmlfile_init, nmlfile_open, nmlfile_close use dc_trace, only: DbgMessage, BeginSub, EndSub use dc_message, only: MessageNotify
namelist /grid_3d_nml/ & & im , & ! 東西格子点数 & jm , & ! 南北格子点数 & km ! 鉛直格子点数
NAMELIST から読み込んだ値を破棄し、各定数をデフォルトの値に戻す。
subroutine grid_3d_end
use dc_trace, only: DbgMessage, BeginSub, EndSub