目的
RETURN ステートメントは次のことを行います。
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
構文
>>-RETURN--+-----------------+--------------------------------->< | (1) | '-arith_expr------' 注:
|
規則
arith_expr は、サブルーチンのサブプログラム内でのみ 指定できます。これは、代替戻り点を指定します。 m を arith_expr の値として、 「1 <= m <= SUBROUTINE または ENTRY ステートメント内のアスタリスク数」であれば、 仮引き数リスト内の m 番目のアスタリスクが選択されます。 CALL ステートメント内の m 番目の選択戻り指定子として指定されている ステートメント・ラベルを持つ呼び出しプロシージャー内のステートメントに、制御が戻されます。 たとえば、m の値が 5 の場合、CALL ステートメント内 の 5 番目の選択戻り指定子として指定されている ステートメント・ラベルを持つステートメントに制御が戻されます。
arith_expr を省略するか、 あるいはその値 (m) が、1 から SUBROUTINE また は ENTRY ステートメント内のアスタリスクの数までの範囲外にある場合、 通常の戻りが実行されます。 制御は、呼び出しプロシージャー内の CALL の次のステートメントに戻されます。
RETURN が実行されると、サブプログラムの仮引き数とその サブプログラムのインスタンスに提供される実引き数の間の関連付けが終了します。 サブプログラムにとってローカルであるエンティティー は、未定義を発生させるイベントに説明されているものを除いて、すべて未定義になります。
1 つのサブプログラムに複数の RETURN ステートメントを指定することも できますが、何も指定しなくてもかまいません。 関数サブプログラムまたはサブルーチン・サブプログラム内の END ステートメント は、RETURN ステートメントと同じ働きをします。
例
CALL SUB(A,B) CONTAINS SUBROUTINE SUB(A,B) INTEGER :: A,B IF (A.LT.B) RETURN ! Control returns to the calling procedure ELSE
·
·
·
END IF END SUBROUTINE END
関連情報