Fortran モジュール要素 (データと手続) は,他の外部要素とは異なる外部名を持ちます。モジュール名は次の規約を使用します。
_MODULENAME_mp_ENTITY [ @stacksize ]
MODULENAME はモジュールの名前であり,基本設定ではすべて大文字です。ENTITY は,MODULENAME に含まれているモジュール手続またはモジュール・データ名です。ENTITY も,やはり基本設定ではすべて大文字です。_mp_ はモジュール名と要素名間の区切り子で,つねに小文字です。
次に例を示します。
MODULE mymod INTEGER a CONTAINS SUBROUTINE b (j) INTEGER j END SUBROUTINE END MODULE
この場合,ia32 システムのコンパイル後の .OBJ ファイルには,次のシンボルが定義されます。
_MYMOD_mp_A _MYMOD_mp_B@4
ia64 システムでは,次のシンボルが定義されます。
MYMOD_mp_A MYMOD_mp_B
コンパイラ・オプションは,モジュール・データと手続の名付けに影響を与えることがあります。
次表に,上のサンプル・モジュールのサブルーチンに個々の ATTRIBUTES オプションがどのような影響を与えるかを示します。
Fortran モジュール名に対する ATTRIBUTES オプションの効果
ルーチン 'b' に対して指定された ATTRIBUTES オプション | ia32 システムでの .OBJ ファイル中の手続名 | ia64 システムでの .OBJ ファイル中の手続名 |
なし | _MYMOD_mp_B@4 | MYMOD_mp_B |
C | _MYMOD_mp_b | MYMOD_mp_b |
STDCALL | _MYMOD_mp_b@4 | MYMOD_mp_b |
ALIAS | 他のすべてを置換し別名で指定された名前が使用される | 他のすべてを置換し別名で指定された名前が使用される |
VARYING | 名前に対する影響はなし | 名前に対する影響はなし |
他の言語から Fortran モジュールを呼び出したり,モジュール・データを参照するコードを書くことができます。他の名付け規約と呼び出し規約と同様に,モジュール名は 2 つの言語間で一致していなくてはなりません。一般に,これは Fortran で C または STDCALL の規約を使用し,別の言語でモジュールを定義する場合,ALIAS オプションを使って Fortran での名前に一致させるということを意味しています。「言語が混在したプログラミングにおけるモジュールの使用」に例があります。