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 実行
----------
様々なデータを 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時間ずつ補間してデータを作成する。
[ 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)式から, 気圧面が見積もれる.