> Hello, > > this was reported at > http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/635192e11beadb93# > > The problem is the line 47: > > 47: IF( M.EQ.0 .OR. A(M, 1).NE.ZERO .OR. A(M, N).NE.ZERO ) THEN > > If M == 0 the one accesses A(0,1) which is invalid as the lower bound is 1 > and not 0. > > Note: Contrary to C there is no left-to-right evaluation of expressions in > Fortran; the order is left to the compiler. One might assume that a smart > compiler does not evaluate "A(M,1)" if "M==0", however, there is nothing in > the standard guarantees this. > > If bounds checks are turned on (see post at the URL above), gfortran aborts > with an out-of-bounds error.