[ English | Japanese ] [ 地球流体電脳倶楽部 / 惑星大気モデル DCPAM ] [ dcpam5 ドキュメント / ごくらく dcpam5 ]

金星的惑星実験

Yamamoto and Takahashi (2003) に似た強制を与えた金星的惑星の 実験を実行する方法を説明します.


  1. 概要
  2. 実験用ディレクトリ準備
  3. 初期値データファイルの作成
  4. 実験の実行
  5. 結果の可視化
  6. 参考文献

概要

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

実験用ディレクトリ準備

practice ディレクトリに移動してください.

$ cd practice

そのディレクトリ内で, make コマンドを実行してください. 自動的に実行ファイルや NAMELIST ファイルがコピーされます. make コマンド入力後, まずディレクトリ名を適宜入力してください. (下記の例では Venuslike-exp としています). それ以降の質問はとりあえずそのまま Enter キーを入力してください.

$ make

****** Setup a directory for a experiment ******

  Enter directory name [testXX]: Venuslike-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 "Venuslike-exp" is complete ***

Venuslike-exp というディレクトリが作成され, その中に 実行ファイルや NAMELIST ファイル, ソースコードがコピーされます. Venuslike-exp ディレクトリ内に移動してください.

$ cd Venuslike-exp

なお, このディレクトリ内以外でも, 実行ファイル, 設定ファイル (namelist ファイル) があれば計算を行うことはできます.

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

init_data と init_data_Vlp_T10L50.nml を用いて初期値ファイル init_T10L50.nc を作成します.

$ ./init_data -N=init_data_Vlp_T10L50.nml

 *** MESSAGE [init_data] ***  Run: Initial data generation
 *** MESSAGE [init_data] ***  -- version = $Name: dcpam5-20110615 $$Id: exp-Venuslike.rd,v 1.4 2011-04-08 03:57:26 yot Exp $
 *** MESSAGE [namelist_util] ***  ----- Initialization Messages -----
 *** MESSAGE [namelist_util] ***    MaxNmlArySize = 256
 *** MESSAGE [namelist_util] ***  -- version = $Name: dcpam5-20110615 $$Id: exp-Venuslike.rd,v 1.4 2011-04-08 03:57:26 yot Exp $
 *** WARNING [timeset] ***  NAMELIST group "timeset_nml" is not found in "init_data_Vlp_T10L50.nml" (iostat=186).
 *** MESSAGE [timeset] ***  ----- Initialization Messages -----
                       : 
 *** MESSAGE [initial_data] ***  ----- Initialization Messages -----
 *** MESSAGE [initial_data] ***    Pattern = SmallVapAvr = 0.
 *** MESSAGE [initial_data] ***    Ueq     = 0.
 *** MESSAGE [initial_data] ***
 *** MESSAGE [initial_data] ***  -- version = $Name: dcpam5-20110615 $$Id: exp-Venuslike.rd,v 1.4 2011-04-08 03:57:26 yot Exp $

実験の実行

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

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

$ ./dcpam_main -N=dcpam_Vlp_T10L50.nml | tee Vlp.log

 *** MESSAGE [namelist_util] ***  ----- Initialization Messages -----
 *** MESSAGE [namelist_util] ***    MaxNmlArySize = 256
 *** MESSAGE [namelist_util] ***  -- version = $Name: dcpam5-20110615 $$Id: exp-Venuslike.rd,v 1.4 2011-04-08 03:57:26 yot Exp $
 *** MESSAGE [dcpam_main] ***  NAMELIST group "dcpam_main_nml" is loaded from "dcpam_Vlp_T10L50.nml".
 &DCPAM_MAIN_NML FLAGDYNAMICS=T,FLAGFULLPHYSICS=F,FLAGHS94=F,FLAGVENUSSIMPLE=T,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 [dcpam_main] ***  FlagRadiationDcpamEV1  =<F>.
 *** MESSAGE [dcpam_main] ***  FlagRadiationDcpamMV1  =<F>.
                   :
 *** MESSAGE [HistoryClose] ***  "VUBalance.nc" is closed

 ############## CPU TIME SUMMARY ################
 surface_properties     0.000000E+00
 auxiliary              0.108007E+00
 vdiffusion_my1974      0.520025E-01
 dynamics_hspl_vas83    0.187212E+01
 mass_fixer             0.280015E-01
 check_prog_vars        0.800041E-02
 timefilter_asselin19   0.280015E-01
 others                 0.552037E+00
 ------------------------------------------------
        TOTAL TIME =    0.264816E+01

この場合, 5 日分の時間積分が行われます. 空間解像度は T10L50 (経度格子点数 32, 緯度点数 16, 鉛直層数 50) です. 計算結果は U.nc や Temp.nc として出力されます. また, リスタートファイルが restart.nc として出力されます.

結果の可視化

5 日後における温度の東西平均分布は以下の図のようになります.

images/venus_irb_temp_meanlon_time05day.png

この図は, Gphys を 用いて, 下の処理によって描画しています.

まず irb を起動. 

$ irb

以下のようなプロンプトが表示されます.

irb(main):001:0>

このプロンプトに, 以下のようにコマンドを打ちます.
左端の数字は行番号で, 打つ必要はありません.

1: require "numru/ggraph"
2: include NumRu
3: gphys = GPhys::IO.open('Temp.nc', 'Temp')
4: DCL.gropn(1)
5: DCL.sgpset('lcntl', false) ; DCL.uzfact(0.7)
6: GGraph.set_fig( 'itr'=> 2 )
7: GGraph.tone( gphys.mean('lon').cut('time'=>5) )
8: GGraph.color_bar
9: DCL.grcls

irb のプロンプトにおいて quit と打つと irb を終了することができます. 

この計算で用いている初期値は等温静止大気です. 金星大気は, 5 日間では準定常状態には達しませんので, 上記の図はスピンアップ中の状態を表しています.

参考文献


$Id: exp-Venuslike.rd,v 1.4 2011-04-08 03:57:26 yot Exp $
DCPAM Development Group / GFD Dennou Staff dcstaff@gfd-dennou.org