構築した地球大気 k 分布テーブルを用いた計算
構築した k 分布テーブルを用いて地球大気の計算を実施する方法を説明する.
k 分布テーブルの準備
構築した k 分布テーブルを配置. 例えば, 上の data_Earth ディレクトリ内に配置する.
$ cd <TOPDIR>/data_Earth $ cp <somewhere>/kdactblv2_Earth.nc .
計算ディレクトリの準備
$ mkdir practice $ cd practice $ mkdir test_Earth_radiation_gen $ cd test_Earth_radiation_gen
プログラムの準備
$ cp ../../src/main/dcpam_init_data . $ cp ../../src/main/dcpam_init_data_surface . $ cp ../../src/main/dcpam_main .
設定ファイルの準備
ダウンロード
- 「計算例」の「地球計算結果と再解析データとの比較 (高橋), dcpam5-20161021 版 (気候値実験)」にある下の三つのファイルをダウンロード (下は T21L26 の計算の例).
書き換え
- 上でダウンロードした dcpam_E_T21L26.conf 内の 'P8' を 'P4' に書き換える (4 並列実行の場合).
dcpam_E_T21L26.conf 内の &dcpam_main_nml の RadModel を変更 (使用する放射モデルの変更).
&dcpam_main_nml ... RadModel = 'EarthV3', ... /
dcpam_E_T21L26.conf に以下を追記. KDOptPropNcFN には適切なパスを設定する.
&rad_Earth_V3_nml WaveNumAlbedoSwitch = 3500.0d2, KDOptPropNcFN = "../../../data_Earth/kdactblv2_Earth.nc" NCalcInterval = 1, /
dcpam_E_T21L26.conf 内の ×et_main_nml の DelTime を変更 (CFD 条件を満たすため).
×et_nml ... DelTimeValue = 30.0, ... /
計算の実行
大気初期値生成
$ mpiexec -n 4 ./dcpam_init_data -N=init_data_E_T21L26.conf
惑星表面初期値生成
$ mpiexec -n 4 ./dcpam_init_data_surface -N=surface_data_E_T21.conf
計算実行
$ mpiexec -n 4 ./dcpam_main -N=dcpam_E_T21L26.conf < /dev/null >& error.log &
終了するまでにはとても時間がかかる.
この放射モデルの DCPAM へのインターフェースルーチンには OpenMP の指示行を入れているため, 放射計算に関しては MPI と OpenMP でのハイブリッド並列で計算できる. 具体的には, DCPAM の MPI が緯度方向に分割するのに対して, 放射モデルインターフェースは分割された緯度帯内の格子点を OpenMP で分割して計算する. したがって, 計算コアを多数利用できる場合には, 実行時に OMP_NUM_THREADS に 1 以上の値を指定して OpenMP での並列計算も行うと良い. ただし, DCPAM の物理過程は OpenMP で並列化されているわけではないため, モデル全体としてハイブリッド並列で計算されているわけではない. (それでも放射計算の計算コストがとても大きいため実行時間は減ることが期待できる.)
計算結果
- T21L26
- 上記設定での計算 (放射収支が合っていないため要チューニング) [設定ファイル]
- 大気上端における放射収支
- 上向き長波放射フラックス : 234.3 W m-2
- 下向き短波放射フラックス : 245.0 W m-2
- 東西平均循環 (積分 3 年目の一カ月平均)
- 東西平均東西風
- 参考:混合比固定テーブル使用計算 (全球どこでも中緯度夏大気の微量成分が適用される)
- 東西平均東西風
- 大気上端における放射収支
- チューニングした設定での計算 [設定ファイル]
- 大気上端における放射収支
- 上向き長波放射フラックス : 238.8 W m-2
- 下向き短波放射フラックス : 239.2 W m-2
- 東西平均循環 (積分 3 年目の一カ月平均)
- 大気上端における放射収支
- 上記設定での計算 (放射収支が合っていないため要チューニング) [設定ファイル]
- T42L26
- 上記設定での計算 (放射収支が合っていないため要チューニング) [設定ファイル]
- 大気上端における放射収支
- 上向き長波放射フラックス : 233.6 W m-2
- 下向き短波放射フラックス : 247.1 W m-2
- 東西平均循環 (積分 3 年目の一カ月平均)
- 大気上端における放射収支
- チューニングした設定での計算 [設定ファイル (注意: 積分時間を 1 年としてある)]
- 大気上端における放射収支
- 上向き長波放射フラックス : 238.6 W m-2
- 下向き短波放射フラックス : 239.7 W m-2
- 東西平均循環 (積分 3 年目の一カ月平均)
- 大気上端における放射収支
- 上記設定での計算 (放射収支が合っていないため要チューニング) [設定ファイル]