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

実験条件の変更

ここでは, 実験条件のいくつかについて変更方法を説明します.

計算設定を変更するには NAMELIST ファイルを編集し, これを実行時の -N= オプションに指定します. ここでは, Held and Suarez (1994) による乾燥大気の力学コア計算 で 使用した dcpam_hs94_T21L20.nml を例として用いて説明します.

設定ファイル内の "&xxxxxx_nml" という NAMELIST 変数群名は, それぞれモジュール xxxxxx で 管理される設定値です. dcpam5 で管理される NAMELIST 変数群名のリストおよび 各設定値の詳細については dcpam5 NAMELIST から参照可能です.


  1. 解像度の変更
  2. 積分期間の変更
  3. 惑星の定数の変更
  4. 出力設定の変更
  5. 初期値 (リスタート) データファイル名の変更
  6. 惑星表面を「沼条件 (swamp condition)」で計算する
  7. 参考文献

解像度の変更

解像度は, 設定ファイル (namelist ファイル) に &gridset_nml を用いて設定します.

dcpam_hs94_T21L20.nml には, 下のように設定されています.

&gridset_nml
  nmax = 21,                  ! 最大全波数. 
                              ! Maximum truncated wavenumber
  imax = 64,                  ! 経度格子点数. 
                              ! Number of grid points in longitude
  jmax = 32,                  ! 緯度格子点数. 
                              ! Number of grid points in latitude
  kmax = 20                   ! 鉛直層数. 
                              ! Number of vertical level
/

これは, T21L20 の解像度 (経度, 緯度, 鉛直方向の格子点数はそれぞれ 64, 32, 20) の 設定です. これを T42L20 の解像度にするためには下のように設定します.

&gridset_nml
  nmax =  42,                 ! 最大全波数. 
                              ! Maximum truncated wavenumber
  imax = 128,                 ! 経度格子点数. 
                              ! Number of grid points in longitude
  jmax =  64,                 ! 緯度格子点数. 
                              ! Number of grid points in latitude
  kmax =  20                  ! 鉛直層数. 
                              ! Number of vertical level
/

なお, 鉛直解像度 (総数) を変更する場合には, &axesset_nmlSigma の値を 編集し, 各層の配置も指定する必要があります.

編集が終わったら, 以下のように オプション -N (または --namelist) に NAMELIST ファイルを指定しつつ, 実行コマンドを入力してください.

$ ./dcpam_main -N=dcpam_hs94_T21L20.nml | tee hs94-T21L20.log

積分期間の変更

積分期間は, 設定ファイル (namelist ファイル) に &timeset_nml を用いて設定します. dcpam では 2 つの方法のどちらかで積分期間を設定します. ひとつは積分する時間を設定する 方法, もうひとつは積分開始と終了の時刻を指定する方法です.

dcpam_hs94_T21L20.nml では, 積分する時間を設定しており, 下のように設定されています.

&timeset_nml
            : 
  IntegPeriodValue    = 10.0, 
                              ! 計算終了時刻. 
                              ! End time of calculation
  IntegPeriodUnit     = 'day', 
                              ! 計算開始時刻の単位. 
                              ! Unit of end time of calculation
            : 
/

これは 10 日間積分することを表しています. 積分時間を 20 日間にするためには下のように設定します.

&timeset_nml
            : 
  IntegPeriodValue    = 20.0, 
                              ! 計算終了時刻. 
                              ! End time of calculation
  IntegPeriodUnit     = 'day', 
                              ! 計算開始時刻の単位. 
                              ! Unit of end time of calculation
            : 
/

一方, もうひとつは積分開始と終了の時刻を使って積分期間を設定するためには 下のように指定します.

&timeset_nml
            : 
  cal_type          = 'noleap',
  InitialYear       =     1,
  InitialMonth      =     1,
  InitialDay        =     1,
  InitialHour       =     0,
  InitialMin        =     0,
  InitialSec        =     0.0d0,
  EndYear           =     1,
  EndMonth          =     1,
  EndDay            =     3,
  EndHour           =     0,
  EndMin            =     0,
  EndSec            =     0.0d0,
            : 
