インテル® Fortran コンパイラー 16.0 ユーザー・リファレンス・ガイド

モジュール (.mod) ファイルの使用

複数のプロジェクトで同じソースコードを使用することで起こりうる混乱を回避する方法の 1 つに、ルーチンをモジュール単位で整理する方法があります。モジュール (.mod ファイル) とは、データ・オブジェクト、パラメーター、構造体、プロシージャー、および演算子のようなエンティティーの仕様を持つプログラムユニットの種類です。これらのプリコンパイル済みの仕様と定義は、1 つまたはそれ以上のプログラムユニットで使用できます。モジュール・エンティティーへの部分的あるいは完全なアクセスは、プログラムの USE 文で提供されます。モジュールの一般的な用途は、グローバルデータの仕様、または派生型および関連した演算子の仕様を記述することです。

モジュールはプログラムを整理するための極めて便利な手段です。プログラマーは次のモジュールを設定することができます。

一部のプログラムでは、複数のディレクトリーに格納されたモジュールが必要になります。プログラムのコンパイル時に、I コンパイラー・オプションを使用して、プログラムに含める必要がある .mod ファイルの場所を指定できます。

modulepath コンパイラー・オプションを使用して、モジュールファイルを作成するディレクトリーを指定できます。このオプションを使用しない場合は、モジュールファイルは現在のディレクトリーに作成されます。

ディレクトリーから .mod ファイルが検索される順序は、次のとおりです。

  1. USE 文が含まれるソースファイルのディレクトリー

  2. modulepath コンパイラー・オプションで指定されたディレクトリー

  3. 現在の作業ディレクトリー

  4. -Idir オプション (Linux* および OS X*) または /include オプション (Windows*) により指定されたディレクトリー

  5. CPATH 環境変数または INCLUDE 環境変数で指定されたディレクトリー

  6. 標準のシステム・ディレクトリー

ほかのプログラムやサブプログラムから参照される前に、モジュールファイルが作成されていることを確認する必要があります。

モジュールを持つプログラムのコンパイル

コンパイルするファイルに 1 つ以上のモジュールが定義されている場合、コンパイラーは 1 つ以上の .mod ファイルを生成します。

例えば、a.f90 ファイルには、以下のように定義されたモジュールが含まれています。

a.f90 モジュール

module test
integer:: a
contains
  subroutine f()
  end subroutine
end module test 
module payroll 
  ...
end module payroll 

コンパイラー・コマンド:

ifort -c a.f90

このコマンドにより、次のファイルが生成されます。

.mod ファイルには、プログラム a.f90 で定義されたモジュールに関する必要な情報が含まれています。

次の例では、mod_def.f90 プログラムを使用します。このプログラムには、以下のように定義されたモジュールが含まれています。

mod_def.f90 モジュール

file: mod_def.f90
module definedmod
  ...
end module

次のように、プログラムをコンパイルします。

ifort -c mod_def.f90

現在のディレクトリーに、mod_def.o オブジェクト・ファイル (Linux* および OS X*) または mod_def.obj オブジェクト・ファイル (Windows*) と definedmod.mod ファイルが作成されます。

.mod ファイルを別のディレクトリーで使用する例

file: use_mod_def.f90
program usemod
use definedmod 
  ...
end program

上記のプログラムをコンパイルする場合は、I コンパイラー・オプションを使用して、definedmod.mod ファイルが格納されているパスを指定します。

関連情報