1! { dg-do run } 2 3program collapse1 4 integer :: i, j, k, a(1:3, 4:6, 5:7) 5 logical :: l 6 l = .false. 7 a(:, :, :) = 0 8 !$omp parallel do collapse(4 - 1) schedule(static, 4) 9 do i = 1, 3 10 do j = 4, 6 11 do k = 5, 7 12 a(i, j, k) = i + j + k 13 end do 14 end do 15 end do 16 !$omp parallel do collapse(2) reduction(.or.:l) 17 do i = 1, 3 18 do j = 4, 6 19 do k = 5, 7 20 if (a(i, j, k) .ne. (i + j + k)) l = .true. 21 end do 22 end do 23 end do 24 !$omp end parallel do 25 if (l) STOP 1 26end program collapse1 27