123456789101112131415161718192021222324252627282930313233 |
- ! { dg-do run }
- ! subroutine reduction
- program reduction
- integer, parameter :: n = 40, c = 10
- integer :: i, vsum, sum
- call redsub (sum, n, c)
- vsum = 0
- ! Verify the results
- do i = 1, n
- vsum = vsum + c
- end do
- if (sum.ne.vsum) call abort ()
- end program reduction
- subroutine redsub(sum, n, c)
- integer :: sum, n, c
- sum = 0
- !$acc parallel vector_length(n) copyin (n, c) num_gangs(1)
- !$acc loop reduction(+:sum)
- do i = 1, n
- sum = sum + c
- end do
- !$acc end parallel
- end subroutine redsub
|