WRFモデルの導入

オープンソースのWRF (Weather Research and Forecasting Model)を導入した際のメモ.

Intelコンパイラを使用する場合の手順に従ってWRFのセットアップを行った.
セットアップ手順は WRF&MPAS-A forum の解説ページに従った.
環境変数の設定に注意を要することを除けば, 概ね解説ページの手順通りの実行で問題ない.

大まかな手順は次のとおりである:
1. WRFのコンパイルや実行に必要なライブラリをインストール
2. WRFのコンパイル
3. WPSのコンパイル

1. 関連ライブラリのインストール

$HOME/WRF/libs の中に各種ライブラリとWRFを入れる場合について説明する.

1-1. mpichのインストール

あらかじめ, 以下のように環境変数を設定しておく:

export DIR="$HOME/WRF/libs"
export CC=icc
export CXX=icpc
export FC=ifort
export F77=ifort
export F90=ifort
export CPP='icc -E'
export CXXCPP='icpc -E'

この段階でPATH, LD_LIBRARY, JASPERLIB, JASPERINC, NETCDFを公式の説明の通りに指定すると, 以降のライブラリインストールの際にエラーが出る可能性がある. 各種ライブラリのインストールが終わり次第, それに応じて環境変数の設定を行う.

cd $HOME/WRF/libs
wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/mpich-3.0.4.tar.gz
tar -zxvf mpich-3.0.4.tar.gz
cd mpich-3.0.4
./configure --prefix=$DIR
make
make install

cd ../              # $HOME/WRF/libs に戻る
mkdir download
mv mpich-3.0.4* download/ #rm -r mpich-3.0.4* としてもよいが, コンパイルをやり直す際に使えるように残しておく

1-2. zlibのインストール

公式の説明に従う:

cd $HOME/WRF/libs
wget https://www2.mmm.ucar.edu/people/duda/files/mpas/sources/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=$DIR/grib2
make
make install
cd ..
mv zlib-1.2.11* download/

1-3. hdf5のインストール

公式手順の通りでok:

wget https://www2.mmm.ucar.edu/people/duda/files/mpas/sources/hdf5-1.10.5.tar.bz2
tar -zxvf hdf5-1.10.5.tar.bz2
cd hdf5-1.10.5
./configure --prefix=$DIR --with-zlib=$DIR/grib2 --enable-fortran --enable-shared
make
make install
cd ..
mv hdf5-1.10.5* download/

1-4. netcdf-cのインストール

コンパイル前に環境変数 CPPFLAGS, LDFLAGS を設定:

export CPPFLAGS="-I$DIR/include"
export LDFLAGS="-L$DIR/lib"

あとは公式手順と同じ:

wget https://github.com/Unidata/netcdf-c/archive/v4.7.2.tar.gz
tar -zxvf v4.7.2.tar.gz
cd netcdf-c-4.7.2
./configure --enable-shared --enable-netcdf4 --disable-filter-testing --disable-dap --prefix=$DIR/netcdf
make
make install
cd ..
mv v4.7.2.tar.gz download/
mv netcdf-c-4.7.2 download/

1-5. netcdf-fortranのインストール

公式手順に従う:

export LIBS=”-lnetcdf -lhdf5_hl -lhdf5 -lz”
export CPPFLAGS="-I$DIR/include"
export LDFLAGS="-L$DIR/lib"
wget https://github.com/Unidata/netcdf-fortran/archive/v4.5.2.tar.gz
tar -zxvf v4.5.2.tar.gz
cd netcdf-fortran-4.5.2
./configure --enable-shared --prefix=$DIR/netcdf
make
make install
cd ..
mv v4.5.2.tar.gz download/
mv netcdf-fortran-4.5.2 download/

1-6. libpngのインストール

公式手順通りでok:

wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/libpng-1.2.50.tar.gz
tar -zxvf libpng-1.2.50.tar.gz
cd libpng-1.2.50
./configure --prefix=$DIR/grib2
make
make install
cd ..
mv libpng* download/

1-7. jasperのインストール

公式手順通りでok:

wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/jasper-1.900.1.tar.gz
tar -zxvf jasper-1.900.1.tar.gz
cd jasper-1.900.1
./configure --prefix=$DIR/grib2
make
make install
cd ..
mv jasper* download/

2. WRFのインストール

ここまでの手順で必要なライブラリのインストールが完了した.

設定を先送りにしていた環境変数をこのタイミングで設定しておく:

export PATH="$DIR/netcdf/bin:$DIR/bin:$PATH"
export LD_LIBRARY_PATH="$DIR/lib:$DIR/netcdf/lib:$DIR/grib2/lib:$LD_LIBRARY_PATH"
export JASPERLIB="$DIR/grib2/lib"
export JASPERINC="$DIR/grib2/include"
export NETCDF="$DIR/netcdf"

いよいよWRFのインストールを行う
github上で公開されているものをダウンロードして使用する:

cd $HOME/WRF
git clone --recurse-submodule https://github.com/wrf-model/WRF.git
# 筆者が実行したときのWRFバージョンは v4.7.1 であった
cd WRF
./configure
# オプションの選択を聞かれる
# 1つ目の質問: 15 (dmpar) を選択 -> INTEL (ifort/icc) 
# 2つ目の質問: 1 (basic)を選択
./compile em_real >& log.compile &
# less +F log.compile で進行状況を確認できる

マシン環境にもよるが, コンパイルには数十分かかった.
実行ファイルが生成されているかチェックする:

ls -l $HOME/WRF/WRF/main/

ndown.exe, real.exe, tc.exe, wrf.exe ができていれば成功.


3. WPSのインストール

シミュレーションの前処理で使用するWPSをインストールする.
WRFのコンパイルが完了してから行う必要がある.

cd $HOME/WFR
git clone https://github.com/wrf-model/WPS.git
cd WPS
export WRF_DIR="$HOME/WRF/WRF"
./configure
# オプションの選択を聞かれる
# 21 (Linux x86_64, Intel Classic compilers (serial)) を選択
./compile >& compile.log &
# less +F log.compile で進行状況を確認できる

よほど高解像度で広範囲を対象とした計算を行うのでなければ, 並列計算を行わない (serial) を指定する.
私の場合は, オプションで21番を選択したが, 他のコンパイラの場合はそれに対応する番号を選ぶ.

コンパイルが成功すれば, $HOME/WRF/WPS の中に geogrid.exe, metgrid.exe, ungrib.exe のリンクができているはず.
以上で, WRFとWPSのインストールは完了である.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA