早崎トップ 研究(気候気象) 研究(大気汚染) データリスト 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 github wiki(WRF ユーザweb)
    • GitHub 上のWRF情報のベース.リリースノートやユーザーズガイドなどへのリンク. ただし,ほとんどは WRF Users Site(WRF ユーザweb) へのリンク.
    • ソースコードはここ(https://github.com/wrf-model/WRF)にあるが,一般ユーザは見る必要なし.
    • WRF 使用者(ソースコード取得者)はユーザーズサイトの "Download" タブ以下にてユーザ登録すること. 取得だけなら GitHub から丸ごと持ってこれるけど,開発元(研究者)への情報提供は大事. 開発元は登録を希望しているのだから,無料で取得できるからと言って黙って持っていくだけというのはモラル違反だと思う.
  2. WRF Users Site(WRF ユーザweb)
    • WRFのソースコード・ドキュメント・チュートリアルなどの入手先.
  3. WRF 概要紹介サイト
    • WRFの概要情報と詳細情報へのリンクをまとめたもの,一種のポータルサイトとも言える. 完全な初心者なら一読するのも良い,という程度.

WRF 私的メモ

  • WRF バージョン情報(私的メモレベル)
    • v4.3: 2021-05-11 release
    • v4.2.2: 2021-01-15 release
  • 更新情報

    Date Changes
    2021-06-14 かなり久しぶりにアクセス. WRF私的メモ(ひとまずWRFのバージョン履歴)を追加. あまりにも古い情報多いので,順次修正. 過去情報,必ずしも無駄とは言えないので,本文とは分離して保存する方針.
    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 版の最終更新日

    ページ先頭に戻る