実引数が手続である場合,その対応する仮引数は仮手続となります。仮手続は関数またはサブルーチン副プログラム中に置くことができます。
実引数は,外部手続,モジュール手続,組込み手続,または他の仮手続の個別名でなくてはなりません。その個別名が総称名でもある場合,個別名だけが仮引数に結合されます。組込み手続の中には,実引数としては使用できないものがあります (詳細については,「実引数として許されていない関数:表」を参照)。
実引数と,それに対応する仮手続は,両方ともサブルーチンであるか,両方とも関数でなくてはなりません。
仮手続のインタフェースが明示的インタフェースである場合,結合された実手続の型,種別パラメタ,および次元数は,仮手続と同じでなくてはなりません。
仮手続のインタフェースが暗黙的であり,手続がサブルーチンとして引用される場合,実引数はサブルーチンまたは仮手続でなくてはなりません。
仮手続のインタフェースが暗黙的であり,手続が関数として引用されているか,明示的に型が宣言されている場合,実引数は関数または仮手続でなくてはなりません。
仮手続は省略可能として宣言することができますが,INTENT を使って宣言することはできません。
次に,手続を引数として使用した例を示します。
REAL FUNCTION LGFUNC(BAR) INTERFACE REAL FUNCTION BAR(Y) REAL, INTENT(IN) :: Y END END INTERFACE ... LGFUNC = BAR(2.0) ... END FUNCTION LGFUNC
関連情報
手続引数結合の一般的な規則については,「引数結合」を参照してください。