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 が混在したプログラミングにおけるモジュールの使用」を参照してください。