* builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-fortran / pr70643.f90
blob7c2e5eef90477c5e0be7ab4b46c169e9946aa513
1 MODULE reduction_test
3 CONTAINS
5 SUBROUTINE reduction_kernel(x_min,x_max,y_min,y_max,arr,sum)
7 IMPLICIT NONE
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
11 REAL(KIND=8) :: sum
13 INTEGER :: j,k
15 !$ACC DATA PRESENT(arr) COPY(sum)
16 !$ACC PARALLEL LOOP REDUCTION(+ : sum)
17 DO k=y_min,y_max
18 DO j=x_min,x_max
19 sum=sum+arr(j,k)
20 ENDDO
21 ENDDO
22 !$ACC END PARALLEL LOOP
23 !$ACC END DATA
24 END SUBROUTINE reduction_kernel
26 END MODULE reduction_test
28 program main
29 use reduction_test
31 integer :: x_min,x_max,y_min,y_max
32 real(kind=8), dimension(1:10,1:10) :: arr
33 real(kind=8) :: sum
35 x_min = 1
36 x_max = 2
37 y_min = 1
38 y_max = 2
40 arr(:,:) = 1.0
42 sum = 0.0
44 !$acc data copy(arr)
46 call reduction_kernel(x_min,x_max,y_min,y_max,arr,sum)
48 !$acc end data
50 if (sum .ne. 4.0) call abort
51 end program