| ! { dg-do run } |
| |
| ! Test of explicit attach/detach clauses and attachment counters. There are no |
| ! acc_attach/acc_detach API routines in Fortran. |
| |
| program dtype |
| use openacc |
| implicit none |
| integer, parameter :: n = 512 |
| type mytype |
| integer, allocatable :: a(:) |
| end type mytype |
| integer i |
| |
| type(mytype) :: var |
| |
| allocate(var%a(1:n)) |
| |
| call acc_copyin(var) |
| call acc_copyin(var%a) |
| |
| !$acc enter data attach(var%a) |
| |
| !$acc parallel loop attach(var%a) |
| do i = 1,n |
| var%a(i) = i |
| end do |
| !$acc end parallel loop |
| |
| !$acc exit data detach(var%a) |
| |
| call acc_copyout(var%a) |
| call acc_copyout(var) |
| |
| do i = 1,n |
| if (i .ne. var%a(i)) stop 1 |
| end do |
| |
| deallocate(var%a) |
| |
| end program dtype |