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').