RETURN

:副プログラムから呼び出し側のプログラム単位に制御を移します。

形式

RETURN [expr]

expr
必要に応じて整数値に変換されるスカラ式。

expr はサブルーチン中でのみ指定することができ,選択戻り値を示します (選択戻り値は Fortran 95 と Fortran 90 の廃止予定事項です)。

規則と振る舞い

関数副プログラム中で RETURN 文が実行されると,制御は呼び出し側プログラム単位中の引用側の文に移されます。

RETURN 文がサブルーチン副プログラム中で実行されると,制御はそのサブルーチンを呼び出した CALL 文の次の最初の実行文か,選択戻り値 (指定されている場合) に移されます。

互換性

CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB

関連情報

CALLCASE

次に,サブルーチン中で選択戻り値を使用する例を示します。

		...
		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 の値によって以下のように決定されます。

星印 (*) は選択戻り値を指定していることに注意してください。アンド記号 (&) も,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 1CALL 文中の実引数 *10 に対するシンボルである並びの第 1 選択戻り文番号を指定しています。RETURN 2 は第 2 選択戻り文番号を,RETURN 3 は第 3 選択戻り文番号を指定しています。