練習・確認
手順
$ 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 : 入出力ファイルの設定 [変更なし]
- 内容説明 (Earth.sort_ac_file.conf の説明)
- sort_ac_atm.conf : 入出力ファイルの設定 [変更なし]
- 内容説明 (Earth.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 ..