Visual Fortran からの IMSL ライブラリーの使用

IMSL ライブラリーを使用するためには,次の操作を行う必要があります。

  1. DFVARS.BAT ファイル (「コマンド行からのコンパイラとリンカーの使用」を参照) を実行することで,開発環境に必要な IMSL 環境変数が設定されます。これは,INCLUDE パスやライブラリー (リンカー) の検索パスを設定します。

    「Compaq Visual Fortran 6」プログラム・フォルダの「Fortran Command Prompt」では,DFVARS.BAT ファイルはすでに実行されています。ビジュアル開発環境では,(Visual Fortran がインストールする) DFVARS.BAT ファイルと等価なコマンドがすでに実行されています。これらのディレクトリ・パスをビジュアル開発環境内で見るには,次の操作を行います。

    1. 「Tools」メニューの「Options」をクリックします。

    2. 「Directory」タブをクリックします。

    3. 「Show Directories」のドロップダウンリストで「Library files」を選択すると,ライブラリー・パスを確認することができます。

    4. 「Show Directories」のドロップダウンリストで「Include files」を選択すると,インクルード・ファイル・パスを確認することができます。

    5. 何らかの情報を変更した場合,「OK」をクリックします。

  2. リンカーに IMSL ライブラリーを渡す最も簡単な方法は,/imsl コンパイラ・オプションを指定することです。

    別の方法として,IMSL ライブラリーを明示的に含みたい場合,ビジュアル開発環境で以下を行います。

    1. まだ開いていない場合は,プロジェクト・ワークスペースを開きます (「File」メニューの「Open Workspace」)。

    2. 「Project」メニューの「Settings」をクリックします。

    3. 「Link」タブをクリックして,「Object/Library modules」一覧を表示します (「General」カテゴリ)。IMSL ライブラリーについては,「ライブラリーの名前付け規約」に一覧を示しています。次のライブラリー名があります。

      	imsl.lib imsls_err.lib imslmpistub.lib
      
    4. 何らかの情報を変更した場合,「OK」をクリックします。

  3. 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

ビジュアル開発環境でのコンパイルとリンクについての詳細は,「プログラムとライブラリーのビルド」を参照してください。


注意:IMSL ルーチンは一般にマルチスレッド用ではありません。マルチスレッド環境では,2 つの IMSL ルーチンが同時に活動状態にならないように注意する必要があります。このためにはマルチスレッド制御技術を使用します。詳細については,「マルチスレッド・アプリケーションの作成」を参照してください。