Held and Suarez (1994) が提案した, 大気大循環モデルの力学過程を評価するための 実験を実行する方法を説明します.
この計算には以下の物理過程を用いています.
本実験は実験用データを用いないため, 以下の 3 つのステップで行います.
practice ディレクトリに移動してください.
$ cd practice
そのディレクトリ内で, make コマンドを実行してください. 自動的に実行ファイルや NAMELIST ファイルがコピーされます. make コマンド入力後, まずディレクトリ名を適宜入力してください. (下記の例では hs94-exp としています). それ以降の質問はとりあえずそのまま Enter キーを入力してください.
$ make ****** Setup a directory for a experiment ****** Enter directory name [testXX]: hs94-exp Directory in which executable files are prepared [../src/main]: Directory in which NAMELIST files are prepared [../src/main]: Save F90/95 source code files? [y/N]: : *** Setup of "hs94-exp" is complete ***
hs94-exp というディレクトリが作成され, その中に 実行ファイルや NAMELIST ファイル, ソースコードがコピーされます. hs94-exp ディレクトリ内に移動してください.
$ cd hs94-exp
なお, このディレクトリ内以外でも, 実行ファイル, 設定ファイル (namelist ファイル) があれば計算を行うことはできます.
init_data と init_data_hs94_T21L20.nml を用いて初期値ファイル init_T21L20.nc を作成します.
$ ./init_data -N=init_data_hs94_T21L20.nml : *** MESSAGE [restart_file_io] *** ----- Initialization Messages ----- *** MESSAGE [restart_file_io] *** Input:: *** MESSAGE [restart_file_io] *** InputFile = *** MESSAGE [restart_file_io] *** Output:: *** MESSAGE [restart_file_io] *** OutputFile = init_T21L20.nc *** MESSAGE [restart_file_io] *** IntTime = 1. [day] *** MESSAGE [HistoryCreate3] *** "init_T21L20.nc" is created (origin=0. [day]) *** MESSAGE [initial_data] *** NAMELIST group "initial_data_nml" is loaded from "init_data_T21L16.nml". *** MESSAGE [initial_data] *** NAMELIST group "initial_data_nml" is loaded from "init_data_T21L16.nml". *** MESSAGE [initial_data] *** ----- Initialization Messages ----- *** MESSAGE [initial_data] *** Pattern = Small Disturbance of Temperature *** MESSAGE [initial_data] *** TempAvr = 280. *** MESSAGE [initial_data] *** PsAvr = 100000. *** MESSAGE [initial_data] *** QVapAvr = 0.1E-09 *** MESSAGE [HistoryClose] *** "init_T21L20.nc" is closed
実行ファイル "dcpam_main" と NAMELIST ファイル dcpam_hs94_T21L20.nml を用いて, 以下のように dcpam_main を実行してください. プログラム終了には数分〜数十分かかります.
(なお, クロスコンパイル環境では以下の方法でプログラムを 実行することはできないので注意してください. その場合の実行方法 に関しては, その環境でのプログラム実行マニュアルなどを参照ください. )
$ ./dcpam_main -N=dcpam_hs94_T21L20.nml | tee hs94.log *** MESSAGE [dcpam_main] *** Run: Held and Suarez (1994) benchmark test : *** MESSAGE [timeset] *** ----- Initialization Messages ----- *** MESSAGE [timeset] *** StartTime = 0. [day] *** MESSAGE [timeset] *** EndTime = 10. [day] *** MESSAGE [timeset] *** DelTime = 30. [min] *** MESSAGE [timeset] *** = 1800. [sec] : : *** MESSAGE [fileset] *** ----- Initialization Messages ----- *** MESSAGE [fileset] *** FileTitle = Held and Suarez (1994) benchmark test *** MESSAGE [fileset] *** FileSource = dcpam5 (http://www.gfd-dennou.org/library/dcpam) *** MESSAGE [fileset] *** FileInstitution = GFD Dennou Club (http://www.gfd-dennou.org) *** MESSAGE [fileset] *** -- version = .... *** MESSAGE [gridset] *** ----- Initialization Messages ----- *** MESSAGE [gridset] *** nmax = 21 *** MESSAGE [gridset] *** imax = 64 *** MESSAGE [gridset] *** jmax = 32 *** MESSAGE [gridset] *** kmax = 20 *** MESSAGE [gridset] *** -- version = .... : ########## PREDICTION OF CALCULATION ########### Start Date 2009-03-06T08:26:41+09:00 Current Date 2009-03-06T08:26:45+09:00 Progress 20.00% [***** ] Remaining CPU TIME 0.160000E+02 Completion Date 2009-03-06T08:27:01+09:00 : ############## CPU TIME SUMMARY ################ held_suarez_1994 0.165611E+01 dynamics_hspl_vas83 0.191452E+02 timefilter_asselin19 0.264027E+00 others 0.896038E+00 ------------------------------------------------ TOTAL TIME = 0.219614E+02
この場合, 10 日分の時間積分が行われます. 空間解像度は T21L20 (経度格子点数 64, 緯度点数 32, 鉛直層数 20) です. 計算結果は U.nc や Temp.nc として出力されます. また, リスタートファイルが restart.nc として出力されます.
10 日後における温度と東西風の東西平均分布は以下の図のようになります. これらの図は GPhys パッケージに同梱されている gpview というコマンドを 使って以下のようにして描いた図です.
$ gpview U.nc@U,time=10 --mean lon --int 1 --noannotate --wsn 2 $ gpview Temp.nc@Temp,time=10 --mean lon --int 5 --noannotate --wsn 2
本来, この積分時間と空間解像度はベンチマークとしては小さすぎ, 短すぎます. Held and Suarez (1994) では空間解像度は T63L20 (経度格子点 192, 緯度格子点 96, 鉛直層 20) 相当で, 1200 日の時間積分が行われています.