15 ISPACK のインストール

ISPACK: 科学計算のための FORTRAN77 ライブラリ から ispack-2.1.3.tar.gz を入手する。

MacPorts で gcc6 (gfortran), openmpi-gcc6 (openmpi-gcc6-fortran), clang-6.0 をインストールする。

sudo port install gcc6
port select --list gcc
sudo port select --set gcc mp-gcc6

sudo port install openmpi-gcc6
port select --list mpi
sudo port select --set mpi openmpi-gcc6-fortran

sudo port install clang-6.0
port select --list clang
sudo port select --set clang mp-clang-6.0
(clang (クラン) は AVX 命令をアセンブルするためにインストールする。 Makefile をしこしこ書き換えて、 macOS 標準の clang を使ってコンパイルすることも出来そうではあるけれど… 面倒なのは嫌。)

(gcc5 と gcc6 のどちらが適切かは分からない。両方試してみるつもり。 clang のバージョンをどうするかについても分からないのだが、 当面これで行ってみる。)


では、ISPACK に取り掛かる。

tar xzf ispack-2.1.3.tar.gz
cd ispack-2.1.3

Mkinclude を編集する。 基本は -Wa,-q というオプションを3箇所に加えるだけ (アセンブラー as に -q というオプションを渡す、 という意味の指定。 as は -q を指定されると clang を呼び出す)。
$ diff Mkinclude.org Mkinclude
10c10
< FFLAGS                = -O3 -march=native -fopenmp
---
> FFLAGS                = -O3 -march=native -fopenmp -Wa,-q
15c15
< MPIFFLAGS     = -O3 -march=native -fopenmp
---
> MPIFFLAGS     = -O3 -march=native -fopenmp -Wa,-q
20c20
< CFLAGS                = -O3 -march=native
---
> CFLAGS                = -O3 -march=native -Wa,-q

こうしておいて
make
とすると、スルスルとコンパイル進んで成功。

sudo cp -p libispack2.a /usr/local/lib

桂田 祐史
2020-04-05