WRF > CentOS6.8 > WRF3.6.1 setup: 失敗 / WRF3.7.1 setup: 成功 (-O2にすること) / WPS3.7.1 setup: 成功

```txt:動作環境
CentOS 6.8 (64bit) インストール直後
```

WRF(Weather Research and Forecasting Model)のセットアップメモ。


参考 ( CentOS6.2 (64bit)でのインストール事例 )
http://linux-vi.blogspot.jp/2014/07/how-to-install-wrf-in-centos-62-64bit.html


以下、root権限で実行した。

## 1回目のrebootまで

yum install gcc-gfortran

(追加: ココカラ)
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm  
rpm -ivh epel-release-6-8.noarch.rpm  
(追加: ココマデ)

yum install netcdf netcdf-devel

yum install tcsh

  - Nothing to do

yum install ncl ncl-devel

yum install jasper-devel jasper-libs

yum install libpng libpng-devel

yum install redhat-lsb-graphics

reboot

## 2回目のrebootまで

yum install ncview

yum install m4

  - Nothing to do

yum install gv

yum install cloog-*

reboot

## 3回目のrebootまで

yum update gcc-gfortran netcdf tcsh ncl ncl-devel jasper-devel jasper-libs libpng-devel libpng

  - 上記成功していて、No Packages marked for Update となった

この段階で find / -name netcdf.incすると以下が見つかった。
/usr/include/netcdf.inc 

export NETCDF=/usr

yum install msp430-gcc msp430-libc

   - なぜかここでMSP430のコンパイラ関連が登場
   - Error: Nothing to do
   - MSP430を使う必要はないと思うので、エラーでもいいだろう

yum install python-devel

yum install gcc gcc-c++ gcc-gfortran

yum install sed mawk

yum install grip

  - Error: Nothing to do
  - gripというのは使うかは不明

yum install grib_api

yum install wgrib
yum install wgrib2

yum install libXp libXp-devel

yum install libXtst libXtst-devel java-1.6.0-openjdk-devel java-1.6.0-openjdk

yum install compat-libgfortran-41

yum install java-1.5.0-gcj java-1.5.0-gcj-devel

yum install perl-Time-HiRes

< make sure the following libraries are exist at /usr >
find /usr -name libmawt.so
find /usr -name libXp.so.6
find /usr -name libgfortran.so.1

  - 3つとも見つかった

## WRFのインストール (失敗)

一般権限ユーザ wrf作成

wrfでログイン

export NETCDF=/usr

wget http://www.meteoadriatic.net/pub/wrf/ems_install.pl.gz

   - Internal Server Error.
   - firefoxで見に行ってもファイルリストはあるが、ファイル自体を読み取れない

上記のインストール用のplファイルが取れないので、以降は他の情報に基づく。


## OpenMPIのインストール

上記の手順ではOpenMPIがインストールされていないので、以下をroot権限で実行した。

yum install openmpi openmpi-devel 


## WRF3.6.1のビルド (再トライ) > 失敗

参考 http://qiita.com/7of9/items/cd769c0ccebf9e17f260

WRFV3.6.1.TAR.gz をWRFのサイトから取得し、一般ユーザの~/以下に解凍した (WRFV3フォルダができる)。

.bashrcに以下を追記

```
### WRF weather model stuff
export WRFIO_NCD_LARGE_FILE_SUPPORT=1
export NETCDF=/usr
export NETCDFPATH="/usr/lib64"

export WRF_BASE=/home/WRF

### NCARG NCL stuff
export NCARG=${WRF_BASE}/ncl
export NCARG_ROOT=${WRF_BASE}/ncl
export PATH=${NCARG_ROOT}/bin:${PATH}
export NCARG_LIB=${NCARG_ROOT}/lib
export NCARG_DATABASE=${NCARG_LIB}/ncarg/database
export NCARG_FONTCAPS=${NCARG_LIB}/ncarg/fontcaps
export NCARG_GRAPHCAPS=${NCARG_LIB}/ncarg/graphcaps
```

OpenMPI用にmpiccとmpif90へのパスを通すために以下も.bashrcに追記した

```
export OPENMPI=/usr/lib64/openmpi/bin
export PATH=${OPENMPI}:$PATH
```


source .bashrc

cd WRFV3
sudo module load openmpi-x86_64
export MPI_LIB=
./configure
メニューのうち34 (dmpar ... )を選択
netstingを1と選択

http://forum.wrfforum.com/viewtopic.php?f=5&t=7093
に記載の通りconfigure.wrfを変更。

vi configure.wrf にて編集

  - DM_CCの部分は記載のものと違っていた。この部分は変更しなかった
  - lnetcdff関連は記載の通りに変更した


./compile em_real >& log.compile

こちらの環境で40分近くかかってからコンパイルが終わった。

`find . -name *.a`を実行するとlibwrfio_int.aファイルが作成されていた。

```
./main/libwrflib.a
./external/fftpack/fftpack5/libfftpack.a
./external/io_grib1/libio_grib1.a
./external/io_int/libwrfio_int.a
./external/io_netcdf/libwrfio_nf.a
./external/esmf_time_f90/libesmf_time.a
./external/io_grib_share/libio_grib_share.a
```

find . -name *.mod でいつかのmodファイルも見つかっている。

