Class | gridset |
In: |
../src/setup/gridset.f90
|
引数に与えられた NAMELIST ファイルから, 格子点情報を取得し, 保管するための変数参照型モジュール
gridset_init : | 初期化ルーチン |
gridset_check : | 設定内容の整合性をチェックするためのルーチン |
Subroutine : |
設定ファイルから情報を読み込み格子点数を計算する
This procedure input/output NAMELIST#gridset_nml .
subroutine gridset_init ! != 初期化ルーチン ! ! 設定ファイルから情報を読み込み格子点数を計算する ! !暗黙の型宣言禁止 implicit none !内部変数 integer :: unit !設定ファイル用装置番号 !----------------------------------------------------------------- ! 設定ファイルから情報を読み込み ! NAMELIST /gridset_nml/ xdim, ydim, zdim, NCMAX, Xmg, Ymg, Zmg, xsub, ysub call FileOpen(unit, file=namelist_filename, mode='r') read(unit, NML=gridset_nml) close(unit) !----------------------------------------------------------------- ! NX, NY, NZ を決める ! nx = xdim / xsub imin = 1 - xmg imax = nx + xmg if (ydim == 1) then ! 二次元 ymg = 0 ny = 1 FlagCalc3D = .false. else ! 三次元 ny = ydim / ysub FlagCalc3D = .true. end if jmin = 1 - ymg jmax = ny + ymg nz = zdim kmin = 1 - zmg kmax = nz + zmg !----------------------------------------------------------------- !"myrank == 0" に該当する計算ノードが, 読み込んだ情報を出力 ! if (myrank == 0) then call MessageNotify( "M", "gridset_init", "xsub = %d", i=(/xsub/) ) call MessageNotify( "M", "gridset_init", "ysub = %d", i=(/ysub/) ) call MessageNotify( "M", "gridset_init", "xdim = %d", i=(/xdim/) ) call MessageNotify( "M", "gridset_init", "ydim = %d", i=(/ydim/) ) call MessageNotify( "M", "gridset_init", "zdim = %d", i=(/zdim/) ) call MessageNotify( "M", "gridset_init", "[1 node] NX = %d", i=(/NX/) ) call MessageNotify( "M", "gridset_init", "[1 node] NY = %d", i=(/NY/) ) call MessageNotify( "M", "gridset_init", "[1 node] NZ = %d", i=(/NZ/) ) call MessageNotify( "M", "gridset_init", "[1 node] NCMAX = %d", i=(/NCMAX/) ) call MessageNotify( "M", "gridset_init", "[1 node] xmg = %d", i=(/Xmg/) ) call MessageNotify( "M", "gridset_init", "[1 node] ymg = %d", i=(/Ymg/) ) call MessageNotify( "M", "gridset_init", "[1 node] zmg = %d", i=(/Zmg/) ) call MessageNotify( "M", "gridset_init", "[1 node] imin = %d", i=(/imin/) ) call MessageNotify( "M", "gridset_init", "[1 node] imax = %d", i=(/imax/) ) call MessageNotify( "M", "gridset_init", "[1 node] jmin = %d", i=(/jmin/) ) call MessageNotify( "M", "gridset_init", "[1 node] jmax = %d", i=(/jmax/) ) call MessageNotify( "M", "gridset_init", "[1 node] kmin = %d", i=(/kmin/) ) call MessageNotify( "M", "gridset_init", "[1 node] kmax = %d", i=(/kmax/) ) end if !----------------------------------------------------------------- ! 値のチェック ! call gridset_check end subroutine gridset_init