LoginSignup
34
38

More than 3 years have passed since last update.

Ubuntu/gfortranでLAPACKを使用するために

Last updated at Posted at 2015-10-11

LAPACK(Linear Algebra PACKage)は、線形計算のための数値解析ソフトウェアライブラリである。
これを用いることで、

  • 線形方程式
  • 線形最小2乗問題
  • 固有値問題
  • 特異値問題

などを数値的に解くことができる。

今回は、このような便利なツールであるLAPACKを、Ubuntuのgfortranで使えるようにするための方法を紹介する。

1. LAPACKパッケージのダウンロード

http://www.netlib.org/lapack/
からできる(2020/01/06時点で、最新版は3.9.0)。

2. LAPACKパッケージを適当なディレクトリで解凍する

パッケージを解凍すると、「lapack-3.9.0」というディレクトリができているはずなので、下記のコマンドを順々に実行。
$ cd lapack-3.9.0/
$ cp make.inc.example make.inc
$ make blaslib
$ make lapacklib
$ make tmglib
この時点で、ディレクトリ内に「librefblas.a」「liblapack.a」「libtmglib.a」という3つのファイルができているはずである。引き続き下記のコマンドを実行。
$sudo cp librefblas.a /usr/local/lib/libblas.a
$sudo cp liblapack.a /usr/local/lib/liblapack.a
$sudo cp libtmglib.a /usr/local/lib/libtmg.a

3. LAPACK95パッケージのダウンロード

http://www.netlib.org/lapack95
からできる(2020/01/06時点で最新版は3.0)。

4. LAPACK95パッケージを適当なディレクトリで解凍する

パッケージを解凍すると、「LAPACK95」というディレクトリができているはずなので、下記のコマンドを順々に実行。
$ cd LAPACK95/
$ mkdir lapack95_modules
続いて、LAPACK95/以下に入っている「make.inc」を開き、以下のように編集する。

make.inc
FC=gfortran
FC1=gfortran
OPTS0=-O3 (<- Oは大文字のO(オー))
MODLIB=-I./../lapack95_modules (←4.で作ったディレクトリと同じ名前)
LAPACK_PATH=/usr/local/lib/ (←2.で「librefblas.a」などの移動先に指定したのと同じディレクトリ)
LAPACK95=../lapack95.a
LAPACK77=$(LAPACK_PATH)/liblapack.a
TMG77   =$(LAPACK_PATH)/libtmg.a
BLAS    =$(LAPACK_PATH)/libblas.a

続いて下記のコマンドを実行。
$cd SRC/
$make single_double_complex_dcomplex
これによって、LAPACK95/に「lapack95.a」が生成されているはず。これを/usr/local/lib/に移動させて、更にファイル名を「liblapack95.a」に変更する(ファイル名の頭文字に"lib"がついてないといけないらしい)。

最後に、
LAPACK95/lapack95_modules/以下に入っているファイルを全て、
/usr/local/include/
に移動させる。

以上で終了。あとはコンパイルするだけ。

LAPACK95を使用したfortranプログラムのコンパイル方法は、
http://www.rcs.arch.t.u-tokyo.ac.jp/kusuhara/tips/linux/fortran.html
に掲載されております。
(その他にも、「lapack fortran」で検索すれば色々と出てくるはず)
基本的に、
$gfortran [fortranファイル名] -I/usr/local/include -llapack95 -llapack -lblas
と入力すればコンパイルできるはず。
(オプションの順番が大事。例えば”-llapack”と"-lblas"を逆にするとコンパイルできない。)

参考URL

34
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
38