EXTERNAL

文と属性:外部または仮手続を実引数として使用することができます (組込み手続を実引数として指定するには,INTRINSIC 属性を使用します)。

EXTERNAL 属性は型宣言文または EXTERNAL 文で指定することができ,以下のいずれかの形式を取ります。

形式

型宣言文

type, [att-ls,] EXTERNAL [,att-ls] :: ex-pro [,ex-pro]...

EXTERNAL ex-pro [,ex-pro]...

type
データ型指定子。

att-ls
省略可能な属性指定子並び。

ex-pro
外部 (ユーザー提供) 手続または仮手続の名前。

規則と振る舞い

型宣言文では,関数だけを EXTERNAL として宣言することができます。しかし,EXTERNAL を使えば,関数だけでなく,サブルーチンと初期値設定プログラム単位も EXTERNAL として宣言することができます。

EXTERNAL として宣言された名前は,名前が組込み手続の名前と等しい場合でも,外部手続の名前として扱われます。たとえば,SINEXTERNAL 属性を付けて宣言された場合,SIN に対するそれ以降のすべての引用は,同じ名前の組込み関数ではなく,ユーザー提供の SIN という名前の関数に対する引用と見なされます。

EXTERNAL 文に初期値設定プログラム単位の名前を入れて,リンク時にオブジェクト・モジュール・ライブラリーで初期値設定プログラム単位を探させることができます。ただし,その初期値設定プログラム単位の名前を型宣言文で使用することはできません。

より詳細にルーチンを記述したい場合,INTERFACE 文を使用します。この文は,自動的にルーチンを EXTERNAL として宣言し,結果の型と引数の型の情報を提供します。

互換性

CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB

関連情報

EXTERNAL 文の FORTRAN-66 解釈INTRINSIC型宣言属性の互換性プログラム単位と手続

次の例は,EXTERNAL 属性を指定する型宣言文を示しています。

	PROGRAM TEST
	...
	INTEGER, EXTERNAL :: BETA
	LOGICAL, EXTERNAL :: COS
	CALL SUB(BETA)		! 外部関数 BETA は実引数です。

EXTERNAL 文で宣言された名前は,副プログラムへの実引数として使用することができます。このとき副プログラムは,関数の引用または CALL 文で,対応する仮引数を使用することができます。

	EXTERNAL FACET
	CALL BAR(FACET)

	SUBROUTINE BAR(F)
	EXTERNAL F
	CALL F(2)

引数として使用された場合,完全な関数の引用は副プログラムではなく値を表します。たとえば,FUNC(B) は次の文では値を表します。

	CALL SUBR(A, FUNC(B), C)

以下に別の例を示します。

	EXTERNAL MyFunc, MySub
	! MyFunc と MySub は,Calc の引数です。
	CALL Calc (MyFunc, MySub)
	! 組込み関数をユーザー定義関数で置き換える例
	EXTERNAL SIN
	x = SIN (a, 4.2, 37)