For the code program main implicit none integer, parameter :: n = 10 real :: x(n), dx(n) integer :: i call random_number(x) do i=1,n if (i > 1) then dx(i) = x(i) - x(i-1) else dx(i) = 0.0 end if end do print*,dx end program main
gfortran -Wextra says for GNU Fortran (GCC) 13.0.0 20221218 xspur.f90:9:23: 7 | do i=1,n | 2 8 | if (i > 1) then 9 | dx(i) = x(i) - x(i-1) | 1 Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2) [-Wdo-subscript] but the code is fine because of the if guard. Ideally such spurious messages would be suppressed, but I don't know if this is too hard. Vivek Rao