1! { dg-do run } 2 3program test 4 integer, parameter :: N = 8 5 real, allocatable :: a(:), b(:) 6 7 allocate (a(N)) 8 allocate (b(N)) 9 10 a(:) = 3.0 11 b(:) = 0.0 12 13 !$acc enter data copyin (a(1:N), b(1:N)) 14 15 !$acc parallel 16 do i = 1, n 17 b(i) = a (i) 18 end do 19 !$acc end parallel 20 21 !$acc exit data copyout (a(1:N), b(1:N)) 22 23 do i = 1, n 24 if (a(i) .ne. 3.0) call abort 25 if (b(i) .ne. 3.0) call abort 26 end do 27 28 a(:) = 5.0 29 b(:) = 1.0 30 31 !$acc enter data copyin (a(1:N), b(1:N)) 32 33 !$acc parallel 34 do i = 1, n 35 b(i) = a (i) 36 end do 37 !$acc end parallel 38 39 !$acc exit data copyout (a(1:N), b(1:N)) 40 41 do i = 1, n 42 if (a(i) .ne. 5.0) call abort 43 if (b(i) .ne. 5.0) call abort 44 end do 45end program test 46