42 lines
706 B
Fortran
42 lines
706 B
Fortran
! { 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
|