2023/12/28

JAGURS on (intel) Mac w/ Homebrew

More recent information on June 4, 2024, we need to prepare ourself proj because proj@7 has been disabled. It's still available if you are using MacPorts.

Error: proj@7 has been disabled because it is a versioned formula! It was disabled on 2024-02-12.

(2024.9.6追記)

LIBS=-L$(PROJ4_DIR)/lib -L$(NETCDF)/lib -lnetcdff -lnetcdf -lsz -lproj $(FFTW3_LIB) -lm

のように,homebrew で他のバージョンのprojが /usr/local 等に入っている場合,自分で入れたPROJ4のディレクトリを先にリンカに指定する必要がある.


2023年12月27日現在の macOS Ventura 13.6.3 + Homebrew でのJAGURSのコンパイルについて再整理しておく。


  • gcc ... gfortran を使うので、gcc と gfortran をbrew で入れて、/usr/local/bin/gcc を使う。
    • FC=/usr/local/bin/gfortran
    • CC=/usr/local/bin/gcc
      • /usr/local/bin/gcc は無さそうなので, /usr/local/bin/gcc-14
  • proj ... メインのproj は、9.3.1 なので、おそらく動かない?ので、7.2.1 なproj@7 パッケージを使う。
    •   PROJ4_DIR=/usr/local/opt/proj@7
  • netcdf ... netcdf-fortran パッケージを入れる
  • fftw3 ... Homebrew のパッケージ名が fftw に変わってた
% brew install gcc gfortran proj@7 netcdf-fortran fftw


Makefile.gfortran をベースにして、以下の修正。

-FC=mpif90

+FC=/usr/local/bin/gfortran


-PROJ4_DIR=$(HOME)/local

-CC=gcc

+PROJ4_DIR=/usr/local/opt/proj@7

+CC=/usr/local/bin/gcc-13


-FFTW3_INCLUDE_DIR=$(HOME)/local/include

+FFTW3_INCLUDE_DIR=/usr/local/include


-NETCDF=$(HOME)/local

+NETCDF=/usr/local


-MPI=ON

+MPI=OFF


特殊な手続きは無しでコンパイル出来るようになったな。。。この記事の役割もほぼ終わったな。


input/ の中でそのままテスト計算(MPI部分はtsun.parから削除) on 1.4GHz dual cores Core i7

../src/jagurs par=tsun.par  4113.94s user 52.32s system 120% cpu 57:42.04 total