LoginSignup
0
1

More than 5 years have passed since last update.

WRF > setup まとめ > CentOS 6.8 with GFortran v4.9.2 > WRF v3.9 | WPS v3.9

Last updated at Posted at 2017-06-06
動作環境
Xeon E5-2620 v4 (8コア) x 2
32GB RAM
CentOS 6.8 (64bit)
gcc version 4.9.2 (とgfortran): Software Collections (SCL) で有効にした状態
NCAR Command Language Version 6.3.0
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37) 
Python 3.6.0 on virtualenv

WRF(Weather Research and Forecasting Model)に関して。

背景

WRF/WPS v3.7.1からWRF/WPS v3.9へソフトウエアをアップデートしようとした。
WPS v3.9においてGFortran v4.4.7のバグによりungrib.exeがコンパイルできない状況になった。

stackoverflowでのアドバイス「And forgrt gfortran 4.4.7, its WAY too obsolete and buggy. – Vladimir F 」に従ってみることにした。

関連ソフト

以下のソフトをバージョンアップすることになった。

  • GFortran v4.9.2
  • NetCDF
  • Open MPI

更新

GFortran v4.9.2 と g++ v4.9.2

参考: http://qiita.com/phanect/items/45c67fa55d624e45367b

$ sudo yum install centos-release-scl
$ sudo yum install devtoolset-3-gcc-gfortran

GFortran v4.9.2使用時に以下を実行する。
(実行しない場合はGFortran v4.4.7)。

(追記 2018/02/21)
別途、g++がOpen MPIのセットアップに必要となる (Open MPI > ./configure ... > "/lib/cpp" fails sanity check > g++コマンドがない)。

$sudo yum install devtoolset-3-gcc-c++

以下でv4.9.2を使用可能。

$ scl enable devtoolset-3 bash

NetCDF v4.4.1.1 | NetCDf (Fortran API) v4.4.4

インストールに関して以下に記載した。
http://qiita.com/7of9/items/c58db1b8ece4d915e402

以下にインストールされる。
/usr/local/netcdf-4.4.1.1/gcc492

netcdf.modは以下に生成される。
/usr/local/netcdf-4.4.1.1/gcc492/include/netcdf.mod

netcdf.incは以下に生成される。
/usr/local/netcdf-4.4.1.1/gcc492/include/netcdf.inc

Open MPI v2.1.1

参考: http://qiita.com/chojuku/items/f800cfc98811e2d0bda6

$./configure --prefix=/usr/local/openmpi-2.1.1_gcc492 CC=gcc CXX=g++
$make -j 4 all 2>&1 | tee make_170606.log
$sudo make -j 4 install 2>&1 | tee install_170606.log

以下にインストールされる。
/usr/local/openmpi-2.1.1_gcc492/

mpi.modは以下に作成された。
/usr/local/openmpi-2.1.1_gcc492/lib/mpi.mod

.bashrcに以下を追加した。

### for openMPI (GFortran v4.9.2)
OLDPATH=$PATH
export OPENMPI=/usr/local/openmpi-2.1.1_gcc492/bin
export PATH=${OPENMPI}:$PATH

WRF v3.9

WRF3.7.1のビルド > 成功と同じ流れであるが、configure.wrfは以下のように変更した。
(configure.wrf.originalはconfigureコマンドで生成されるconfigure.wrfから改名したもの)

$ diff configure.wrf.original configure.wrf
123c123
< DM_CC           =       mpicc 
---
> DM_CC           =       mpicc -DMPI2_SUPPORT
217c217
<                       -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf -L/usr/lib       
---
>                       -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf -L/usr/lib -lnetcdf -lnetcdff    

./compile em_real >& log.compile_170606
にて関連ファイルが生成された。
ndown.exe, real, tc.exe, wrf.exe

WPS v3.9

WPS3.7.1 > 成功と同じ流れであるが、NetCDF関連の指定で以下のように変更した。
(configure.wps.originalはconfigureコマンドで生成されたファイルから改名したもの)

$ diff configure.wps.original configure.wps
35a36,37
> MYNETCDF        =  /usr/local/netcdf-4.4.1.1/gcc492
> 
41c43
<                         -I$(NETCDF)/include
---
>                         -I$(MYNETCDF)/include
47c49
<                         -L$(NETCDF)/lib  -lnetcdf
---
>                         -L$(MYNETCDF)/lib  -lnetcdf -lnetcdff
64,65c66,67
< DM_FC               = mpif90 -f90=gfortran
< DM_CC               = mpicc -cc=gcc 
---
> DM_FC               = mpif90
> DM_CC               = mpicc
69c71,73
< FFLAGS              = -ffree-form -O -fconvert=big-endian -frecord-marker=4
---
> #NETCDFMOD           = /usr/lib64/gfortran/modules/
> NETCDFMOD           = /usr/local/netcdf-4.4.1.1/gcc492/include/
> FFLAGS              = -I${NETCDFMOD} -ffree-form -O -fconvert=big-endian -frecord-marker=4

./compile
./compile util
にて関連ファイルが生成された。

geogrid.exe, ungrib.exe, metgrid.exe

以下の対応も必要。
WPS > error: error while loading shared libraries: libnetcdf.so.11: cannot open shared object file: No such file or directory

.bashrc

今後はGFortran v4.9.2を使うため、ログイン時にメッセージを出すようにした。

# 2017/06/06 for gfortran 4.9.2
echo "scl enable devtoolset-3 bash"
echo "  for gfortran v4.9.2"

自動実行でもいいが、標準とは違うことをしていると意識するため。

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1