文:副プログラムから呼び出し側のプログラム単位に制御を移します。
形式
RETURN [expr]
expr
必要に応じて整数値に変換されるスカラ式。
expr はサブルーチン中でのみ指定することができ,選択戻り値を示します (選択戻り値は Fortran 95 と Fortran 90 の廃止予定事項です)。
規則と振る舞い
関数副プログラム中で RETURN 文が実行されると,制御は呼び出し側プログラム単位中の引用側の文に移されます。
RETURN 文がサブルーチン副プログラム中で実行されると,制御はそのサブルーチンを呼び出した CALL 文の次の最初の実行文か,選択戻り値 (指定されている場合) に移されます。
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
例
次に,サブルーチン中で選択戻り値を使用する例を示します。
... CALL CHECK(A, B, *10, *20, C) ... 10 ... 20 ... ... SUBROUTINE CHECK(X, Y, *, *, C) ... 50 IF (X) 60, 70, 80 60 RETURN 70 RETURN 1 80 RETURN 2 END
返し値は,X の値によって以下のように決定されます。
X < 0 の場合,通常の戻りが実行され,制御は呼び出し側プログラム中の CALL CHECK に続く最初の実行文に移されます。
X == 0 の場合,第 1 の選択戻り値 (RETURN 1) が使用され,制御は文番号 10 で識別される文に移されます。
X > 0 の場合には,第 2 の選択戻り値 (RETURN 2) が使用され,制御は文番号 20 で識別される文に移されます。
星印 (*) は選択戻り値を指定していることに注意してください。アンド記号 (&) も,CALL 文の中で選択戻り値を指定することができますが,サブルーチンの仮引数並び中で指定することはできません。
以下に別の例を示します。
SUBROUTINE Loop CHARACTER in 10 READ (*, '(A)') in IF (in .EQ. 'Y') RETURN GOTO 10 ! RETURN は,以下の文に包含されています END ! 以下の例は,選択戻りを示しています。 CALL AltRet (i, *10, *20, *30) WRITE (*, *) 'normal return' GOTO 40 10 WRITE (*, *) 'I = 10' GOTO 40 20 WRITE (*, *) 'I = 20' GOTO 40 30 WRITE (*, *) 'I = 30' 40 CONTINUE END SUBROUTINE AltRet (i, *, *, *) IF (i .EQ. 10) RETURN 1 IF (i .EQ. 20) RETURN 2 IF (i .EQ. 30) RETURN 3 END
この例では,RETURN 1 は CALL 文中の実引数 *10 に対するシンボルである並びの第 1 選択戻り文番号を指定しています。RETURN 2 は第 2 選択戻り文番号を,RETURN 3 は第 3 選択戻り文番号を指定しています。