木星大気計算

木星大気放射場のラインバイライン計算を行う際の,

2. 気体吸収係数の計算

について説明する.

準備

吸収線および連続吸収の光学データを準備する.

データファイルのダウンロード

下のファイルをダウンロードする

$ wget https://www.gfd-dennou.org/arch/yot/students/iwaya75/radmodels/data/radmodels-data-update/HITRAN2012/NC_By-Molecule/31_hit12.nc
$ wget https://www.gfd-dennou.org/arch/yot/students/iwaya75/radmodels/data/radmodels-data-update/HITRANDUMMY/NC_By-Molecule/91_dummy-He.nc

データファイルの配置

以前の準備の項目で用意した radmodels-data のディレクトリの下に, 下のようにファイルを配置する (存在しないディレクトリは適宜作成する).

radmodels-data/HITRAN2012/NC_By-Molecule/31_hit12.nc
radmodels-data/HITRANDUMMY/NC_By-Molecule/91_dummy-He.nc

ラインバイライン吸収係数計算 (prog02.0)

$ cd prog02.0_calc_ac

設定ファイルの準備

$ cp sample/Earth.calc_ac.conf calc_ac.conf
$ cp sample/Earth.calc_ac_file.conf calc_ac_file.conf
  • calc_ac.conf : 計算条件の設定 (! 以降はコメント)

    &wn_nml
      DelWaveNum        =    10.0d2,
      WaveNumS          =     5.0d2,
      WaveNumE          = 49995.0d2,
    /
    &gas_nml
      FlagNetCDF        = .true.,
      HITFileName(1) = "../../../radmodels-data/HITRAN2012/NC_By-Molecule/01_hit12.nc",
      HITFileName(2) = "../../../radmodels-data/HITRAN2012/NC_By-Molecule/02_hit12.nc",
      HITFileName(3) = "../../../radmodels-data/HITRAN2012/NC_By-Molecule/03_hit12.nc",
    !
      FlagCalcLine(1:3) = 3*.true.,
      FlagCalcCont(1:3) = 3*.true.,
    !
      AirBroadHalfWidFac(1:3) = 3*1.0d0,
    !
      CIAFileName(1) = ""
    !
      XSCFileName(1) = ""
    !
      LineCutOffWaveNum(1:3) = 3*25.0d2,
    /

    変数の説明と変数の変更.

    • wn_nml
      • DelWaveNum : ラインバイライン計算する波数間隔 (m-1)
        • 下のように指定.

          DelWaveNum        =    10.0d2,
      • WaveNumS : ラインバイライン計算する波数の始点 (m-1)
        • 下のように指定.

          WaveNumS          =    15.0d2,
      • WaveNumE : ラインバイライン計算する波数の終点 (m-1)
        • 下のように指定.

          WaveNumE          = 49995.0d2,
    • gas_nml
      • FlagNetCDF : 入力する吸収線ファイルの形式が NetCDF であることのフラグ
        • 変更不要
      • HITFileName(X) : X 番目の気体種の HITRAN 吸収線データファイルのパス.
        • 下のように指定.

          HITFileName(1) = "../../../radmodels-data/HITRAN2012/NC_By-Molecule/01_hit12.nc",
          HITFileName(2) = "../../../radmodels-data/HITRAN2012/NC_By-Molecule/06_hit12.nc",
          HITFileName(3) = "../../../radmodels-data/HITRAN2012/NC_By-Molecule/11_hit12.nc",
          HITFileName(4) = "../../../radmodels-data-update/HITRAN2012/NC_By-Molecule/31_hit12.nc",
          HITFileName(5) = "../../../radmodels-data/HITRAN2012/NC_By-Molecule/45_hit12.nc",
          HITFileName(6) = "../../../radmodels-data-update/HITRANDUMMY/NC_By-Molecule/91_dummy-He.nc",
        • 大気プロファイルのファイルに格納されている気体種の順番に合わせて, 対応する気体種の吸収線データファイルのパスを指定.
          • 上記では, 順に H2O (HITRAN molecular number 1), CH4 (6), NH3 (11), H2S (31), H2 (45), He (HITRAN に含まれないため仮に 91) の吸収線データファイルを指定.
      • FlagCalcLine(X) : X 番目の気体種の吸収線による吸収係数を計算するフラグ
        • 下のように指定.

          FlagCalcLine(1:6) = 6*.true.,
        • すべての種の吸収線による吸収を計算.
      • FlagCalcCont(X) : X 番目の気体種の MTCKD モデルによる連続吸収の吸収係数を計算するフラグ
        • 下のように指定.

          FlagCalcCont(1:6) = .true.,5*.false.,
        • H2O のみ計算.
      • AirBroadHalfWidFac(X) : X 番目の気体種の吸収線の他種との衝突による衝突幅にかけファクタ
        • 下のように指定.

          AirBroadHalfWidFac(1:6) = 6*1.0d0,
        • すべての種に対して 1 倍.
      • LineCutOffWaveNum(X) : X 番目の気体種の吸収線計算の際の打ち切り波数 (m-1)
        • 下のように指定.

          LineCutOffWaveNum(1:6) = 6*25.0d2,
        • すべての種に対して 25 cm-1.
      • CIAFileName(X) : 衝突誘起吸収 (CIA) のデータファイルのパス (X 番目の気体種とは限らない).
        • 下のように指定.

          CIAFileName(1) = "../../../radmodels-data/CIA/NC_data/45-45_2011.cia.nc",
          CIAFileName(2) = "../../../radmodels-data/CIA/NC_data/45-91_2011.cia.nc",
        • 45-45_2011.cia.nc は H2-H2 衝突により誘起される吸収のデータファイル
        • 45-91_2011.cia.nc は H2-He 衝突により誘起される吸収のデータファイル
      • XSCFileName(X) : 吸収断面積のデータファイルのパス (X 番目の気体種とは限らない).
        • 変更不要
  • calc_ac_file.conf : 計算に用いるファイル等の設定 (! 以降はコメント)

    &file_nml
      InFileName     = "../prog01.0_mkprofile/out/Earth_ICRCCM_LW_Case27_MLS_CO2-300ppmv.nc",
      OutputFileName = "./out/Earth_ICRCCM_LW_Case27_MLS_CO2-300ppmv_ac.nc",
    !
      PressName    = "Press",
      MolNumName   = "MolNum",
      TempName     = "Temp",
      SurfTempName = "Ts",
      VMRName      = "VMR"
    /

    変数の説明と変数の変更

    • InFileName : 入力大気プロファイルのファイルのパス.
      • 前項で作成した木星の大気プロファイルを保存した NetCDF のファイルのパス
        • 例えば,

          InFileName      = "../prog01.0_mkprofile_ascii/out/Jupiter_Simple.nc",
    • OutputFileName : 出力ファイルのパス.
      • 好きなファイル名を指定.
        • 例えば,

          OutputFileName  = "./out/Jupiter_Simple_ac.nc",
    • PressName : 大気プロファイルのファイル内の圧力の変数名.
      • 変更不要.
    • MolNumName : 大気プロファイルのファイル内の HITRAN 分子種番号の変数名.
      • 変更不要.
    • TempName : 大気プロファイルのファイル内の温度の変数名.
      • 変更不要.
    • SurfTempName : 大気プロファイルのファイル内の下端温度の変数名.
      • 変更不要.
    • VMRName : 大気プロファイルのファイル内の体積混合比の変数名.
      • 変更不要.

コンパイル

$ make

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

  • calc_ac
  • merge

実行

$ ./calc_ac

Finish と表示されれば無事実行終了.

計算結果のファイルは以下 (OutputFileName を上のように指定した場合).

  • out/Jupiter_Simple_ac.nc

親ディレクトリに戻る

$ cd ..