2 ! { dg-require-effective-target offload_device_nonshared_as }
5 integer, parameter :: THRESHOLD
= 500
7 subroutine init (v1
, v2
, N
)
16 subroutine check (p
, N
)
18 real, parameter :: EPS
= 0.00001
21 diff
= p(i
) - (i
+ 2.0) * (i
- 3.0)
22 if (diff
> EPS
.or
. -diff
> EPS
) STOP 1
26 subroutine vec_mult (N
)
27 use omp_lib
, only
: omp_is_initial_device
28 real :: p(N
), v1(N
), v2(N
)
31 !$omp target data if(N > THRESHOLD) map(to: v1, v2) map(from: p)
33 if (omp_is_initial_device ()) STOP 2
45 use e_51_7_mod
, only
: vec_mult