Fortran モジュール名と ATTRIBUTES

Fortran モジュール・エンティティ (データとプロシージャ) は、他の外部エンティティとは異なる外部名を持ちます。モジュール名は次の規則を使用します:

MODULENAME_mp_ENTITY_

MODULENAME はモジュールの名前です。ENTITY は、MODULENAME に含まれているモジュール・プロシージャ名またはモジュール・データ名です。_mp_ はモジュール名とエンティティ名の間に挿入される区切り文字で、常に小文字です。

次に例を示します。

MODULE mymod   INTEGER a CONTAINS   SUBROUTINE b (j)      INTEGER j   END SUBROUTINE END MODULE


この場合、コンパイル後の .o ファイルには、次のシンボルが定義されます:

mymod_mp_a_
mymod_mp_b_

コンパイラ・オプションを使用することで、モジュール・データおよびモジュール・プロシージャの名前付けを設定できます。

ALIAS 以外の ATTRIBUTES オプションはモジュール名に影響を与えません。

以下の表では、上記のサンプル・モジュールの各サブルーチンに、個々の ATTRIBUTES プロパティがどのように影響を与えるかを示します。

Fortran モジュール名に対する ATTRIBUTES オプションの効果

ルーチン 'b' に対して指定された ATTRIBUTES プロパティ

.o ファイル内のプロシージャ名

なし

mymod_mp_b_

C

mymod_mp_b_

ALIAS

他のすべてを上書きします。エイリアスで指定した名前

VARYING

名前への影響はなし

他の言語から Fortran モジュールを呼び出したり、モジュール・データを参照するコードを書くことができます。他の命名規則と呼び出し規則と同じように、モジュール名は 2 つの言語間で一致していなくてはなりません。一般に、これは、Fortran で C の規則を使用し、また、別の言語でモジュールを定義する場合は ALIAS プロパティを使用して、Fortran での名前を一致させる必要があることを意味します。異なる言語間でのモジュールの使用例は、「Fortran と C が混在したプログラミングにおけるモジュールの使用」を参照してください。