| ! { dg-do run } |
| |
| program test |
| integer, parameter :: N = 8 |
| real, allocatable :: a(:), b(:) |
| |
| allocate (a(N)) |
| allocate (b(N)) |
| |
| a(:) = 3.0 |
| b(:) = 0.0 |
| |
| !$acc enter data copyin (a(1:N), b(1:N)) |
| |
| !$acc parallel |
| do i = 1, n |
| b(i) = a (i) |
| end do |
| !$acc end parallel |
| |
| !$acc exit data copyout (a(1:N), b(1:N)) |
| |
| do i = 1, n |
| if (a(i) .ne. 3.0) call abort |
| if (b(i) .ne. 3.0) call abort |
| end do |
| |
| a(:) = 5.0 |
| b(:) = 1.0 |
| |
| !$acc enter data copyin (a(1:N), b(1:N)) |
| |
| !$acc parallel |
| do i = 1, n |
| b(i) = a (i) |
| end do |
| !$acc end parallel |
| |
| !$acc exit data copyout (a(1:N), b(1:N)) |
| |
| do i = 1, n |
| if (a(i) .ne. 5.0) call abort |
| if (b(i) .ne. 5.0) call abort |
| end do |
| end program test |