以下は, Absoft Pro Fortran on Macintosh OS X で gt4f90io ライブラリ (バージョン gt4f90io-20060719-1) をビルド, インストールした際のメモ書きです.
Absoft Pro Fortran 9.0 で gt4f90io をビルドする場合, 以下の副プログラム が利用できません. Fortran 90/95 の機能である総称名を用いた多重定義の解釈 に関して, Absoft Pro Fortran にバグがあるのではないかと想像されますが ちゃんとは確認されてません.
まず gt4f90io に必要となる netCDF のインストールを行います.
netCDF のミラー より netcdf-3.6.1.tar.gz をダウンロードします.
ダウンロード後, zcat と tar で展開します.
$ tar xvfz netcdf-3.6.1.tar.gz
src ディレクトリまで移動します.
$ cd netcdf-3.6.1/src
Fortran 90/95 ファイルとのリンクを考え, netCDF のヘッダファイル src/fortran/cfortran.h を改変します. パッチファイル netcdf-3.6.1_src_fortran_cfortran.h.patch をダウンロードし, 以下のようにパッチを当ててください.
$ cd fortran $ patch < netcdf-3.6.1_src_fortran_cfortran.h.patch
netCDF のバージョンが異なる場合はパッチファイルを直接適用できない はずなので, パッチファイルの中身を参照して直接 cfortran.h を 改変してください.
なお, 改変した内容は, 以下の通りです.
です. このようなシンボル名にしておかないと, Fortran 90/95 プログラムか らのリンクに支障をきたすはずです. (少なくとも調べた限りでは). ただし, Fortran 90/95 のコンパイル, リンクの際には必ず -YALL_NAMES=LCS -YEXT_SFX=_ オプションを指定してください.
以下のように環境変数を設定しつつ, configure を実行します. (この例は bash の場合です. csh を利用している場合は csh の作法に則って環境変数を指定してください). --prefix にはインストール先を指定してください.
$ cd netcdf-3.6.1/src $ unset MAKE CC CXX CFLAGS CXXFLAGS CPPFLAGS FC FFLAGS F90 F90FLAGS FLIBS F90LIBS $ export MAKE=/usr/bin/gnumake $ export CC='/usr/bin/cc' $ export CXX='/usr/bin/c++' $ export CFLAGS='-m32 -mpowerpc -mcpu=powerpc -mtune=powerpc -fPIC -fast' $ export CXXFLAGS=$CFLAGS $ export CPPFLAGS='-DAbsoftProFortran' $ export FC='/Applications/Absoft/bin/f90' $ export FFLAGS="-w -YALL_NAMES=LCS -YEXT_SFX=_ -I`pwd`/f90 -I`pwd`/ncgen" $ export F90=$FC $ export F90FLAGS=$FFLAGS $ export FLIBS='-lU77' $ export F90LIBS=$FLIBS $ ./configure --prefix=/usr/local/lib/netcdf-absoft
configure によるチェックが完了したら, 以下のコマンドでビルドと チェックを行ってください.
$ /usr/bin/gnumake check
終わったらこの後のビルドのために, 一度環境変数を初期化しておきましょう.
$ unset MAKE CC CXX CFLAGS CXXFLAGS CPPFLAGS FC FFLAGS F90 F90FLAGS FLIBS F90LIBS
以下のコマンドでインストールを行ってください.
# mkdir /usr/local/lib/netcdf-absoft # make install
ncdump, ncgen に関しては /usr/local/bin 以下にシンボリックリンクを作成すると 良いでしょう.
# cd /usr/local/bin # ln -s ../lib/netcdf-absoft/bin/ncdump # ln -s ../lib/netcdf-absoft/bin/ncgen
gtool4 プロジェクト より gtool4-20060719-1.tgz をダウンロードします.
ダウンロードしたパッケージを zcat と tar で展開します.
$ tar xvfz gt4f90io-20060719-1.tgz
ソースコードを一部改変する必要があります.
パッチファイル gt4f90io-20060719-1_absoft.patch をダウンロードし, 上記のコマンドを実行したディレクトリで, 以下のようにパッチを当ててください.
$ patch -p0 < gt4f90io-20060719-1_absoft.patch
gt4f90io のバージョンが異なる場合はパッチファイルを直接適用できないは ずなので, パッチファイルの中身を参照して直接ファイルを改変してください.
環境変数 FC を指定し, configure スクリプトを起動します. (csh の場合は別途環境変数を指定してください). --with-netcdf には先に作成した netCDF ライブラリを指定してください.
$ cd gt4f90io-20060719-1 $ FC=/Applications/Absoft/bin/f90 \ ./configure --prefix=/usr/local/lib/gt4f90io-absoft \ --with-netcdf=/usr/local/lib/netcdf-absoft/lib/libnetcdf.a
configure スクリプトによるチェックが完了したら, ビルドを行います.
$ /usr/bin/gnumake
ビルドが完了したらインストール行います.
$ sudo -s # /usr/bin/gnumake install
gt4frt によって正しくコンパイルとリンクが行われるか, 以下のコマンドで 確認します.
$ /usr/bin/gnumake test-installed
システムにインストールする場合, gt4frt, gt4config に関しては /usr/local/bin 以下にシンボリックリンクを作成すると 良いでしょう.
# cd /usr/local/bin # ln -s ../lib/gt4f90io-absoft/bin/gt4frt # ln -s ../lib/gt4f90io-absoft/bin/gt4config
システムにインストールしない場合, ~/.bashrc など, シェルの初期化ファイルに gt4frt へのパスを 設定します. 以下はその例です.
$ vi ~/.bashrc PATH=$PATH:/home/username/lib/gt4f90io/bin/gt4frt ; export PATH
これで gt4f90io ライブラリのビルドとインストールは完了です.