火星の実験を行う方法を説明します.
この計算には以下の物理過程を用いています.
本実験では, 地面特性のデータ, 放射計算用データが必要です. したがって, 実験の実行は以下の 4 つのステップで行います.
practice ディレクトリに移動してください.
$ cd practice
そのディレクトリ内で, make コマンドを実行してください. 自動的に実行ファイルや NAMELIST ファイルがコピーされます. make コマンド入力後, まずディレクトリ名を適宜入力してください. (下記の例では Mars-exp としています). それ以降の質問はとりあえずそのまま Enter キーを入力してください.
$ make ****** Setup a directory for a experiment ****** Enter directory name [testXX]: Mars-exp Directory in which executable files are prepared [../src/main]: :
そしてそのディレクトリに移動します.
$ cd Mars-exp
なお, このディレクトリ内以外でも, 実行ファイル, 設定ファイル (namelist ファイル) があれば計算を行うことはできます.
init_data と init_data_M_T21L32.nml を用いて初期値ファイル init_T21L32.nc を作成します.
$ ./init_data -N=init_data_M_T21L32.nml *** MESSAGE [init_data] *** Run: Initial data generation *** MESSAGE [init_data] *** -- version = $Name: dcpam5-20110225-4 $$Id: exp-Mars.rd,v 1.4 2011-02-21 07:19:54 yot Exp $ *** MESSAGE [namelist_util] *** ----- Initialization Messages ----- *** MESSAGE [namelist_util] *** MaxNmlArySize = 256 *** MESSAGE [namelist_util] *** -- version = $Name: dcpam5-20110225-4 $$Id: exp-Mars.rd,v 1.4 2011-02-21 07:19:54 yot Exp $ *** MESSAGE [timeset] *** NAMELIST group "timeset_nml" is loaded from "init_data_M_T21L32.nml". : *** MESSAGE [initial_data] *** QVapAvr = 0. *** MESSAGE [initial_data] *** Ueq = 0. *** MESSAGE [initial_data] *** *** MESSAGE [initial_data] *** -- version = $Name: dcpam5-20110225-4 $$Id: exp-Mars.rd,v 1.4 2011-02-21 07:19:54 yot Exp $ *** MESSAGE [HistoryClose] *** "init_T21L32.nc" is closed ############## CPU TIME SUMMARY ################ others 0.120000E-01 ------------------------------------------------ TOTAL TIME = 0.120000E-01
実験用データとして, 海表面温度, 地面特性, 海表面密度, オゾン分布のデータを 以下に用意してあります.
上記のページから "sp_for_Mars_T21_MGS+MGS+cons.nc", "lnactbl15m_2006-07-13.nc" をダウンロードして, 実験を行うディレクトリに置いてください.
最後に dcpam_main, dcpam_M_T21L32.nml を用いて実験を実施します. (注: 本実験は付属の設定ファイル dcpam_M_T21L32.nml を使うと発散します. 詳細は後述.) 解像度 T21L32 で 2 日分計算を行います. リスタートデータ, 地表面リスタートデータといくつかのヒストリデータ ファイルが出力されます.
$ ./dcpam_main -N=dcpam_M_T21L32.nml | tee Mars.log *** MESSAGE [namelist_util] *** ----- Initialization Messages ----- *** MESSAGE [namelist_util] *** MaxNmlArySize = 256 *** MESSAGE [namelist_util] *** -- version = $Name: dcpam5-20110225-4 $$Id: exp-Mars.rd,v 1.4 2011-02-21 07:19:54 yot Exp $ *** MESSAGE [dcpam_main] *** NAMELIST group "dcpam_main_nml" is loaded from "dcpam_M_T21L32.nml". &DCPAM_MAIN_NML FLAGDYNAMICS=T,FLAGFULLPHYSICS=T,FLAGHS94=F,FLAGVENUSSIMPLE=F,FLAGJUPITERSIMPLE=F,FLAGRADIATIONDENNOUAGCM=F,FLAGRADIATIONDCPAMEV1=F,FLAGRADIATIONDCPAMMV1=T,FLAGRADIATIONSL09=F,FLAGPHYIMP1LAYMODEL=F,FLAGPHYIMPSOILMODEL=T,FLAGPHYIMPSOILMODELSO=F,FLAGPHYIMPATMONLY=F,FLAGVERTICALFILTER=F/ *** MESSAGE [dcpam_main] *** FlagDynamics=<T>. *** MESSAGE [dcpam_main] *** FlagRadiationDennouAGCM=<F>. *** MESSAGE [dcpam_main] *** FlagRadiationDcpamEV1 =<F>. *** MESSAGE [dcpam_main] *** FlagRadiationDcpamMV1 =<T>. :
初期値データ, 地表面データ, 実験設定を変更する場合には, 上記の実行に際して, init_data_M_T21L32.nml, dcpam_M_T21L32.nml を変更してください.
注: 本実験は付属の設定ファイル dcpam_M_T21L32.nml を使うと発散します. 原因は地形の起伏のある条件で地表面気圧一様な初期値を用いているためです. 対処法としては, 地形の起伏のない条件で計算することや初期数日のみ小さな時間刻みで 計算することなどが考えられます. 地形の起伏のない条件で計算するためには, 設定ファイル dcpam_M_T21L32.nml の中で, &surface_properties_nml の SurfHeightSetting に 'generate_internally' と指定します.