Intel® Fortran Compiler 17.0 Developer Guide and Reference
Branching affects the normal execution sequence by transferring control to a labeled statement in the same scoping unit. The transfer statement is called the branch statement, while the statement to which the transfer is made is called the branch target statement.
Any executable statement can be a branch target statement, except for the following:
CASE statement
ELSE statement
ELSE IF statement
Certain restrictions apply to the following statements:
Statement |
Restriction |
---|---|
DO terminal statement |
The branch must be taken from within its nonblock DO construct1. |
END DO |
The branch must be taken from within its block DO construct. |
END IF |
The branch should be taken from within its IF construct2. |
END SELECT |
The branch must be taken from within its SELECT CASE construct or within its SELECT TYPE construct. |
1 If the terminal statement is shared by more than one nonblock DO construct, the branch can only be taken from within the innermost DO construct 2You can branch to an END IF statement from outside the IF construct; this is a deleted feature in the Fortran Standard. Intel® Fortran fully supports features deleted in the Fortran Standard. |
The following are branch statements:
GOTO - Unconditional statement
Transfers control to the same branch target statement every time it executes.
GOTO - COMPUTED statement
Transfers control to one of a set of labeled branch target statements based on the value of an expression.
ASSIGN and assigned GO TO statements
Assigns a label to an integer variable. Subsequently, this variable can be used as a branch target statement by an assigned GO TO statement or as a format specifier in a formatted input/output statement.
These statements are deleted features in Fortran 95. Intel® Fortran fully supports features deleted in Fortran 95.
IF - Arithmetic statement
Conditionally transfers control to one of three statements, based on the value of an arithmetic expression.