wrf-1way-nesting

1way-nesting (最終更新日 : 2010/11/02)

ここでは、以下のサイトを参考にしました。

http://www.mmm.ucar.edu/wrf/OnLineTutorial/CASES/NestRuns/ndown.htm

--- 実行の流れ ---

1. 2way-nestと同じようにWPSでの処理を行う。

2. 親ドメインを計算する。

3. 作成した親ドメインの結果から、子ドメインの初期値を作成する。(ndown)

4. 子ドメインを計算する。

-----------------

ここでは、例として、15km-3kmの1way-nestingを挙げます。

実行の流れのなかで、何度もnamelist.inputを変更するので、

毎度毎度、backupをとっておきながらやると、

失敗が少なくなると思います。

---

1. 2way-nestと同じようにWPSでの処理を行う。

ここは省略します。

---

2. 親ドメインを計算する。

ここでは、作成したnamelist.inputで親ドメインのみを計算します。

その際に書き換える点があります。

max_dom = 1,

にしておくことです。

出力は、wrfout_d01*です。

---

3. 作成した親ドメインの結果から、子ドメインの初期値を作成する。(ndown)

2. でwrfout_*がすべて作成されたら、

もともとのnamelist.inputをコピーしておきます。

$ cp namelist.input namelist.input_d01

そして、namelist.input内の、計算を始める日時と終わる日時を

同じに設定します。具体的には、

start_year = 2010,

start_month = 06,

start_day = 25,

start_hour = 12,

end_year = 2010,

end_month = 06,

end_day = 25,

end_hour = 12,

とします。

さらに、interval_seconds を、親ドメインの出力した間隔に合わせます。

例えば、親ドメインのoutputが1時間置きならば、

interval_seconds = 3600,

とします。

** 注意 **

一番内側のドメインが1kmの場合, 境界値の間隔を3時間(10800)以下にすると,

''Warning ZR + 2m is larger than the 1st WRF level''

という警告が出て, ある程度走ってから計算が止まってしまいます.

一番内側のドメインが1kmのように細かくなる場合は, 境界値として与える間隔は, 最少で3時間(10800)のようです.

もしかしたら, ほかのBugかもしれませんが. (2010/11/02 追記)

そして、

e_we =

e_sn =

dx =

dy =

grid_id =

parent_id =

i_parent_start =

j_parent_start =

parent_grid_ratio =

parent_time_step_ratio =

の設定を全て、子ドメイン用に書き換えます。

(親ドメイン用の設定を消して、左詰めするだけでOK)

そして、

WPSで作成した、met_em.d02*の初期時刻のみのファイルを

met_em.d01* という名前でコピーします。

$ cp met_em.02*** met_em.01***

そして、real.exeを実行。

(wrfinput_d01が出力される。)

その後、作成されたwrfinput_d01を

renameし、

wrfndi_d02 というファイルにします。

$ mv wrfinput_d01 wrfndi_d02

以上で、ndown.exeを行うための、入力ファイルの準備が整いました。

使用する入力ファイルとは、

親ドメインを計算した出力結果 → wrfout_d01* (複数data)

子ドメインの初期値 → wrfndi_d02 (1個だけ)

です。

ここで、ndown.exeを行うまえに、wrfndi_d02を作成したときに使った

namelist.inputをコピーしておきます。

$ cp namelist.input namelist.input_d02

さらに、親ドメインを作成したときに使用した、

namelist.inputを使用します。

$ cp namelist.input_d01 namelist.input

はじめは、親ドメインのみの計算だったので、

max_dom = 2

に書き直しておくことをわすれずに。

そして、ようやく、ndownの準備が整ったので、

ndown.exeを実行します。

うまくいけば、

wrfinput_d02 wrfbdy_d02

というファイルが作成されているので、

このファイルをそれぞれ

wrfinput_d01 wrfbdy_d01

にRENAMEします。

---

4. 子ドメインの計算。

入力ファイルは、ndownで作成した、

wrfinput_d01 wrfbdy_d01

です。

これらは、名前上、はd01になっていますが、

データは、親ドメインの境界値をもらって作成された

子ドメインのデータの初期値になっています。

計算の際には、wrfndi_d02を作成したときに使った

namelist.inputを使用します。

$ cp namelist.input_d02 namelist.input

max_domain = 1

に変更し、

time_step =

等も全て子ドメイン用に書き換えます。

さらに、

&bdy_control のところで、

specified = .true.,

nested = .false.,

/

としておくこと。(2010/09/05 追記)

変更が終わったら、後は、wrf.exeを実行します。

Outputされるファイルは、wrfout_d01_<date>

という名前になっていますが、

中身は、子ドメインの計算結果になっています。

**この後、さらに3-4ドメインと計算していく場合に、

親ドメインのwrfout**のリンクを貼ったまま計算してしまうと、

そのリンク先が、新たに作成されるwrfout*のデータで置き換わってしまう。

そのため、計算を始めるまえに、親ドメインのwrfout**のリンクは消去しておく!

(2010/09/06 追記)