5 SUBROUTINE reduction_kernel(x_min
,x_max
,y_min
,y_max
,arr
,sum
)
9 INTEGER :: x_min
,x_max
,y_min
,y_max
10 REAL(KIND
=8), DIMENSION(x_min
-2:x_max
+2,y_min
-2:y_max
+2) :: arr
15 !$ACC DATA PRESENT(arr) COPY(sum)
16 !$ACC PARALLEL LOOP REDUCTION(+ : sum)
22 !$ACC END PARALLEL LOOP
24 END SUBROUTINE reduction_kernel
26 END MODULE reduction_test
31 integer :: x_min
,x_max
,y_min
,y_max
32 real(kind
=8), dimension(1:10,1:10) :: arr
46 call reduction_kernel(x_min
,x_max
,y_min
,y_max
,arr
,sum
)
50 if (sum
.ne
. 4.0) call abort