2020/11/25

JAGURS on MacOS Big Sur with homebrew

自分の環境のパッケージ管理を 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;