DCPAM 地球のような惑星の実験 4
(並列計算の)継続計算を実施する.
長期間の積分を実施する場合には, 既に行った結果の最後の値を初期値として計算を継続するのが便利である. そのような継続計算のためには下の手順が必要である.
- これまでの計算結果を退避する (上書きしないように)
- 設定ファイルの初期値ファイルの指定を書き換える
- 初期時刻を指定する
- 終了日時を指定する
- 並列数を指定して実行する
(詳細は「らくらくDCPAM」を参照のこと.)
計算結果の退避
これまでに実施した 3 年積分の結果のディレクトリ (dcpam5-20180304-2 dcpam5-20180304-2-para/exp_dir/Earth_T21L26) を元にして説明する.
3 年積分の結果を 0001 ディレクトリに退避する.
$ mkdir 0001 # 計算結果退避用のディレクトリの作成 $ mv *.nc 0001 # 計算結果を移動しておく $ cp *.conf 0001 # 設定ファイルをコピーして置いておく
初期値ファイルの指定
これまでに行った計算の予報変数の値は, ある時間間隔ごとに 0001/rst.nc (rst_rank??????.nc) および 0001/rst_sfc.nc (rst_sfc_rank??????.nc) に保存されている. また, これらのファイルには, 計算の最後の瞬間の値も保存されている.
したがって, これらのファイルを継続計算の初期値として用いるために設定ファイルを書き換える.
設定ファイル, dcpam_E_T21L26.conf, の
&restart_surftemp_io_nml ... InputFile = '0000/rst_sfc.nc' ... / &restart_file_io_nml ... InputFile = '0000/rst.nc', ... /
を
&restart_surftemp_io_nml ... InputFile = '0001/rst_sfc.nc' ... / &restart_file_io_nml ... InputFile = '0001/rst.nc', ... /
のように書き換える.
初期時刻の指定
上記のように指定したファイルには複数の時刻における予報変数が保存されているため, 複数の時刻の中の最後の時刻の値を継続計算の初期値として用いることを指定しなければならない.
そのため, まずはファイルに保存されている最後の時刻を調べる.
$ ncdump -v time 0001/rst_rank000000.nc netcdf 0001/rst_rank000000 { dimensions: lon = 64 ; ... ... ... time = 3600, 7200, ..., 86400 ; }
上の time の値の単位は秒である. 複数の時刻の値が保存されている場合は, その最後の時刻の値を正確にコピーし, 設定ファイル, dcpam_E_T21L26.conf, に下のように記述する (あるいは, 既に記入されている場合には書き換える).
×et_nml RestartTimeValue = 86400, RestartTimeUnit = 'sec', ... /
終了日時の指定
以前に行ったように計算の終了日時を指定する.
実行
これまでの実験と同様に実行する.
大気構造・循環構造の確認
ここまでの実験で得られた計算結果から, 表現された大気構造と循環構造を確認してみると良い. 地球大気の「実際の」大気構造・循環構造は, NCEP NCAR 再解析データ などで確認し, 比較してみると良いだろう.