/

cal_type は暦の種類を指定し, 上記で指定している noleap はうるう年のない暦を 表します. その他の指定については, gtool5 チュートリアル, DCCalCreate の項目 を参照してください. InitialYear, InitialMonth, ... は開始年, 月, ... を表し, EndYear, EndMonth, ... は終了年, 月, ... を表します.

編集が終わったら, 以下のように オプション -N (または --namelist) に NAMELIST ファイルを指定しつつ, 実行コマンドを入力してください.

$ ./dcpam_main -N=dcpam_hs94_T21L20.nml | tee hs94-T21L20.log

惑星の定数の変更

積分時間は, 設定ファイル (namelist ファイル) に &timeset_nml を用いて設定します.

dcpam_hs94_T21L20.nml には, 下のように設定されています.

&constants_nml
  RPlanet    = 6.371e6,
                            ! $ a $ [m].
                            ! 惑星半径.
                            ! Radius of planet
  Omega      = 7.292e-5,
                            ! $ \Omega $ [s-1].
                            ! 回転角速度.
                            ! Angular velocity
  Grav       = 9.8,
                            ! $ g $ [m s-2].
                            ! 重力加速度.
                            ! Gravitational acceleration
  CpDry      = 1004.0,
                            ! $ C_p $ [J kg-1 K-1].
                            ! 乾燥大気の定圧比熱.
                            ! Specific heat of air at constant pressure
  GasRDry    = 286.85714285
                            ! $ R $ [J kg-1 K-1].
                            ! 乾燥大気の気体定数.
                            ! Gas constant of air
/

これら上から順に, 惑星半径, 自転角速度, 重力加速度, 大気の定圧比熱, 大気の 気体定数を指定しています. これらの指定を変更することで, 値を変更することができます.

編集が終わったら, 以下のように オプション -N (または --namelist) に NAMELIST ファイルを指定しつつ, 実行コマンドを入力してください.

$ ./dcpam_main -N=dcpam_hs94_T21L20.nml | tee hs94-T21L20.log

出力設定の変更

解析用のヒストリデータの出力に関する設定は &gtool_historyauto_nml を編集することで変更します.

dcpam_hs94_T21L20.nml には, 下のように設定されています.

! ヒストリデータ出力の全体設定
! Global settings about history data output
!
&gtool_historyauto_nml
  IntValue = 1.0,
                              ! ヒストリデータの出力間隔の数値. 
                              ! 負の値を与えると, 出力を抑止します. 
                              !
                              ! Numerical value for interval of history data output
                              ! Negative values suppresses output.
  IntUnit = 'day',
                              ! ヒストリデータの出力間隔の単位. 
                              ! Unit for interval of history data output
  Precision = 'float',     ! 単精度
                              ! ヒストリデータの精度. 
                              ! Precision of history data
  FilePrefix = '',
                              ! ヒストリデータのファイル名の接頭詞. 
                              ! Prefixes of history data filenames
/
!
! ヒストリデータ出力の個別設定
! Individual settings about history data output
!
&gtool_historyauto_nml
  Name = 'U, V, Temp, Ps, QVap, Vor, Div, SigDot, DPiDt'
/
&gtool_historyauto_nml
  Name = 'Mass, KinEngy, IntEngy, PotEngy, LatEngy, TotEngy, Enstro', 
  SpaceAverage = .true., .true., .true., .true., .true.
/

それぞれの設定項目について以下に記します.

IntValue
(実数型) 出力間隔の数値
IntUnit
(文字型) 出力間隔の単位. "sec", "min", "hour", "day", "month", "year" などが 使用可能です. 使用可能な単位の詳細については, gtool5 ライブラリ: dc_date_types モジュール の "Characters list for unit" を参照ください.
Precision
(文字型) データの精度. "float" (単精度実数型), "double" (倍精度実数型), "int" (整数型) を指定可能
SpaceAverage
(論理型配列) 空間平均のフラグ. 配列の 1 番目, 2 番目, 3 番目が, 経度, 緯度, 高度(σ) に対応します.

