領域気象モデルWeather Research&Forecasting model(WRF)のバージョン3を導入します.
2025年現在,使用しているコンパイラによってはデフォルトとは別にフラグを追加する等の手間がかかりますが,少なくともWRFはコンパイルできました.
WRFv3.9のマニュアル
環境
OS(ディストリビューション):Linux(RHEL9.6)
コンパイラ:gcc(v11.5.0),g++(v11.5.0),gfortran(v11.5.0)
ディレクトリMyWRFv3内に次のような環境を構築します.
MyWRFv3
| - WRFV3 (WRF本体)
| - WPSV3 (WPS)
| - WPS_GEOG (地形データ)
| - wrf_dependencies (依存ライブラリ)
| - build_wrf_dependencies.sh(依存ライブラリのインストールスクリプト)
WRF&WPSのソースコードを入手
WRF Model Users Siteの「Download」→ 「WRF&WPS Sorce Code」からWRFとWPS及び必要ライブラリの一部を入手します.
以降は登録が必要な作業です.
入手できたら$MyWRFv3内で
- WRF v3.9.1.1(tarファイル)
- WPS v3.9.1(tarファイル)
展開します.
$ tar xzvf WRFV3.9.1.1.TAR.gz
$ tar xzvf WPSV3.9.1.TAR.gz
依存ライブラリの導入
WRF,WPSと同じ階層に用意したwrf_dependenciesディクトリ内へ依存環境を導入します.
$ ls -l
total 8
drwxr-xr-x 7 hoge hoge 4096 Aug 18 2017 WPS
drwxr-xr-x 17 hoge hoge 4096 Aug 29 2017 WRFV3
drwxr-xr-x 2 hoge hoge 10 Jan 29 19:24 wrf_dependencies
公式(NCAR)のユーザーフォーラムで紹介されているインストールスクリプトを実行します.
$ cd MyWRFv3
$ sh build_wrf_dependencies.sh
次のように環境変数を設定します.
export DIR=/DATA/USER/tomita/MyWRFv3/wrf_dependencies
export NETCDF=$DIR/netcdf
export LD_LIBRARY_PATH=$NETCDF/lib:$DIR/grib2/lib
export PATH=$NETCDF/bin:$DIR/mpich/bin:$PATH
export JASPERLIB=$DIR/grib2/lib
export JASPERINC=$DIR/grib2/include
WRFv3のコンパイル
WRFv3のディレクトリ内で
$ ./configure
をします.
コンパイラ・並列オプションは34(gfortran,damper),
ネスティングオプションは1(default)
を選びます.
v4.◯以降,./configureの後に
cp share/landread.c.dist share/landread.c
を実行する必要がある.
v3では./configure時に具体的なWarningは表示されないが,
これを行わないと実行ファイルが生成されなかった(compileログは未確認).
gccのあるバージョン(10?)から,fortranの引数の型のエラーが厳しくなった(参考).
これを回避するため,configure.wrfのFCBASEOPTS_NO_Gレコードに-fallow-argument-mismatch
を追記した.
コンパイルを実行する.
$ ./compile em_real >& compile.log
コンパイルに成功するとmainディレクトリ下に以下の実行ファイルが生成される.
$ ls -lh main/*exe
-rwxr-xr-x 1 hoge hoge 40M Jan 27 21:58 main/ndown.exe
-rwxr-xr-x 1 hoge hoge 37M Jan 27 21:58 main/real.exe
-rwxr-xr-x 1 hoge hoge 36M Jan 27 21:58 main/tc.exe
-rwxr-xr-x 1 hoge hoge 50M Jan 27 21:56 main/wrf.exe
WPSの導入
WPSv3のコンパイル
WPSv3ディレクトリ内に移動し,
$ ./configure
1(gfortran,smparオプション)を選択.
configure.wrfのFFLAGS,F77FLAGSレコードに-fallow-argument-mismatch
フラグを追記する.
コンパイルを実行
$ ./compile em_real >& compile.log
失敗した.......
ungrib/src/ngl/g2/intmath.fでエラーが起きているようだ.
同様のエラーがWPSのgithubで報告されている.
WPSv4のコンパイル
WPSv3の代わりにWPSv4.1をコンパイルする.
ソースはgithubから入手する(masterブランチから変更する).
$ git clone -b release-v4.1 https://github.com/wrf-model/WPS.git WPSv4.1
./configureを実行.
$./configure
configure.wpsのFFLAGS,F77FLAGSレコードに-fallow-argument-mismatch
フラグを追記する.
WPSディレクトリ直下にgeogrid.exe,ungrib.exe,metgrid.exeが生成されていれば成功
おわりに
WPSv4で作ったmet_em_d0*をWRFv3で使えるか,確認が必要.