早崎トップ 研究(気候気象) 研究(大気汚染) データリスト Linux Tips Mac Tips

WRF setup

WRF setup

WRF導入手順のメモ.導入途中から書きはじめたので,抜け落ちがあるかもしれない.

実行環境整備(*.exe のコンパイル)

  事前準備

実行ファイル生成は,WRFV3 でのコンパイル,WPS でのコンパイル,の順.

WRFV3 コンパイルの事前準備

  • ライブラリ・ヘッダファイルのインストール&設定
  • 環境変数を設定

稼働確認したMPICH: mpich-3.1.4 & 3.2 (See MPICH の配布元; CentOS 7.2 にて.checked 2016-01-23)

tar ball からのコンパイルの場合, 環境変数 FC や FCFLAGS のみ設定, 環境変数 F90 や F90FLAGS はカラにしておく. そうしないと,configure 時に以下のメッセージでて途中停止する.

configure: error: F90 and F90FLAGS are replaced by FC and FCFLAGS respectively 
in this configure, please unset F90/F90FLAGS and set FC/FCFLAGS instead and 
rerun configure again.
$ wget http://www.mpich.org/static/downloads/3.2/mpich-3.2.tar.gz
$ tar xzf mpich-3.2.tar.gz
$ cd mpich-3.2
$ export CC=gcc
$ export FC=gfortran
$ export FCFLAGS="-O3 -fconvert=big-endian -ffree-line-length-none -fbounds-check"
  (-O3 や -fbounds-check は不要かもしれない.あるとトラブルの元になるかも)
$ export F90=""
$ export F90FLAGS=""
$ ./configure --prefix=/usr/local/mpich-3.2_gfortran
$ make
$ sudo make install

WPSコンパイル時 (GRIB2形式の読み出しを on にする場合)

通常なら,ライブラリは導入済みのはず. header ファイルを入れていない場合,ungrib.exe の生成に失敗するはず. 以下を事前実行しておくとよい.

# yum -y install jasper-devel libpng-devel

header ファイルをインストールしているか否かは,*-devel が入っているか否かを確認すればわかる.

% rpm -qa | grep jasper
jasper-devel-1.900.1-14.el5
jasper-devel-1.900.1-14.el5
jasper-1.900.1-14.el5
jasper-utils-1.900.1-14.el5
jasper-libs-1.900.1-14.el5
jasper-libs-1.900.1-14.el5

% rpm -qa | grep png
libpng-devel-1.2.10-16.el5_8
libpng-devel-1.2.10-16.el5_8
libpng-1.2.10-16.el5_8
libpng-1.2.10-16.el5_8

% rpm -qa | grep zlib
zlib-1.2.3-4.el5
zlib-1.2.3-4.el5
zlib-devel-1.2.3-4.el5
zlib-devel-1.2.3-4.el5

% rpm -qa | grep mpich
mpich2-1.2.1p1-1.el5
mpich2-devel-1.2.1p1-1.el5
mpich2-1.2.1p1-1.el5
mpich2-devel-1.2.1p1-1.el5

※確認時のCentOS リリース番号,覚えてない.
CentOS 7.0 くらいだと思うが,自信がない.

上記には不要なファイル群も含まれる(32- & 64-bit 版の両方が表示されてる). (おそらくは)一般的と思われる計算条件で必要なのは

jasper & jasper-devel, libpng & libpng-devel, zlib & zlib-devel & mpich2

であろう. 32-bit, 64-bit 版の両方が必要となるか否かは未確認.

なお,ここでいう「一般的と思われる計算条件」とは, 『shared memory & parallel-task (smpar) 計算』 である. つまり,マルチコアCPUを搭載した Linux PC (1台) でのWRF実行を想定. クラスター計算機などの場合は,distributed memory & parallel-task (dmpar) でコンパイルすべきかな.

GRIB-2 形式データ(参照: GRIB & wgrib情報)を使わないのなら, 不要なものもある.しかし,

  • GRIB-2 はGRIB-1 の後継データフォーマットである
  • GRIB-1 に比べてデータ容量が小さく済む(データの圧縮効率が高いため)
  • 気象庁 GPV など,GRIB-2 形式でのデータ提供も増えている

などの背景を考慮すれば,早い段階にGRIB-1 から GRIB-2 へ移行することをお薦めする.

 WRF 本体のコンパイル

v3.6.1 をテスト(2015-04-07). 私的なPCでテストするので,gfortran & gcc を使用. 業務で使うときには,Intel Fortran or PGI Fortran などを使う(はず).

