目的
RETURN ステートメントは次のことを行います。
+----------------------------------IBM 拡張----------------------------------+
+--------------------------------IBM 拡張の終り-------------------------------+
構文
>>-RETURN--+-----------------+--------------------------------->< | (1) | '-arith_expr------' 注:
|
+----------------------------------IBM 拡張----------------------------------+
+--------------------------------IBM 拡張の終り-------------------------------+
規則
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
関連情報