2014.11.11
=========
= GRIB2 =
=========
気象庁データをインプットとして、CReSSの読める形にする手順
・京大RISHから気象庁データをダウンロードする
MSMデータをダウンロード
・用意したデータをリスト化する。
upperとsurfaceデータのリストを用意する。
> ./make_list.pl ./data/Z__C_RJTD_*L-pall* > grib2_upper.dat
> ./make_list.pl ./data/Z__C_RJTD_*Lsurf* > grib2_surface.dat
grib2_upper/surface.dat中には指定したファイルの名前のリストとファイルサイズが入っている。
・実態のスクリプトを実行
> ./gpv2dat
FILE (BIN): data.gpv****.bin
...
0
「0」とでたら正常終了。
data.gpv****.binを
計算を実施するディクレクトリにコピーしておく
例えば、一つ上のディレクトリにworkという計算ディレクトリを用意したなら
> cp data.gpv2014* ../work
or
> mv data.gpv2014* ../work
or
> ln -s data.gpv2014* ../work
など
============
= msgsst2cdf =
============
SSTデータをCReSSが読める形にする手順
> tar zxvf mgdsst2cdf***.tar
> cd mgdsst2cdf***
configure.makeを編集
netcdf環境を自分のものに合わせる。
その後makeを実行
> make
するとmgdsst2cdfができる
netCDFがない環境では、netCDFのリンクとライブラリ部分を空白にして
> make nocdf
でもできる。
mgsstデータをコピー。mgsstデータはNEAR-GOOSからとってこれる(要ユーザー登録)
http://goos.kishou.go.jp/
> cp ~/data/mgdsst.*****.gz ./
> gunzip mgdsst.*****.gz
・SSTのファイル名リストを作成
> ./util/make_sstlist.pl ./data > sstlist.dat
・実態のスクリプトを実行
> ./mgdsst2cdf
out以下のデータを計算ディクレクトリにコピーしておく
=========
= Terrain =
=========
親ディレクトリで
> tar zxvf ./data/terrain.tar.gz
terrainに対してはこれでOK
data.terrain.bin.big
を計算ディレクトリにコピーしておく
======================
= CReSS本体の実行準備 =
======================
・user.confを編集して作業を行う
<&runnameを編集>
exprim = '2014111_test'
など、適宜実験の名前を付ける(ファイル名に付与される)
&dimsetを編集
numpe = 4 (利用するノード数を書く)
xgroup, ygroup は1のままにしておく
xsub, ysubで領域を分割する。分割した領域ごとにコンピュータ(ノード)を割り当てる。
ノードに割り当てるのでnumpeの数字と{xsub × ysub}の値が同じであるようにする。
xdim, ydimに計算する格子数を与える
(注意)ここに書いた数字-3の数だけ出力する。かつxsub/ysubで割り切れるようにする
ex. xdim = 243の場合、出力される格子数は 240格子
かつ、240がxsubで割り切れる
<&projectについて>
mpopt 地図投影の方法。今のところは2のままでよい
nspol = 1 北半球を正の緯度とする
tlat1, tlat2: 地図投影基本緯度。Lambert 展開の時は tlat2が必要
tlon: 地図投影基本経度
<&gridset>
dx, dy: 水平方向の格子間隔 5kmぐらいが最大間隔
dz: 高度刻み 最高高度が15-18km位に収まるように? 対流圏・圏界面高度を基準にする
gsm: 10hpa, 高度30kmまである msm: 100hpa, 高度15-20km程度までしかない
無い場合は外挿する。
タイムステップは鉛直流のほうで効いてくるように。
CReSSは境界層を詳細に解くので下層ほど刻みが細かく、上層ほど刻みが粗い
dzで与える値は全体の平均値
ulon, ulat: 計算の南西端緯度経度
riu, rju: 2.5, 2.5に固定しておくとulon, ulatが南西端を表すことになる
・計算設定領域を見てみる
GMTがある環境で
> ./cress3_domain_check.pl user.conf
で描画用ファイル(domain.ps &)ができて
> evince previewer domain.ps &
で見ることができる。
これを参考に微調整を行う。
zflat: 12000.e0を15000.e0にしておく(15km)
上空に設定するスポンジ層の下端高度的なもの
dzmin: 100.e0にしておく (100m)
計算下端高度。
<&flength>
sfcast: 計算初期時間
ex. sfcast = '2014/07/11 00:00'
<&boundary> 境界条件の設定
・名大の日々の計算設定に合わせる形で:
wbc, ebc, sbc, nbc = 6 にしておく
w/e/s/n = west/east/south/north, bc = boundary condition
gwave = 5.0e0 にしておく
(境界条件に関して、計算が上手く動かなかったら加藤さんへ質問)
exbopt = 11 にしておく
exnews = 0.0001852e0 にしておく
exnorm = 0.0001852e0 にしておく
exbwid = 12
lspopt =0 にしておく
lspvar = '--xxxxxxxx' にしておく (10文字であることに注意)
lsnews = 0.0005556e0 にしておく
lsnorm = 0.0005556e0 にしておく
wdnews = 6 にしておく
wdnorm = 6 にしておく
vspvar = '--xxxxxxxx' にしておく (10文字であることに注意)
botgpv = 15000.e0 にしておく (15km) スポンジ層境界
botbar = 15000.e0 にしておく (15km) スポンジ層境界
<&integrat> タイムステップの設定など
dtbig = 2.e0 [s] にした
dtsml = 1.e0 [s] にした
dx のkmの数×2 秒くらいでdtbigを設定しておくと計算が安定しやすい
dtsml は dtbigの半分くらい
<&radation> <= 放射版だとこれが追加されている
radopt = 0 にした。 1にすると放射過程も解く?
dmpmon = 1 にした。
CReSSの出力データは1. 時間変化する3Dデータ、 2. 時間変化する2Dデータ、 3. 時間変化しないデータ
からなる。1にしておくと分割出力、0では全部一緒にする
dmpvar = '--o---ooxxxoooxx'にした。 最後から二番目が放射で追加された項
dmpitv = 600.e0 にした (for 九州局地豪雨) 1200秒(20min)とか3600秒(1h)とかで設定するときもある。
計算過程の出力間隔
resopt = 1 にした
1: 計算をリスタートするためのファイル出力を行う 0: 行わない
restiv = 10800.e0 にした (3時間)
計算をリスタートするためのファイル出力間隔
<&gridset_gpv>
データを読み込むための準備
GRIB2のtemplateの下にあるctlファイルをlessして参考にする
xdim_gpv, ydmi_gpv
>dset -data.gpv%y4%m2%d2%h200.binでみた数字?
zdim_gpv
おさめられている数字+1にした (surfaceを含む設定でファイルを用意したので)
(gsmのときはnosurfaceの設定にしている)
<terrain> ctlファイルを見て参考にする
ulat_trn = 15.0042e0
ulon_trn =115.0042e0
<&gridset_sst>
xdim_sst 1440
ydim_sst 729
dx_sst = 0.25e0
dy_sst = 0.25e0
ulat_sst = -89.875e0
ulon_sst 0.125e0
riu_sst = 1.0
rju_sst = 1.0
<&uniconf_uni>
fltyp_uni = 'all'
flitv_uni = 600e0 <= dmitvなどと同じ数字にしておく必要
rmopt_uni = 1
uniopt = 1
uniopt_uni = -5 "-"をつけておくとGRads用のコントロールファイルを出力する
=== user.conf編集ここまで ===
==================
= CReSS本体の実行 =
==================
実行準備2
・まず必要なデータを集めてくる
作業ディレクトリに移動して
たとえば
mv ../GRIB2/data/gpv*/bin ./
mv ../mgdsst2cdf/out/mgdsst_20130101.dat ./
cp mgdsst_20130101.dat sst.201404110000,bin
terrainはリンクを張る
ln -s ./terrain/data.terrain.bin.big ./data.terrain.bin
・実行ファイルも集めてくる
cp ../CResSS***./*.exe ./
実行していく
■terran
./terran.exe < user.conf > log.terrain.txt
# ./terran.exe -WT, -T < user.conf > log.terrain.txt
-WT, -Tは富士通フォートランのエンディアン交換の引数
■surface
./surface.exe < user.conf > log.surface.txt
■gridata
./gridata.exe < user.conf > log.grdata.txt
■CReSS本体 solver
バッチジョブを投げる qsub, qstat
■solverが終わったら
./unite.exe < user.conf > log.unite.txt