main以下にwrf.exeファイルが生成されていない。

log.compileに以下の記載が見つかった。

```
/usr/include/openmpi-x86_64/mpi.h:1580: error: expected declaration specifiers or ‘...’ before ‘MPI_Comm’In file included from c_code.c:26:
...
ar: c_code.o: No such file or directory
make[3]: [librsl_lite.a] Error 1 (ignored)
...
gfortran: /home/wrf/WRFV3/external/RSL_LITE/librsl_lite.a: No such file or directory
```


以下の情報が見つかった。
http://www.hysk.sakura.ne.jp/meteorol/WRF_setup

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

v3.6.1は鬼門だったようだ。


## WRF3.7.1のビルド > 成功

WRF3.7.1のファイルを取得して再度ビルドした。


.bashrcに以下を追記

```
### WRF weather model stuff
export WRFIO_NCD_LARGE_FILE_SUPPORT=1
export NETCDF=/usr
export NETCDFPATH="/usr/lib64"

export WRF_BASE=/home/WRF

### NCARG NCL stuff
export NCARG=${WRF_BASE}/ncl
export NCARG_ROOT=${WRF_BASE}/ncl
export PATH=${NCARG_ROOT}/bin:${PATH}
export NCARG_LIB=${NCARG_ROOT}/lib
export NCARG_DATABASE=${NCARG_LIB}/ncarg/database
export NCARG_FONTCAPS=${NCARG_LIB}/ncarg/fontcaps
export NCARG_GRAPHCAPS=${NCARG_LIB}/ncarg/graphcaps
```

OpenMPI用にmpiccとmpif90へのパスを通すために以下も.bashrcに追記した

```
export OPENMPI=/usr/lib64/openmpi/bin
export PATH=${OPENMPI}:$PATH
```


source .bashrc

cd WRFV3
sudo module load openmpi-x86_64
export MPI_LIB=
./configure
メニューのうち34 (dmpar ... )を選択
netstingを1と選択

http://forum.wrfforum.com/viewtopic.php?f=5&t=7093
に記載の通りconfigure.wrfを変更。

vi configure.wrf にて編集

  - 全部の変更箇所を編集した

./compile em_real >& log.compile

こちらの環境で25分近くかかってからコンパイルが終わった。

log.compileに以下のエラーが出た。

```
gfortran: Internal error: Killed (program f951)
```

CFLAGS_LOCAL    =       -w -O3 -c
を
CFLAGS_LOCAL    =       -w -O2 -c
で再度ビルド.

./compile em_real >& log.compile2

前のビルドが残っていたのか、すぐにビルドが終わった。

```
...
==========================================================================
build started:   Mon Jul 18 09:13:33 PDT 2016
build completed: Mon Jul 18 09:13:43 PDT 2016
 
--->                  Executables successfully built                  <---
 
-rwxrwxr-x. 1 wrf wrf 38279033 Jul 18 09:13 main/ndown.exe
-rwxrwxr-x. 1 wrf wrf 38159223 Jul 18 09:13 main/real.exe
-rwxrwxr-x. 1 wrf wrf 37757095 Jul 18 09:13 main/tc.exe
-rwxrwxr-x. 1 wrf wrf 42740713 Jul 18 09:13 main/wrf.exe
 
==========================================================================
```

### 補足

最初の方でyumで色々installしているのは、本当に必要かまだ理解していない中で行っている。リンク先の人が使ってこちらでは使わない機能までinstallしている可能性がある。

## WPS3.7.1 > 成功

WRF3.7.1がビルドできるようになったらWPSのビルドはすぐにできた。

WPS3.7.1のtar fileを取得して以下を参考にした。

http://forum.wrfforum.com/viewtopic.php?f=5&t=7093

configure.wpsを編集

./compile
./compile util

それぞれ数十秒で終了した。

geogrid.exe, metgrid.exe, ungrib.exeがビルドされた。

## NCLのインストール

上記ではyumにてnclをインストールしてしまったが、以下記載のようにNCLのv6.3をインストールした方がいいようだ。

http://qiita.com/7of9/items/fe9fa72aafe43d77708c

yum remove ncl ncl-devel
にてncl関連のパッケージをアンインストールした。

上記リンクを参考にNCL v6.3のtar.gzを`/home/wrf/WRFV3/ncl`に解凍した。

それに伴い`.bashrc`ファイルの設定は以下のように変更した。

```.bashrc
### WRF weather model stuff
export WRFIO_NCD_LARGE_FILE_SUPPORT=1
export NETCDF=/usr
export NETCDFPATH="/usr/lib64"

export WRF_BASE=/home/wrf/WRFV3

### NCARG NCL stuff
export NCARG=${WRF_BASE}/ncl
export NCARG_ROOT=${WRF_BASE}/ncl
export PATH=${NCARG_ROOT}/bin:${PATH}
export NCARG_LIB=${NCARG_ROOT}/lib
export NCARG_DATABASE=${NCARG_LIB}/ncarg/database
export NCARG_FONTCAPS=${NCARG_LIB}/ncarg/fontcaps
export NCARG_GRAPHCAPS=${NCARG_LIB}/ncarg/graphcaps
export DISPLAY=:0.0

export OPENMPI=/usr/lib64/openmpi/bin
export PATH=${OPENMPI}:$PATH
```