プロトタイプ (インターフェイス・ブロック) を Fortran ソースコードで定義することにより、Fortran コンパイラーに対して、外部参照用にどの言語規則を使用するかを指示できます。インターフェイス・ブロックは、INTERFACE 文で宣言します。INTERFACE 文に関する詳細は、「Program Units and Procedures」(英語) を参照してください。
INTERFACE 文の一般的な形式を次に示します。
INTERFACE
routine statement
[routine ATTRIBUTE options]
[argument ATTRIBUTE options]
formal argument declarations
END routine name
END INTERFACE
routine statement では、値が返されるかどうかにより、FUNCTION または SUBROUTINE を定義します。省略可能な routine ATTRIBUTE options (C および STDCALL (Windows* の場合) など) は、プロトタイプ文に含まれるルーチンに対して、どの呼び出し規則、命名規則、および引数渡し規則を適用するかを決定します。省略可能な argument ATTRIBUTE options (VALUE や REFERENCE など) は、個々の引数に付加されるプロパティーです。formal argument declarations は、Fortran データ型の宣言です。同じ INTERFACE ブロックで複数のプロシージャーを指定できます。
例えば、次のプロトタイプを持つ C 関数を呼び出すとします。
extern void My_Proc (int i);
Fortran からこの関数を呼び出すには、次の INTERFACE ブロックを宣言する必要があります。
INTERFACE SUBROUTINE my_Proc (I) !DEC$ ATTRIBUTES C, DECORATE, ALIAS:'My_Proc' :: my_Proc INTEGER I END SUBROUTINE my_Proc END INTERFACE
ALIAS 文字列を除き、Fortran プログラムでは、My_Proc の大文字・小文字が区別されないので注意してください。