Polvani et al. (2004) の傾圧不安定波動実験
Polvani et al. (2004) で行われた, 傾圧不安定波動の実験を実行する方法を説明します.
概要
本実験は海表面温度等の実験用データを用いないため, 以下の 3 つのステップで行います.
- 実験用メインプログラム等のコンパイル
- 実験ディレクトリの準備
- 初期値の準備
- 実験の実行
実験用ディレクトリの用意
実行ファイルを走らせるとたくさんの NetCDF ファイルができるので, 実験用のディレクトリを作って, そこに入出力ファイルを置くようにすることをおすすめします. 例えば実験用ディレクトリとして ./exp を用意するには
$ mkdir exp ; cd exp $ cp ../exp_setup_files/init_data_p04_T21L20.conf . $ cp ../exp_setup_files/dcpam_p04_T21L20.conf .
と, 初期値生成用と実験用の設定ファイルをコピーしてきます.
begin JA
初期値データファイルの作成
dcpam_init_data_p04 と init_data_p04_T21L20.conf を用いて初期値ファイル init_T21L20.nc を作成します.
$ ../dcpam_init_data_p04 -N=init_data_p04_T21L20.conf
*** MESSAGE [init_data] *** Run: Initial data generation
*** MESSAGE [init_data] *** -- version = $Name: $$Id: exp-p04.rd,v 1.14 2014/07/07 14:50:00 yot Exp $
*** MESSAGE [namelist_util] *** ----- Initialization Messages -----
*** MESSAGE [namelist_util] *** MaxNmlArySize = 256
*** MESSAGE [namelist_util] *** -- version = $Name: $$Id: exp-p04.rd,v 1.14 2014/07/07 14:50:00 yot Exp $
*** MESSAGE [timeset] *** NAMELIST group "timeset_nml" is loaded from "./conf/init_data_p04_T21L20.conf".
:
*** MESSAGE [initial_data] *** QVapAvr = 0.
*** MESSAGE [initial_data] *** Ueq = 0.
*** MESSAGE [initial_data] ***
*** MESSAGE [initial_data] *** -- version = $Name: $$Id: exp-p04.rd,v 1.14 2014/07/07 14:50:00 yot Exp $
*** MESSAGE [HistoryClose] *** "init_T21L20.nc" is closed
############## CPU TIME SUMMARY ################
others 0.200000E-01
------------------------------------------------
TOTAL TIME = 0.200000E-01
実験の実行
NAMELIST ファイル dcpam_p04_T21L20.conf を用いて, 以下のように dcpam_main_p04 を実行します.
$ ../dcpam_main_p04 -N=dcpam_p04_T21L20.conf | tee p04.log
*** MESSAGE [namelist_util] *** ----- Initialization Messages -----
*** MESSAGE [namelist_util] *** MaxNmlArySize = 256
*** MESSAGE [namelist_util] *** -- version = $Name: $$Id: exp-p04.rd,v 1.14 2014/07/07 14:50:00 yot Exp $
*** MESSAGE [dcpam_main] *** NAMELIST group "dcpam_main_nml" is loaded from "./conf/dcpam_p04_T21L20.conf".
&DCPAM_MAIN_NML FLAGDYNAMICS=T,FLAGFULLPHYSICS=F,FLAGHS94=F,FLAGVENUSSIMPLE=F,FLAGJUPITERSIMPLE=F,FLAGRADIATIONDENNOUAGCM=T,FLAGRADIATIONDCPAMEV1=F,FLAGRADIATIONDCPAMMV1=F,FLAGRADIATIONSL09=F,FLAGPHYIMP1LAYMODEL=T,FLAGPHYIMPSOILMODEL=F,FLAGPHYIMPSOILMODELSO=F,FLAGPHYIMPATMONLY=F,FLAGVERTICALFILTER=F/
*** MESSAGE [dcpam_main] *** FlagDynamics=<T>.
*** MESSAGE [dcpam_main] *** FlagRadiationDennouAGCM=<T>.
:
*** MESSAGE [HistoryClose] *** "TotEngy.nc" is closed
*** MESSAGE [HistoryClose] *** "Enstro.nc" is closed
############## CPU TIME SUMMARY ################
surface_properties 0.904434E-07
dynamics_hspl_vas83 0.380824E+01
mass_fixer 0.132011E+00
check_prog_vars 0.360025E-01
timefilter_asselin19 0.760067E-01
others 0.212009E+00
------------------------------------------------
TOTAL TIME = 0.426427E+01
この場合, 12 日分の時間積分が行われます. 空間解像度は T21L20 (経度格子点数 64, 緯度点数 32, 鉛直層数 20) です. 計算結果は U.nc や Temp.nc として出力されます. また, リスタートファイルが rst.nc として出力されます.
結果の描画
12 日後における温度の東西平均分布と地表面気圧は以下の図のようになります. これらの図は GPhys パッケージに同梱されている gpview というコマンドを 使って以下のようにして描いた図です.
$ gpview Temp.nc@Temp,time=12 --mean lon --int 5 --noannotate $ gpview Ps.nc@Ps,time=12 --int 500 --noannotate

解析・可視化のもう少し詳しい方法についてはこちらを参照してください.
データの保存
実験ディレクトリに作成された計算結果を保存しておきたい場合には データ用ディレクトリ(例えば data01)を作成し, ファイルを移動させて整理しておきましょう.
$ mkdir data01 $ mv *.conf *.nc *.log data01/
なお, 計算結果を計算実行時にサブディレクトリへ出力することも可能です. 実験設定の変更の出力設定の変更を参照し, NAMELIST ">ool_historyauto_nml" の変数 "FilePrefix" による設定を試してみて下さい.