練習・確認

手順

$ cd prog04.0_sort_ac_check

設定ファイルの準備

$ cp sample/Venus.practice.sort_ac.conf sort_ac.conf
$ cp sample/Venus.sort_ac_file.conf sort_ac_file.conf
$ cp sample/Venus.sort_ac_atm.conf sort_ac_atm.conf
$ cp sample/Venus.calc_rte.conf calc_rte.conf
$ cp sample/Venus.planetconst.conf planetconst.conf
  • sort_ac.conf : バンド・積分点の設定 [変更なし]
    • このファイルで指定されているのは, 十分に多いと思われるバンド数 (120) で十分に多いと思われる積分点 (16 積分点/バンド) で構成される k 分布である.
    • 内容説明 (Earth.sort_ac.conf の説明)
  • sort_ac_file.conf : 入出力ファイルの設定 [変更なし]
  • sort_ac_atm.conf : 入出力ファイルの設定 [変更なし]
  • calc_rte.conf : 計算条件の設定 [変更なし]
    • prog03.0 の同名ファイルと同じ
    • 内容説明 (Earth.calc_rte.conf の説明)
  • planetconst.conf : 計算条件の設定 [変更なし]
    • prog03.0 の同名ファイルと同じ
    • 内容説明 (Earth.planetconst.conf の説明)

コンパイル

コンパイル

$ make

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

  • sort_ac

実行

$ ./sort_ac

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

$ ls out/
Flux-00-10.nc   Tendency-00-10.nc   op_gas_reordered-00-10.nc
Flux-00-LBL.nc  Tendency-00-LBL.nc  op_ptcl_averaged-00-10.nc
Flux.nc         Tendency.nc

結果の確認 (全波数範囲)

k 分布計算とラインバイライン計算の結果の差を二乗平均誤差 (Root Mean Square Error; RMSE) として評価する.

ruby/GPhys スクリプトで確認する. この ruby スクリプト を用いる.

disp_comp_1Dresults_v1.rb の以下を編集して入力ファイルを指定.

ncfn1_flux     = "out/Flux-000-10.nc"       # k 分布で計算されたフラックス
ncfn1_tendency = "out/Tendency-000-10.nc"   # k 分布で計算された時間変化率
ncfn2_flux     = "out/Flux-000-LBL.nc"      # ラインバイラインで計算されたフラックス
ncfn2_tendency = "out/Tendency-000-LBL.nc"  # ラインバイラインで計算された時間変化率

スクリプトは下のように実行.

$ ruby disp_comp_1Dresults_v1.rb 1
 *** MESSAGE (SWDOPN) ***  GRPH1 : STARTED / IWS =  1.
 *** MESSAGE (UXPTTL) ***  CHARACTER LENGTH IS ZERO.
 ...
 *** MESSAGE (SWPCLS) ***  GRPH1 : PAGE =   1 COMPLETED.
 *** MESSAGE (SWDCLS) ***  GRPH1 : TERMINATED.
RMSE summary
 1st file  : out/Flux-00-10.nc
           : out/Tendency-00-10.nc
 2nd file  : out/Flux-00-LBL.nc
           : out/Tendency-00-LBL.nc
 variable : Planetary Rad.      Solar Rad.
  upflx   : 2.59421e-01    |    1.27926e-01 W m-2
  dnflx   : 1.22763e-01    |    1.20202e-01 W m-2
  flxcnv  : 5.11733e-05    |    2.29760e-05 W m-3
  tend    : 1.81266e-05    |    1.24212e-05 K s-1

結果の確認 (バンドごと)

上の例では全波数範囲のフラックス, 加熱率を確認した. バンドごとの値を確認するには, sort_ac.conf において

&band_mode_nml
  iBands =   0,
  iBande = 120,
  iModes =  10,
  iModee =  10
/

と指定して実行し, 結果を この ruby スクリプト を用いて図示すると良い.

スクリプトは下のように実行.

$ ruby disp_flxflxcnvtend_diff_spe.rb 1

惑星放射, 太陽(恒星)放射の 上向きフラックス, 下向きフラックス, フラックスの収束, 温度変化率の バンドごとのラインバイライン計算と k 分布計算の RMSE が図示され, どのバンドがボトルネックになっているか確認できる.

親ディレクトリに戻る

$ cd ..