1! { dg-do run } 2! { dg-additional-options "-cpp" } 3 4#define N (1024 * 512) 5 6subroutine foo (a, b, c) 7 integer, parameter :: n = N 8 integer, dimension (n) :: a 9 integer, dimension (n) :: b 10 integer, dimension (n) :: c 11 integer i, ii 12 13 do i = 1, n 14 a(i) = i * 2; 15 end do 16 17 do i = 1, n 18 b(i) = i * 4; 19 end do 20 21 !$acc kernels copyin (a(1:n), b(1:n)) copyout (c(1:n)) 22 !$acc loop independent 23 do ii = 1, n 24 c(ii) = a(ii) + b(ii) 25 end do 26 !$acc end kernels 27 28 do i = 1, n 29 if (c(i) .ne. a(i) + b(i)) stop 1 30 end do 31 32end subroutine 33 34program main 35 integer, parameter :: n = N 36 integer :: a(n) 37 integer :: b(n) 38 integer :: c(n) 39 40 call foo (a, b, c) 41 42end program main 43