| 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