SUBROUTINE XXX (IL, IU) implicit none integer, INTENT(IN) :: IL, IU integer :: NXX (14) = (/ 0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14 /) integer :: ivvv, ia, ja, iaii logical :: qop QOP=.FALSE. DO IA=IL,IU JA=NXX(IA) IF (.NOT. QOP .and. JA.GT.0) THEN IAII=IA QOP=.TRUE. ENDIF IF (QOP) THEN ivvv=IA-IAII+1 ! mis-compiled ENDIF ENDDO IF (ivvv.NE.2) THEN call abort ENDIF END subroutine program p implicit none CALL XXX (1, 3) end