k 分布作成 : ラインバイライン計算
地球大気の k 分布テーブル作成用ラインバイライン計算の方法を説明する.
k 分布テーブル作成用ラインバイライン計算は, 指定する離散的な圧力, 温度, 混合比に対してそれぞれ計算する必要がある.
ここでは混合比可変の k 分布テーブルを作成するが, 混合比が小さい条件の場合を考えるため, 代表的な混合比に対する k 分布の計算のみを行う. 他の混合比の値に対してはその結果を流用する. また, 説明のための設定として計算量を少なくしているため下の数の積だけの k 分布を計算する.
- 混合比に対して計算点数 1
- 圧力に対する計算点数 12
- 温度に対する計算点数 2
地球大気ラインバイライン計算の実施 (prog05.1)
$ cd prog05.1_calc_ac_many_mpi $ rm -f data_profile/* $ rm -f out/*
設定ファイルの準備
$ cp sample/Earth.varvmr-small.mkprofile.conf mkprofile.conf $ cp sample/Earth.varvmr-small.many.conf many.conf $ cp sample/Earth.calc_ac.conf calc_ac.conf $ cp sample/Earth.file.conf file.conf
- mkprofile.conf : 入出力ファイルの設定 [変更なし]
- 内容説明 (Earth.fixvmr.mkprofile.conf の説明)
- many.conf : 計算する範囲の設定 [変更なし]
- 内容説明 (Earth.fixvmr.many.conf の説明)
- calc_ac.conf : 計算条件の設定 [変更なし]
- file.conf : 入出力ファイルの設定 [変更なし]
- mpisubloop.conf : MPI 並列数の指定 [変更なし] [現在は使わない]
コンパイル
コンパイル
$ make
コンパイルが成功すると, 下の実行ファイルができる.
- mkprofile
- calc_ac_many
- merge
実行
mkprofile で気体の吸収係数をラインバイライン計算する大気プロファイルを複数 (多数) 用意し, calc_ac_many でそれら大気プロファイルに対して気体の吸収係数をラインバイライン計算する. merge は, とりあえず用いない方法を説明する.
プロファイル準備
$ ./mkprofile
data_profile 以下に
- Profile_T-001_M01-001_M02-001_M03-001.nc のようなファイル
- VariableRange.nc
ができていれば良い.
逐次ラインバイライン計算実行
$ ./calc_ac_many
標準出力に Finish と表示されれば無事実行終了. 計算結果は
out/ac_T-001_M01-001_M02-001_M03-001.nc など
[今後の為に] 並列ラインバイライン計算実行
ここの例ではラインバイライン計算を 2 回実行するだけのため短時間で計算が終了する. 今後ラインバイライン計算の回数が増えた場合には, 以下のように MPI を用いて並列実行すると良い (下の例は 16 並列).
$ mpiexec -n 16 ./calc_ac_many >& error.log &
標準出力に Finish と表示されれば無事実行終了. 計算結果は
out/ac_T-001_M01-001_M02-001_M03-001.nc など
親ディレクトリに戻る
$ cd ..