The DO construct controls the repeated execution of a block of statements or constructs. (This repeated execution is called a loop.)
The number of iterations of a loop can be specified in the initial DO statement in the construct, or the number of iterations can be left indefinite by a simple DO ("DO forever") construct or DO WHILE statement.
The EXIT and CYCLE statements modify the execution of a loop. An EXIT statement terminates execution of a loop, while a CYCLE statement terminates execution of the current iteration of a loop. For example:
DO READ (EUNIT, IOSTAT=IOS) Y IF (IOS /= 0) EXIT IF (Y < 0) CYCLE CALL SUB_A(Y) END DO
If an error or end-of-file occurs, the DO construct terminates. If a negative value for Y is read, the program skips to the next READ statement.