DCPAM 熱帯低気圧実験 2 (解像度依存性実験)
前置き
解像度の表記方法
DCPAM は水平方向を球面調和関数を基底関数とするスペクトル変換法で 離散化し, 鉛直方向を差分方法で離散化している. このようなモデルでは, モデルの解像度を TXXLYY と表記する. XX は水平変化を表すために用いる球面調和関数の最大全波数であり, YY は鉛直層数である. また, T は三角形切断 (Triangular truncation) の頭文字である. L は層 (Layer) の頭文字だろう.
なお, 経度方向, 緯度方向の格子点数をそれぞれ IM, JM とすると, XX = (IM-1)/3 となる. また, JM = IM/2 である.
実験の方法
解像度ごとに実験ディレクトリを作り, 設定ファイルを用意して実験を行う. 各ディレクトリごとに
- init_data_RJ2011_*.conf : 大気初期値作成用設定ファイル
- surface_data_RJ2011_*.conf : 惑星表面初期値作成用設定ファイル
- dcpam_RJ2011_*.conf : DCPAM 実験用設定ファイル
である.
解像度が高いほど計算に要する時間が長くなることに注意すること.
注意
高い解像度の実験を行う際にはディスクサイズに注意すること.
解像度 T85L26
init_data_RJ2011_T42L26.conf, surface_data_RJ2011_T42.conf, dcpam_RJ2011_T42L26.conf を書き換えて実行する.
init_data_RJ2011_T42L26.conf
&gridset_nml nmax = 42 imax = 128 jmax = 64 ... / ---> &gridset_nml nmax = 85 imax = 256 jmax = 128 ... /
surface_data_RJ2011_T42.conf
&gridset_nml nmax = 42 imax = 128 jmax = 64 ... / ---> &gridset_nml nmax = 85 imax = 256 jmax = 128 ... /
dcpam_RJ2011_T42L26.conf
&gridset_nml nmax = 42 imax = 128 jmax = 64 ... / ---> &gridset_nml nmax = 85 imax = 256 jmax = 128 ... / ×et_nml ... DelTimeValue = 60.0, ! ... / ---> ×et_nml ... DelTimeValue = 48.0, ! ... / &set_O3_nml ... O3File = "../data_APE_NH01/O3_NH01_T042.nc" ... / ---> &set_O3_nml ... O3File = "../data_APE_NH01/O3_NH01_T085.nc" ... / &dynamics_hspl_vas83_nml ... HDEFoldTimeValue = 1.0, ... / ---> &dynamics_hspl_vas83_nml ... HDEFoldTimeValue = 0.5, ... / &cloud_simple_nml ... CloudWatLifeTime = 1980.0d0, CloudIceLifeTime = 9000.0d0, / ---> &cloud_simple_nml ... CloudWatLifeTime = 1620.0d0, CloudIceLifeTime = 9000.0d0, /
解像度 T170L26
init_data_RJ2011_T42L26.conf, surface_data_RJ2011_T42.conf, dcpam_RJ2011_T42L26.conf を書き換えて実行する.
&gridset_nml nmax = 170 imax = 512 jmax = 256 ... / ×et_nml ... DelTimeValue = 15.0 ... / &set_O3_nml ... O3File = "../data_APE_NH01/O3_NH01_T170.nc" ... / &dynamics_hspl_vas83_nml ... HDEFoldTimeValue = 0.25 ... / &cloud_simple_nml ... CloudWatLifeTime = 1620.0d0, CloudIceLifeTime = 9000.0d0, /
解像度 T341L26
init_data_RJ2011_T42L26.conf, surface_data_RJ2011_T42.conf, dcpam_RJ2011_T42L26.conf を書き換えて実行する.
&gridset_nml nmax = 341 imax = 1024 jmax = 512 ... / ×et_nml ... DelTimeValue = 6.0 ... / &set_O3_nml ... O3File = "../data_APE_NH01/O3_NH01_T341.nc" ... / &dynamics_hspl_vas83_nml ... HDEFoldTimeValue = 0.1 ... / &cloud_simple_nml ... CloudWatLifeTime = 1620.0d0, CloudIceLifeTime = 9000.0d0, /
これらをダウンロードして実験する.
ただし, この解像度の実験は, 情報実験機では実行できないかもしれない. メモリが足らない. 実行できない場合には相談.
並列実験方法 (相談時のためのメモ)
- 準備
- 実行時の注意
- 並列計算のためには mpiexec を用いて実行する
大気用初期値の作成
$ ./bin/dcpam_init_data -N=./conf/init_data_RJ2011_...
の代わりに
$ mpiexec -n 4 ./bin/dcpam_init_data -N=./conf/init_data_RJ2011_...
とする. その結果, 0000/rst_rank*.nc ができる.
惑星表面用初期値の作成
$ ./bin/dcpam_init_data_surface -N=./conf/surface_data_RJ2011_...
の代わりに
$ mpiexec -n 4 ./bin/dcpam_init_data_surface -N=./conf/surface_data_RJ2011_...
とする. その結果, 0000/rst_sst_rank*.nc ができる.
実験の実行
$ ./bin/dcpam_main -N=./conf/dcpam_RJ2011_T42L26.conf
の代わりに
$ mpiexec -n 4 ./bin/dcpam_main -N=./conf/dcpam_RJ2011_...
とする. その結果, 0000/*_rank*.nc ができる.
- 並列計算のためには mpiexec を用いて実行する
- 実行後の処理
- 並列計算実行後には計算結果が並列数個のファイルに分かれている.
- それらは一つのファイルにまとめてしまった方が解析が簡単である.
- 一つにまとめるには <URL:util_merge-2011-03-28-2_rj2011.tgz> を用いると良い.
- 各実験ディレクトリにおいてファイルを解凍し, 結合用のプログラムをコンパイルし, 実行する.
- 手順
解凍
$ tar xvf util_merge-2011-03-28-2_rj2011.tgz $ cd util_merge-2011-03-28-2_rj2011
コンパイル
$ make
実行ファイルは merge_ncf である.
設定の変更 (確認) 設定ファイルは merge.nml である. このファイルの中身を確認する. 少なくとも並列数を変更 (確認) すること. 並列数はファイル内の,
&proc nprocs = 64 /
で設定されている.
実行
$ ./merge_ncf
実行後にはまとめられたファイルができる.
解像度 T682L26
設定ファイルは <URL:para_T682L26/> の *.conf ファイルである. これらをダウンロードして実験する.
ただし, この解像度の実験は, 情報実験機では実行できない. メモリが足らない. 計算結果は用意できると思うので相談.