JAGURS 入力ファイル設定

パラメータ

デフォルトで input/ の中にある tsun.par などは,各種パラメータを入力するファイル.
計算実行時に

jagurs par=XXX.par

と指定する.
拡張子が par である必要はないと思うが視認性のために par にしておいた方が良い.
テスト用の tsun.par は

&params
gridfile="gridfile.dat"
maxgrdfn="zmax.grd"
vmaxgrdfn="vmax.grd"
tgstafn="test_tgs.txt"
dt=0.05
tend=120      !2min. for TEST
itmap=1200
tau=60
cf=-0.025
cfl=-0.025
coriolis=0
smooth_edges=0
c2p_all=1
def_bathy=1
plotgrd=-1
velgrd=0
procx=2      !for Parallel version
procy=2      !for Parallel version
/



地形(水深)・初期水位

ファイル名を指定するファイル

用いる地形と初期水位(または断層モデル)のファイルを指定するためのファイルがあり,それが上記の par ファイルでいうところの

gridfile="gridfile.dat"

である.その中身は

SD01 SD01 1 bathy.SD01.grd disp.SD01.grd
SD02 SD01 0 bathy.SD02.grd disp.SD02.grd
SD03 SD02 0 bathy.SD03.grd disp.SD03.grd

のようになっている.

相対パスを使うなど,ディレクトリを跨ぐときは,それぞれのファイル名を "" でくくらないと delimiter の扱いの都合でエラーになる.下記はクォートでファイル名を指定する例.

SD01 SD01 1 "../input/bathy.SD01.grd" "../input/disp.SD01.grd"
SD02 SD01 0 "../input/bathy.SD02.grd" "../input/disp.SD02.grd"
SD03 SD02 0 "../input/bathy.SD03.grd" "../input/disp.SD03.grd"

断層の動的破壊を考慮して,初期水位ファイルがひとつに収まらないときは,

SD01 SD01 1 "../../bath/bath_0810-01_mask.grd" disp.SD01.list

にようにファイル名を記入し,この disp.SD01.list には順番にファイル名を1行ずつ列挙する.

さらに,ネストされた領域では直接初期水位を入力せず,計算内部で内挿した場合は

SD01 SD01 1 "../../bath/bath_0810-01.grd" disp.SD01.list
SD02 SD01 0 "../../bath/bath_0270-01.grd" NO_DISPLACEMENT_FILE_GIVEN
SD03 SD02 0 "../../bath/bath_0090-01.grd" NO_DISPLACEMENT_FILE_GIVEN
SD04 SD03 0 "../../bath/bath_0030-01.grd" NO_DISPLACEMENT_FILE_GIVEN
SD05 SD04 0 "../../bath/bath_0010-01.grd" NO_DISPLACEMENT_FILE_GIVEN

とし,par のファイルで

init_disp_interpolation=1
use_linear=0    ! 0: spline 1: linear

とする.par ファイルは Fortran の namelist 形式なので単に params のリストの中に行を追加するだけ.


CFL条件

各計算領域での最も深い水深と解像度をもとに,CFL=1.0 のときの dt を確認するコマンド.

gmt ../../bath/bath_0010-01.grd -Cn -o5,6 | awk '{print $2/sqrt(9.8*$1)}'

これで出てきた値の半分以下の dt にすることが望ましい.

地形ファイル等のフォーマット

GEBCO で NetCDF の地形を入手しても,JAGURSではそのまま使うことはできない.
公式doc にも書いてあるが,JAGURS がサポートしている地形ファイル (*.grd) の format は cf というもの.
このフォーマットに関しては GMT の grdconvert に詳しく書いてある.
また,計算では水深の深さ方向に正をとるので,元々の地形データが標高を正としているならば符号を逆転させる必要がある.
フォーマット cf への変換と 符号逆転を同時に処理するなら

gmt grdmath toponc.grd NEG = bathcf.grd=cf

とする.最後の =cf というフォーマット指定が重要.
参考→JAGURSで遠地津波計算 - EKBO

初期水位ファイルに関しても, grdconvert を使って cf でないものは cf に変換する.

gmt grdconvert dispnc.grd -Gdispcf.grd=cf



station (時系列を記録する定点)

station の場所を指定するファイルは, par ファイルの

tgstafn="test_tgs.txt"

の部分, test_tgs.txt は以下のようになっている.

6
    40.116667  142.0666667  1 #GPS807
    39.627222  142.1866667  2 #GPS804
    39.258611  142.0969444  3 #GPS802
    38.857778  141.8944444  4 #GPS803
    38.2325    141.6836111  5 #GPS801
    36.971389  141.1855556  6 #GPS806



並列計算

最後の

procx=2      !for Parallel version
procy=2      !for Parallel version

はあくまで MPI の分割条件であって,これは OpenMP には関係ない.
MPI を使わない場合はコメントアウトしておく.

!procx=2      !for Parallel version
!procy=2      !for Parallel version

OpenMP はいつも通り環境変数の OMP_NUM_THREADS で指定する.

流速の出力

plotgrd=-1

の -1 は入力した全領域の水位の空間分布を itmap のステップごとに出力するという意味であるが,
流速の場合は

velgrd=0

は -1 にしても流速の出力はなかった.
水位と同じく全領域の流速の空間分布を出力したければ

velgrd=1

とすれば OK っぽい.


Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2021-05-08 (Sat) 10:29:23 (1084d)