! { dg-do run } program collapse1 integer :: i, j, k, a(1:3, 4:6, 5:7) logical :: l l = .false. a(:, :, :) = 0 !$omp parallel do collapse(4 - 1) schedule(static, 4) do i = 1, 3 do j = 4, 6 do k = 5, 7 a(i, j, k) = i + j + k end do end do end do !$omp parallel do collapse(2) reduction(.or.:l) do i = 1, 3 do j = 4, 6 do k = 5, 7 if (a(i, j, k) .ne. (i + j + k)) l = .true. end do end do end do !$omp end parallel do if (l) call abort end program collapse1