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

Neale and Hoskins (2001) による水惑星実験

Neale and Hoskins (2001) によって提案された, 惑星表面が全て水であるような条件 (水惑星) で実験を行う方法を説明します.

この計算には以下の物理過程を用いています.


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

概要

本実験では, 海表面温度のデータが必要です. したがって, 実験の実行は以下の 4 つのステップで行います.

実験用ディレクトリ準備

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

$ cd practice

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

$ make

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

  Enter directory name [testXX]: ape-nh01-exp
  Directory in which executable files are prepared
    [../src/main]: 
          :

そしてそのディレクトリに移動します.

$ cd ape-nh01-exp

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

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

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

$ ./init_data -N=init_data_ape_nh01_T21L22.nml

 *** MESSAGE [init_data] ***  Run: Initial data generation
 *** MESSAGE [init_data] ***  -- version = $Name: dcpam5-20110615 $$Id: exp-ape-nh01.rd,v 1.6 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-ape-nh01.rd,v 1.6 2011-04-08 03:57:26 yot Exp $
 *** MESSAGE [timeset] ***  NAMELIST group "timeset_nml" is loaded from "init_data_ape_nh01_T21L22.nml".
                       : 
 *** MESSAGE [initial_data] ***    PsAvr   = 101080.
 *** MESSAGE [initial_data] ***    QVapAvr = 0.
 *** MESSAGE [initial_data] ***    Ueq     = 0.
 *** MESSAGE [initial_data] ***
 *** MESSAGE [initial_data] ***  -- version = $Name: dcpam5-20110615 $$Id: exp-ape-nh01.rd,v 1.6 2011-04-08 03:57:26 yot Exp $
 *** MESSAGE [HistoryClose] ***  "init_T21L22.nc" is closed

 ############## CPU TIME SUMMARY ################
 others                 0.400020E-01
 ------------------------------------------------
        TOTAL TIME =    0.400020E-01

実験用データの準備

実験用データとして, オゾン分布のデータを 以下に用意してあります.

上記のページから "O3_NH01_T021.nc" をダウンロードして, 実験を行うディレクトリに置いてください.

SST データファイルの作成

次に, sst_data と sst_data_ape_nh01_T21.nml を用いて, 海水面データ sst_T21.nc を作成します.

$ ./sst_data -N=sst_data_ape_nh01_T21.nml

 *** MESSAGE [sst_data] ***  Run: SST data generation
 *** MESSAGE [sst_data] ***  -- version = $Name: dcpam5-20110615 $$Id: exp-ape-nh01.rd,v 1.6 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-ape-nh01.rd,v 1.6 2011-04-08 03:57:26 yot Exp $
 *** MESSAGE [timeset] ***  NAMELIST group "timeset_nml" is loaded from "sst_data_ape_nh01_T21.nml".
                       :
 *** MESSAGE [surface_data] ***    SoilHeatCap      = 2100000.
 *** MESSAGE [surface_data] ***    SoilHeatDiffCoef = 1.2
 *** MESSAGE [surface_data] ***  -- version = $Name: dcpam5-20110615 $$Id: exp-ape-nh01.rd,v 1.6 2011-04-08 03:57:26 yot Exp $
 *** MESSAGE [HistoryClose] ***  "sst_T21.nc" is closed

 ############## CPU TIME SUMMARY ################
 others                 0.400000E-02
 ------------------------------------------------
        TOTAL TIME =    0.400000E-02

実験の実行

最後に dcpam_main, dcpam_ape_nh01_T21L22.nml を用いて実験を実施します. 解像度 T21L21, 時間ステップ 20 分で 2 日分計算を行います. リスタートデータ, 地表面リスタートデータといくつかのヒストリデータ ファイルが出力されます.

$ ./dcpam_main -N=dcpam_ape_nh01_T21L22.nml | tee ape-nh01.log

初期値データ, 地表面データ, 実験設定を変更する場合には, 上記の実行に際して, init_data_ape_nh01_T21L22.nml, sst_data_ape_nh01_T21.nml, dcpam_ape_nh01_T21L22.nml を変更してください.

結果の可視化

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

images/ape_nh01_irb_temp_meanlon_time02day.png

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

まず irb を起動. 

$ 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.tone( gphys.mean('lon').cut('time'=>2) )
7: GGraph.color_bar
8: DCL.grcls

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

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

参考文献


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