TRAPPIST-1 スペクトルの利用した放射計算

TRAPPIST-1 スペクトルの利用したラインバイライン計算を行う際の,

5. 入射放射フラックスの計算

について説明する.

TRAPPIST-1 のスペクトルの準備

概要

TRAPPIST-1 のスペクトルデータを決められた書式でテキストファイルに保存する. 保存したテキストファイルのデータは, prog02.3_calc_stellarspectrum のプログラムで netcdf 形式でファイルに保存する.

なお, 下の説明では "um" は「マイクロメートル」を表す.

TRAPPIST-1 のスペクトルデータ

利用可能な TRAPPIST-1 のスペクトルについて, Martin Turbet さんに尋ねた (2024 年 6 月 14 日) ところ,

とのことだった.

また, TRAPPIST-1 星系の惑星の気候モデルの相互比較実験を実施した Fauchez et al. (2020) において使われたスペクトルを提供して頂いた.

今回はそのスペクトルを使うことにする.

スペクトルデータは以下である (非公開領域にあるため要パスワード).

  • 波長 (単位は um)
  • フラックス (単位は W m-2 um-1 に相当するもの. 絶対値に意味はない.)

スペクトルデータを保存するテキスト形式

prog02.3_calc_stellarspectrum のプログラムに テキスト形式のスペクトルデータを読ませるには, 下のような書式で値を保存する.

  • 1 カラム目 : 波数 (m-1)
  • 2 カラム目 : フラックス密度 (W m-2 (m-1)-1)

(単位に注意すること. プログラム内ではすべての物理量を MKS 単位系で扱うため, 入力データもすべて MKS 単位の値になっている.)

つまり下のような形式になる.

<wavenuber 1>   <flux density 1>
<wavenuber 2>   <flux density 2>
<wavenuber 3>   <flux density 3>
...

データの波数の間隔は等間隔である必要はない.

テキスト形式のスペクトルデータの準備

上に説明した Turbet さんから頂いたスペクトルデータを, 上に説明した書式で保存する. つまり下のように加工する.

  • 別のファイルに保存されている波長とフラックス密度を一つのファイルに保存.
    • ただし, 保存する値は波数でなければならないため波長から変換.
    • 保存するファイル名は好きに指定して良い. ここでは下の説明のために

      TRAPPIST-1_THAI_intercomparison.txt

      としておく.

  • 頂いたスペクトルデータは波長 10 um (波数 1000 cm-1 = 100000 m-1) あたりまでの値であるため, 長波長のスペクトル密度を対応する適当なプランク関数で外挿.
    • プランク関数に用いる温度は 2600 K (Fauchez et al., 2020).
    • 外挿する波数範囲は, 入射放射量をゼロとしても目的の放射計算に影響を及ぼさない範囲とすればよい.
      • とは言え, よくわからなければひとまず 1000 um (波数 10 cm-1 = 1000 m-1) まで計算しておけば問題ないだろう.

ラインバイライン入射放射フラックス計算 (prog02.3)

$ cd prog02.3_calc_stellarspectrum

設定ファイルの準備

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

    内容の説明.

    &spectrum_nml
      StrTemp    = -1.0d0,
      StrFluxTOA = 1366.1d0
    /

    (注意: 不要なコメント文は削除している.)

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

    • spectrum_nml
      • StrTemp : 中心星 (TRAPPIST-1) 表面温度.
        • 正の場合はプランク関数が計算される.
        • 負の場合は無効.
        • ここでは変更不要.
      • StrFluxTOA : 中心星 (TRAPPIST-1) 放射の大気上端におけるフラックス
        • 下のように指定

          StrFluxTOA = 1366.1d0
        • この値は地球の太陽定数.
        • ここでは変更不要.
  • calc_str_spe_file.conf : 計算に用いるファイルの設定 (! 以降はコメント)

    内容の説明.

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

    &file_nml
      WaveNumFileName = "../prog02.0_mkwnlist/out/wnlist.nc",
      InFileName      = "data/solar_irradiance_Gueymard2004.nc",
      WaveNumName     = "wn",
      SpeName         = "irradiance"
      OutFileName     = "./out/solar_flux_Gueymard2004_1366.1Wm-2.nc",
      Comment         = 'Solar spectral irradiance of Gueymard (2004), 1366.1 Wm-2'
    /

    (注意: 不要なコメント文は削除している.)

    • file_nml
      • WaveNumFileName : 計算波数を指定したファイル名.
        • ここでは変更不要.
      • FlagInFileASCII : テキスト形式の入力ファイルを使うフラグ.
        • 上には項目がないため追記するする.
        • .true. の場合は入力ファイル (InFileName で指定) がテキスト形式. .false. の場合は NetCDF 形式.
        • ここではテキスト形式の入力ファイルを想定して .true. を指定.
      • InFileName : 中心星 (TRAPPIST-1) スペクトルの入力ファイルのパス
        • 例えば下のように指定.

          InFileName = "./TRAPPIST-1_THAI_intercomparison.txt"
      • WaveNumName : [入力ファイルが NetCDF 形式の場合に有効] 波数の変数名.
        • ここでは変更不要.
      • SpeName : [入力ファイルが NetCDF 形式の場合に有効] 波数の変数名.
        • ここでは変更不要.
      • OutFileName : 出力ファイルのパス.
        • 例えば下のように指定.

          OutFileName = "./out/trappist-1_flux_1366.1Wm-2.nc",
      • Comment : コメント
        • 例えば下のように指定.

          Comment = 'TRAPPIST-1 spectral flux used in THAI intercomparison, 1366.1 Wm-2'

コンパイル

$ make

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

  • calc_str_spe

実行

$ ./calc_str_spe

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

計算結果のファイルは以下.

  • out/trappist-1_flux_1366.1Wm-2.nc

親ディレクトリに戻る

$ cd ..