! { dg-do run }
module param
integer, parameter :: N = 32
end module param
program main
use param
integer :: i
integer :: a(N)
do i = 1, N
a(i) = i
end do
!$acc parallel copy (a)
!$acc loop worker
call vector (a)
!$acc end parallel
if (a(i) .ne. 0) stop 1
contains
subroutine vector (a)
!$acc routine vector
integer, intent (inout) :: a(N)
!$acc loop vector
a(i) = a(i) - a(i)
end subroutine vector
end program main