自分のホームページ(google site)を整理しようとしたところ、新しいgoogle siteが使いにくくなっていたため、一旦qiitaに整理する。笑
macでWRFをインストールする手順。
1 環境
1.1 動作環境
OS:macOS High Sierra
プロセッサ:3.5 GHz Intel Core i7
メモリ:32 GB 1600 MHz DDR3
※Library関連は省略。全てmacportsでインストール。
※Libraryは、全て同じバージョンのコンパイラでインストールしたものを使う。
1.2 並列計算について
コンパイル時に4パターンから選択する必要がある。
①serial:For a single processor job (serial)
②smpar:For using OpenMP shared-memory parallelization:共有メモリ型 [OpenMPなど]
③dmpar:For using distributed-memory parallelization (dmpar) options:分散メモリ型 [MPIなど, フリーではMPICH, LAMなど]
smparとdmparはmultiple processors用
④dm+sm:For combination of shared-memory and distributed memory options
1.3 インストールに成功したWRFとコンパイラのバージョンの関係表
コンパイラ/WRF ver. | 並列計算 | 3.2 | 3.2.1 | 3.3 | 3.3.1 | 3.4 | 3.4.1 | 3.5 | 3.5.1 | 3.6 | 3.6.1 | 3.7 | 3.7.1 | 3.8 | 3.8.1 | 3.9 | 3.9.1 | 3.9.1.1 | 4 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
MacPorts gcc5 5.5.0_1 | serial | ◯ | ◯ | ||||||||||||||||
sm | |||||||||||||||||||
dm | |||||||||||||||||||
dm+sm | ◯ | ||||||||||||||||||
コンパイラ/WPS ver. | 並列計算 | 3.2 | 3.2.1 | 3.3 | 3.3.1 | 3.4 | 3.4.1 | 3.5 | 3.5.1 | 3.6 | 3.6.1 | 3.7 | 3.7.1 | 3.8 | 3.8.1 | 3.9 | 3.9.1 | 3.9.1.1 | 4 |
MacPorts gcc5 5.5.0_1 | serial | ||||||||||||||||||
sm | |||||||||||||||||||
dm | ◯ | ◯ | |||||||||||||||||
dm+sm |
2 インストール手順
2.1 ソースコードのダウンロード
$ wget -nc http://www2.mmm.ucar.edu/wrf/src/WRFV3.9.1.TAR.gz
$ wget -nc http://www2.mmm.ucar.edu/wrf/src/WPSV3.9.1.TAR.gz
$ tar -zxf WRFV3.9.1.TAR.gz
$ tar -zxf WPSV3.9.1.TAR.gz
※バージョンは適宜書き換える。
※macのデフォルトtarコマンドで解凍すると、うまくコンパイルできない。gnutarでないといけない模様?
※アカウントを持っていない場合は、ソースをダウンロードする前に登録すること。
WRF Modeling System Download: New User Registration http://www2.mmm.ucar.edu/wrf/users/download/wrf-regist.php
2.2 WRFのインストール
2.2.1 .wrfrcの作成
.profileとか.bash_profileとかに書き込んでも問題はないが、基本的にはWRFをインストールする時だけ読ませれば良いので、.wrfrcを作成して読み込ませるようにしている。
### jasper-1.900.1
export JASPERBIN="/opt/local/bin"
export JASPERINC="/opt/local/include"
export JASPERLIB="/opt/local/lib"
### NetCDF
export NETCDF="/opt/local/"
export LD_LIBRARY_PATH=$NETCDF/lib:
### Compiler
export FC=gfortran
export F90=gfortran
export F77=gfortran
export CC=gcc
export CXX=g++
### WRF
export WRF_EM_CORE=1
export WRFIO_NCD_LARGE_FILE_SUPPORT=1
export OMP_NUM_THREADS=4
### macOS
export MACOSX_DEPLOYMENT_TARGET=10.13
※OSによって、MACOSX_DEPLOYMENT_TARGETの数字は書き換える。
階層は
WRFv3.9.1/
├ WPS/
├ WRF/
└ .wrfrc
のようになる。ので、.wrfrcをsourceする。
$ source .wrfrc
2.2.2 netcdf4を使うために、Makefileを書き換える
$ source .wrfrc
$ cd ./WRFV3
$ vi external/io_netcdf/makefile
書き換え前
(7行目) LIBS = -L$(NETCDFPATH)/lib -lnetcdf
書き換え後
(7行目) LIBS = -L$(NETCDFPATH)/lib -lnetcdff -lnetcdf
※行数は参考。
2.2.3 configureの実行
$ ./configure
(前略)
------------------------------------------------------------------------
Please select from among the following Darwin ARCH options:
1. (serial) 2. (smpar) 3. (dmpar) 4. (dm+sm) PGI (pgf90/pgcc)
5. (serial) 6. (smpar) 7. (dmpar) 8. (dm+sm) INTEL (ifort/icc)
9. (serial) 10. (smpar) 11. (dmpar) 12. (dm+sm) INTEL (ifort/clang)
13. (serial) 14. (dmpar) GNU (g95/gcc)
15. (serial) 16. (smpar) 17. (dmpar) 18. (dm+sm) GNU (gfortran/gcc)
19. (serial) 20. (smpar) 21. (dmpar) 22. (dm+sm) GNU (gfortran/clang)
23. (serial) 24. (dmpar) IBM (xlf90_r/cc)
25. (serial) 26. (smpar) 27. (dmpar) 28. (dm+sm) PGI (pgf90/pgcc): -f90=pgf90
29. (serial) 30. (smpar) 31. (dmpar) 32. (dm+sm) INTEL (ifort/icc): Open MPI
33. (serial) 34. (smpar) 35. (dmpar) 36. (dm+sm) GNU (gfortran/gcc): Open MPI
Enter selection [1-36] : 36
------------------------------------------------------------------------
Compile for nesting? (1=basic, 2=preset moves, 3=vortex following) [default 1]: 1
Configuration successful!
------------------------------------------------------------------------
(後略)
※バージョンや並列計算の選択によって、表示される組み合わせが多少異なる。
2.2.4 コンパイル
$ ./compile em_real &> compile_serial.log
(時間がかかる)
$ ls test/em_real
CAM_ABS_DATA RRTM_DATA namelist.input.fire ozone_plev.formatted
CAM_AEROPT_DATA SOILPARM.TBL namelist.input.global real.exe
ETAMPNEW_DATA URBPARM.TBL namelist.input.jan00 run_1way.tar
ETAMPNEW_DATA.expanded_rain VEGPARM.TBL namelist.input.jun01 run_2way.tar
GENPARM.TBL examples.namelist namelist.input.ndown_1 run_restart.tar
LANDUSE.TBL grib2map.tbl namelist.input.ndown_2 sample.txt
MPTABLE.TBL gribmap.txt namelist.input.ndown_3 tc.exe
README.grid_fdda landFilenames namelist.input.volc tr49t67
README.namelist namelist.input ndown.exe tr49t85
README.obs_fdda namelist.input.4km nup.exe tr67t85
RRTMG_LW_DATA namelist.input.chem ozone.formatted wrf.exe
RRTMG_SW_DATA namelist.input.diags ozone_lat.formatted
※wrf.exeなどが実行できる状態であれば成功。
2.3 WPSのインストール
2.3.1 netcdf4を使うために、Makefileを書き換える
$ cd ../WPS
$ vi util/src/Makefile
書き換え前
(43行目) -L$(NETCDF)/lib -I$(NETCDF)/include -lnetcdf
書き換え後
(43行目) -L$(NETCDF)/lib -I$(NETCDF)/include -lnetcdff -lnetcdf
※行数は参考。
2.3.2 configureの実行
$ ./configure
(前略)
------------------------------------------------------------------------
Please select from among the following supported platforms.
1. Darwin Intel PGI compiler (serial)
2. Darwin Intel PGI compiler (serial_NO_GRIB2)
3. Darwin Intel PGI compiler (dmpar)
4. Darwin Intel PGI compiler (dmpar_NO_GRIB2)
5. Darwin Intel PGI compiler; optional DM -f90=pgf90 (serial)
6. Darwin Intel PGI compiler; optional DM -f90=pgf90 (serial_NO_GRIB2)
7. Darwin Intel PGI compiler; optional DM -f90=pgf90 (dmpar)
8. Darwin Intel PGI compiler; optional DM -f90=pgf90 (dmpar_NO_GRIB2)
9. Darwin Intel Intel compiler (serial)
10. Darwin Intel Intel compiler (serial_NO_GRIB2)
11. Darwin Intel Intel compiler (dmpar)
12. Darwin Intel Intel compiler (dmpar_NO_GRIB2)
13. Darwin Intel g95 compiler (serial)
14. Darwin Intel g95 compiler (serial_NO_GRIB2)
15. Darwin Intel g95 compiler (dmpar)
16. Darwin Intel g95 compiler (dmpar_NO_GRIB2)
17. Darwin Intel gfortran/gcc (serial)
18. Darwin Intel gfortran/gcc (serial_NO_GRIB2)
19. Darwin Intel gfortran/gcc (dmpar)
20. Darwin Intel gfortran/gcc (dmpar_NO_GRIB2)
21. Darwin Intel gfortran/clang (serial)
22. Darwin Intel gfortran/clang (serial_NO_GRIB2)
23. Darwin Intel gfortran/clang (dmpar)
24. Darwin Intel gfortran/clang (dmpar_NO_GRIB2)
25. Darwin PPC xlf (serial)
26. Darwin PPC xlf (serial_NO_GRIB2)
27. Darwin PPC xlf gcc3.3 SystemStubs (serial)
28. Darwin PPC xlf gcc3.3 SystemStubs (serial_NO_GRIB2)
29. Darwin PPC g95 (serial)
30. Darwin PPC g95 (serial_NO_GRIB2)
31. Darwin PPC g95 (dmpar)
32. Darwin PPC g95 (dmpar_NO_GRIB2)
Enter selection [1-32] : 17
------------------------------------------------------------------------
Configuration successful. To build the WPS, type: compile
------------------------------------------------------------------------
※バージョンによって、表示される組み合わせが多少異なる。
2.2.4 コンパイル
$ ./compile &> compile_serial.log
(時間がかかる)
$ ls
README configure link_grib.csh namelist.wps.global
Vtable configure.wps metgrid namelist.wps.nmm
arch configure.wps.backup metgrid.exe ungrib
clean configure_old namelist.wps ungrib.exe
compile geogrid namelist.wps.all_options ungrib.log
compile.log geogrid.exe namelist.wps.fire util
※metgrid.exeなどが実行できる状態であれば成功。