WRFのダウンロードから実行まで
WRF : WEATHER RESEARCH AND FORECASTING MODELの略
領域気候モデル(Regional Climate Model)の一種で,米国NCARにより開発された気象モデル
以前は一つ前の世代のMM5が使用されてきたが,近年ではWRFが主流となっている.
①WRFのダウンロードの前に・・・
自分のPCの環境を整えておく必要がある.
今回の環境はUbuntu18.04LTSのPCで行う.
・gfrortran
・m4
・mpich(並列計算は行わないがインストールした)
・libpng-dev
・libjasper-dev(libpngと合わせて一つ前の記事に詳細を記述)
・ncl-ncarg
・libnetcdff-dev
・netcdf-bin
・ncview(地形データの確認にあると便利)
等を準備した.勿論,netcdfの環境も実装済み(重要!)
*PCのNETCDFのPAThの関係上,事前にnetcdf-fortran内に/usr/local/libと/usr/local/includeのシンボリックリンクを貼りつけた.libnetcdfやnetcdf.incの場所がWRFコンパイルの際に必要となるため.
②WRFのソースをダウンロードする.
https://www2.mmm.ucar.edu/wrf/users/
ページ内のdownloadタブをクリックすると,”New Users” “Returning Users”があるため,
該当する方を選択.登録をしていない場合は,メールアドレスを登録すれば今後は
returning userとして入ることができる.
今回は,以下のファイル達をダウンロードした.
WRF-4.1.tar.gz
WPS-4.1.tar.gz
geog_high_res_mandatory.tar.gz
それぞれ解凍すると
WRF-4.1
WPS-4.1
WPS_GEOG
ができる.
③WRF本体のコンパイル
最初にWRF本体のコンパイルからスタートする.
これが最初にして最大の難関
cd WRF-4.1 ./configure
と打つと,数字と文字によりconfigureの際の設定に関する選択肢が表示される.
どのコンパイラを使うか,どのような条件でWRFを回すかなど
今回は,32(gfortran, serial)を選択し,nestingの有無については1 (basic)を選択
無事にconfigureが成功すると,configure.wrfができる.
ここで,220行目あたりのLIB_EXTERNALの行にnetcdfのPATH/libの後ろに”-lnetcdff”
が記述されてない場合は記述する.
また,私の場合は,180行目あたりのRRMTG~の行も削除した.
./compile em_real
無事にコンパイルができるまでコーヒーでも飲みながら待機(結構時間がかかる)
できていればsuccessfulの表示が出る
④WPSのコンパイル
続いてWPSのコンパイルを行う.
前回の記事でも書いた通り,ungrib.exeのためにlibjasperとlibpngが必要となる
cd WPS-4.1
./configure
自身の設定に合わせて数字を選択.今回はgfortran, serialなので1を選択
成功すればconfigure.wpsができる.
configure.wps内の48行目あたりの-L$(NETCDF)/lib -lnetcdf の後に-lnetcdff
がなければ書き足す.
./compile
成功すれば,
ungrib.exe
geogrid.exe
metgrid.exeができる.
ungrib.exe : gribデータの処理に必要(NCEPのデータ等)
geogrid.exe : 地形データの作成に必要(WPS_GEOGのデータを使用して地形を作成する)
metgrid.exe : 3つの中で最後に行う.(入力する気象データを整理を行う)
⑤実際にWRFによる計算を行う準備
ここでの処理はすべてWPS-4.1内で行う
test計算のために,2020/06/10 18:00UTC~2020/0616 18:00UTCの期間の
NCEP FNLデータをダウンロードした.
これをfnlディレクトリにまとめてWPS-4.1内に置く(WPS-4.1/fnl/*.grib2)
今回はこのデータを使って近畿地方における計算を行う.
計算に関する設定はnamelist.wpsで行う.
いくつか重要な行について説明する
max_dom = 最大ドメイン数(今回の2) start_date = ドメイン1の計算開始時刻,ドメイン2の計算開始時刻 end_date = ドメイン1の計算終了時刻,ドメイン2の計算終了時刻 **ドメインが3つある場合は,3列目にも記述** interval_seconds = 計算に利用するデータに合わせる(NCEP FNLなら6h = 21600s) &geogrid parent_id = 1, 1, 親ドメインの番号 parent_grid_ratio = 1, 3, 親ドメインと子ドメインの比率.ここでは1:1/3 i_parent_start = 1, 33, j_parent_end = 1, 33, 子ドメインの左下点(i,j)を親ドメインのどこに置くかの設定 e_we = 100, 100, ドメイン1とドメイン2の格子数(東西方向) e_sn = 100, 100, ドメイン1とドメイン2の格子数(南北方向) dx = ドメイン1のx方向の格子間隔(単位はm) dy = ドメイン1のy方向の格子間隔(単位はm) ref_lat = 地形の中心となる緯度 ref_lon = 地形の中心となる経度
namelistの記述が整い次第,
./geogrid.exe
を入力し,地形データ(geo_em.d01.nc, geo_em.d02.nc)を作成する.
ここでncviewなどで地形データを確認して,不満があればnamelistを編集する
地形データの次は,ungribに移行する
ungribでは先ほどダウンロードしたfnlデータを指定する
./link_grib.csh gribデータのPATH
ln -s ungrib/Variable_Tables/Vtable.GFS Vtable
./ungrib.exe
これによりFILE:YYYY-MM-DD_HHが生成
この作業では全球のデータから必要な領域のみを抽出している
最後に
./metgrid.exe
により,met_em.d01.YYYY-MM-DD_HH:00:00:00.ncが生成される
⑥実際にWRFの計算を行う
作業ディレクトリをWRF-4.1/run/に移動
WPSでのnamelistと同じになるようにnamelist.inputを編集
いくつか重要な項目のみを抜粋して説明する
history_interval = 60, 10, frames_per_outfile = 1, 1, ドメイン1は60分に1つ,ドメイン2は10分に1つファイルをoutput &domainds time_step = 15, 計算のタイムステップ p_top_requested = 5000, (単位はPa) num_metgrid_levels = 34, num_metgrid_soil_levels = 4, この2つは入力するファイル(ここではFNL)によって決定 dx = 4500, 1500, dy = 4500, 1500, ドメイン1とドメイン2の格子サイズ 4500/3 = 1500の関係 parent_id = 0, 1, 2, 親ドメインのid 最も外側のドメインのidは0 &physics 各種物理過程のオプション 詳細はWRFのUSERS GUIDEを参照 &fdda ナッジングのオプション 詳細はWRFのUSERS GUIDEを参照
namelistの編集後
ln -s ../../WPS-4.1/met_em.* .
./real.exe
これにより側面境界(wrfinput_d01, wrfbdy_d01)を作成
無事に境界条件が作成された後
./wrf.exe
wrfout_d01_YYYY-MM-DD_HH:00:00:00が生成される
これによりWRFが計算できる.
参考にしたサイト
https://sites.google.com/site/afcwrf/home/install
http://www.lowtem.hokudai.ac.jp/multi-sphere/cloud/kawasima/WRF/wrf.html
https://qiita.com/H1r0ak1Y0sh10ka/items/a1d60768d15663e16e25
http://adachi-ucm.sakura.ne.jp/tips/WRF.html
https://www.mmm.ucar.edu/wrf-user-support-contributor-information