火星の実験を行う方法を説明します.
この計算には以下の物理過程を用いています.
本実験では, 地面特性のデータ, 放射計算用データが必要です. したがって, 実験の実行は以下の 4 つのステップで行います.
dcpam5 の数値実験はソースツリー内部では行わず ソースツリーとは別の外部ディレクトリにて行うことを推奨いたします.
まず dcpam5 ソースのトップディレクトリ(以下の例では dcpam5-YYYYMMDD とする)に移動してください. 以下では dcpam5 ソースディレクトリの隣に ../dcpma5-exp/Mars-exp ディレクトリを作成し, そこで実験を行うことにします. 次のように ../dcpam5-exp/Mars-exp ディレクトリを作成し, 移動してください.
$ mkdir -p ../dcpam5-exp/Mars-exp $ cd ../dcpam5-exp/Mars-exp
次に, このディレクトリに実行ファイルと設定ファイル置き場を作成します.
$ mkdir bin $ mkdir conf
最後に作成したディレクトリに実行ファイルと設定ファイルをコピーします.
$ cp ../../dcpam5-YYYYMMDD/src/main/dcpam_main bin $ cp ../../dcpam5-YYYYMMDD/src/main/dcpam_init_data bin $ cp ../../dcpam5-YYYYMMDD/src/main/dcpam_init_data_surface bin $ cp ../../dcpam5-YYYYMMDD/exp_setup_files/*.conf conf
なお, 実行ファイルと設定ファイル (NAMELIST ファイル) があれば, どのディレクトリにおいても計算を行うことができます.
dcpam_init_data と init_data_M_T21L32.conf, および dcpam_init_data_surface と surface_data_M_T21.conf を用いて初期値ファイル init_T21L32.nc を作成します.
まず dcpam_init_data で大気中の変数の初期値を作成します.
$ ./bin/dcpam_init_data -N=./conf/init_data_M_T21L32.conf *** MESSAGE [init_data] *** Run: Initial data generation *** MESSAGE [init_data] *** -- version = $Name: dcpam5-20140218 $$Id: exp-Mars.rd,v 1.13 2013-10-06 13:46:11 yot Exp $ *** MESSAGE [namelist_util] *** ----- Initialization Messages ----- *** MESSAGE [namelist_util] *** MaxNmlArySize = 256 *** MESSAGE [namelist_util] *** -- version = $Name: dcpam5-20140218 $$Id: exp-Mars.rd,v 1.13 2013-10-06 13:46:11 yot Exp $ *** MESSAGE [timeset] *** NAMELIST group "timeset_nml" is loaded from "./conf/init_data_M_T21L32.conf". : *** MESSAGE [initial_data] *** QVapAvr = 0. *** MESSAGE [initial_data] *** Ueq = 0. *** MESSAGE [initial_data] *** *** MESSAGE [initial_data] *** -- version = $Name: dcpam5-20140218 $$Id: exp-Mars.rd,v 1.13 2013-10-06 13:46:11 yot Exp $ *** MESSAGE [HistoryClose] *** "init_T21L32.nc" is closed ############## CPU TIME SUMMARY ################ others 0.120000E-01 ------------------------------------------------ TOTAL TIME = 0.120000E-01
次に dcpam_init_data_surface で惑星表面の変数の初期値を作成します.
$ ./bin/dcpam_init_data_surface -N=./conf/surface_data_M_T21.conf *** MESSAGE [sst_data] *** Run: SST data generation *** MESSAGE [sst_data] *** -- version = $Name: dcpam5-20140218 $$Id: exp-Mars.rd,v 1.13 2013-10-06 13:46:11 yot Exp $ *** MESSAGE [namelist_util] *** ----- Initialization Messages ----- *** MESSAGE [namelist_util] *** MaxNmlArySize = 256 *** MESSAGE [namelist_util] *** -- version = $Name: dcpam5-20140218 $$Id: exp-Mars.rd,v 1.13 2013-10-06 13:46:11 yot Exp $ *** MESSAGE [timeset] *** NAMELIST group "timeset_nml" is loaded from "surface_data_M_T21.conf". &TIMESET_NML CAL_TYPE=noleap ,MONTH_IN_YEAR=-1,DAY_IN_MONTH=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, : *** MESSAGE [HistoryCreate1] *** "surface_T21.nc" is created (origin=0. [day]) *** MESSAGE [HistoryClose] *** "surface_T21.nc" is closed ############## CPU TIME SUMMARY ################ others 0.800000E-02 ------------------------------------------------ TOTAL TIME = 0.800000E-02
実験用データとして, 海表面温度, 地面特性, 海表面密度, オゾン分布のデータを 以下に用意してあります.
上記のページから "sp_for_Mars_T021_MGS.nc", "lnactbl15m_2006-07-13.nc" をダウンロードして, 実験を行うディレクトリに置いてください.
最後に dcpam_main, dcpam_M_T21L32.conf を用いて実験を実施します. 解像度 T21L32 で 2 日分計算を行います. リスタートデータ, 地表面リスタートデータといくつかのヒストリデータ ファイルが出力されます.
$ ./bin/dcpam_main -N=./conf/dcpam_M_T21L32.conf | tee Mars.log *** MESSAGE [namelist_util] *** ----- Initialization Messages ----- *** MESSAGE [namelist_util] *** MaxNmlArySize = 256 *** MESSAGE [namelist_util] *** -- version = $Name: dcpam5-20140218 $$Id: exp-Mars.rd,v 1.13 2013-10-06 13:46:11 yot Exp $ *** MESSAGE [dcpam_main] *** NAMELIST group "dcpam_main_nml" is loaded from "./conf/dcpam_M_T21L32.conf". &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>. :
初期値データ, 地表面データ, 実験設定を変更する場合には, 上記の実行に際して conf ディレクトリ内の init_data_M_T21L32.conf, dcpam_M_T21L32.conf を変更してください.
計算結果の解析・可視化の方法についてはこちらを参照してください.
実験ディレクトリに作成された計算結果を保存しておきたい場合には データ用ディレクトリ(例えば data01)を作成し, ファイルを移動させて整理しておきましょう.
$ mkdir data01 $ mv *.nc *.log data01/
なお, 計算結果を計算実行時にサブディレクトリへ出力することも可能です. 実験設定の変更の出力設定の変更を参照し, NAMELIST ">ool_historyauto_nml" の変数 "FilePrefix" による設定を試してみて下さい.