Daily bump.
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-fortran / declare-3.f90
blob3a6b420f1c7a2f1881ddbe5ae26b1f93c00f4ba9
1 ! { dg-do run { target openacc_nvidia_accel_selected } }
3 module globalvars
4 implicit none
5 real b
6 !$acc declare link (b)
7 end module globalvars
9 program test
10 use openacc
11 use globalvars
12 implicit none
14 real a
15 real c
16 !$acc declare link (c)
18 if (acc_is_present (b) .neqv. .false.) call abort
19 if (acc_is_present (c) .neqv. .false.) call abort
21 a = 0.0
22 b = 1.0
24 !$acc parallel copy (a) copyin (b)
25 b = b + 4.0
26 a = b
27 !$acc end parallel
29 if (a .ne. 5.0) call abort
31 if (acc_is_present (b) .neqv. .false.) call abort
33 a = 0.0
35 !$acc parallel copy (a) create (b)
36 b = 4.0
37 a = b
38 !$acc end parallel
40 if (a .ne. 4.0) call abort
42 if (acc_is_present (b) .neqv. .false.) call abort
44 a = 0.0
46 !$acc parallel copy (a) copy (b)
47 b = 4.0
48 a = b
49 !$acc end parallel
51 if (a .ne. 4.0) call abort
52 if (b .ne. 4.0) call abort
54 if (acc_is_present (b) .neqv. .false.) call abort
56 a = 0.0
58 !$acc parallel copy (a) copy (b) copy (c)
59 b = 4.0
60 c = b
61 a = c
62 !$acc end parallel
64 if (a .ne. 4.0) call abort
66 if (acc_is_present (b) .neqv. .false.) call abort
68 end program test