>>>>> This is what Fortran standard says: >>>>> >>>>> The iteration count is established and is the value of the expression >>>>> (m2-m1+m3)/m3 unless that value is negative, >>>>> in which case the iteration count is 0. >>>>> >>>>> My reading of this is that the do statement is undefined whenever the >>>>> expression above is undefined >>>>> (m1 is lower bound, m2 is upper bound, m3 is step) and because I think >>>>> the evaulation order of >>>>> m2-m1+m3 is not fixed, I think the statement is not defined whethever >>>>> (m2-m1), (m1+m3) or (m2-m1)+m3
In the Fortran standard, (m2-m1+m3)/m3 is a mathematical expression, not a “construct”. So it cannot be “undefined”. If you have explicit cases where you are asking “is this valid or invalid” please post them here (fortran@) and we will tell you. FX