WRF全体について、詳しくはWRF MODEL USER'S PAGE を参照のこと
WRFの現実的設定の計算では、まずWRF Preprocessing System (WPS)で客観解析データ, 地形データ等を処理して入力データを作ってから WRF を実行します. 以下、インストールから実行の手順を記します. 詳細は WRF ARW Online Tutorialを参照すること.
川島修正版のWRFV3.5.1.TAR.gz, WPSV3.5.1.TAR.gzをcopyしておくこと.
以下、user maroが作業用directory WRF_V3.5.1/, WPS_V3.5.1/ 以下に WRF、WPSをそれぞれインストールする例を書きます. (Ver 3.7.1のインストールと殆ど同じですが、ちょっとだけ違います)
WRFのインストール
shear7を再起動した場合、fortranのライセンスマネージャが 止っているので、以下のコマンドを打って起動しておくこと。(他のマシンでは不要) [maro@shear7]$ lmgrd.rc [maro@shear7 WRF_V3.5.1]$ export WRF_EM_CORE=1 #(bash系, cshの時はsetenv WRF_EM_CORE 1 ) [maro@shear7 WRF_V3.5.1]$ tar xzvf WRFV3.5.1.TAR.gz # 展開 [maro@shear7 WRF_V3.5.1]$ cd WRFV3 [maro@shear7 WRFV3]$ ./configure Enter selection[1-63]: と聞かれるので、 INTEL (ifort/icc) の dmpar (dmpar= distributed memory option : MPI 並列) に対応する番号 (Ver 3.5.1 なら19 ) を入力. 次に Compile for nesting? (1=basic, 2=preset moves, 3=vortex following) [default 1]: と聞かれますが、ここでは 2 (=preset move: 内部領域を移動させる場合に対応しますが、 移動させない場合にも対応している) としてください. [maro@shear7 WRFV3]$ ./compile em_real >& compile.log & #最初のコンパイルには40〜50分ほどかかります。 [maro@shear7 WRFV3]$ cd main [maro@shear7 WRFV3]$ ls -l 4つの.exeファイル (ndown.exe, real.exe, tc.exe, wrf.exe) ができているか確認すること. できていなければコンパイルは失敗しているので log ファイルをチェック. コンパイルに失敗した場合、logファイル(compile.log)を見て原因を調べて、 [maro@shear7 WRFV3]$ ./clean -a (実行形式を全てremoveする) として、やり直すこと. インストール後に、一部のプログラム(subroutine) を改変してcompileする際は、 ./clean -a は行わなくて良い. 改変した部分のみcompileしてくれます(時間が短くて済みます). |
WPSのインストール (注意: WRFをインストールした後でないとできません)
[maro@shear7 WPS_V3.5.1]$ tar xzvf WPSV3.5.1.TAR.gz # 展開 [maro@shear7 WPS_V3.5.1]$ cd WPS [maro@shear7 WPS]$ ./configure Enter selection[1-36]: と聞かれるので、 Linux x86_64, Intel compiler (serial) に対応する番号 (Ver3.5.1 は17) を入力. [maro@shear7 WPS]$ emacs configure.wps & # configure.wpsを編集 WRF_DIR = ../WRFV3 となっているところを、自分のWRFのdirectory(full path) WRF_DIR = /home/maro/WRF_V3.5.1/WRFV3 に変更します. [maro@shear7 WPS]$ ./compile #コンパイルは数分でできます。 [maro@shear7 WPS]$ ls -l 3つの.exeファイル(geogrid.exe,metgrid.exe, ungrib.exe)ができてることを 確認すること. できていなければコンパイルは失敗. |
[maro@shear7 ]$ mkdir GEOG # 適当なdirectoryを作る [maro@shear7 ]$ mv geog_complete.tar.bz2 GEOG/. [maro@shear7 ]$ cd GEOG/ [maro@shear7 GEOG]$ tar xvf geog_complete.tar.bz2 # 展開 /home/maro/GEOG/geog 以下にデータができる. topo_10m.tar.bz2, topo_2m.tar.bz2, topo_30s.tar.bz2, topo_5m.tar.bz2 は/home/maro/GEOG/geog/以下にコピーし、展開しておくこと. 拡張子が.tar.bz2になっているファイルを展開するには、jオプションを 付けて以下のようにtarコマンドを実行する。 $ tar jxf topo_10m.tar.bz2 |
以下、大気データとしてNCEP Final Analysis (FNL), 海面水温データとしてReynolds SST を使用する場合について記す. 以下は2015年9月の関東東北豪雨の事例.
NCEP Final analysis、Reynolds SSTのデータを以下のサイトから ダウンロードしてそれぞれ適当なdirectory (以下では/home/maro/DATA/FNL/20150910/, /home/maro/DATA/RTGSST/20150910/以下) に置いておく. 以下にダウンロードの方法を記す. 注意: 特定の事例の再現実験では、見たい日時の数日前後の分も含めて、 多めにデータをダウンロードして保存しておくと良い. NCEP Research Data Archive 一番下のData Accessをクリック → Web File Listing (期間によってGRIB1かGRIB2のいずれか,このケースはGRIB2) → Faceted Browse → Temporal (Valid Time) Selection で期間(対象期間の数日前〜数日後)を指定 (Parameter Selectionはマークしない) →一番下の Continueをクリック →必要なファイルのboxをマークして Downloadをクリック →datafiles.tarが/home/maro/ダウンロード/以下にダウンロードされるので、 作成したdirectoryに移して展開(tar xvf datafiles.tar). RTG_SST analysis ftp://polar.ncep.noaa.gov/pub/history/sst/rtg_high_res (from two days ago back to Sept. 27, 2005) と書いてあるところをクリック →必要なファイル(rtg_sst_....) をクリックしてダウンロード. →rtg_sst... が/home/maro/ダウンロード/以下にダウンロードされるので、 作成したdirectoryに移す. [maro@shear7 ]$ cd WPS_V3.5.1 [maro@shear7 WPS_V3.5.1]$ mkdir WPS_20150910_FNL # 適当なdirectoryを作る [maro@shear7 WPS_V3.5.1]$ cp -rf WPS/* WPS_20150910_FNL/. # 実行形式などコピーしてしまう [maro@shear7 WPS_V3.5.1]$ cd WPS_20150910_FNL/ [maro@shear7 WPS_20150910_FNL]$ emacs namelist.wps & # 期間、領域、格子サイズなどを設定するファイルを編集. とりあえず以下のものをコピーして使うこと(geog_data_pathは自分の地形データの場所に変更すること) namelist.wps 編集したnamelist.wpsはどこかに保存しておき、以降はそれをコピーして適宜 編集すると良い. namelist.wpsの説明(よく変更する箇所のみ) 注意: start_date (end_date)は、あとでWRFで計算することになると思われる期間より 充分前(後)にとっておき、長めにデータを処理しておくと後で二度手間にならない. 例えば、9月10日の事例に着目して計算する場合、start_dateは 9月7日、end_dateは9月13日 とかにしておけば良い. また、start_date, end_date の時刻は 00時 にしておくと、SSTデータの処理の際 変更しなくてすむので面倒がない. *FNLデータのunpack(展開) namelist.wps中の prefix= 'FILE' とする. FNLデータの形式は2015/1/14の前後で変わっています. これに対応し、 *2015/1/13 以前のデータを処理する場合は [maro@shear7 WPS_20150910_FNL]$ ln -sf ungrib/Variable_Tables/Vtable.GFS Vtable *2015/1/14 以降のデータを処理する場合(本ケース)は [maro@shear7 WPS_20150910_FNL]$ ln -sf ungrib/Variable_Tables/Vtable.GFS_new Vtable とすること.(なお、Ver.3.6.1以降では、日付によらず ln -sf ungrib/Variable_Tables/Vtable.GFS Vtable でOK) これ以降の作業は日付により変わりません. [maro@shear7 WPS_20150910_FNL]$ ./link_grib.csh /home/maro/DATA/FNL/20150910/fnl [maro@shear7 WPS_20150910_FNL]$ ./ungrib.exe [maro@shear7 WPS_20150910_FNL]$ ls -l FILE:yyyy-mm-dd_hh ができていることを確認 *SSTデータのunpack [maro@shear7 WPS_20150910_FNL]$ emacs namelist.wps & prefix= 'FILE'を prefix= 'SST'に書き換える [maro@shear7 WPS_20150910_FNL]$ ln -sf ungrib/Variable_Tables/Vtable.SST Vtable [maro@shear7 WPS_20150910_FNL]$ ./link_grib.csh /home/maro/DATA/RTGSST/20150910/rtg [maro@shear7 WPS_20150910_FNL]$ ./ungrib.exe [maro@shear7 WPS_20150910_FNL]$ ls -l SST:yyyy-mm-dd_hh ができていることを確認 *地形データの処理 [maro@shear7 WPS_20150910_FNL]$ ./geogrid.exe [maro@shear7 WPS_20150910_FNL]$ ls -l geo_em.d01.nc ... ができていることを確認. *WRFの入力データの作成 (FNL、SST、地形データから作成) [maro@shear7 WPS_20150910_FNL]$ ./metgrid.exe [maro@shear7 WPS_20150910_FNL]$ ls -l met_em.d01.yyyy-mm-dd....ができていることを確認. [maro@shear7 WPS_20150910_FNL]$ ncdump -h met_em.d01.....(fileはどれでもよい) | more として、冒頭に出てくる num_metgrid_levels の値 (古いFNLデータの場合は27、ごく最近のデータは32になっている) num_st_layers, num_st_layers の値 (古いFNLデータは2, 最近のデータは4になっている) を確認しておくこと。 以下でWRFを実行する際の制御ファイル namelist.inputの中の num_metgrid_levels, num_metgrid_soil_levels の値は、それぞれこれらの値に合せること。 |
geo_em_d0*.nc や met_em_d0*.ncなど netcdf形式の入力データは read_wrf_nc.f で読み込み、改変することができる。 read_wrf_nc.fのページ 以下、モデルの地形(標高)を変える方法について説明する。 以下の地形改変用にread_wrf_nc.f を修正したものをコピーして、自分の課題に合わせ、 適宜修正して使うこと。 read_wrf_nc_d01.f 修正した箇所は プログラム中の subroutine USER_CODE (最後にあります) で、 ! modified by Kawashima と書いてあります。 座標 A (icent, jcent)を中心に、Aからの距離に応じて地形の標高を下げるよう にしています。 点Aからの距離が十分離れた所では、元の標高と殆ど変わらないようにしています。 地形を修正する場合は、geo_em_d0*.ncを修正します。 その後で metgrd.exeを行えば、修正した地形を反映した入力データ met_em_d0*.ncができます。 コンパイル (geo_em_d0*nc のあるdirectoryで行う) [maro@shear7]$ ifort read_wrf_nc_d01.f -L/usr/local/netcdf-3.6.3/lib -lnetcdf -lm -I/usr/local/netcdf-3.6.3/include -free -o read_wrf_nc_d01 実行 [maro@shear7]$ ./read_wrf_nc_d01 -EditData HGT_M geo_em.d01.nc INPUT FILE IS: geo_em.d01.nc Attempting to open netCDF file with write access CAUTION variable HGT_M is about to change. Continue? (yes/no) と出るので yes とすれば、地形の標高(HGT_M)が修正される。 Nestingして実験する際は、read_wrf_nc_d01.fをコピーして適宜書き換え geo_em_d02.nc, geo_em_d03.nc....も同様に修正すること。 (icent, jcent, dx, dy の値を書き換える必要があります) 同様の方法で、地形以外の入力データも修正できます。 |
[maro@shear7 ]$ cd /home/maro/WRF_V3.5.1/WRFV3/test [maro@shear7 test]$ mkdir em_20150910 # 計算用direcotoryの作成 [maro@shear7 test]$ cp -rf em_real/* em_20150910/. # 実行形式など、全部コピーしてしまうと面倒がない. [maro@shear7 test]$ cd em_20150910/ [maro@shear7 em_20150910]$ emacs namelist.input & # 計算の設定ファイルを編集、とりあえず以下のものをコピーして使うこと. namelist.input 注: em_real/以下のdefaultのnamelist.inputは書き換えるべきところが非常に多いので、 一度作った namelist.inputは保存しておき、以降はそれを適宜編集して使うと良い. namelist.inputの説明(よく変更する箇所のみ) 詳しくはWRF User's Guide Chapter 5 を参照のこと |