[GFD Dennou Club | deepconv Project] [deepconv Reference Manual]

らくらく deepconv/arare5


  1. はじめに
  2. 設定ファイルの作成
  3. 基本場と初期値の設定

はじめに

この文書は deeoconv/arare の利用の手引である. ここでは インストール の手引 により, すでにソースコードのコンパイル と実行プログラムのインストールは終了しているものとし, 自分で基本場と初 期条件を設定し実行する方法について簡単に解説する. デフォルトの設定を用 いて実行する方法についてはごくらく deepconvを参 照されたい.

実行プログラムはソースツリーディレクトリ (ここでは /work/deepconv に展開されているとする) 直下の bin ディレクトリ以下にあるとする.

設定ファイルの作成

deepconv/arare の計算設定を行う NAMELIST ファイルのサンプルは src/sample_nml に置かれています. これらを基にして NAMLIST ファイルを作成します.

具体的なサンプル

基本場と初期値の設定

基本場と初期値作成プログラムは src/main/arare_init-data.f90 です. プログラムの前半で基本場を, 後半で擾乱場の初期値を設定しています.

基本場の設定

基本場の設定を行う部分は以下のように記述されている.

case (IDBasic[FlagBasic])

  call MessageNotiy("M", "main", "Making Initial data..." )

  ! 基本場の温度, 気圧, モル分率を決める
  z_TempBZ  = ...
  z_PressBZ = ...
  zf_MolFr  = ...


  ! 残りの基本場の値を決める
  call DetermineBZ

case(...

  ...

end select

任意の基本場を与えて計算を行いたい場合は, 既存の case 文による選択肢を コピーし, 必要に応じて温度(z_TempBZ), 気圧(z_PressBZ), モル分率 (zf_MolFr)を与えればよい. FlagBasic には既存のフラグ名と重ならない名前 を与え, 初期値作成用の NAMLIST ファイルにおいて NAMELIST 変数 initialdata_nml の FlagBasic にその名前を指定する.

具体的な基本場の与え方は src/env/ 以下のプログラムを参考にするとよい.

具体例

上端と下端の温度(TempTop, TempSfc), 温度勾配(DTDz)を与え, 静水圧平衡に ある基本場を与える場合(大気成分は一種類).

case(IDBasicBaker1998)

  call MessageNotify( "M", "main", "Making Initial data named Baker1998..." )

  ! DTDz を設定する
  DTDz = ...

  ! 温度場の設定
  z_TempBZ(nz) = Ttop - DTDz(nz) * z_dz(nz) * 0.5

  do k = nz-1, 1, -1
    z_TempBZ(k) = z_TempBZ(k+1) - DTDz(k+1) * (z_dz(k+1) + z_dz(k)) *0.5
  end do

  ! 気圧場の設定(静水圧)
  z_PressBZ(1) = PressSfc - &
    & (Grav * PressSfc * z_dz(1) * 5.0d-1) / (GasRDry * TempSfc)

  do k = 2, nz
    z_PressBZ(k) = z_PressBZ(k-1) - (Grav * z_PressBZ(k-1) * z_dz(k-1)) &
      & / ( GasRDry * z_TempBZ(k-1) )
  end do

  ! モル分率の設定
  zf_MolFr = 0.0d0

  ! 残りの基本場の値を決める
  call DetermineBZ            

end select

擾乱場の設定

擾乱場の設定も基本場と同様 case 文を用いて行われている.

select case(IDDisturbPTemp)
  case(IDDisturbPTemp[FlagDisturbPTemp])
  ...

  case(...
  ...
end select case

select case(IDDisturbExner)
  case(IDDisturbExner[FlagDisturbExner])
  ...

end select case

擾乱場は NAMELIST ファイルにおいて変数 FlagDisturb(変数名)の値が指定さ れていない場合 0 が代入されるようになっている. 基本場を設定する場合と同 様に case 文の選択肢を必要に応じてコピーし, 初期擾乱を設定する. FlagDisturb(変数名) には既存のフラグ名と重ならない名前を与え, 初期値作 成用の NAMLIST ファイルにおいて NAMELIST 変数 initialdata_nml の FlagDisturb(変数名) にその名前を指定する.

プログラムの実行

arare_init-data.f90 の編集が終ったらコンパイルし, NAMELIST ファイルにし かるべき値を指定して実行する. ここでは初期値生成用 NAMLIST ファイルを arare_init-data.conf, 実行用 NAMLIST ファイルを arare.conf としています.


deepconv Development Group / GFD Dennou Staff dcstaff@gfd-dennou.org
Last Updated: 2012/05/09, Since: 2006/09/12