金星大気放射対流平衡 (定数比熱の理想気体の熱力学を考慮した計算)

定数比熱の理想気体としての金星大気の放射対流平衡計算の方法を説明する.

放射対流平衡計算 (prog11.0)

prog11.0 を用いる.

$ cd prog11.0_calc_rce
$ rm -f out/*

設定ファイルの準備

$ cp sample/Venus.calc_rce.conf calc_rce.conf
$ cp sample/Venus.calc_rte.conf calc_rte.conf
$ cp sample/Venus.planetconst.conf planetconst.conf
  • calc_rce.conf : 平衡計算の設定
    • ここでは下のように記述.

      &rce_nml
        NTime         = 1000000,
        OutputStep    = 2000,
        DelTime       = 43200.0d0,
        SurfHeatCap   = 4.217d7,
        ! For example, use http://...
        KDOptPropNcFN = '../prog07.0v2_mkkdtbl/out/kdactblv2_Venus.nc',
        OutDir        = "out",
      !
        FlagConvection      = .true.
        FlagMoistConvection = .false.
      !
        FilterCoef          = 0.0d0,
      !  FilterCoef          = 1.0d-3,
      !
        InitFileName = '../prog01.0_mkprofile_ascii/out/Venus_ProfB.nc',
        PressName  = "Press",
        MolNumName = "MolNum",
        TempName   = "Temp",
        VMRName    = "VMR"
      !
        FlagOutSpeFlux = .false.
      /
    • 内容説明 (Earth.calc_rce.conf の説明)
  • calc_rte.conf : 放射伝達方程式計算の設定 [変更なし]
  • planetconst.conf : 惑星パラメータの設定 [変更なし]

コンパイル

コンパイル.

$ make

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

  • calc_rce

実行

出力ディレクトリの準備

$ mkdir out

環境変数 (OpenMP 並列数) の指定

$ export OMP_NUM_THREADS=1

(これをやらないと意味なく並列に動作する. あるいはこれの代わりに ../MakefileInclude ないの FFLAGS から -fopenmp を削除しても良い.)

実行

$ ./calc_rce

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

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

  • out/profileXXXXXX.nc : 大気プロファイル (XXXXXX はステップ数)
  • out/fluxXXXXXX.nc : 放射加熱温度変化率
  • out/tendenciesXXXXXX.nc : 加熱温度変化率
  • out/tendencyXXXXXX.nc : 加熱温度変化率 (tendenciesXXXXXX.nc があるので不要かもしれない)

補足

かなり時間がかかるはず (数日間?) なので, バックグラウンドで実行することを勧める. 例えば,

$ ./calc_rce >& error.log &

のように.

また, 設定ファイル calc_rce.conf の

&rce_nml
  ...
  OutputStep    = 2000,      ! 出力ステップ間隔
  ...
/

で指定した時間ステップ間隔で結果のファイルが作られるため, 計算が終了するまでの時間を見積ることができる.

親ディレクトリに戻る

$ cd ..