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 !$acc parallel 9 !$acc loop collapse(4 - 1) 10 do i = 1, 3 11 do j = 4, 6 12 do k = 5, 7 13 a(i, j, k) = i + j + k 14 end do 15 end do 16 end do 17 !$acc end parallel 18 19 !$acc parallel 20 !$acc loop collapse(2) reduction(.or.:l) 21 do i = 1, 3 22 do j = 4, 6 23 do k = 5, 7 24 if (a(i, j, k) .ne. (i + j + k)) l = .true. 25 end do 26 end do 27 end do 28 !$acc end parallel 29 if (l) STOP 1 30end program collapse1 31