Fortran 90 is not block structured, all DO variables are visible after the
loop and have a specific value.
The index variable is recalculated at the top of the loop and then
compared with expr2
, if
the loop has finished, execution jumps to the statement after
the corresponding END DO. The loop is executed three times and i
is
assigned to 4 times, the index variable will retain the value that
it had just been assigned. For example,
DO i = 4, 45, 17 PRINT*, "I in loop = ",i END DO PRINT*, "I after loop = ",i
will produce
I in loop = 4 I in loop = 21 I in loop = 38 I after loop = 55
Elsewhere in program the index variable may be used freely but in the loop it can only be referenced and must not have its value changed.