blob: 17a586152c72f951cbed77cb1652a79a4f7a3cb4 [file] [log] [blame]
! Test cases of nested 'reduction' clauses expected to compile cleanly.
! See also 'c-c++-common/goacc/nested-reductions-1-routine.c'.
subroutine acc_routine ()
implicit none (type, external)
!$acc routine gang
integer :: i, j, k, sum, diff
!$acc loop reduction(+:sum)
do i = 1, 10
do j = 1, 10
do k = 1, 10
sum = 1
end do
end do
end do
!$acc loop collapse(2) reduction(+:sum)
do i = 1, 10
do j = 1, 10
do k = 1, 10
sum = 1
end do
end do
end do
!$acc loop reduction(+:sum)
do i = 1, 10
!$acc loop reduction(+:sum)
do j = 1, 10
do k = 1, 10
sum = 1
end do
end do
end do
!$acc loop reduction(+:sum)
do i = 1, 10
!$acc loop collapse(2) reduction(+:sum)
do j = 1, 10
do k = 1, 10
sum = 1
end do
end do
end do
!$acc loop reduction(+:sum)
do i = 1, 10
do j = 1, 10
!$acc loop reduction(+:sum)
do k = 1, 10
sum = 1
end do
end do
end do
!$acc loop reduction(+:sum)
do i = 1, 10
!$acc loop reduction(+:sum)
do j = 1, 10
!$acc loop reduction(+:sum)
do k = 1, 10
sum = 1
end do
end do
end do
!$acc loop reduction(+:sum) reduction(-:diff)
do i = 1, 10
!$acc loop reduction(+:sum)
do j = 1, 10
!$acc loop reduction(+:sum)
do k = 1, 10
sum = 1
end do
end do
!$acc loop reduction(-:diff)
do j = 1, 10
!$acc loop reduction(-:diff)
do k = 1, 10
diff = 1
end do
end do
end do
end subroutine acc_routine