spml ライブラリは以下の環境での動作を確認しています.
過去には以下の環境でも動作したことが確認されています. 確認はしていませんが, 現在のバージョンでもおそらく動作すると期待されます.
spml ライブラリのインストールは以下の様に行ないます. 詳しくは各項目を参照して下さい.
spml を利用するためには, 以下のソフトウェアを 事前にインストールしておく必要があります.
適当な作業ディレクトリでソースアーカイブを展開します. ソースは spml-バージョン というディレクトリに展開されます.
$ tar xvzf spml_current.tgz
または
$ zcat spml_current.tar.gz | tar -xvf -
環境変数 FC に使用する Fortran コンパイラを指定してください. 以下は, 利用するコンパイラが frt の場合です.
sh, bash の場合
$ FC=frt ; export FC
csh, tcsh の場合
$ setenv FC frt
最適化やデバッグのためのオプションは環境変数 SYSFFLAGS に設定してください. 以下の例は Fujitsu Fortran を使用する場合の高速化と 並列化のためのオプションです.
sh, bash の場合
$ SYSFFLAGS="-Kfast,parallel" ; export FFLAGS
csh, tcsh の場合
$ setenv SYSFFLAGS "-Kfast,parallel"
展開されたディレクトリに移動し, ./configure を実行します.
--with-netcdf= には netCDF ライブラリのパスを指定します.
(以下の例は /usr/local/netcdf/lib/libnetcdf.a にライブラリがある
場合のものです). --with-gtool5= には gtool5 ライブラリのパスを指定します.
(以下の例は /usr/local/gtool5/lib/libgtool5.a にライブラリがある
場合のものです). --with-ispack= には ispack ライブラリのパスを指定します.
(以下の例は /usr/local/ispack/lib/libisp.a にライブラリがある
場合のものです).このコマンドによって Config.mk ファイルが生成されます.
netCDF ライブラリが共有ライブラリである場合,
--with-netcdff= も指定する必要があるかもしれません.
詳しくは下記のオプションの詳細を参照してください.
$ ./configure --with-netcdf=/usr/local/netcdf/lib/libnetcdf.a \
--with-gtool5=/usr/local/gtool5/lib/libgtool5.a \
--with-ispack=/usr/local/ispack/lib/libisp.a
spml を MPI 用にビルドする場合には, MPI 用にビルドする場合には を参照してください.
ビルドには GNU make が必要となるため, configure は PATH 内から 自動で GNU make を探査しようとしますが, もし見つからない場合, エラーを返します. その場合には環境変数 MAKE に GNU make コマンドを指定して再度 configure を実行してください.
インストール先などを変更したい場合は, 以下のように --help オプ
ションをつけることで, 指定可能なオプションリストが表示されます.
$ ./configure --help
主なオプションに関しての説明です.
--with-netcdf=ARG--with-netcdff=ARG--with-netcdf-include=ARG--with-gtool5=ARG--with-ispack=ARG--with-ssl2=ARG--with-ssl2tp=ARG--with-lapack=ARG--with-lumatrix=ARG--with-fftw=ARG--with-rfftw=ARG--with-mpifc=ARG--prefix=ARG /usr/local/spml です.
--host=ARG--libdir=ARG /usr/local/spml/lib です.
--includedir=ARG /usr/local/spml/include です.
--bindir=ARG /usr/local/spml/bin です.
--docdir=ARG /usr/local/spml/doc です.
--with-abort=ARGabort, errtra-setrcd, exit, setrcd, stop のいずれか
を指定することで, 終了時に用いる Fortran の内部関数を変更することが
可能です. デフォルトは abort です.
--config-cache または -C Config.mk ファイルが生成されると同時に, config.cache
ファイルが作成され, ./configure の引数に指定されたライブラリの位置
などの情報が保持されます.
再度 ./configure を実行する際にもこのオプションを指定することで,
config.cache が読み込まれ, 前回指定したオプション等が引き継がれます.
既に存在する config.cache を無視する場合はこのオプションを
指定せずに ./configure を実行してください.
例えば下記のように ./configure を実行するとします.
$ ./configure -C --with-netcdf=/usr/local/netcdf/lib/libnetcdf.a
--with-gtool5=/usr/local/gtool5/lib/libgtool5.a
--with-ispack=/usr/local/ispack/lib/libisp.a
すると次回以降, 下記のように ./configure を実行することで
ライブラリの位置情報などが引き継がれます.
$ ./configure -C
spml を MPI 用にビルドする場合にはまず MPI ライブラリをシステムに インストールしてください.
次に gtool5 を MPI サポートを有効にして install します. 詳細については gtool5 の install ドキュメントを参照して下さい.
Config.mk を作成する場合には, 環境変数 FC に mpif90 などの MPI 用コンパイル コマンドを指定してください. そして, 以下のように configure にはオプション --with-mpifc を指定して下さい
$ ./configure -C --with-netcdf=/usr/local/netcdf/lib/libnetcdf.a \
--with-gtool5=/usr/local/gtool5/lib/libgtool5.a \
--with-ispack=/usr/local/ispack/lib/libisp.a \
--with-mpifc=/usr/local/mpich/mpif90
その他のオプションなどについては, Config.mk の作成 を参照してください.
環境に合わせ Config.mk を手動で編集してください.
下記の設定についてよく分からない場合にはとりあえず
ソースコードのコンパイル へ進んでください.
FC : Fortran コンパイラ
SYSFFLAGS : コンパイル時・リンク時に必要なフラグ
(Fortran コンパイラ実行時に必要なオプション)
SYSLDFLAGS : リンク時に必要なフラグ
SYSLDLIBS : リンク時に必要なライブラリ
F90MODTYPE : モジュール情報の渡し方
DEST_LIB : spml ライブラリインストールディレクトリ
DEST_INC : spml モジュールインストールディレクトリ
DEST_BIN : spml 実行ファイルインストールディレクトリ
DEST_DOC : spml ドキュメントファイルインストールディレクトリ
MODS : モジュールファイル拡張子
MAKE : GNU make コマンド
AR : アーカイブコマンド
ARFLAGS : アーカイブ時に必要なフラグ
RANLIB : アーカイブのインデックスを作成するコマンド
ビルドには必ず GNU make を使用してください. 他の "make" プログラムを使 用すると, 正しくビルドが行われません. 以降 GNU make のコマンド名を "make" と表記しますが, これらはシステムの GNU make コマンドの名前に置き換えてください.
./configure を実行すると, 以下のように GNU make のコマンド名が 表示されます. このメッセージに従って GNU make を実行してください.
Execute GNU make in the current directory, as follows. /usr/bin/make
マニュアルとコードリファレンスのコンパイルはカレントディレクトリ において, 以下のコマンドを実行してください. spml の TGZ パッケージ から入手する場合には既に生成済みです.
$ make doc $ make install
カレントディレクトリで以下のコマンドを実行してください. システム領域にインストールする場合には管理者権限が 必要です. (デフォルトの場合はシステム領域にインストールします).
# make install
カレントディレクトリにおいて, 以下のコマンドを実行してください.
エラーが生じずに
" *** Compilation and installation are succeeded !! *** "
というメッセージが表示されればインストールは完了です.
$ make test
上記のように正しくインストールが行われたら,
spmfrt というシェルスクリプトが --prefix=ARG
で指定されたディレクトリ以下の bin ディレクトリ ARG/bin
に作成されているはずです.
( --prefix= を指定しなかった場合は
/usr/local/spml/bin/ 以下).
このディレクトリへのパスを通してください.
以下は /usr/local/spml/bin/ 以下に spmfrt
がインストールされた場合の例です.
sh, bash
$ PATH=$PATH:/usr/local/spml/bin ; export PATH
csh, tcsh
$ setenv PATH $PATH:/usr/local/spml/bin
spmfrt は spml ライブラリを利用した Fortran プログラムを 簡単にコンパイル, リンクするためのシェルスクリプトです. これまで利用していた Fortran コンパイラのコマンドの代わりに spmfrt を用いることで, 自動的に spml ライブラリへの リンク, モジュール群へのディレクトリ指定を行ってくれます.
$ spmfrt test.f90
/usr/bin/g95 -I/usr/local/spml/include \
-I/usr/local/gtool5/include -O test.f90 \
-L/usr/local/gtool5/lib \
-L/usr/local/netcdf/lib \
-L/usr/local/ispack/lib \
-L/usr/local/spml/lib \
-lgtool5 -lnetcdf -lisp -lspml