火星サーマル上昇実験

単独のホットプリュームを上昇させる実験を行なう方法を説明します.


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

概要

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

実験用ディレクトリ準備

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

$ cd practice

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

$ make

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

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

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

$ cd ape-exp

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

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

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

$ ./init_data -N=init_data_T21L16.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_T21L16.nc
 *** MESSAGE [restart_file_io] ***    IntTime    = 1. [day]

 *** MESSAGE [HistoryCreate3] ***  "init_T21L16.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_T21L16.nc" is closed

SST データファイルの作成

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

$ ./sst_data -N=sst_data_T21.nml

                       :
 *** MESSAGE [restart_surftemp_io] ***  ----- Initialization Messages -----
 *** MESSAGE [restart_surftemp_io] ***  Input::
 *** MESSAGE [restart_surftemp_io] ***    InputFile  =
 *** MESSAGE [restart_surftemp_io] ***    InputName  = SurfTemp
 *** MESSAGE [restart_surftemp_io] ***  Output::
 *** MESSAGE [restart_surftemp_io] ***    OutputFile = sst_T21.nc
 *** MESSAGE [restart_surftemp_io] ***    IntTime    = 1. [day]

 *** MESSAGE [HistoryCreate3] ***  "sst_T21.nc" is created (origin=0. [day])
*** MESSAGE [surface_data] ***  NAMELIST group "surface_data_nml" is loaded from "sst_data_T21.nml".
 *** MESSAGE [surface_data] ***  NAMELIST group "surface_data_nml" is loaded from "sst_data_T21.nml".
 *** MESSAGE [surface_data] ***  ----- Initialization Messages -----
 *** MESSAGE [surface_data] ***    Pattern = Hosaka et al. (1998)
 *** MESSAGE [surface_data] ***    SurfTemp     = 302.
 *** MESSAGE [surface_data] ***    Albedo       = 0.15
 *** MESSAGE [surface_data] ***    HumidCoeff   = 1.
 *** MESSAGE [surface_data] ***    RoughLength  = 0.1E-03
 *** MESSAGE [surface_data] ***    HeatCapacity = 0.
 *** MESSAGE [surface_data] ***    TempFlux     = 0.
 *** MESSAGE [surface_data] ***    SurfCond     = 0

 *** MESSAGE [HistoryClose] ***  "sst_T21.nc" is closed

実験の実行

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

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

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

リスタートデータからの実行

上記の初期値データを元に, 1000 日分の計算を行った際のリスタートデータを 以下に用意してあります. このデータを用いてリスタートを行ってみましょう.

上記のページから "ape-T21L16-rst.nc" と "ape-T21L16-rst-rad.nc" をダウンロードしてください. そして, "dcpam_ape_T21L16.nml" の &timeset_nml, &restart_file_io, &radiation_band_nml を以下のように変更してください.

&timeset_nml
  RestartTimeValue  = 1000.0,
                              ! 計算開始時刻.
                              ! Start time of calculation
  RestartTimeUnit   = 'day',
                              ! 計算開始時刻の単位.
                              ! Unit of start time of calculation
  IntegPeriodValue  = 10.0, 
                              ! 計算終了時刻.
                              ! End time of calculation
  IntegPeriodUnit   = 'day',
                              ! 計算開始時刻の単位.
                              ! Unit of end time of calculation
                     :
&restart_file_io_nml
  InputFile = 'ape-T21L16-rst.nc',
                            ! 入力するリスタートデータのファイル名
                            ! filename of input restart data
                     :

&radiation_band_nml
  RstInputFile = 'ape-T21L16-rst-rad.nc', 
                            ! 入力するリスタートデータのファイル名
                            ! Filename of input restart data

以下のコマンドで実行を行ってください.

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

この結果得られる Vor.nc の変数 Vor を GAVE で開くと 以下のような渦度の分布が表示されます.

IMG:images/gave_ape_vor.png

参考文献


$Id: mars-plumetest.rd,v 1.1 2011-02-24 09:25:48 yamasita Exp $
deepconv Development Group / GFD Dennou Staff dcstaff@gfd-dennou.org
Last Updated: unknown, Since: unknown