津波計算コードJAGURSのbuildにはいくつかライブラリが必要.
INSTALLというドキュメントに必要なライブラリがいろいろと乗っているが,書かれている手順通りHPからダウンロード→インストールは面倒
condaコマンドですべて取ってこれるので,これを使って環境構築ができた.
conda install proj4==5.2.0
conda install netcdf4
conda install -c conda-forge netcdf-fortran
conda install -c conda-forge fftw
conda install -c csdms-stack szip
試した環境にはhdf5が既に入っていたため,もしかしたら同様に取ってくる必要があるかもしれない.
(makeしてみて怒られたら関係ありそうなライブラリを調べて,anaconda cloudで検索して・・・の繰り返しでできました.)
src/内のMakefile.SC_ICEを適時編集.
Makefile.SC_ICEの最初の方
# FC: Specify Fortran90 compiler command.
FC=ifort
# Added for displacement.
# PRJ4_DIR: Specify PROJ.4 install directory.
# CC&CFLAGS: Specify C compiler command and flags.
PROJ4_DIR=/home/ユーザー名/anaconda3
CC=icc
CFLAGS=-g -traceback -I$(PROJ4_DIR)/include
# BASE: Specify basic compiler options.
BASE=-fpp -assume byterecl
# FFTW3_INCLUDE_DIR: Specify FFTW3 include directory.
FFTW3_INCLUDE_DIR=$(MKLROOT)/include/fftw
# FFTW3_LIB: Specify linker options to link FFTW3.
FFTW3_LIB=-mkl=sequential
# OPT: Specify compiler options about optimization level.
OPT=-check all -warn all -O0 -g -traceback -fpe0 -I$(FFTW3_INCLUDE_DIR) # for DEBUG!
#OPT=-O0 -openmp -openmp-report2 -I$(FFTW3_INCLUDE_DIR)
#OPT=-O0 -openmp -openmp-report2 -I$(FFTW3_INCLUDE_DIR)
OPT=-O0 -qopenmp -I$(FFTW3_INCLUDE_DIR)
# NETCDF: Specify the path to NetCDF library.
#NETCDF=/opt/atlocal/netcdf/3.6.3
#NETCDF=/opt/atlocal/netcdf/4.1.3
NETCDF=/home/ユーザー名/anaconda3
# LIBS: Specify linker options.
#LIBS=-i-dynamic -L$(NETCDF)/lib -lnetcdf -L$(PROJ4_DIR)/lib -lproj $(FFTW3_LIB) # for NetCDF3!
#LIBS=-i-dynamic -L$(NETCDF)/lib -lnetcdff -lnetcdf -L/opt/atlocal/supplibs/lib -lhdf5_hl -lhdf5 -lcurl -lsz -L$(PROJ4_DIR)/lib -lproj $(FFTW3_LIB) # for NetCDF4!
LIBS=-shared-intel -L$(NETCDF)/lib -lnetcdff -lnetcdf -L/opt/atlocal/supplibs/lib -lhdf5_hl -lhdf5 -lcurl -lsz -L$(PROJ4_DIR)/lib -lproj $(FFTW3_LIB) # for NetCDF4!
主な変更点はPROJ4_DIRやNETCDFにanaconda内の仮想環境を指定する点.
この例は,仮想環境を作らない場合だが,仮想環境jagursを作った場合はPROJ4_DIR=/home/ユーザー名/envs/jagurs
等とすればたぶんOK