[English | Japanese] [GFD Dennou Club | deepconv Project]
ここでは, 小高他(2006)で行なわれた, 単独のホットプリュームを上昇させる実験を実行する方法を説明します.
この計算には以下の物理過程を用いています.
本実験はデフォルトの設定で行なうことが出来ます. デフォルト設定での計算をする場合はこの「概要」のみを読めば十分です. デフォルトとは異なる設定で計算をする場合は, 「詳細」をご覧ください.
火星主成分凝結対流用のソースのコンパイルが完了すれば, 計算を実行することができます. コンパイル時には make ではなく, make mmc と打つことに注意して下さい. 例えばカレントディレクトリがソースツリーディレクトリである場合, 以下のコマンドを打つと計算が実行されます. 計算には 10 分程度かかると思います.
$ ./bin/arare -N=arare-mmc.conf
計算終了後, gpview などで描画を行ないます. 例えば gpview で描画する場合, 以下のようにコマンドを打ちます.
$ gpview --wsn 4 --range -4.0:4.0 MarsCond_PotTemp.nc@PotTempDist,t=1000
gpview の使用方法は GPhys コマンドチュートリアル などを参照してください.
MarsCond_VelZ.nc の変数 VelZ や MarsCond_DensCloud.nc の変数 DensCloud MarsCond_PotTemp.nc の変数 PotTempDist に関して描画を行なうと以下のような図が得られます.
デフォルトとは異なる設定で実験を実行する場合, 以下の 4 つのステップで計算を行います.
サーマル上昇実験を行なう為には, 次に示すように src-mmc 以下にあるプログラムを手動でコピーして下さい.
$ cp main/arare_091012_masstest6-8_advlong-filter.f90 main/arare.f90 $ cp io/historyfileio_mmconv2_masstest7.f90 io/historyfileio.f90 $ cp physocs/densitycloud_turb-masstest2.f90 physics/densitycloud.f90 $ cp physics/latentheat_all.f90 physics/latentheat.f90 $ cp physics/masscondense_threshold-masstest4.f90 physics/masscondense.f90 $ cp physics/adiation_balance4.f90 physics/radiation.f90 $ cp setup/storepottemp_mmconv2.f90 setup/storepottemp.f90 $ cp setup/storedenscloud_2d-5.f90 setup/storedenscloud.f90 $ cp moist/moistbuoyancy_org.f90 moist/moistbuoyancy.f90 $ cp env/basicenv_smooth.f90 env/basicenv.f90 $ cp numdiffusion_smooth_alpha1e-4.f90 util/numdiffusion.f90
ソースツリーディレクトリ内の火星主成分凝結対流用の namelist ファイル arare-mmc.conf を編集します.
namelist ファイルの各項目の詳細については こちら をご覧ください.
編集項目は多数存在しますが, 以下では(編集しても問題が起こらないと期待される) そのいくつかをピックアップします.
積分時間
TimeInt = 1800.0d0
デフォルトでは 1800 sec となっていますが, 計算機の性能や気分に合わせて長くしたり短くしたりしてみて下さい.
データ出力時間間隔
TimeDisp = 100.0d0
デフォルトでは 100 sec となっていますが, 計算機の性能や気分に合わせて長くしたり短くしたりしてみて下さい.
サーマルの振幅
DelMax = 4.0d0
値を小さくし過ぎると, 雲が出来る前にサーマルがつぶれてしまいます. また値を大きくし過ぎると, 物理的に意味のある解が得られなくなります. 基本場を考慮すると, 10 K を超えないようにするのが良いでしょう. また DelMax を負値にすると冷たい気塊が下降する実験を行なうことができます.
初期におけるサーマルの中心位置(鉛直方向)の領域に対する割合
ZcRate = 0.0d0
0 (下端)から 1 (上端)の間で指定します. デフォルトではモデル下端にサーマルを配置しています. 例えばちょうど中心に配置する場合は, 0.5d0 とします.
臨界飽和比
SatRatioCr = 1.0d0
凝結が始まるまでにどれほど過冷却にならなければならないかを示すパラメータです. 物理的に意味がある計算を行なう為には 1 以上に設定する必要があります. ちなみに火星大気では 1.0 -- 1.35 の間の値をとると言われています.
ソースツリーディレクトリで, make mmc コマンドを実行してください. 既にコンパイルを実行している場合には, make mmc を行なう前に make clean を実行して下さい.
$ make clean $ make mmc
最後に計算を実行します. リスタートデータ, 地表面リスタートデータといくつかのヒストリデータ ファイルが出力されます.
実行プログラム bin/arare は引数に何も指定しないと, 作業ディレクトリ内の arare.conf を namelist ファイルとして読み込みます. 火星主成分凝結計算を行なう場合, arare-mmc.conf を arare.conf としてコピー してから, 実行します.
$ cp arare-mmc.conf arare.conf $ ./bin/arare
または namelist ファイルを指定して実行することもできます.
$ ./bin/arare -N=arare-mmc.conf
実行時には以下のオプションを与えることができます.
-N=(NAMELIST ファイルのパス) または --namelist=(NAMELIST ファイルのパス) NAMELIST ファイルを陽に指定する. -D または --debug デバッグメッセージを出力する. -H または --help ヘルプメッセージを表示して終了する.
また, 標準出力および標準エラー出力を保存することもできます. 例えばシェルが bash の場合,
$ /work/deepconv/bin/arare > arare.log 2> arare_error.log
とします. これにより, 標準出力ファイル arare.log, 標準エラー出力ファイル arare_error.log が生成されます.
計算が完了すると, 以下のようなデータが出力されます.
MarsCond_restart2.nc リスタートファイル MarsCond_BasicZ.nc 基本場変数 MarsCond_DensCloud.nc 雲密度 MarsCond_Exner.nc 無次元圧力関数 MarsCond_H2O-g.nc 水蒸気混合比(本計算ではゼロが出力されるだけ) MarsCond_H2O-s-Cloud.nc 雲水混合比(本計算ではゼロが出力されるだけ) MarsCond_H2O-s-Rain.nc 雨水混合比(本計算ではゼロが出力されるだけ) MarsCond_Kh.nc 乱流拡散係数(運動量) MarsCond_Km.nc 乱流拡散係数(スカラー量) MarsCond_PotTemp.nc 温位 MarsCond_SatRatio.nc 飽和比 MarsCond_VelX.nc 速度(X 成分) MarsCond_VelZ.nc 速度(Z 成分) MarsCond_Zprof.nc 診断量
得られた netcdf ファイルに関して, 描画を行なうと, 「概要」で示したような図が得られます.
途中から続けて計算を行ないたい場合には, arare-mmc.conf を編集します.
例えば MarsCond_restart2.nc を基にリスタート計算を行ないたい場合は, 以下のように記述します.
(前) InitFile = "" !初期値ファイル (後) InitFile = "MarsCond_restart2.nc"
リスタート計算後に出力されるリスタートファイルの名前を編集するには, 以下の項目を編集します. 特に, リスタートを開始するファイルとリスタート計算後に出力されるファイル の名前が同一である場合, 上書きされてリスタートを開始するファイルが無くな ってしまうので注意して下さい.
ReStartFile = "MarsCond_restart3.nc"
arare-mmc.conf の編集が終わったら, 以下のコマンドで実行を行ってください. なお, 出力されるデータファイルの名前はデフォルトでは決まっているので, 以前計算したデータはリネームするか, 別のディレクトリに移しておくことを お薦めします.
$ ./bin/arare -N=arare-mmc.conf