Name を指定しない, もしくは空文字を与えた場合, それは全ての変数に対するデフォルト設定となります. その場合にのみ有効な項目として以下のものがあります.

FilePrefix
(文字型) データのファイル名の接頭詞. 例えば "exp1-" と指定すれば, 変数 "U" の出力ファイル名は "exp1-U.nc" となります. また, "data01/" のようにスラッシュを含む文字列を指定することで, カレントディレクトリ以外の場所に出力するよう設定することも可能です.

出力時間間隔などは, これらの値を編集することで変更することができます.

より詳しい説明については, gtool5 チュートリアル: 多数のファイル出力を行うモデルでのデータ出力 -- 設定可能な項目 を参照ください.

また, さらに出力する変数を追加する場合には,

&gtool_historyauto_nml
  Name = 'U, V, Temp, Ps, QVap, Vor, Div, SigDot, DPiDt'
/

Name の行に変数名を追加すか, 新たに下のように行を追加します.

&gtool_historyauto_nml
  Name = 'XXX'
/

編集が終わったら, 以下のように オプション -N (または --namelist) に NAMELIST ファイルを指定しつつ, 実行コマンドを入力してください.

$ ./dcpam_main -N=dcpam_hs94_T21L20.nml | tee hs94-T21L20.log

初期値 (リスタート) データファイル名の変更

ファイルから初期値データ, もしくはリスタートデータを読み込む際には, 実行時に読み込まれる NAMELIST ファイルの以下の項目を変更してください.

&restart_file_io_nml
  InputFile = 'init_T21L20.nc',    ! 入力する初期値/リスタートデータのファイル名
                                  ! filename of input initial/restart data
            :
/

"InputFile" の部分に初期値データもしくはリスタートデータのファイル名を 指定します.

NAMELIST ファイルを変更後, 以下のようにその NAMELIST ファイルを -N もしくは --namelist オプションに指定して実験を始めてください.

$ ./dcpam_main -N=dcpam_hs94_T21L20.nml | tee hs94.log

実験が開始されると, 以下のようなデータ入力のメッセージが表示されます.

|*** MESSAGE [restart_file_io] ***  ----- Initialization Messages -----
|*** MESSAGE [restart_file_io] ***  Input::
|*** MESSAGE [restart_file_io] ***    InputFile  = init_T21L20.nc
|*** MESSAGE [restart_file_io] ***  Output::
|*** MESSAGE [restart_file_io] ***    OutputFile = restart.nc
|*** MESSAGE [restart_file_io] ***    IntTime    = 100. [day]
|*** MESSAGE [restart_file_io] ***  -- version = ... rikawa Exp $
|*** MESSAGE [HistoryGetDouble3] ***  Input init_T21L20.nc@U,time=0.
|*** MESSAGE [HistoryGetDouble3] ***  Input init_T21L20.nc@V,time=0.
|*** MESSAGE [HistoryGetDouble3] ***  Input init_T21L20.nc@Temp,time=0.
|*** MESSAGE [HistoryGetDouble3] ***  Input init_T21L20.nc@QVap,time=0.
|*** MESSAGE [HistoryGetDouble2] ***  Input init_T21L20.nc@Ps,time=0.
|*** MESSAGE [restart_file_io] ***  Initial data (not restart data) is input from a data file "init_T21L20.nc". *B | (t-dt) and *N (t) are same.

惑星表面を「沼条件 (swamp condition)」で計算する

実行用の設定ファイル (namelist ファイル) において下のように設定.

上記設定は, 例えば, サンプルとして同梱されている設定ファイル, dcpam_ape_T21L16.nml を変更する場合には,

&surface_data_nml
  SurfCond = 1
/

のみ追記することで実現できます (その他の設定はデフォルト値).

参考文献


$Id: changesetup.rd,v 1.5 2012-02-01 07:40:45 yot Exp $
DCPAM Development Group / GFD Dennou Staff dcstaff@gfd-dennou.org