Polvani et al. (2004) の傾圧不安定波動実験

Polvani et al. (2004) で行われた, 傾圧不安定波動の実験を実行する方法を説明します.

概要

本実験は海表面温度等の実験用データを用いないため, 以下の 3 つのステップで行います.

実験用ディレクトリ準備

DCPAM5 の数値実験はソースツリー内部では行わず ソースツリーとは別の外部ディレクトリにて行うことを推奨いたします.

まず DCPAM5 ソースのトップディレクトリ(以下の例では dcpam5-YYYYMMDD とする)に移動してください. 以下では DCPAM5 ソースディレクトリの隣に ../dcpma5-exp/p04-exp ディレクトリを作成し, そこで実験を行うことにします. 次のように ../dcpam5-exp/p04-exp ディレクトリを作成し, 移動してください.

$ mkdir -p ../dcpam5-exp/p04-exp
$ cd ../dcpam5-exp/p04-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/exp_setup_files/*.conf conf

なお, 実行ファイルと設定ファイル (NAMELIST ファイル) があれば, どのディレクトリにおいても計算を行うことができます.

初期値データファイルの作成

dcpam_init_data と init_data_p04_T21L20.conf を用いて初期値ファイル init_T21L20.nc を作成します.

$ ./bin/dcpam_init_data -N=./conf/init_data_p04_T21L20.conf

 *** MESSAGE [init_data] ***  Run: Initial data generation
 *** MESSAGE [init_data] ***  -- version = $Name: dcpam5-20150131 $$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: dcpam5-20150131 $$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: dcpam5-20150131 $$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

実験の実行

実行ファイル "dcpam_main" と NAMELIST ファイル dcpam_p04_T21L20.conf を用いて, 以下のように dcpam_main を実行してください. プログラム終了には数分〜数十分かかります.

(なお, クロスコンパイル環境では以下の方法でプログラムを 実行することはできないので注意してください. その場合の実行方法 に関しては, その環境でのプログラム実行マニュアルなどを参照ください. )

$ ./bin/dcpam_main -N=./conf/dcpam_p04_T21L20.conf | tee p04.log

 *** MESSAGE [namelist_util] ***  ----- Initialization Messages -----
 *** MESSAGE [namelist_util] ***    MaxNmlArySize = 256
 *** MESSAGE [namelist_util] ***  -- version = $Name: dcpam5-20150131 $$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 として出力されます.

結果の可視化

簡単な解析・可視化 を参照してください. 参考文献の図との比較の仕方がかかれています.

最後に

実験ディレクトリに作成された計算結果を保存しておきたい場合には データ用ディレクトリ(例えば data01)を作成し, ファイルを移動させて整理しておきましょう.

$ mkdir data01
$ mv *.nc *.log data01/

なお, 計算結果を計算実行時にサブディレクトリへ出力することも可能です. 実験設定の変更の出力設定の変更を参照し, NAMELIST "&gtool_historyauto_nml" の変数 "FilePrefix" による設定を試してみて下さい.

参考文献


$Id: exp-p04.rd,v 1.14 2014/07/07 14:50:00 yot Exp $