| ! { dg-do run } |
| ! { dg-additional-options "-cpp" } |
| |
| program main |
| use openacc |
| implicit none |
| |
| integer, parameter :: N = 8 |
| integer, parameter :: one = 1 |
| integer, parameter :: zero = 0 |
| integer i, nn |
| real, allocatable :: a(:), b(:) |
| real exp, exp2 |
| |
| i = 0 |
| |
| allocate (a(N)) |
| allocate (b(N)) |
| |
| a(:) = 4.0 |
| |
| !$acc parallel copyin (a(1:N)) copyout (b(1:N)) if (1 == 1) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end parallel |
| |
| #if ACC_MEM_SHARED |
| exp = 5.0 |
| #else |
| exp = 4.0 |
| #endif |
| |
| do i = 1, N |
| if (b(i) .ne. exp) call abort |
| end do |
| |
| a(:) = 16.0 |
| |
| !$acc parallel if (0 == 1) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end parallel |
| |
| do i = 1, N |
| if (b(i) .ne. 17.0) call abort |
| end do |
| |
| a(:) = 8.0 |
| |
| !$acc parallel copyin (a(1:N)) copyout (b(1:N)) if (one == 1) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end parallel |
| |
| #if ACC_MEM_SHARED |
| exp = 9.0 |
| #else |
| exp = 8.0 |
| #endif |
| |
| do i = 1, N |
| if (b(i) .ne. exp) call abort |
| end do |
| |
| a(:) = 22.0 |
| |
| !$acc parallel if (zero == 1) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end parallel |
| |
| do i = 1, N |
| if (b(i) .ne. 23.0) call abort |
| end do |
| |
| a(:) = 16.0 |
| |
| !$acc parallel copyin (a(1:N)) copyout (b(1:N)) if (.TRUE.) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end parallel |
| |
| #if ACC_MEM_SHARED |
| exp = 17.0; |
| #else |
| exp = 16.0; |
| #endif |
| |
| do i = 1, N |
| if (b(i) .ne. exp) call abort |
| end do |
| |
| a(:) = 76.0 |
| |
| !$acc parallel if (.FALSE.) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end parallel |
| |
| do i = 1, N |
| if (b(i) .ne. 77.0) call abort |
| end do |
| |
| a(:) = 22.0 |
| |
| nn = 1 |
| |
| !$acc parallel copyin (a(1:N)) copyout (b(1:N)) if (nn == 1) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end parallel |
| |
| #if ACC_MEM_SHARED |
| exp = 23.0; |
| #else |
| exp = 22.0; |
| #endif |
| |
| do i = 1, N |
| if (b(i) .ne. exp) call abort |
| end do |
| |
| a(:) = 18.0 |
| |
| nn = 0 |
| |
| !$acc parallel if (nn == 1) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end parallel |
| |
| do i = 1, N |
| if (b(i) .ne. 19.0) call abort |
| end do |
| |
| a(:) = 49.0 |
| |
| nn = 1 |
| |
| !$acc parallel copyin (a(1:N)) copyout (b(1:N)) if ((nn + nn) > 0) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end parallel |
| |
| #if ACC_MEM_SHARED |
| exp = 50.0 |
| #else |
| exp = 49.0 |
| #endif |
| |
| do i = 1, N |
| if (b(i) .ne. exp) call abort |
| end do |
| |
| a(:) = 38.0 |
| |
| nn = 0; |
| |
| !$acc parallel copyin (a(1:N)) copyout (b(1:N)) if ((nn + nn) > 0) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end parallel |
| |
| do i = 1, N |
| if (b(i) .ne. 39.0) call abort |
| end do |
| |
| a(:) = 91.0 |
| |
| !$acc parallel copyin (a(1:N)) copyout (b(1:N)) if (-2 > 0) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end parallel |
| |
| do i = 1, N |
| if (b(i) .ne. 92.0) call abort |
| end do |
| |
| a(:) = 43.0 |
| |
| !$acc parallel copyin (a(1:N)) copyout (b(1:N)) if (one == 1) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end parallel |
| |
| #if ACC_MEM_SHARED |
| exp = 44.0 |
| #else |
| exp = 43.0 |
| #endif |
| |
| do i = 1, N |
| if (b(i) .ne. exp) call abort |
| end do |
| |
| a(:) = 87.0 |
| |
| !$acc parallel if (one == 0) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end parallel |
| |
| do i = 1, N |
| if (b(i) .ne. 88.0) call abort |
| end do |
| |
| a(:) = 3.0 |
| b(:) = 9.0 |
| |
| #if ACC_MEM_SHARED |
| exp = 0.0 |
| exp2 = 0.0 |
| #else |
| call acc_copyin (a, sizeof (a)) |
| call acc_copyin (b, sizeof (b)) |
| exp = 3.0; |
| exp2 = 9.0; |
| #endif |
| |
| !$acc update device (a(1:N), b(1:N)) if (1 == 1) |
| |
| a(:) = 0.0 |
| b(:) = 0.0 |
| |
| !$acc update host (a(1:N), b(1:N)) if (1 == 1) |
| |
| do i = 1, N |
| if (a(i) .ne. exp) call abort |
| if (b(i) .ne. exp2) call abort |
| end do |
| |
| a(:) = 6.0 |
| b(:) = 12.0 |
| |
| !$acc update device (a(1:N), b(1:N)) if (0 == 1) |
| |
| a(:) = 0.0 |
| b(:) = 0.0 |
| |
| !$acc update host (a(1:N), b(1:N)) if (1 == 1) |
| |
| do i = 1, N |
| if (a(i) .ne. exp) call abort |
| if (b(i) .ne. exp2) call abort |
| end do |
| |
| a(:) = 26.0 |
| b(:) = 21.0 |
| |
| !$acc update device (a(1:N), b(1:N)) if (1 == 1) |
| |
| a(:) = 0.0 |
| b(:) = 0.0 |
| |
| !$acc update host (a(1:N), b(1:N)) if (0 == 1) |
| |
| do i = 1, N |
| if (a(i) .ne. 0.0) call abort |
| if (b(i) .ne. 0.0) call abort |
| end do |
| |
| #if !ACC_MEM_SHARED |
| call acc_copyout (a, sizeof (a)) |
| call acc_copyout (b, sizeof (b)) |
| #endif |
| |
| a(:) = 4.0 |
| b(:) = 0.0 |
| |
| !$acc data copyin (a(1:N)) copyout (b(1:N)) if (1 == 1) |
| |
| !$acc parallel present (a(1:N)) |
| do i = 1, N |
| b(i) = a(i) |
| end do |
| !$acc end parallel |
| !$acc end data |
| |
| do i = 1, N |
| if (b(i) .ne. 4.0) call abort |
| end do |
| |
| a(:) = 8.0 |
| b(:) = 1.0 |
| |
| !$acc data copyin (a(1:N)) copyout (b(1:N)) if (0 == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (a) .eqv. .TRUE.) call abort |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| |
| !$acc end data |
| |
| a(:) = 18.0 |
| b(:) = 21.0 |
| |
| !$acc data copyin (a(1:N)) if (1 == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (a) .eqv. .FALSE.) call abort |
| #endif |
| |
| !$acc data copyout (b(1:N)) if (0 == 1) |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| !$acc data copyout (b(1:N)) if (1 == 1) |
| |
| !$acc parallel present (a(1:N)) present (b(1:N)) |
| do i = 1, N |
| b(i) = a(i) |
| end do |
| !$acc end parallel |
| |
| !$acc end data |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| !$acc end data |
| !$acc end data |
| |
| do i = 1, N |
| if (b(1) .ne. 18.0) call abort |
| end do |
| |
| !$acc enter data copyin (b(1:N)) if (0 == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| |
| !$acc exit data delete (b(1:N)) if (0 == 1) |
| |
| !$acc enter data copyin (b(1:N)) if (1 == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .FALSE.) call abort |
| #endif |
| |
| !$acc exit data delete (b(1:N)) if (1 == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| |
| !$acc enter data copyin (b(1:N)) if (zero == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| |
| !$acc exit data delete (b(1:N)) if (zero == 1) |
| |
| !$acc enter data copyin (b(1:N)) if (one == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .FALSE.) call abort |
| #endif |
| |
| !$acc exit data delete (b(1:N)) if (one == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| |
| !$acc enter data copyin (b(1:N)) if (one == 0) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| |
| !$acc exit data delete (b(1:N)) if (one == 0) |
| |
| !$acc enter data copyin (b(1:N)) if (one == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .FALSE.) call abort |
| #endif |
| |
| !$acc exit data delete (b(1:N)) if (one == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| |
| a(:) = 4.0 |
| |
| !$acc kernels copyin (a(1:N)) copyout (b(1:N)) if (1 == 1) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end kernels |
| |
| #if ACC_MEM_SHARED |
| exp = 5.0 |
| #else |
| exp = 4.0 |
| #endif |
| |
| do i = 1, N |
| if (b(i) .ne. exp) call abort |
| end do |
| |
| a(:) = 16.0 |
| |
| !$acc kernels if (0 == 1) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end kernels |
| |
| do i = 1, N |
| if (b(i) .ne. 17.0) call abort |
| end do |
| |
| a(:) = 8.0 |
| |
| !$acc kernels copyin (a(1:N)) copyout (b(1:N)) if (one == 1) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end kernels |
| |
| #if ACC_MEM_SHARED |
| exp = 9.0 |
| #else |
| exp = 8.0 |
| #endif |
| |
| do i = 1, N |
| if (b(i) .ne. exp) call abort |
| end do |
| |
| a(:) = 22.0 |
| |
| !$acc kernels if (zero == 1) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end kernels |
| |
| do i = 1, N |
| if (b(i) .ne. 23.0) call abort |
| end do |
| |
| a(:) = 16.0 |
| |
| !$acc kernels copyin (a(1:N)) copyout (b(1:N)) if (.TRUE.) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end kernels |
| |
| #if ACC_MEM_SHARED |
| exp = 17.0; |
| #else |
| exp = 16.0; |
| #endif |
| |
| do i = 1, N |
| if (b(i) .ne. exp) call abort |
| end do |
| |
| a(:) = 76.0 |
| |
| !$acc kernels if (.FALSE.) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end kernels |
| |
| do i = 1, N |
| if (b(i) .ne. 77.0) call abort |
| end do |
| |
| a(:) = 22.0 |
| |
| nn = 1 |
| |
| !$acc kernels copyin (a(1:N)) copyout (b(1:N)) if (nn == 1) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end kernels |
| |
| #if ACC_MEM_SHARED |
| exp = 23.0; |
| #else |
| exp = 22.0; |
| #endif |
| |
| do i = 1, N |
| if (b(i) .ne. exp) call abort |
| end do |
| |
| a(:) = 18.0 |
| |
| nn = 0 |
| |
| !$acc kernels if (nn == 1) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end kernels |
| |
| do i = 1, N |
| if (b(i) .ne. 19.0) call abort |
| end do |
| |
| a(:) = 49.0 |
| |
| nn = 1 |
| |
| !$acc kernels copyin (a(1:N)) copyout (b(1:N)) if ((nn + nn) > 0) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end kernels |
| |
| #if ACC_MEM_SHARED |
| exp = 50.0 |
| #else |
| exp = 49.0 |
| #endif |
| |
| do i = 1, N |
| if (b(i) .ne. exp) call abort |
| end do |
| |
| a(:) = 38.0 |
| |
| nn = 0; |
| |
| !$acc kernels copyin (a(1:N)) copyout (b(1:N)) if ((nn + nn) > 0) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end kernels |
| |
| do i = 1, N |
| if (b(i) .ne. 39.0) call abort |
| end do |
| |
| a(:) = 91.0 |
| |
| !$acc kernels copyin (a(1:N)) copyout (b(1:N)) if (-2 > 0) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end kernels |
| |
| do i = 1, N |
| if (b(i) .ne. 92.0) call abort |
| end do |
| |
| a(:) = 43.0 |
| |
| !$acc kernels copyin (a(1:N)) copyout (b(1:N)) if (one == 1) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end kernels |
| |
| #if ACC_MEM_SHARED |
| exp = 44.0 |
| #else |
| exp = 43.0 |
| #endif |
| |
| do i = 1, N |
| if (b(i) .ne. exp) call abort |
| end do |
| |
| a(:) = 87.0 |
| |
| !$acc kernels if (one == 0) |
| do i = 1, N |
| if (acc_on_device (acc_device_host) .eqv. .TRUE.) then |
| b(i) = a(i) + 1 |
| else |
| b(i) = a(i) |
| end if |
| end do |
| !$acc end kernels |
| |
| do i = 1, N |
| if (b(i) .ne. 88.0) call abort |
| end do |
| |
| a(:) = 3.0 |
| b(:) = 9.0 |
| |
| #if ACC_MEM_SHARED |
| exp = 0.0 |
| exp2 = 0.0 |
| #else |
| call acc_copyin (a, sizeof (a)) |
| call acc_copyin (b, sizeof (b)) |
| exp = 3.0; |
| exp2 = 9.0; |
| #endif |
| |
| !$acc update device (a(1:N), b(1:N)) if (1 == 1) |
| |
| a(:) = 0.0 |
| b(:) = 0.0 |
| |
| !$acc update host (a(1:N), b(1:N)) if (1 == 1) |
| |
| do i = 1, N |
| if (a(i) .ne. exp) call abort |
| if (b(i) .ne. exp2) call abort |
| end do |
| |
| a(:) = 6.0 |
| b(:) = 12.0 |
| |
| !$acc update device (a(1:N), b(1:N)) if (0 == 1) |
| |
| a(:) = 0.0 |
| b(:) = 0.0 |
| |
| !$acc update host (a(1:N), b(1:N)) if (1 == 1) |
| |
| do i = 1, N |
| if (a(i) .ne. exp) call abort |
| if (b(i) .ne. exp2) call abort |
| end do |
| |
| a(:) = 26.0 |
| b(:) = 21.0 |
| |
| !$acc update device (a(1:N), b(1:N)) if (1 == 1) |
| |
| a(:) = 0.0 |
| b(:) = 0.0 |
| |
| !$acc update host (a(1:N), b(1:N)) if (0 == 1) |
| |
| do i = 1, N |
| if (a(i) .ne. 0.0) call abort |
| if (b(i) .ne. 0.0) call abort |
| end do |
| |
| #if !ACC_MEM_SHARED |
| call acc_copyout (a, sizeof (a)) |
| call acc_copyout (b, sizeof (b)) |
| #endif |
| |
| a(:) = 4.0 |
| b(:) = 0.0 |
| |
| !$acc data copyin (a(1:N)) copyout (b(1:N)) if (1 == 1) |
| |
| !$acc kernels present (a(1:N)) |
| do i = 1, N |
| b(i) = a(i) |
| end do |
| !$acc end kernels |
| !$acc end data |
| |
| do i = 1, N |
| if (b(i) .ne. 4.0) call abort |
| end do |
| |
| a(:) = 8.0 |
| b(:) = 1.0 |
| |
| !$acc data copyin (a(1:N)) copyout (b(1:N)) if (0 == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (a) .eqv. .TRUE.) call abort |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| |
| !$acc end data |
| |
| a(:) = 18.0 |
| b(:) = 21.0 |
| |
| !$acc data copyin (a(1:N)) if (1 == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (a) .eqv. .FALSE.) call abort |
| #endif |
| |
| !$acc data copyout (b(1:N)) if (0 == 1) |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| !$acc data copyout (b(1:N)) if (1 == 1) |
| |
| !$acc kernels present (a(1:N)) present (b(1:N)) |
| do i = 1, N |
| b(i) = a(i) |
| end do |
| !$acc end kernels |
| |
| !$acc end data |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| !$acc end data |
| !$acc end data |
| |
| do i = 1, N |
| if (b(1) .ne. 18.0) call abort |
| end do |
| |
| !$acc enter data copyin (b(1:N)) if (0 == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| |
| !$acc exit data delete (b(1:N)) if (0 == 1) |
| |
| !$acc enter data copyin (b(1:N)) if (1 == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .FALSE.) call abort |
| #endif |
| |
| !$acc exit data delete (b(1:N)) if (1 == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| |
| !$acc enter data copyin (b(1:N)) if (zero == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| |
| !$acc exit data delete (b(1:N)) if (zero == 1) |
| |
| !$acc enter data copyin (b(1:N)) if (one == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .FALSE.) call abort |
| #endif |
| |
| !$acc exit data delete (b(1:N)) if (one == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| |
| !$acc enter data copyin (b(1:N)) if (one == 0) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| |
| !$acc exit data delete (b(1:N)) if (one == 0) |
| |
| !$acc enter data copyin (b(1:N)) if (one == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .FALSE.) call abort |
| #endif |
| |
| !$acc exit data delete (b(1:N)) if (one == 1) |
| |
| #if !ACC_MEM_SHARED |
| if (acc_is_present (b) .eqv. .TRUE.) call abort |
| #endif |
| |
| end program main |