1! { dg-do run } 2 3program main 4 implicit none 5 integer, parameter :: n = 1024 6 integer, dimension (0:n-1) :: a, b, c 7 integer :: i, ii 8 9 !$acc enter data create (a(0:n-1), b(0:n-1), c(0:n-1)) 10 11 !$acc kernels present (a(0:n-1)) 12 do i = 0, n - 1 13 a(i) = i * 2 14 end do 15 !$acc end kernels 16 17 !$acc parallel present (b(0:n-1)) 18 !$acc loop 19 do i = 0, n -1 20 b(i) = i * 4 21 end do 22 !$acc end parallel 23 24 !$acc kernels present (a(0:n-1), b(0:n-1), c(0:n-1)) 25 do ii = 0, n - 1 26 c(ii) = a(ii) + b(ii) 27 end do 28 !$acc end kernels 29 30 !$acc exit data copyout (a(0:n-1), b(0:n-1), c(0:n-1)) 31 32 do i = 0, n - 1 33 if (c(i) .ne. a(i) + b(i)) stop 1 34 end do 35 36end program main 37