WRFV3 コンパイル

v3.6.1 はコンパイル時にエラー発生する. 下記の 1,2 はその回避方法. v3.7.1 では不要(2015-10-07 確認済).

  1. (your_WRFV3_root)/WRFV3/frame/wrf_shutdown.F を古いバージョン(例えば v3.4.1)のものに置き換え
  2. (your_WRFV3_root)/WRFV3/frame/module_dm.F に,INTEGER local_communicator を追記
  3. ./configure ; ./compile em_real

何度も繰り返す失敗(WRFコンパイル時のLANG環境.言語環境の設定):
WRFV3 コンパイル時には,日本語環境を使うべからず.

$ echo $LANG
ja_JP.UTF-8
$ LANG=C
$ echo $LANG
C

日本語モードのままで WRFV3 の configure を行うと,下記のメッセージが出る (CentOS 7.2 で確認.2016-01-22).

Testing for NetCDF, C and Fortran compiler

  One of compilers testing failed!
  Please check your compiler

上記状態では,compile em_real を強行しても失敗する.
久しぶりにコンパイルしたので,言語環境の事なんか忘れてた. また忘れるであろう,未来の自分のために記録.

WPS コンパイル

$ export JASPERLIB=/usr/local/lib
$ export JASPERINC=/usr/local/include
  (上記は jasper を手動インストールした場合のパス.RPMで突っ込んだのならパスが違うので注意)
  (パスの設定に注意.compile 時,より厳密には ungrib 生成時に,$JASPERINC/jasper/jasper.h を探しに行く)
  (JASPERINC に "jasper/jasper.h" を付け足して include するので,間違うな)
$ ./configure
  (ここでは,"Linux x86_64, gfortran    (serial)" を選択する.大抵は1番かな)
$ ./compile >& log_compile.txt
  (正常終了時に,geogrid.exe, metgrid.exe, ungrib.exe が生成されている)

実行

簡単に言えば,

  1. WPS ({geogrid, ungrib, metgrid}.exe)の実行
  2. WRF (real.exe) の実行

という手順.コンパイルとは逆順になる.

  WPS

実行順序は以下の通り:

  1. geogrid.exe
    • 地形などの情報ファイルの所在を確認する
    • WRF本体のバージョンアップ時に,geog.tar.gz も更新されている場合がある
  2. ungrib.exe
    • テストデータとしては,NCEP Tropospheric FNL analyses を使うと良かろう. See also 現業気象データ & NCEP FNL メモ (hysk)
    • 出来る限りGRIB2 の方を使う.GRIB2 の方が,データファイルの容量が少なく済むので.
    • FNL (GRIB2)を使う場合の Variable Table (Vtable.*) は,Vtable.GFS が最適(see [WPS dir]/ungrib/Variable_Tables/README)
  3. metgrid.exe
    • hoge

geogrid.exe

ungrib.exe

metgrid.exe

 WRF

Under const.

動作確認

OS, distribution
(kernel version)
WRF version CPU NetCDF C compiler Fortran Check date
CentOS 7.2
(3.10.0-327.4.4.el7.x86_64)
v3.7.1 Core(TM) i5-3450S CPU @ 2.80GHz netcdf-4.3.3.1,
netcdf-fortran-4.4.2
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4) GNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4) 2015-10-07 & 2016-01-22
CentOS 7.0 v3.6.1 Core(TM) i5-3450S CPU @ 2.80GHz netcdf-4.3.2,
netcdf-fortran-4.4.1
gcc (GCC) 4.x.x GNU Fortran (GCC) 4.x.x 2015-04-07

参考文献・Webサイト

web情報

  1. WRF Users Site(WRF ユーザweb)
    • WRFのソースコード・ドキュメント・チュートリアルなどの入手先.
  2. WRF Main Site(WRF メインweb)
    • WRF全般情報のサイト.WRF関連出版物リストなどは要参照.

更新情報

Date Changes
2016-01-22 WRFコンパイル時のLANG環境に関するメモを追加. 何度もこれでトラブルを経験し,解決のために無駄な時間を費やしてしまう. もはや自分の記憶が信用できない.外部記憶装置(web)に記録.
2015-10-04 コンパイル関連の記述の一部に誤記・不足情報があったのを修正.
2015-04-07 WRFV3.6.1 における不具合(コンパイル失敗)の回避方法を記述.
2012-07-17 XHTML版への修正日(1st ed.)
2010-11-15 FS wiki 版の最終更新日

ページ先頭に戻る