11 #pragma acc declare copyout (f)
13 #pragma acc parallel copy (a[0:N])
15 for (i
= 0; i
< N
; i
++)
18 a
[i
] = f
[i
] + f
[i
] + f
[i
];
27 #pragma acc declare copy (f)
29 #pragma acc parallel copy (a[0:N])
33 for (i
= 0; i
< N
; i
++)
42 #pragma acc declare create (b)
44 int d
[N
] = { 1, 2, 3, 4, 5, 6, 7, 8 };
45 #pragma acc declare copyin (d)
52 #pragma acc declare create (e)
55 for (i
= 0; i
< N
; i
++)
58 if (!acc_is_present (&b
, sizeof (b
)))
61 if (!acc_is_present (&d
, sizeof (d
)))
64 if (!acc_is_present (&e
, sizeof (e
)))
67 #pragma acc parallel copyin (a[0:N])
69 for (i
= 0; i
< N
; i
++)
76 for (i
= 0; i
< N
; i
++)
82 #pragma acc parallel copy (a[0:N])
84 for (i
= 0; i
< N
; i
++)
91 for (i
= 0; i
< N
; i
++)
93 if (a
[i
] != (i
+ 1) * 2)
97 for (i
= 0; i
< N
; i
++)
104 for (i
= 0; i
< N
; i
++)
106 if (a
[i
] != 1234 * 2)
112 for (i
= 0; i
< N
; i
++)
114 if (a
[i
] != 1234 * 6)
120 /* The same as 'f' but everything contained in an OpenACC 'data' construct. */
129 # pragma acc declare create (e)
132 for (i
= 0; i
< N
; i
++)
135 if (!acc_is_present (&b
, sizeof (b
)))
138 if (!acc_is_present (&d
, sizeof (d
)))
141 if (!acc_is_present (&e
, sizeof (e
)))
144 # pragma acc parallel copyin (a[0:N])
146 for (i
= 0; i
< N
; i
++)
153 for (i
= 0; i
< N
; i
++)
159 # pragma acc parallel copy (a[0:N])
161 for (i
= 0; i
< N
; i
++)
168 for (i
= 0; i
< N
; i
++)
170 if (a
[i
] != (i
+ 1) * 2)
174 for (i
= 0; i
< N
; i
++)
181 for (i
= 0; i
< N
; i
++)
183 if (a
[i
] != 1234 * 2)
189 for (i
= 0; i
< N
; i
++)
191 if (a
[i
] != 1234 * 6)
199 main (int argc
, char **argv
)