k 分布作成 : ラインバイライン計算

地球大気の k 分布テーブル作成用ラインバイライン計算の方法を説明する.

k 分布テーブル作成用ラインバイライン計算は, 指定する離散的な圧力, 温度, 混合比に対してそれぞれ計算する必要がある.

ここでは混合比可変の k 分布テーブルを作成するため, 下の数の積だけの k 分布を計算する.

  • 圧力に対して計算点数 102 (0 Pa, 1e-4 - 1e6 Pa まで対数的に等間隔)
  • 温度に対する計算点数 5 (中緯度夏大気温度分布を基準に, -50 K から +50 K まで等間隔)
  • 水蒸気混合比に対して計算点数 14 (0, 1.0e-7, 3.2e-7, 1.0e-6, 3.2e-6, ..., 1.0e-1)
  • CO2 混合比に対して計算点数 3 (100e-6, 320e-6, 1000e-6)
  • O3 混合比に対して計算点数 4 (1.0e-8, 1.0e-7, 1.0e-6, 1.0e-5)

地球大気ラインバイライン計算の実施 (prog05.1v2)

$ cd prog05.1v2_calc_ac_many_mpi
$ rm -f data_profile/*
$ rm -f out/*

設定ファイルの準備

$ cp sample/Earth.varvmr.mkprofile_v2.conf mkprofile_v2.conf
$ cp sample/Earth.varvmr.many.conf many.conf
$ cp sample/Earth.calc_ac.conf calc_ac.conf
$ cp sample/Earth.file.conf file.conf
  • mkprofile_v2.conf : 入出力ファイルの設定 [変更なし]
  • many.conf : 計算する範囲の設定 [変更なし]
  • calc_ac.conf : 計算条件の設定 [変更なし]
  • file.conf : 入出力ファイルの設定 [変更なし]
  • mpisubloop.conf : MPI 並列数の指定 [変更なし] [ここでは使わない]

コンパイル

コンパイル

$ make

コンパイルが成功すると, 下の実行ファイルができる.

  • mkprofile_v2
  • calc_ac_many_v2
  • merge

実行

mkprofile で気体の吸収係数をラインバイライン計算する大気プロファイルを複数 (多数) 用意し, calc_ac_many でそれら大気プロファイルに対して気体の吸収係数をラインバイライン計算する. merge は, とりあえず用いない方法を説明する.

プロファイル準備

$ ./mkprofile_v2

data_profile 以下に

  • Profile_T-001_M01-001_M02-001_M03-001.nc のようなファイル
  • VariableRange.nc

ができていれば良い.

ラインバイライン計算実行

多数回のラインバイライン計算を実行するため, 以下のように MPI を用いて並列実行すると良い (下の例は 16 並列).

$ mpiexec -n 16 ./calc_ac_many_v2 >& error.log &

標準出力に Finish と表示されれば無事実行終了. 計算結果は

out/ac_T-001_M01-001_M02-001_M03-001.nc など

親ディレクトリに戻る

$ cd ..