Pendergrass and Willoughby 2009 SEQ モデル

本プログラムは, Pendergrass and Willoughby 2009 (MWR) における 2 次元軸対称ソーヤーエリアッセンモデル (SEQ) である.

本モデルの定式化などの詳細は原論文を参照 (あとでマニュアル化します). 接線風 (台風) の渦の分布と環境場の温度構造, 壁雲を想定した非断熱加熱の分布を与えると, 静力学, 傾度風バランスを満たした 2 次循環 (インフロー + 上昇流) の分布を計算する (いわゆる強制・応答問題).

ファイル構成は以下のようになっている.

sound_make.f90 -> 環境場の鉛直 1 次元構造データをテキスト形式で作成する.
                  sounding.dat という名称のファイルが作成される.
initial_make.f90 -> 接線風速の空間分布を生成し, sounding.dat の温度データから
                    静力学, 傾度風バランスするように温度の空間分布を計算する.
                    また, 非断熱加熱の分布も作成し,
                    それらを initial.nc という NetCDF 形式のファイルにまとめる.
SEQ.f90 -> ソルバプログラム.
           initial.nc データから, この構造, 強制に応答する 2 次循環構造を
           計算し, result_initial.nc という NetCDF 形式のデータにまとめる.

プログラムの実行

依存プログラム

  • 必須
STPK, NetCDF, gtool5
  • 描画用のオプション
DCLAF90, DCL

NetCDF 形式で出力されるので, それを描画するツールがあれば, 何でも OK.

Makefile の編集

  • Makefile を自身の環境に合わせて以下の項目を編集して下さい.
FC      = ifort  # STPK をコンパイルした際のコンパイラ
LIBNCDIR= /home/satoki/usr/netcdf-4.0/lib  # NetCDF の lib のインストール場所
LIBGT5D = /home/satoki/usr/gtool5/lib  # gtool5 (lib) のインストール場所
LIBGT5IN= /home/satoki/usr/gtool5/include  # gtool5 (include) のインストール場所

Mkinclude の編集

  • 本ディレクトリの 2 つ上にある Mkinclude を編集します.
ISTDIR	= ${HOME}/usr/local  # STPK のインストール先

プログラムのコンパイル

$ make

でプリプロセッサ, メインソルバがコンパイルされ,

sound_make, initial_make, SEQ

が生成される.

また, オプションとして, 描画用プログラム (DCL, DCLAF90 必須) をコンパイルする場合は,

$ make draw

で draw プログラムが作成される.

プログラムの実行

プリプロセッサの実行

sound_make, initial_make

は初期データ作成のために必要なだけであり, 別途独自にデータを用意する場合はこれを実行する必要はない.

例えば, サウンディングだけ別途用意し, initial_make から始めることも可能である. すでに, 2 次元のデータが用意されている場合は, 直接 SEQ の実行に移ってもよい.

ここでは, 何もない状態から始めることを想定している.

namelist の編集

同梱ファイルに namelist というファイルが入っていると思う. これは, 上の 3 プログラムで共通に用いられるネームリストファイルである.

nr = 751  # 水平格子数
nz = 21  # 鉛直格子数
dr = 2000.0  # 水平格子解像度 [m]
dz = 1000.0  # 鉛直格子解像度 [m]
bc = '1112'  # 境界条件の sign (Poisson_Gausei の説明ページ参照)
fname = 'initial.nc'  # 2 次元初期値データのファイル名
sound_name = 'sounding.dat'  # 1 次元サウンディングデータのファイル名

デフォルトでは, Pendergrass and Willoughby (2009) の値が設定されている.

実際の実行

以下の順番で実行する.

$ ./sound_make < namelist
$ ./initial_make < namelist
$ ./SEQ < namelist

以上で結果が result_initial.nc に作成されている.

データの詳細は NetCDF のヘッダー情報参照.

描画オプション

オプションとして同梱されている描画プログラム draw の実行についても記述しておく.

namelist の編集

draw_?? という名称のファイルは draw 用のネームリストファイルである.

nr = 751  # 水平格子数
nz = 21  # 鉛直格子数
rmin = 0.0  # 描画領域左端 [m]
rmax = 150.0e3  # 描画領域右端 [m]
zmin = 0.0  # 描画領域下端 [m]
zmax = 20.0e3  # 描画領域上端 [m]
fname = 'result_initial.nc'  # 読み出しデータファイル名
value_name1 = 'u'  # コンターで表記する変数
value_name2 = 'w'  # カラーシェードで表記する変数
cmin = -4.0  # コンターの最小値
cmax = 4.0  # コンターの最大値
smin = -2.0  # シェードの最小値
smax = 2.0  # シェードの最大値

これらを設定し,

$ ./draw < draw_??

を実行すると, 例えば, 以下のようなグラフが描画される.


戻る