プロトタイプ (インターフェイス・ブロック) を Fortran ソースコードで定義することにより、Fortran コンパイラに対して、外部参照用にどの言語規則を使用するかを指示できます。インターフェイス・ブロックは、INTERFACE 文で宣言します。INTERFACE 文に関する詳細は、『Language Reference』(英語) の「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 など) は、プロトタイプ文に含まれるルーチンに対して、どの呼び出し規則、命名規則、および引数渡し規則を適用するかを決定します。省略可能な 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, ALIAS:'My_Proc_' :: my_Proc INTEGER I END SUBROUTINE my_Proc END INTERFACE
ALIAS 文字列を除き、Fortran プログラムでは、My_Proc の大文字・小文字が区別されないのでご注意ください。