自分の環境のパッケージ管理を MacPorts から homebrew に乗り換えたりしたので改めてJAGURS を作り直してみる.ソースコードは,github から latest release になってる V0515a を持ってくる.使う環境は以下の通り:
MacBook Air (13-inch, 2017)
2.2GHz dual core Intel Core i7
8GB 1600MHz DDR3 memory
Big Sur
ライブラリのインストール
% brew install gmt fftw
どうやら,proj_api.h が標準include pathに入ってくれなくなった?ようです.ので,
% find /usr/local -name proj_api.h
で探して,出てきたディレクトリを
PROJ4_DIR=/usr/local/Cellar/proj@7/7.2.1
のように設定して下さい.以下のMakefileでは設定されていません (汚い).
Makefileの編集(編集後のファイルをリンク先に置いておきます)
Makefile@ -> Makefile.SC_ICE されてるので,とりあえず解除してから編集しています.編集箇所は,コンパイラを gcc-10, gfortran-10 にして,ライブラリ関係を /usr/local に設定. -lfftw が必要.MPI= なしに設定.-openmp は -o penmp として機能してしまうので, -fopenmp に修正.
% rm Makefile
% cp Makefile.SC_ICE Makefile
% rcsdiff Makefile
===================================================================
RCS file: Makefile,v
retrieving revision 1.1
diff -r1.1 Makefile
2c2
< FC=ifort
---
> FC=/usr/local/bin/gfortran-10
7,9c7,9
< PROJ4_DIR=/home/G10004/t-katou/JAGURS/local
< CC=icc
< CFLAGS=-g -traceback -I$(PROJ4_DIR)/include
---
> PROJ4_DIR=/usr/local
> CC=/usr/local/bin/gcc-10
> CFLAGS=-I$(PROJ4_DIR)/include
12c12
< BASE=-fpp -assume byterecl
---
> BASE=-cpp
18c18
< FFTW3_LIB=-mkl=sequential
---
> FFTW3_LIB=-lfftw3
23c23
< OPT=-O2 -openmp -openmp-report2 -I$(FFTW3_INCLUDE_DIR)
---
> OPT=-O2 -fopenmp
27c27
< NETCDF=/opt/atlocal/netcdf/4.1.3
---
> NETCDF=/usr/local
31c31
< 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=-L$(NETCDF)/lib -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lcurl -lsz -lproj $(FFTW3_LIB) # for NetCDF4!
47c47
< MPI=ON
---
> MPI=
あと,mapproject.c の修正が必要です.#include <proj_api.h> の前に #define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H を追加します.
% rcsdiff -p mapproject.c
===================================================================
RCS file: mapproject.c,v
retrieving revision 1.1
diff -p -r1.1 mapproject.c
*** mapproject.c 2020/11/25 05:49:41 1.1
--- mapproject.c 2020/11/25 05:50:08
***************
*** 1,6 ****
--- 1,7 ----
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
+ #define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
#include <proj_api.h>
static projPJ pj_tmerc, pj_latlong;