# 7.1 Branch Statements

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 construct 1.
END DO | The branch must be taken from within its block DO construct.
END IF | The branch should be taken from within its IF construct 2.
END SELECT | The branch must be taken from within its CASE 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 2 You can branch to an END IF statement from outside the IF construct; this is a deleted feature in Fortran 95. Compaq Fortran fully supports features deleted in Fortran 95.

The following branch statements are described in this section:

- Unconditional GO TO
- Computed GO TO
- Assigned GO TO (the ASSIGN statement is also described here)
- Arithmetic IF

For More Information:

- On IF constructs, see Section 7.7.
- On CASE constructs, see Section 7.3.
- On DO constructs, see Section 7.5.

Previous Page Next Page Table of Contents