大気プロファイルの変更
大気プロファイルを変更する方法を説明する.
大気プロファイルの変更
概要
prog01.0_mkprofile_ascii のプログラムは, mkprofile.conf の InASCIIFn で指定するテキストファイルに保存されたプロファイルを, NetCDF 形式でファイルに保存する. したがって, 計算に与える大気プロファイルを変更するには, prog01.0_mkprofile_ascii のプログラムが読む決められた書式でテキストファイルに保存すれば良い.
テキスト形式大気プロファイルデータの書式
prog01.0_mkprofile_ascii のプログラムが読み込むテキストファイルの書式について説明する.
大気レベル/層の構造
大気レベル・層に対して以下の物理量を指定する.
P : 圧力 (@大気レベル(層境界)) T : 温度 (@大気レベル(層境界)) VMR : 体積混合比 (@大気レベル(層境界)) Rad : 粒子の半径 (@大気層(中間)) MMR : 粒子の質量混合比 (@大気層(中間))
ただし, 雲, エアロゾルを考慮しない場合には粒子の値は不要.
大気レベル/層ごとに下のように配置されているとする.
========== P(NLev) , T(NLev) , VMR(NLev) (NLev)-th level (upper boundary) - - - - Rad(NLev-1), MMR(NLev-1) (NLev-1)-th layer ========== P(NLev-1), T(NLev-1), VMR(NLev-1) (NLev-1)-th level - - - - Rad(NLev-2), MMR(NLev-2) (NLev-2)-th layer ... - - - - Rad(3), MMR(3) 2nd layer ========== P(3), T(3), VMR(3) 3rd level - - - - Rad(2), MMR(2) 2nd layer ========== P(2), T(2), VMR(2) 2nd level - - - - Rad(1), MMR(1) 1st layer ========== P(1), T(1), VMR(1) 1st level (lower boundary)
ファイルフォーマット
上記の大気構造中の物理量配置にたいして, ファイルは下のようなフォーマットである必要がある.
NLev : Number of levels (layer interfaces) NMol : Number of molecules MolNumX : Xth molecular number BottomT : temperature at the bottom (lower boundary) P(k) : pressure at k'th level T(k) : temperature at k'th level MolX_VMR(k) : volume mixing ratio of Xth molecule at k'th level NPtcl : Number of particles PtclYName : name of Yth particle PtclYDens : density of Yth particle PtclYRad(l) : effective radius of of Yth particle at l'th layer PtclYMMR(l) : mass mixing ratio of of Yth particle at l'th layer
ただし, 雲, エアロゾルを考慮しない場合には NPtcl = 0 とし, PtclY* の値は不要.
l.1 : Comment (This line is not read, actually.) l.2 : NLev l.3 : NMol l.4 : MolNum1, MolNum2, ... l.5 : BottomT l.6 : P(1) , T(1) , Mol1_VMR(1) , Mol2_VMR(1) , ... l.7 : P(2) , T(2) , Mol1_VMR(2) , Mol2_VMR(2) , ... ... l.(5+NLev) : P(NLev), T(NLev), Mol1_VMR(NLev), Mol2_VMR(NLev), ... l.(5+NLev+1) : NPtcl l.(5+NLev+2) : Ptcl1Name, Ptcl2Name, ... l.(5+NLev+3) : Ptcl1Dens, Ptcl2Dens, ... l.(5+NLev+3+1) : Ptcl1Rad(1) , Ptcl2Rad(1) , ... l.(5+NLev+3+2) : Ptcl1Rad(2) , Ptcl2Rad(2) , ... ... l.(5+NLev+3+NLev-1) : Ptcl1Rad(NLev-1), Ptcl2Rad(NLev-1), ... l.(5+NLev+3+NLev-1+1) : Ptcl1MMR(1) , Ptcl2MMR(1) , ... l.(5+NLev+3+NLev-1+2) : Ptcl1MMR(2) , Ptcl2MMR(2) , ... ... l.(5+NLev+3+NLev-1+NLev-1) : Ptcl1MMR(NLev-1), Ptcl2MMR(NLev-1) , ...
プログラムの実行
変更した大気プロファイルデータを用いて prog01.0_mkprofile_ascii で NetCDF ファイルを作成する.
設定ファイルの準備
(場所は prog01.0_mkprofile_ascii ディレクトリ内.)
mkprofile.conf: 入出力ファイルの指定
&file_nml InASCIIFn = "data/Venus.txt", OutNcFn = "out/Venus_VIRA+GasVMR+CldMMR+UVabsMMR_H2O_CO2_CO_SO2_HF_OCS_N2.nc" /
- 変数
- InASCIIFn : 入力ファイル名 (テキスト形式)
- 自分で作成したファイル名のパスを指定.
例えば,
InASCIIFn = "Jupiter_Simple.txt"
- OutNcFn : 出力ファイル名 (netcdf 形式)
例えば,
OutNcFn = "out/Jupiter_Simple.nc"
- InASCIIFn : 入力ファイル名 (テキスト形式)
- 変数
コンパイル
$ make
コンパイルが成功すると下の実行ファイルができる.
- mkprofile
実行
$ ./mkprofile
Finish と表示されれば無事実行終了.
指定した出力ファイルが出来ていることを確認する.