The range of a DO loop consists of all of the executable statements that appear following the DO statement, up to and including the terminal statement.
If a DO statement appears within the range of another DO loop, its range must be entirely contained within the range of the outer DO loop. More than one labeled DO loop can have the same terminal statement.
If a DO statement appears within an IF, ELSE IF, or ELSE block, the range of the associated DO loop must be contained entirely within that block.
If a block IF statement appears within the range of a DO loop, the corresponding END IF statement must also appear within the range of that DO loop.