Yes, and I have proposed that the language be extended to allow end do
to be followed by the name of the loop variable, so that one could write
do i=1,n
do j=1,m
! stuff
end do j
end do i
This would be helpful in long loops, and it would be more concise than the labels currently allowed and also less error-prone, since with labels one can write the misleading
loop_j: do i=1,n
loop_i: do j=1,m
! stuff
end do loop_i
end do loop_j
Visual Basic allows
for i = 1 to n
for j = 1 to m
'stuff
next j
next i