IMSL ライブラリーを使用するためには,次の操作を行う必要があります。
「Compaq Visual Fortran 6」プログラム・フォルダの「Fortran Command Prompt」では,DFVARS.BAT ファイルはすでに実行されています。ビジュアル開発環境では,(Visual Fortran がインストールする) DFVARS.BAT ファイルと等価なコマンドがすでに実行されています。これらのディレクトリ・パスをビジュアル開発環境内で見るには,次の操作を行います。
「Tools」メニューの「Options」をクリックします。
「Directory」タブをクリックします。
「Show Directories」のドロップダウンリストで「Library files」を選択すると,ライブラリー・パスを確認することができます。
「Show Directories」のドロップダウンリストで「Include files」を選択すると,インクルード・ファイル・パスを確認することができます。
何らかの情報を変更した場合,「OK」をクリックします。
リンカーに IMSL ライブラリーを渡す最も簡単な方法は,/imsl コンパイラ・オプションを指定することです。
別の方法として,IMSL ライブラリーを明示的に含みたい場合,ビジュアル開発環境で以下を行います。
まだ開いていない場合は,プロジェクト・ワークスペースを開きます (「File」メニューの「Open Workspace」)。
「Project」メニューの「Settings」をクリックします。
「Link」タブをクリックして,「Object/Library modules」一覧を表示します (「General」カテゴリ)。IMSL ライブラリーについては,「ライブラリーの名前付け規約」に一覧を示しています。次のライブラリー名があります。
imsl.lib imsls_err.lib imslmpistub.lib
何らかの情報を変更した場合,「OK」をクリックします。
IMSL ルーチンとそのインタフェースをプログラムから使用できるようにします。
Fortran プログラムから数学および統計ライブラリー・ルーチンを呼び出すときには,numerical_libraries モジュールを使って,ルーチンのインタフェース宣言とパラメタ定義を提供する必要があります。呼び出し側のプログラムに次の USE 文を入れることで,IMSL ルーチンが正しく使用されていることをコンパイル時に検証することができます。
USE numerical_libraries
USE numerical_libraries 文をプログラムに追加するとき,EXTERNAL 文を持つ外部ルーチンとして呼び出すルーチンを宣言してはいけません。
これに関する詳細は,「Compaq Visual Fortran 6」プログラム・フォルダから「IMSL Fortran 90 MP Library Read Me」を参照してください。
数学および統計ライブラリー・ルーチンを呼び出すとき,関数やサブルーチンを個別に宣言する必要はありません。
Fortran 90 MP ライブラリー・ルーチンも呼び出すときには,imslf90 モジュールを使って,すべての Fortran 90 MP ルーチンと数学および統計ライブラリー・ルーチンのインタフェース宣言とパラメタ定義を提供します。呼び出し側のプログラムに次の USE 文を入れることで,IMSL ルーチンが正しく使用されていることをコンパイル時に検証することができます。
USE IMSLF90
Fortran 90 MP に関する詳細は,「Compaq Visual Fortran 6」プログラム・フォルダから「IMSL Fortran 90 MP Library Help」を参照してください。
次に示す自由形式の Fortran 95/90 サンプル・プログラムは,IMSL ライブラリーの関数 AMACH とサブルーチン UMACH を呼び出します。AMACH 関数はコンピュータの実数算術を定義する実マシン定数を取得します。正のマシン無限大の値が返されます (Infinity)。副プログラム UMACH は出力装置番号を取得します。
! この自由形式例は,Visual Fortran からIMSL ルーチンを ! どのように呼び出すかを示すものです。 ! ! モジュール numerical_libraries には数学および統計ライブラリー ! が含まれています。ライブラリー・ルーチンに対する型宣言と ! インタフェース宣言も含まれています。 PROGRAM SHOWIMSL USE NUMERICAL_LIBRARIES INTEGER NOUT REAL RINFP ! AMACH 関数と UMACH サブルーチンは, ! numerical_libraries モジュールで宣言されています。 CALL UMACH(2,NOUT) RINFP = AMACH(7) WRITE(NOUT,*) 'REAL POSITIVE MACHINE INFINITY = ',RINFP END PROGRAM
ビジュアル開発環境でのコンパイルとリンクについての詳細は,「プログラムとライブラリーのビルド」を参照してください。