1! { dg-do run } 2 3! Test no_create clause with data construct when data is present/not present. 4 5program no_create 6 use openacc 7 implicit none 8 logical :: shared_memory 9 integer, parameter :: n = 512 10 integer :: myvar, myarr(n) 11 integer i 12 13 shared_memory = .false. 14 !$acc kernels copyin (shared_memory) 15 shared_memory = .true. 16 !$acc end kernels 17 18 myvar = 77 19 do i = 1, n 20 myarr(i) = 0 21 end do 22 23 !$acc data no_create (myvar, myarr) 24 if (acc_is_present (myvar) .neqv. shared_memory) stop 10 25 if (acc_is_present (myarr) .neqv. shared_memory) stop 11 26 !$acc end data 27 28 !$acc enter data copyin (myvar, myarr) 29 !$acc data no_create (myvar, myarr) 30 if (acc_is_present (myvar) .eqv. .false.) stop 20 31 if (acc_is_present (myarr) .eqv. .false.) stop 21 32 !$acc end data 33 !$acc exit data copyout (myvar, myarr) 34 35 if (myvar .ne. 77) stop 30 36 do i = 1, n 37 if (myarr(i) .ne. 0) stop 31 38 end do 39end program no_create 40