練習・確認
手順
$ cd prog04.0_sort_ac_check
設定ファイルの準備
地球用サンプル設定ファイル
$ cp sample/Earth.practice.sort_ac.conf sort_ac.conf $ cp sample/Earth.sort_ac_file.conf sort_ac_file.conf $ cp sample/Earth.sort_ac_atm.conf sort_ac_atm.conf $ cp sample/Earth.calc_rte.conf calc_rte.conf $ cp sample/Earth.planetconst.conf planetconst.conf
- sort_ac.conf : バンド・積分点の設定 [変更なし]
- このファイルで指定されているのは, 十分に多いと思われるバンド数 (82) で十分に多いと思われる積分点 (16 積分点/バンド) で構成される k 分布である.
- 内容説明
- sort_ac_file.conf : 入出力ファイルの設定 [変更なし]
- sort_ac_atm.conf : 入出力ファイルの設定 [変更なし]
- calc_rte.conf : 計算条件の設定 [変更なし]
- prog03.0 の同名ファイルと同じ
- 内容説明
- planetconst.conf : 計算条件の設定 [変更なし]
- prog03.0 の同名ファイルと同じ
- 内容説明
コンパイル
コンパイル
$ 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-00-10.nc" # k 分布で計算されたフラックス ncfn1_tendency = "out/Tendency-00-10.nc" # k 分布で計算された時間変化率 ncfn2_flux = "out/Flux-00-LBL.nc" # ラインバイラインで計算されたフラックス ncfn2_tendency = "out/Tendency-00-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 : 6.42598e-01 | 8.31333e-03 W m-2 dnflx : 3.54186e-01 | 7.38374e-02 W m-2 flxcnv : 3.84955e-05 | 2.13649e-05 W m-3 tend : 5.25572e-06 | 6.65127e-06 K s-1
結果の確認 (バンドごと)
上の例では全波数範囲のフラックス, 加熱率を確認した. バンドごとの値を確認するには, sort_ac.conf において
&band_mode_nml iBands = 0, iBande = 82, iModes = 10, iModee = 10 /
と指定して実行し, 結果を この ruby スクリプト を用いて図示すると良い.
スクリプトは下のように実行.
$ ruby disp_flxflxcnvtend_diff_spe.rb 1
惑星放射, 太陽(恒星)放射の 上向きフラックス, 下向きフラックス, フラックスの収束, 温度変化率の バンドごとのラインバイライン計算と k 分布計算の RMSE が図示され, どのバンドがボトルネックになっているか確認できる.
親ディレクトリに戻る
$ cd ..