| ! { 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 | |
| do i = 1, N | |
| call vector (a) | |
| end do | |
| !$acc end parallel | |
| do i = 1, N | |
| if (a(i) .ne. 0) stop 1 | |
| end do | |
| contains | |
| subroutine vector (a) | |
| !$acc routine vector | |
| integer, intent (inout) :: a(N) | |
| integer :: i | |
| !$acc loop vector | |
| do i = 1, N | |
| a(i) = a(i) - a(i) | |
| end do | |
| end subroutine vector | |
| end program main |