Node: Alternate Returns, Next: Assigned Statement Labels, Previous: Alternate Entry Points, Up: Debugging and Interfacing
Subroutines with alternate returns (e.g. SUBROUTINE X(*)
and
CALL X(*50)
) are implemented by g77
as functions returning
the C int
type.
The actual alternate-return arguments are omitted from the calling sequence.
Instead, the caller uses
the return value to do a rough equivalent of the Fortran
computed-GOTO
statement, as in GOTO (50), X()
in the
example above (where X
is quietly declared as an INTEGER(KIND=1)
function), and the callee just returns whatever integer
is specified in the RETURN
statement for the subroutine
For example, RETURN 1
is implemented as X = 1
followed
by RETURN
in C, and RETURN
by itself is X = 0
and RETURN
).