1! { dg-do run }
2!
3program foo
4  implicit none
5  integer, parameter :: n = 100
6  integer, dimension(n,n) :: a
7  integer :: i, j, sum = 0
8
9  a = 1
10
11  !$acc parallel copyin(a(1:n,1:n)) firstprivate (sum)
12  !$acc loop gang reduction(+:sum)
13  do i=1, n
14     !$acc loop vector reduction(+:sum)
15     do j=1, n
16        sum = sum + a(i, j)
17     enddo
18  enddo
19  !$acc end parallel
20
21end program foo
22