WRF

このページは、現在私が使用している数値モデルに関するメモです。

Last modified: 2013/12/05

How to install WRF model with Intel compiler

How to install WRF model with GNU compiler

How to install WRF model with PGI compiler

-----

WPS 実行

GUI(java):

領域設定,

ネスティング設定,

namelist.wps設定,

namelist.input設定,

geogrid,

ungrib,

metgrid

CUI:

geogrid全般

ungrib全般,

metgrid全般

-----

WRF 実行

nesting,

MGDSST,

LES(Large Eddy Simulation)

----------

様々なデータを ungrib (最終更新日 : 2010/08/03)

, WPSで初期値作成

, GUIでWPSで初期値作成

, WRFV3の実行

可視化

, VAPORのインストール(工事中)

, VAPORの実行(工事中)

---

「初期値作成とWRF実行」

注意:WPS→WRFの順番

[ WPS ]

GUI(グラフィックユーザーインターフェース)の場合

まず、WRFのHPから地形データgeog.tar.gzをとってくる。

WPS/ WRFV3/ と同じディレクトリにgeog/を作成。

javaをインストール。

(javaインストール作業については、READMEを良く読む。)

→ wrf domain wizardでググる。

→ サイト中ほどのリンクをclick。

→ GUI起動。

*URLをデスクトップにショートカットキーとしてコピーしておくと便利。(2010/04/09追記)

NCEP data取得

アカウントを作成して、final analysisデータを取得。(grib1とgrib2がある)

まず、GUIが起動すると、

ローカルコンピュータ名、domainディレクトリ、地形データディレクトリ、

WRFディレクトリ、WPSディレクトリをフルパスで指定する。

domainディレクトリがない場合は、別途作成しておく。

次は、計算範囲指定。

第1ドメインと、地形の細かさ、投影法を決定。

nestingする場合は、nestタブで指定。

ネスティングする割合は、3か4がオススメ。

例えば、

27km-9km-3km-1km

16km-4km-1kmなどなど。

Memoryの容量に応じて。

次は、namelist.inputの編集。

計算開始時刻、終了時刻、

出力Time-step、積分間隔、

積雲パラメタリゼーション、微物理スキーム、

η座標系の鉛直層数などを決めます。

次は、namelist.wpsの編集を兼ねた場面。

まず、使用するdataディレクトリを指定。

使用するデータに合ったVtableを選択。

(ここが、CUIでのln -fs /ungrib/Vtable_??/Vtable.** Vtable に相当)

使用する時間帯及び、境界値のdataを指定。

(ここが、CUIでのgrib_link.csh に相当)

mpiを使用する場合は、

/usr/local/mpich2-1.2/bin/mpiexec -n 2

をフルパスで指定しておく。

WPS実行

geogridタブをclick。

ungribタブをclick。

metgridタブをclick。

出来上がったファイル群は、一番初めに作った、domain以下にあります。

--

CUI(コマンドユーザーインターフェース?)の場合

WPSでは、まず初期値を作成する。

初期値, 境界値のデータフォーマットに合うVtableを選択。

ln -fs /ungrib/Vtable_??/Vtable.** Vtable

初期値, 境界値のデータのリンク作成

./grib_link.csh ../data/*

まず、namelist.wpsをemacsなどで編集。

geogridに関係する

時刻、日時、予報時間、

格子数、格子間隔、

地形データのディレクトリの指定などを行う。

-- 地形データ作成

./geogrid.exe

-- 中間データ作成

-----

NCEPの最終解析値を使用する。

    • Vtable.GFSを使用するだけでOK.

    • namelist.input で num_metgrid_levels = 27,

    • と変更しておくのをわすれずに.

-- 水平内挿

./metgrid.exe

namelist.wpsのmetgrid/セクション内で、

例えば、

'NCEP', 'JRA',

と並べてから実行する。

この場合、JRAをメインで使用し、NCEPを補助的に使用することになる。

上手くいくと、

met_em.d0?…ncというNetCDF形式のファイルが出来上がる。

* この時、ncviewなどで、きちんとデータが入っているか確認出来る。

(2010/06/17 追記)

WPSおわり。

WPSの中間フォーマットは、こちら(WRF本家)

(2012/11/26追記)

WPS形式に出力時の注意点:

・Format version は必ず 5にしておく。

・元データの地図投影法を必ず確認し、出力形式を選択する。

--- (ex)等緯度等経度座標系は、”0”

(2012/11/26追記)

AMSR-Eの土壌水分量をWRFに取り込む場合、SM000010の値を上書きする必要がある。

AMSR-Eの土壌水分量データをWPS形式に変換し、metgrid.exe を行う。

(2012/11/26追記)

METGRID.TBL の編集方法:

http://www.mmm.ucar.edu/wrf/users/tutorial/200807/WPS-advanced.pdf

http://www.mmm.ucar.edu/wrf/users/tutorial/201107/WPS-advanced.ppt.pdf

http://www.mmm.ucar.edu/wrf/users/tutorial/201207/WPS-advanced.pdf

(2010/07/20追記)

SSTに関しては、MGDSSTという遅延データを使用すると、最大で1ヶ月遅れでデータを入手できる。

そのままだと、1日置きしかデータがないので、6時間ずつ補間してデータを作成する。

MGDSST

[ WRF ]

(1)serialオプションで計算する場合

$ ./real.exe

でオーバーフローするときは、Vtableの選択間違いや、namelist.input中のグリッド数の間違い。

あと、ulimit -s 64000000とかでスタックサイズを具体的な数値にしておくことも重要。

$ ./wrf.exe

(2)dmparで計算する場合。

まず、mpdを複数起動させないように、

$ mpdallexit

でmpdを切る。

次に、

$ mpd &

としてデーモンで起動(mpd --daemon でも可)。

# ただし、mpich2 1.4 以上では必要ない。 (2013/12/05 追記)

そして、実行は、

$ mpiexec -n 2 ./real.exe

とする。

-n 2 の2は、ノード数を表している。

wrf.exeも同様。

$ mpiexec -n 2 ./real.exe > /dev/null 1>&2 &

とすれば、実行をバックグラウンドにまわせる。

進行状況は、

$ top

u

user名

でログインしているuserのアプリケーション情報が分かる。

また、

$ tail -f rsl.out.0000

でログ監視。

すぐに落ちたりする場合は、rsl.error.0000をよく読んで、namelist.inputなどを編集する。

その際に、mpdが競合するのを防ぐため、一度切って、再起動するなどしておくと失敗が少ない。

jobを止める時は、

$ ps と打ってPIDを取得。

$ kill -KILL [取得したPID]

または,

$ killall wrf.exe

と打つ.

ver. 3.5 以上の実行時の注意

wrfinput_d0X, wrfbdy_d0X を ver. 3.5 よりも低いバージョンで作成した場合、 namelist.input の以下の部分を修正する。

&dynamics

・・・

iso_temp = 0

/

デフォルトでは iso_temp = 200 となっており、ver. 3.5 から値を 0 にする必要がある。

参考URL: http://www.mmm.ucar.edu/wrf/users/wrfv3.5/updates-3.5.1.html

Eta Cordinate Level から気圧面を見積もるメモ.

η = (Ph - Pht)/(Phs - Pht) ・・・ (1)

ここで, Ph : 気圧面, Pht : モデル上端の気圧面, Phs : モデル最下層の気圧面

(1)式を Ph について解くと

Ph = Pht + η * (Phs - Pht) ・・・ (2)

(2)式から, 気圧面が見積もれる.