Fortran での手続のプロトタイピング

プログラマは,Fortran ソース・コード中でプロトタイプ (インタフェース宣言) を定義して,Fortran コンパイラに対して,外部引用にどの言語規約を使用するかを指示します。インタフェース宣言は INTERFACE 文によって開始されます。INTERFACE 文についての詳細は,「プログラム単位と手続」を参照してください。

INTERFACE 文の一般的な形式を次に示します。

INTERFACE
routine statement
[routine ATTIRUBUTE options]
[argument ATTRIBUTE options]
formal argument declarations
END routine name
END INTERFACE

routine statement には,FUNCTION または SUBROUTINE を定義します。どちらであるかは,それぞれ値が返されるか返されないかに依存します。省略可能な routine ATTIRUBUTE options (CSTDCALL など) は,プロトタイプ文に含まれるルーチンの呼び出し,名付け,および引数渡し規約を決定します。省略可能な argument ATTRIBUTE options (VALUEREFERENCE など) は,個々の引数に付加されたプロパティです。formal argument declarations は,Fortran データ型宣言です。同じ INTERFACE ブロックで複数の手続を指定することができます。

たとえば,次のプロトタイプを持つ C 関数を呼び出すとします。

	extern void My_Proc (int i);

この関数の Fortran での呼び出しは,ia32 システムでは次の INTERFACE 宣言で宣言されます。

	INTERFACE
	   SUBROUTINE my_Proc (I)
	    !DEC$ ATTRIBUTES C, ALIAS :'_My_Proc' :: my_Proc
	    INTEGER I
	   END SUBROUTINE my_Proc
	END INTERFACE

次の点に注意してください。