openacc.f90 revision 1.1.1.10 1 1.1 mrg ! OpenACC Runtime Library Definitions.
2 1.1 mrg
3 1.1.1.10 mrg ! Copyright (C) 2014-2024 Free Software Foundation, Inc.
4 1.1 mrg
5 1.1 mrg ! Contributed by Tobias Burnus <burnus@net-b.de>
6 1.1 mrg ! and Mentor Embedded.
7 1.1 mrg
8 1.1 mrg ! This file is part of the GNU Offloading and Multi Processing Library
9 1.1 mrg ! (libgomp).
10 1.1 mrg
11 1.1 mrg ! Libgomp is free software; you can redistribute it and/or modify it
12 1.1 mrg ! under the terms of the GNU General Public License as published by
13 1.1 mrg ! the Free Software Foundation; either version 3, or (at your option)
14 1.1 mrg ! any later version.
15 1.1 mrg
16 1.1 mrg ! Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
17 1.1 mrg ! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
18 1.1 mrg ! FOR A PARTICULAR PURPOSE. See the GNU General Public License for
19 1.1 mrg ! more details.
20 1.1 mrg
21 1.1 mrg ! Under Section 7 of GPL version 3, you are granted additional
22 1.1 mrg ! permissions described in the GCC Runtime Library Exception, version
23 1.1 mrg ! 3.1, as published by the Free Software Foundation.
24 1.1 mrg
25 1.1 mrg ! You should have received a copy of the GNU General Public License and
26 1.1 mrg ! a copy of the GCC Runtime Library Exception along with this program;
27 1.1 mrg ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
28 1.1 mrg ! <http://www.gnu.org/licenses/>.
29 1.1 mrg
30 1.1.1.8 mrg ! Keep in sync with config/accel/openacc.f90 and openacc_lib.h.
31 1.1.1.8 mrg
32 1.1 mrg module openacc_kinds
33 1.1 mrg use iso_fortran_env, only: int32
34 1.1 mrg implicit none
35 1.1 mrg
36 1.1.1.8 mrg public
37 1.1 mrg private :: int32
38 1.1 mrg
39 1.1.1.8 mrg ! When adding items, also update 'public' setting in 'module openacc' below.
40 1.1 mrg
41 1.1.1.8 mrg integer, parameter :: acc_device_kind = int32
42 1.1 mrg
43 1.1 mrg ! Keep in sync with include/gomp-constants.h.
44 1.1.1.8 mrg integer (acc_device_kind), parameter :: acc_device_current = -1
45 1.1 mrg integer (acc_device_kind), parameter :: acc_device_none = 0
46 1.1 mrg integer (acc_device_kind), parameter :: acc_device_default = 1
47 1.1 mrg integer (acc_device_kind), parameter :: acc_device_host = 2
48 1.1.1.2 mrg ! integer (acc_device_kind), parameter :: acc_device_host_nonshm = 3 removed.
49 1.1 mrg integer (acc_device_kind), parameter :: acc_device_not_host = 4
50 1.1 mrg integer (acc_device_kind), parameter :: acc_device_nvidia = 5
51 1.1.1.8 mrg integer (acc_device_kind), parameter :: acc_device_radeon = 8
52 1.1 mrg
53 1.1.1.8 mrg integer, parameter :: acc_device_property_kind = int32
54 1.1.1.8 mrg ! OpenACC 2.6/2.7/3.0 used acc_device_property; in a spec update the
55 1.1.1.8 mrg ! missing '_kind' was added for consistency. For backward compatibility, keep:
56 1.1.1.8 mrg integer, parameter :: acc_device_property = acc_device_property_kind
57 1.1.1.8 mrg
58 1.1.1.8 mrg ! Keep in sync with 'libgomp/libgomp-plugin.h:goacc_property'.
59 1.1.1.8 mrg integer (acc_device_property_kind), parameter :: acc_property_memory = 1
60 1.1.1.8 mrg integer (acc_device_property_kind), parameter :: acc_property_free_memory = 2
61 1.1.1.8 mrg integer (acc_device_property_kind), parameter :: acc_property_name = int(Z'10001')
62 1.1.1.8 mrg integer (acc_device_property_kind), parameter :: acc_property_vendor = int(Z'10002')
63 1.1.1.8 mrg integer (acc_device_property_kind), parameter :: acc_property_driver = int(Z'10003')
64 1.1 mrg
65 1.1 mrg integer, parameter :: acc_handle_kind = int32
66 1.1 mrg
67 1.1 mrg ! Keep in sync with include/gomp-constants.h.
68 1.1 mrg integer (acc_handle_kind), parameter :: acc_async_noval = -1
69 1.1 mrg integer (acc_handle_kind), parameter :: acc_async_sync = -2
70 1.1.1.8 mrg end module openacc_kinds
71 1.1 mrg
72 1.1 mrg module openacc_internal
73 1.1 mrg use openacc_kinds
74 1.1 mrg implicit none
75 1.1 mrg
76 1.1 mrg interface
77 1.1.1.8 mrg function acc_get_num_devices_h (devicetype)
78 1.1 mrg import
79 1.1 mrg integer acc_get_num_devices_h
80 1.1.1.8 mrg integer (acc_device_kind) devicetype
81 1.1 mrg end function
82 1.1 mrg
83 1.1.1.8 mrg subroutine acc_set_device_type_h (devicetype)
84 1.1 mrg import
85 1.1.1.8 mrg integer (acc_device_kind) devicetype
86 1.1 mrg end subroutine
87 1.1 mrg
88 1.1 mrg function acc_get_device_type_h ()
89 1.1 mrg import
90 1.1 mrg integer (acc_device_kind) acc_get_device_type_h
91 1.1 mrg end function
92 1.1 mrg
93 1.1.1.8 mrg subroutine acc_set_device_num_h (devicenum, devicetype)
94 1.1 mrg import
95 1.1.1.8 mrg integer devicenum
96 1.1.1.8 mrg integer (acc_device_kind) devicetype
97 1.1 mrg end subroutine
98 1.1 mrg
99 1.1.1.8 mrg function acc_get_device_num_h (devicetype)
100 1.1 mrg import
101 1.1 mrg integer acc_get_device_num_h
102 1.1.1.8 mrg integer (acc_device_kind) devicetype
103 1.1.1.8 mrg end function
104 1.1.1.8 mrg
105 1.1.1.8 mrg function acc_get_property_h (devicenum, devicetype, property)
106 1.1.1.8 mrg use iso_c_binding, only: c_size_t
107 1.1.1.8 mrg import
108 1.1.1.8 mrg implicit none (type, external)
109 1.1.1.8 mrg integer (c_size_t) :: acc_get_property_h
110 1.1.1.8 mrg integer, value :: devicenum
111 1.1.1.8 mrg integer (acc_device_kind), value :: devicetype
112 1.1.1.8 mrg integer (acc_device_property_kind), value :: property
113 1.1 mrg end function
114 1.1 mrg
115 1.1.1.8 mrg subroutine acc_get_property_string_h (devicenum, devicetype, property, string)
116 1.1.1.8 mrg import
117 1.1.1.8 mrg implicit none (type, external)
118 1.1.1.8 mrg integer, value :: devicenum
119 1.1.1.8 mrg integer (acc_device_kind), value :: devicetype
120 1.1.1.8 mrg integer (acc_device_property_kind), value :: property
121 1.1.1.8 mrg character (*) :: string
122 1.1.1.8 mrg end subroutine
123 1.1.1.8 mrg
124 1.1.1.8 mrg function acc_async_test_h (arg)
125 1.1 mrg logical acc_async_test_h
126 1.1.1.8 mrg integer arg
127 1.1 mrg end function
128 1.1 mrg
129 1.1 mrg function acc_async_test_all_h ()
130 1.1 mrg logical acc_async_test_all_h
131 1.1 mrg end function
132 1.1 mrg
133 1.1.1.8 mrg subroutine acc_wait_h (arg)
134 1.1.1.8 mrg integer arg
135 1.1 mrg end subroutine
136 1.1 mrg
137 1.1.1.8 mrg subroutine acc_wait_async_h (arg, async)
138 1.1.1.8 mrg integer arg, async
139 1.1 mrg end subroutine
140 1.1 mrg
141 1.1 mrg subroutine acc_wait_all_h ()
142 1.1 mrg end subroutine
143 1.1 mrg
144 1.1.1.8 mrg subroutine acc_wait_all_async_h (async)
145 1.1.1.8 mrg integer async
146 1.1 mrg end subroutine
147 1.1 mrg
148 1.1.1.8 mrg subroutine acc_init_h (devicetype)
149 1.1 mrg import
150 1.1.1.8 mrg integer (acc_device_kind) devicetype
151 1.1 mrg end subroutine
152 1.1 mrg
153 1.1.1.8 mrg subroutine acc_shutdown_h (devicetype)
154 1.1 mrg import
155 1.1.1.8 mrg integer (acc_device_kind) devicetype
156 1.1 mrg end subroutine
157 1.1 mrg
158 1.1.1.8 mrg function acc_on_device_h (devicetype)
159 1.1 mrg import
160 1.1.1.8 mrg integer (acc_device_kind) devicetype
161 1.1 mrg logical acc_on_device_h
162 1.1 mrg end function
163 1.1 mrg
164 1.1 mrg subroutine acc_copyin_32_h (a, len)
165 1.1 mrg use iso_c_binding, only: c_int32_t
166 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
167 1.1 mrg type (*), dimension (*) :: a
168 1.1 mrg integer (c_int32_t) len
169 1.1 mrg end subroutine
170 1.1 mrg
171 1.1 mrg subroutine acc_copyin_64_h (a, len)
172 1.1 mrg use iso_c_binding, only: c_int64_t
173 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
174 1.1 mrg type (*), dimension (*) :: a
175 1.1 mrg integer (c_int64_t) len
176 1.1 mrg end subroutine
177 1.1 mrg
178 1.1 mrg subroutine acc_copyin_array_h (a)
179 1.1 mrg type (*), dimension (..), contiguous :: a
180 1.1 mrg end subroutine
181 1.1 mrg
182 1.1 mrg subroutine acc_present_or_copyin_32_h (a, len)
183 1.1 mrg use iso_c_binding, only: c_int32_t
184 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
185 1.1 mrg type (*), dimension (*) :: a
186 1.1 mrg integer (c_int32_t) len
187 1.1 mrg end subroutine
188 1.1 mrg
189 1.1 mrg subroutine acc_present_or_copyin_64_h (a, len)
190 1.1 mrg use iso_c_binding, only: c_int64_t
191 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
192 1.1 mrg type (*), dimension (*) :: a
193 1.1 mrg integer (c_int64_t) len
194 1.1 mrg end subroutine
195 1.1 mrg
196 1.1 mrg subroutine acc_present_or_copyin_array_h (a)
197 1.1 mrg type (*), dimension (..), contiguous :: a
198 1.1 mrg end subroutine
199 1.1 mrg
200 1.1 mrg subroutine acc_create_32_h (a, len)
201 1.1 mrg use iso_c_binding, only: c_int32_t
202 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
203 1.1 mrg type (*), dimension (*) :: a
204 1.1 mrg integer (c_int32_t) len
205 1.1 mrg end subroutine
206 1.1 mrg
207 1.1 mrg subroutine acc_create_64_h (a, len)
208 1.1 mrg use iso_c_binding, only: c_int64_t
209 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
210 1.1 mrg type (*), dimension (*) :: a
211 1.1 mrg integer (c_int64_t) len
212 1.1 mrg end subroutine
213 1.1 mrg
214 1.1 mrg subroutine acc_create_array_h (a)
215 1.1 mrg type (*), dimension (..), contiguous :: a
216 1.1 mrg end subroutine
217 1.1 mrg
218 1.1 mrg subroutine acc_present_or_create_32_h (a, len)
219 1.1 mrg use iso_c_binding, only: c_int32_t
220 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
221 1.1 mrg type (*), dimension (*) :: a
222 1.1 mrg integer (c_int32_t) len
223 1.1 mrg end subroutine
224 1.1 mrg
225 1.1 mrg subroutine acc_present_or_create_64_h (a, len)
226 1.1 mrg use iso_c_binding, only: c_int64_t
227 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
228 1.1 mrg type (*), dimension (*) :: a
229 1.1 mrg integer (c_int64_t) len
230 1.1 mrg end subroutine
231 1.1 mrg
232 1.1 mrg subroutine acc_present_or_create_array_h (a)
233 1.1 mrg type (*), dimension (..), contiguous :: a
234 1.1 mrg end subroutine
235 1.1 mrg
236 1.1 mrg subroutine acc_copyout_32_h (a, len)
237 1.1 mrg use iso_c_binding, only: c_int32_t
238 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
239 1.1 mrg type (*), dimension (*) :: a
240 1.1 mrg integer (c_int32_t) len
241 1.1 mrg end subroutine
242 1.1 mrg
243 1.1 mrg subroutine acc_copyout_64_h (a, len)
244 1.1 mrg use iso_c_binding, only: c_int64_t
245 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
246 1.1 mrg type (*), dimension (*) :: a
247 1.1 mrg integer (c_int64_t) len
248 1.1 mrg end subroutine
249 1.1 mrg
250 1.1 mrg subroutine acc_copyout_array_h (a)
251 1.1 mrg type (*), dimension (..), contiguous :: a
252 1.1 mrg end subroutine
253 1.1 mrg
254 1.1.1.7 mrg subroutine acc_copyout_finalize_32_h (a, len)
255 1.1.1.7 mrg use iso_c_binding, only: c_int32_t
256 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
257 1.1.1.7 mrg type (*), dimension (*) :: a
258 1.1.1.7 mrg integer (c_int32_t) len
259 1.1.1.7 mrg end subroutine
260 1.1.1.7 mrg
261 1.1.1.7 mrg subroutine acc_copyout_finalize_64_h (a, len)
262 1.1.1.7 mrg use iso_c_binding, only: c_int64_t
263 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
264 1.1.1.7 mrg type (*), dimension (*) :: a
265 1.1.1.7 mrg integer (c_int64_t) len
266 1.1.1.7 mrg end subroutine
267 1.1.1.7 mrg
268 1.1.1.7 mrg subroutine acc_copyout_finalize_array_h (a)
269 1.1.1.7 mrg type (*), dimension (..), contiguous :: a
270 1.1.1.7 mrg end subroutine
271 1.1.1.7 mrg
272 1.1 mrg subroutine acc_delete_32_h (a, len)
273 1.1 mrg use iso_c_binding, only: c_int32_t
274 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
275 1.1 mrg type (*), dimension (*) :: a
276 1.1 mrg integer (c_int32_t) len
277 1.1 mrg end subroutine
278 1.1 mrg
279 1.1 mrg subroutine acc_delete_64_h (a, len)
280 1.1 mrg use iso_c_binding, only: c_int64_t
281 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
282 1.1 mrg type (*), dimension (*) :: a
283 1.1 mrg integer (c_int64_t) len
284 1.1 mrg end subroutine
285 1.1 mrg
286 1.1 mrg subroutine acc_delete_array_h (a)
287 1.1 mrg type (*), dimension (..), contiguous :: a
288 1.1 mrg end subroutine
289 1.1 mrg
290 1.1.1.7 mrg subroutine acc_delete_finalize_32_h (a, len)
291 1.1.1.7 mrg use iso_c_binding, only: c_int32_t
292 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
293 1.1.1.7 mrg type (*), dimension (*) :: a
294 1.1.1.7 mrg integer (c_int32_t) len
295 1.1.1.7 mrg end subroutine
296 1.1.1.7 mrg
297 1.1.1.7 mrg subroutine acc_delete_finalize_64_h (a, len)
298 1.1.1.7 mrg use iso_c_binding, only: c_int64_t
299 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
300 1.1.1.7 mrg type (*), dimension (*) :: a
301 1.1.1.7 mrg integer (c_int64_t) len
302 1.1.1.7 mrg end subroutine
303 1.1.1.7 mrg
304 1.1.1.7 mrg subroutine acc_delete_finalize_array_h (a)
305 1.1.1.7 mrg type (*), dimension (..), contiguous :: a
306 1.1.1.7 mrg end subroutine
307 1.1.1.7 mrg
308 1.1 mrg subroutine acc_update_device_32_h (a, len)
309 1.1 mrg use iso_c_binding, only: c_int32_t
310 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
311 1.1 mrg type (*), dimension (*) :: a
312 1.1 mrg integer (c_int32_t) len
313 1.1 mrg end subroutine
314 1.1 mrg
315 1.1 mrg subroutine acc_update_device_64_h (a, len)
316 1.1 mrg use iso_c_binding, only: c_int64_t
317 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
318 1.1 mrg type (*), dimension (*) :: a
319 1.1 mrg integer (c_int64_t) len
320 1.1 mrg end subroutine
321 1.1 mrg
322 1.1 mrg subroutine acc_update_device_array_h (a)
323 1.1 mrg type (*), dimension (..), contiguous :: a
324 1.1 mrg end subroutine
325 1.1 mrg
326 1.1 mrg subroutine acc_update_self_32_h (a, len)
327 1.1 mrg use iso_c_binding, only: c_int32_t
328 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
329 1.1 mrg type (*), dimension (*) :: a
330 1.1 mrg integer (c_int32_t) len
331 1.1 mrg end subroutine
332 1.1 mrg
333 1.1 mrg subroutine acc_update_self_64_h (a, len)
334 1.1 mrg use iso_c_binding, only: c_int64_t
335 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
336 1.1 mrg type (*), dimension (*) :: a
337 1.1 mrg integer (c_int64_t) len
338 1.1 mrg end subroutine
339 1.1 mrg
340 1.1 mrg subroutine acc_update_self_array_h (a)
341 1.1 mrg type (*), dimension (..), contiguous :: a
342 1.1 mrg end subroutine
343 1.1 mrg
344 1.1 mrg function acc_is_present_32_h (a, len)
345 1.1 mrg use iso_c_binding, only: c_int32_t
346 1.1 mrg logical acc_is_present_32_h
347 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
348 1.1 mrg type (*), dimension (*) :: a
349 1.1 mrg integer (c_int32_t) len
350 1.1 mrg end function
351 1.1 mrg
352 1.1 mrg function acc_is_present_64_h (a, len)
353 1.1 mrg use iso_c_binding, only: c_int64_t
354 1.1 mrg logical acc_is_present_64_h
355 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
356 1.1 mrg type (*), dimension (*) :: a
357 1.1 mrg integer (c_int64_t) len
358 1.1 mrg end function
359 1.1 mrg
360 1.1 mrg function acc_is_present_array_h (a)
361 1.1 mrg logical acc_is_present_array_h
362 1.1 mrg type (*), dimension (..), contiguous :: a
363 1.1 mrg end function
364 1.1.1.7 mrg
365 1.1.1.7 mrg subroutine acc_copyin_async_32_h (a, len, async)
366 1.1.1.7 mrg use iso_c_binding, only: c_int32_t
367 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
368 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
369 1.1.1.7 mrg type (*), dimension (*) :: a
370 1.1.1.7 mrg integer (c_int32_t) len
371 1.1.1.7 mrg integer (acc_handle_kind) async
372 1.1.1.7 mrg end subroutine
373 1.1.1.7 mrg
374 1.1.1.7 mrg subroutine acc_copyin_async_64_h (a, len, async)
375 1.1.1.7 mrg use iso_c_binding, only: c_int64_t
376 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
377 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
378 1.1.1.7 mrg type (*), dimension (*) :: a
379 1.1.1.7 mrg integer (c_int64_t) len
380 1.1.1.7 mrg integer (acc_handle_kind) async
381 1.1.1.7 mrg end subroutine
382 1.1.1.7 mrg
383 1.1.1.7 mrg subroutine acc_copyin_async_array_h (a, async)
384 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
385 1.1.1.7 mrg type (*), dimension (..), contiguous :: a
386 1.1.1.7 mrg integer (acc_handle_kind) async
387 1.1.1.7 mrg end subroutine
388 1.1.1.7 mrg
389 1.1.1.7 mrg subroutine acc_create_async_32_h (a, len, async)
390 1.1.1.7 mrg use iso_c_binding, only: c_int32_t
391 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
392 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
393 1.1.1.7 mrg type (*), dimension (*) :: a
394 1.1.1.7 mrg integer (c_int32_t) len
395 1.1.1.7 mrg integer (acc_handle_kind) async
396 1.1.1.7 mrg end subroutine
397 1.1.1.7 mrg
398 1.1.1.7 mrg subroutine acc_create_async_64_h (a, len, async)
399 1.1.1.7 mrg use iso_c_binding, only: c_int64_t
400 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
401 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
402 1.1.1.7 mrg type (*), dimension (*) :: a
403 1.1.1.7 mrg integer (c_int64_t) len
404 1.1.1.7 mrg integer (acc_handle_kind) async
405 1.1.1.7 mrg end subroutine
406 1.1.1.7 mrg
407 1.1.1.7 mrg subroutine acc_create_async_array_h (a, async)
408 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
409 1.1.1.7 mrg type (*), dimension (..), contiguous :: a
410 1.1.1.7 mrg integer (acc_handle_kind) async
411 1.1.1.7 mrg end subroutine
412 1.1.1.7 mrg
413 1.1.1.7 mrg subroutine acc_copyout_async_32_h (a, len, async)
414 1.1.1.7 mrg use iso_c_binding, only: c_int32_t
415 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
416 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
417 1.1.1.7 mrg type (*), dimension (*) :: a
418 1.1.1.7 mrg integer (c_int32_t) len
419 1.1.1.7 mrg integer (acc_handle_kind) async
420 1.1.1.7 mrg end subroutine
421 1.1.1.7 mrg
422 1.1.1.7 mrg subroutine acc_copyout_async_64_h (a, len, async)
423 1.1.1.7 mrg use iso_c_binding, only: c_int64_t
424 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
425 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
426 1.1.1.7 mrg type (*), dimension (*) :: a
427 1.1.1.7 mrg integer (c_int64_t) len
428 1.1.1.7 mrg integer (acc_handle_kind) async
429 1.1.1.7 mrg end subroutine
430 1.1.1.7 mrg
431 1.1.1.7 mrg subroutine acc_copyout_async_array_h (a, async)
432 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
433 1.1.1.7 mrg type (*), dimension (..), contiguous :: a
434 1.1.1.7 mrg integer (acc_handle_kind) async
435 1.1.1.7 mrg end subroutine
436 1.1.1.7 mrg
437 1.1.1.7 mrg subroutine acc_delete_async_32_h (a, len, async)
438 1.1.1.7 mrg use iso_c_binding, only: c_int32_t
439 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
440 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
441 1.1.1.7 mrg type (*), dimension (*) :: a
442 1.1.1.7 mrg integer (c_int32_t) len
443 1.1.1.7 mrg integer (acc_handle_kind) async
444 1.1.1.7 mrg end subroutine
445 1.1.1.7 mrg
446 1.1.1.7 mrg subroutine acc_delete_async_64_h (a, len, async)
447 1.1.1.7 mrg use iso_c_binding, only: c_int64_t
448 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
449 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
450 1.1.1.7 mrg type (*), dimension (*) :: a
451 1.1.1.7 mrg integer (c_int64_t) len
452 1.1.1.7 mrg integer (acc_handle_kind) async
453 1.1.1.7 mrg end subroutine
454 1.1.1.7 mrg
455 1.1.1.7 mrg subroutine acc_delete_async_array_h (a, async)
456 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
457 1.1.1.7 mrg type (*), dimension (..), contiguous :: a
458 1.1.1.7 mrg integer (acc_handle_kind) async
459 1.1.1.7 mrg end subroutine
460 1.1.1.7 mrg
461 1.1.1.7 mrg subroutine acc_update_device_async_32_h (a, len, async)
462 1.1.1.7 mrg use iso_c_binding, only: c_int32_t
463 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
464 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
465 1.1.1.7 mrg type (*), dimension (*) :: a
466 1.1.1.7 mrg integer (c_int32_t) len
467 1.1.1.7 mrg integer (acc_handle_kind) async
468 1.1.1.7 mrg end subroutine
469 1.1.1.7 mrg
470 1.1.1.7 mrg subroutine acc_update_device_async_64_h (a, len, async)
471 1.1.1.7 mrg use iso_c_binding, only: c_int64_t
472 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
473 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
474 1.1.1.7 mrg type (*), dimension (*) :: a
475 1.1.1.7 mrg integer (c_int64_t) len
476 1.1.1.7 mrg integer (acc_handle_kind) async
477 1.1.1.7 mrg end subroutine
478 1.1.1.7 mrg
479 1.1.1.7 mrg subroutine acc_update_device_async_array_h (a, async)
480 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
481 1.1.1.7 mrg type (*), dimension (..), contiguous :: a
482 1.1.1.7 mrg integer (acc_handle_kind) async
483 1.1.1.7 mrg end subroutine
484 1.1.1.7 mrg
485 1.1.1.7 mrg subroutine acc_update_self_async_32_h (a, len, async)
486 1.1.1.7 mrg use iso_c_binding, only: c_int32_t
487 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
488 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
489 1.1.1.7 mrg type (*), dimension (*) :: a
490 1.1.1.7 mrg integer (c_int32_t) len
491 1.1.1.7 mrg integer (acc_handle_kind) async
492 1.1.1.7 mrg end subroutine
493 1.1.1.7 mrg
494 1.1.1.7 mrg subroutine acc_update_self_async_64_h (a, len, async)
495 1.1.1.7 mrg use iso_c_binding, only: c_int64_t
496 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
497 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
498 1.1.1.7 mrg type (*), dimension (*) :: a
499 1.1.1.7 mrg integer (c_int64_t) len
500 1.1.1.7 mrg integer (acc_handle_kind) async
501 1.1.1.7 mrg end subroutine
502 1.1.1.7 mrg
503 1.1.1.7 mrg subroutine acc_update_self_async_array_h (a, async)
504 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
505 1.1.1.7 mrg type (*), dimension (..), contiguous :: a
506 1.1.1.7 mrg integer (acc_handle_kind) async
507 1.1.1.7 mrg end subroutine
508 1.1 mrg end interface
509 1.1 mrg
510 1.1 mrg interface
511 1.1.1.8 mrg function acc_get_num_devices_l (devicetype) &
512 1.1 mrg bind (C, name = "acc_get_num_devices")
513 1.1 mrg use iso_c_binding, only: c_int
514 1.1 mrg integer (c_int) :: acc_get_num_devices_l
515 1.1.1.8 mrg integer (c_int), value :: devicetype
516 1.1 mrg end function
517 1.1 mrg
518 1.1.1.8 mrg subroutine acc_set_device_type_l (devicetype) &
519 1.1 mrg bind (C, name = "acc_set_device_type")
520 1.1 mrg use iso_c_binding, only: c_int
521 1.1.1.8 mrg integer (c_int), value :: devicetype
522 1.1 mrg end subroutine
523 1.1 mrg
524 1.1 mrg function acc_get_device_type_l () &
525 1.1 mrg bind (C, name = "acc_get_device_type")
526 1.1 mrg use iso_c_binding, only: c_int
527 1.1 mrg integer (c_int) :: acc_get_device_type_l
528 1.1 mrg end function
529 1.1 mrg
530 1.1.1.8 mrg subroutine acc_set_device_num_l (devicenum, devicetype) &
531 1.1 mrg bind (C, name = "acc_set_device_num")
532 1.1 mrg use iso_c_binding, only: c_int
533 1.1.1.8 mrg integer (c_int), value :: devicenum, devicetype
534 1.1 mrg end subroutine
535 1.1 mrg
536 1.1.1.8 mrg function acc_get_device_num_l (devicetype) &
537 1.1 mrg bind (C, name = "acc_get_device_num")
538 1.1 mrg use iso_c_binding, only: c_int
539 1.1 mrg integer (c_int) :: acc_get_device_num_l
540 1.1.1.8 mrg integer (c_int), value :: devicetype
541 1.1.1.8 mrg end function
542 1.1.1.8 mrg
543 1.1.1.8 mrg function acc_get_property_l (devicenum, devicetype, property) &
544 1.1.1.8 mrg bind (C, name = "acc_get_property")
545 1.1.1.8 mrg use iso_c_binding, only: c_int, c_size_t
546 1.1.1.8 mrg implicit none (type, external)
547 1.1.1.8 mrg integer (c_size_t) :: acc_get_property_l
548 1.1.1.8 mrg integer (c_int), value :: devicenum
549 1.1.1.8 mrg integer (c_int), value :: devicetype
550 1.1.1.8 mrg integer (c_int), value :: property
551 1.1.1.8 mrg end function
552 1.1.1.8 mrg
553 1.1.1.8 mrg function acc_get_property_string_l (devicenum, devicetype, property) &
554 1.1.1.8 mrg bind (C, name = "acc_get_property_string")
555 1.1.1.8 mrg use iso_c_binding, only: c_int, c_ptr
556 1.1.1.8 mrg implicit none (type, external)
557 1.1.1.8 mrg type (c_ptr) :: acc_get_property_string_l
558 1.1.1.8 mrg integer (c_int), value :: devicenum
559 1.1.1.8 mrg integer (c_int), value :: devicetype
560 1.1.1.8 mrg integer (c_int), value :: property
561 1.1 mrg end function
562 1.1 mrg
563 1.1 mrg function acc_async_test_l (a) &
564 1.1 mrg bind (C, name = "acc_async_test")
565 1.1 mrg use iso_c_binding, only: c_int
566 1.1 mrg integer (c_int) :: acc_async_test_l
567 1.1 mrg integer (c_int), value :: a
568 1.1 mrg end function
569 1.1 mrg
570 1.1 mrg function acc_async_test_all_l () &
571 1.1 mrg bind (C, name = "acc_async_test_all")
572 1.1 mrg use iso_c_binding, only: c_int
573 1.1 mrg integer (c_int) :: acc_async_test_all_l
574 1.1 mrg end function
575 1.1 mrg
576 1.1 mrg subroutine acc_wait_l (a) &
577 1.1 mrg bind (C, name = "acc_wait")
578 1.1 mrg use iso_c_binding, only: c_int
579 1.1 mrg integer (c_int), value :: a
580 1.1 mrg end subroutine
581 1.1 mrg
582 1.1.1.8 mrg subroutine acc_wait_async_l (arg, async) &
583 1.1 mrg bind (C, name = "acc_wait_async")
584 1.1 mrg use iso_c_binding, only: c_int
585 1.1.1.8 mrg integer (c_int), value :: arg, async
586 1.1 mrg end subroutine
587 1.1 mrg
588 1.1 mrg subroutine acc_wait_all_l () &
589 1.1 mrg bind (C, name = "acc_wait_all")
590 1.1 mrg use iso_c_binding, only: c_int
591 1.1 mrg end subroutine
592 1.1 mrg
593 1.1.1.8 mrg subroutine acc_wait_all_async_l (async) &
594 1.1 mrg bind (C, name = "acc_wait_all_async")
595 1.1 mrg use iso_c_binding, only: c_int
596 1.1.1.8 mrg integer (c_int), value :: async
597 1.1 mrg end subroutine
598 1.1 mrg
599 1.1.1.8 mrg subroutine acc_init_l (devicetype) &
600 1.1 mrg bind (C, name = "acc_init")
601 1.1 mrg use iso_c_binding, only: c_int
602 1.1.1.8 mrg integer (c_int), value :: devicetype
603 1.1 mrg end subroutine
604 1.1 mrg
605 1.1.1.8 mrg subroutine acc_shutdown_l (devicetype) &
606 1.1 mrg bind (C, name = "acc_shutdown")
607 1.1 mrg use iso_c_binding, only: c_int
608 1.1.1.8 mrg integer (c_int), value :: devicetype
609 1.1 mrg end subroutine
610 1.1 mrg
611 1.1.1.8 mrg function acc_on_device_l (devicetype) &
612 1.1 mrg bind (C, name = "acc_on_device")
613 1.1 mrg use iso_c_binding, only: c_int
614 1.1 mrg integer (c_int) :: acc_on_device_l
615 1.1.1.8 mrg integer (c_int), value :: devicetype
616 1.1 mrg end function
617 1.1 mrg
618 1.1 mrg subroutine acc_copyin_l (a, len) &
619 1.1 mrg bind (C, name = "acc_copyin")
620 1.1 mrg use iso_c_binding, only: c_size_t
621 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
622 1.1 mrg type (*), dimension (*) :: a
623 1.1 mrg integer (c_size_t), value :: len
624 1.1 mrg end subroutine
625 1.1 mrg
626 1.1 mrg subroutine acc_present_or_copyin_l (a, len) &
627 1.1 mrg bind (C, name = "acc_present_or_copyin")
628 1.1 mrg use iso_c_binding, only: c_size_t
629 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
630 1.1 mrg type (*), dimension (*) :: a
631 1.1 mrg integer (c_size_t), value :: len
632 1.1 mrg end subroutine
633 1.1 mrg
634 1.1 mrg subroutine acc_create_l (a, len) &
635 1.1 mrg bind (C, name = "acc_create")
636 1.1 mrg use iso_c_binding, only: c_size_t
637 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
638 1.1 mrg type (*), dimension (*) :: a
639 1.1 mrg integer (c_size_t), value :: len
640 1.1 mrg end subroutine
641 1.1 mrg
642 1.1 mrg subroutine acc_present_or_create_l (a, len) &
643 1.1 mrg bind (C, name = "acc_present_or_create")
644 1.1 mrg use iso_c_binding, only: c_size_t
645 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
646 1.1 mrg type (*), dimension (*) :: a
647 1.1 mrg integer (c_size_t), value :: len
648 1.1 mrg end subroutine
649 1.1 mrg
650 1.1 mrg subroutine acc_copyout_l (a, len) &
651 1.1 mrg bind (C, name = "acc_copyout")
652 1.1 mrg use iso_c_binding, only: c_size_t
653 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
654 1.1 mrg type (*), dimension (*) :: a
655 1.1 mrg integer (c_size_t), value :: len
656 1.1 mrg end subroutine
657 1.1 mrg
658 1.1.1.7 mrg subroutine acc_copyout_finalize_l (a, len) &
659 1.1.1.7 mrg bind (C, name = "acc_copyout_finalize")
660 1.1.1.7 mrg use iso_c_binding, only: c_size_t
661 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
662 1.1.1.7 mrg type (*), dimension (*) :: a
663 1.1.1.7 mrg integer (c_size_t), value :: len
664 1.1.1.7 mrg end subroutine
665 1.1.1.7 mrg
666 1.1 mrg subroutine acc_delete_l (a, len) &
667 1.1 mrg bind (C, name = "acc_delete")
668 1.1 mrg use iso_c_binding, only: c_size_t
669 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
670 1.1 mrg type (*), dimension (*) :: a
671 1.1 mrg integer (c_size_t), value :: len
672 1.1 mrg end subroutine
673 1.1 mrg
674 1.1.1.7 mrg subroutine acc_delete_finalize_l (a, len) &
675 1.1.1.7 mrg bind (C, name = "acc_delete_finalize")
676 1.1.1.7 mrg use iso_c_binding, only: c_size_t
677 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
678 1.1.1.7 mrg type (*), dimension (*) :: a
679 1.1.1.7 mrg integer (c_size_t), value :: len
680 1.1.1.7 mrg end subroutine
681 1.1.1.7 mrg
682 1.1 mrg subroutine acc_update_device_l (a, len) &
683 1.1 mrg bind (C, name = "acc_update_device")
684 1.1 mrg use iso_c_binding, only: c_size_t
685 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
686 1.1 mrg type (*), dimension (*) :: a
687 1.1 mrg integer (c_size_t), value :: len
688 1.1 mrg end subroutine
689 1.1 mrg
690 1.1 mrg subroutine acc_update_self_l (a, len) &
691 1.1 mrg bind (C, name = "acc_update_self")
692 1.1 mrg use iso_c_binding, only: c_size_t
693 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
694 1.1 mrg type (*), dimension (*) :: a
695 1.1 mrg integer (c_size_t), value :: len
696 1.1 mrg end subroutine
697 1.1 mrg
698 1.1 mrg function acc_is_present_l (a, len) &
699 1.1 mrg bind (C, name = "acc_is_present")
700 1.1 mrg use iso_c_binding, only: c_int32_t, c_size_t
701 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
702 1.1 mrg integer (c_int32_t) :: acc_is_present_l
703 1.1 mrg type (*), dimension (*) :: a
704 1.1 mrg integer (c_size_t), value :: len
705 1.1 mrg end function
706 1.1.1.7 mrg
707 1.1.1.7 mrg subroutine acc_copyin_async_l (a, len, async) &
708 1.1.1.7 mrg bind (C, name = "acc_copyin_async")
709 1.1.1.7 mrg use iso_c_binding, only: c_size_t, c_int
710 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
711 1.1.1.7 mrg type (*), dimension (*) :: a
712 1.1.1.7 mrg integer (c_size_t), value :: len
713 1.1.1.7 mrg integer (c_int), value :: async
714 1.1.1.7 mrg end subroutine
715 1.1.1.7 mrg
716 1.1.1.7 mrg subroutine acc_create_async_l (a, len, async) &
717 1.1.1.7 mrg bind (C, name = "acc_create_async")
718 1.1.1.7 mrg use iso_c_binding, only: c_size_t, c_int
719 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
720 1.1.1.7 mrg type (*), dimension (*) :: a
721 1.1.1.7 mrg integer (c_size_t), value :: len
722 1.1.1.7 mrg integer (c_int), value :: async
723 1.1.1.7 mrg end subroutine
724 1.1.1.7 mrg
725 1.1.1.7 mrg subroutine acc_copyout_async_l (a, len, async) &
726 1.1.1.7 mrg bind (C, name = "acc_copyout_async")
727 1.1.1.7 mrg use iso_c_binding, only: c_size_t, c_int
728 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
729 1.1.1.7 mrg type (*), dimension (*) :: a
730 1.1.1.7 mrg integer (c_size_t), value :: len
731 1.1.1.7 mrg integer (c_int), value :: async
732 1.1.1.7 mrg end subroutine
733 1.1.1.7 mrg
734 1.1.1.7 mrg subroutine acc_delete_async_l (a, len, async) &
735 1.1.1.7 mrg bind (C, name = "acc_delete_async")
736 1.1.1.7 mrg use iso_c_binding, only: c_size_t, c_int
737 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
738 1.1.1.7 mrg type (*), dimension (*) :: a
739 1.1.1.7 mrg integer (c_size_t), value :: len
740 1.1.1.7 mrg integer (c_int), value :: async
741 1.1.1.7 mrg end subroutine
742 1.1.1.7 mrg
743 1.1.1.7 mrg subroutine acc_update_device_async_l (a, len, async) &
744 1.1.1.7 mrg bind (C, name = "acc_update_device_async")
745 1.1.1.7 mrg use iso_c_binding, only: c_size_t, c_int
746 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
747 1.1.1.7 mrg type (*), dimension (*) :: a
748 1.1.1.7 mrg integer (c_size_t), value :: len
749 1.1.1.7 mrg integer (c_int), value :: async
750 1.1.1.7 mrg end subroutine
751 1.1.1.7 mrg
752 1.1.1.7 mrg subroutine acc_update_self_async_l (a, len, async) &
753 1.1.1.7 mrg bind (C, name = "acc_update_self_async")
754 1.1.1.7 mrg use iso_c_binding, only: c_size_t, c_int
755 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
756 1.1.1.7 mrg type (*), dimension (*) :: a
757 1.1.1.7 mrg integer (c_size_t), value :: len
758 1.1.1.7 mrg integer (c_int), value :: async
759 1.1.1.7 mrg end subroutine
760 1.1 mrg end interface
761 1.1.1.8 mrg end module openacc_internal
762 1.1 mrg
763 1.1 mrg module openacc
764 1.1 mrg use openacc_kinds
765 1.1 mrg use openacc_internal
766 1.1 mrg implicit none
767 1.1 mrg
768 1.1.1.8 mrg private
769 1.1.1.8 mrg
770 1.1.1.8 mrg ! From openacc_kinds
771 1.1.1.8 mrg public :: acc_device_kind
772 1.1.1.8 mrg public :: acc_device_none, acc_device_default, acc_device_host
773 1.1.1.8 mrg public :: acc_device_not_host, acc_device_nvidia, acc_device_radeon
774 1.1.1.8 mrg
775 1.1.1.8 mrg public :: acc_device_property_kind, acc_device_property
776 1.1.1.8 mrg public :: acc_property_memory, acc_property_free_memory
777 1.1.1.8 mrg public :: acc_property_name, acc_property_vendor, acc_property_driver
778 1.1.1.8 mrg
779 1.1.1.8 mrg public :: acc_handle_kind
780 1.1.1.8 mrg public :: acc_async_noval, acc_async_sync
781 1.1.1.8 mrg
782 1.1 mrg public :: openacc_version
783 1.1 mrg
784 1.1 mrg public :: acc_get_num_devices, acc_set_device_type, acc_get_device_type
785 1.1.1.8 mrg public :: acc_set_device_num, acc_get_device_num
786 1.1.1.8 mrg public :: acc_get_property, acc_get_property_string
787 1.1.1.8 mrg public :: acc_async_test, acc_async_test_all
788 1.1.1.6 mrg public :: acc_wait, acc_async_wait, acc_wait_async
789 1.1.1.6 mrg public :: acc_wait_all, acc_async_wait_all, acc_wait_all_async
790 1.1.1.10 mrg public :: acc_init, acc_shutdown, acc_on_device, acc_malloc, acc_free
791 1.1 mrg public :: acc_copyin, acc_present_or_copyin, acc_pcopyin, acc_create
792 1.1 mrg public :: acc_present_or_create, acc_pcreate, acc_copyout, acc_delete
793 1.1.1.10 mrg public :: acc_update_device, acc_update_self, acc_map_data, acc_unmap_data
794 1.1.1.10 mrg public :: acc_deviceptr, acc_hostptr, acc_is_present
795 1.1.1.7 mrg public :: acc_copyin_async, acc_create_async, acc_copyout_async
796 1.1.1.7 mrg public :: acc_delete_async, acc_update_device_async, acc_update_self_async
797 1.1.1.8 mrg public :: acc_copyout_finalize, acc_delete_finalize
798 1.1.1.10 mrg public :: acc_memcpy_to_device, acc_memcpy_to_device_async
799 1.1.1.10 mrg public :: acc_memcpy_from_device, acc_memcpy_from_device_async
800 1.1 mrg
801 1.1.1.8 mrg integer, parameter :: openacc_version = 201711
802 1.1 mrg
803 1.1 mrg interface acc_get_num_devices
804 1.1 mrg procedure :: acc_get_num_devices_h
805 1.1 mrg end interface
806 1.1 mrg
807 1.1 mrg interface acc_set_device_type
808 1.1 mrg procedure :: acc_set_device_type_h
809 1.1 mrg end interface
810 1.1 mrg
811 1.1 mrg interface acc_get_device_type
812 1.1 mrg procedure :: acc_get_device_type_h
813 1.1 mrg end interface
814 1.1 mrg
815 1.1 mrg interface acc_set_device_num
816 1.1 mrg procedure :: acc_set_device_num_h
817 1.1 mrg end interface
818 1.1 mrg
819 1.1 mrg interface acc_get_device_num
820 1.1 mrg procedure :: acc_get_device_num_h
821 1.1 mrg end interface
822 1.1 mrg
823 1.1.1.8 mrg interface acc_get_property
824 1.1.1.8 mrg procedure :: acc_get_property_h
825 1.1.1.8 mrg end interface
826 1.1.1.8 mrg
827 1.1.1.8 mrg interface acc_get_property_string
828 1.1.1.8 mrg procedure :: acc_get_property_string_h
829 1.1.1.8 mrg end interface
830 1.1.1.8 mrg
831 1.1 mrg interface acc_async_test
832 1.1 mrg procedure :: acc_async_test_h
833 1.1 mrg end interface
834 1.1 mrg
835 1.1 mrg interface acc_async_test_all
836 1.1 mrg procedure :: acc_async_test_all_h
837 1.1 mrg end interface
838 1.1 mrg
839 1.1 mrg interface acc_wait
840 1.1 mrg procedure :: acc_wait_h
841 1.1 mrg end interface
842 1.1 mrg
843 1.1.1.6 mrg ! acc_async_wait is an OpenACC 1.0 compatibility name for acc_wait.
844 1.1.1.6 mrg interface acc_async_wait
845 1.1.1.6 mrg procedure :: acc_wait_h
846 1.1.1.6 mrg end interface
847 1.1.1.6 mrg
848 1.1 mrg interface acc_wait_async
849 1.1 mrg procedure :: acc_wait_async_h
850 1.1 mrg end interface
851 1.1 mrg
852 1.1 mrg interface acc_wait_all
853 1.1 mrg procedure :: acc_wait_all_h
854 1.1 mrg end interface
855 1.1 mrg
856 1.1.1.6 mrg ! acc_async_wait_all is an OpenACC 1.0 compatibility name for acc_wait_all.
857 1.1.1.6 mrg interface acc_async_wait_all
858 1.1.1.6 mrg procedure :: acc_wait_all_h
859 1.1.1.6 mrg end interface
860 1.1.1.6 mrg
861 1.1 mrg interface acc_wait_all_async
862 1.1 mrg procedure :: acc_wait_all_async_h
863 1.1 mrg end interface
864 1.1 mrg
865 1.1 mrg interface acc_init
866 1.1 mrg procedure :: acc_init_h
867 1.1 mrg end interface
868 1.1 mrg
869 1.1 mrg interface acc_shutdown
870 1.1 mrg procedure :: acc_shutdown_h
871 1.1 mrg end interface
872 1.1 mrg
873 1.1 mrg interface acc_on_device
874 1.1 mrg procedure :: acc_on_device_h
875 1.1 mrg end interface
876 1.1 mrg
877 1.1.1.10 mrg interface
878 1.1.1.10 mrg type(c_ptr) function acc_malloc (bytes) bind(C)
879 1.1.1.10 mrg use iso_c_binding, only: c_ptr, c_size_t
880 1.1.1.10 mrg integer(c_size_t), value :: bytes
881 1.1.1.10 mrg end function
882 1.1.1.10 mrg end interface
883 1.1.1.10 mrg
884 1.1.1.10 mrg interface
885 1.1.1.10 mrg subroutine acc_free (data_dev) bind(C)
886 1.1.1.10 mrg use iso_c_binding, only: c_ptr
887 1.1.1.10 mrg type(c_ptr), value :: data_dev
888 1.1.1.10 mrg end subroutine
889 1.1.1.10 mrg end interface
890 1.1 mrg
891 1.1 mrg ! As vendor extension, the following code supports both 32bit and 64bit
892 1.1 mrg ! arguments for "size"; the OpenACC standard only permits default-kind
893 1.1 mrg ! integers, which are of kind 4 (i.e. 32 bits).
894 1.1 mrg ! Additionally, the two-argument version also takes arrays as argument.
895 1.1 mrg ! and the one argument version also scalars. Note that the code assumes
896 1.1 mrg ! that the arrays are contiguous.
897 1.1 mrg
898 1.1 mrg interface acc_copyin
899 1.1 mrg procedure :: acc_copyin_32_h
900 1.1 mrg procedure :: acc_copyin_64_h
901 1.1 mrg procedure :: acc_copyin_array_h
902 1.1 mrg end interface
903 1.1 mrg
904 1.1 mrg interface acc_present_or_copyin
905 1.1 mrg procedure :: acc_present_or_copyin_32_h
906 1.1 mrg procedure :: acc_present_or_copyin_64_h
907 1.1 mrg procedure :: acc_present_or_copyin_array_h
908 1.1 mrg end interface
909 1.1 mrg
910 1.1 mrg interface acc_pcopyin
911 1.1 mrg procedure :: acc_present_or_copyin_32_h
912 1.1 mrg procedure :: acc_present_or_copyin_64_h
913 1.1 mrg procedure :: acc_present_or_copyin_array_h
914 1.1 mrg end interface
915 1.1 mrg
916 1.1 mrg interface acc_create
917 1.1 mrg procedure :: acc_create_32_h
918 1.1 mrg procedure :: acc_create_64_h
919 1.1 mrg procedure :: acc_create_array_h
920 1.1 mrg end interface
921 1.1 mrg
922 1.1 mrg interface acc_present_or_create
923 1.1 mrg procedure :: acc_present_or_create_32_h
924 1.1 mrg procedure :: acc_present_or_create_64_h
925 1.1 mrg procedure :: acc_present_or_create_array_h
926 1.1 mrg end interface
927 1.1 mrg
928 1.1 mrg interface acc_pcreate
929 1.1 mrg procedure :: acc_present_or_create_32_h
930 1.1 mrg procedure :: acc_present_or_create_64_h
931 1.1 mrg procedure :: acc_present_or_create_array_h
932 1.1 mrg end interface
933 1.1 mrg
934 1.1 mrg interface acc_copyout
935 1.1 mrg procedure :: acc_copyout_32_h
936 1.1 mrg procedure :: acc_copyout_64_h
937 1.1 mrg procedure :: acc_copyout_array_h
938 1.1 mrg end interface
939 1.1 mrg
940 1.1.1.7 mrg interface acc_copyout_finalize
941 1.1.1.7 mrg procedure :: acc_copyout_finalize_32_h
942 1.1.1.7 mrg procedure :: acc_copyout_finalize_64_h
943 1.1.1.7 mrg procedure :: acc_copyout_finalize_array_h
944 1.1.1.7 mrg end interface
945 1.1.1.7 mrg
946 1.1 mrg interface acc_delete
947 1.1 mrg procedure :: acc_delete_32_h
948 1.1 mrg procedure :: acc_delete_64_h
949 1.1 mrg procedure :: acc_delete_array_h
950 1.1 mrg end interface
951 1.1 mrg
952 1.1.1.7 mrg interface acc_delete_finalize
953 1.1.1.7 mrg procedure :: acc_delete_finalize_32_h
954 1.1.1.7 mrg procedure :: acc_delete_finalize_64_h
955 1.1.1.7 mrg procedure :: acc_delete_finalize_array_h
956 1.1.1.7 mrg end interface
957 1.1.1.7 mrg
958 1.1 mrg interface acc_update_device
959 1.1 mrg procedure :: acc_update_device_32_h
960 1.1 mrg procedure :: acc_update_device_64_h
961 1.1 mrg procedure :: acc_update_device_array_h
962 1.1 mrg end interface
963 1.1 mrg
964 1.1 mrg interface acc_update_self
965 1.1 mrg procedure :: acc_update_self_32_h
966 1.1 mrg procedure :: acc_update_self_64_h
967 1.1 mrg procedure :: acc_update_self_array_h
968 1.1 mrg end interface
969 1.1 mrg
970 1.1.1.10 mrg interface
971 1.1.1.10 mrg subroutine acc_map_data (data_arg, data_dev, bytes) bind(C)
972 1.1.1.10 mrg use iso_c_binding, only: c_ptr, c_size_t
973 1.1.1.10 mrg type(*), dimension(*) :: data_arg
974 1.1.1.10 mrg type(c_ptr), value :: data_dev
975 1.1.1.10 mrg integer(c_size_t), value :: bytes
976 1.1.1.10 mrg end subroutine
977 1.1.1.10 mrg end interface
978 1.1.1.10 mrg
979 1.1.1.10 mrg interface
980 1.1.1.10 mrg subroutine acc_unmap_data (data_arg) bind(C)
981 1.1.1.10 mrg type(*), dimension(*) :: data_arg
982 1.1.1.10 mrg end subroutine
983 1.1.1.10 mrg end interface
984 1.1.1.10 mrg
985 1.1.1.10 mrg interface
986 1.1.1.10 mrg type(c_ptr) function acc_deviceptr (data_arg) bind(C)
987 1.1.1.10 mrg use iso_c_binding, only: c_ptr
988 1.1.1.10 mrg type(*), dimension(*) :: data_arg
989 1.1.1.10 mrg end function
990 1.1.1.10 mrg end interface
991 1.1.1.10 mrg
992 1.1.1.10 mrg interface
993 1.1.1.10 mrg type(c_ptr) function acc_hostptr (data_dev) bind(C)
994 1.1.1.10 mrg use iso_c_binding, only: c_ptr
995 1.1.1.10 mrg type(c_ptr), value :: data_dev
996 1.1.1.10 mrg end function
997 1.1.1.10 mrg end interface
998 1.1 mrg
999 1.1 mrg interface acc_is_present
1000 1.1 mrg procedure :: acc_is_present_32_h
1001 1.1 mrg procedure :: acc_is_present_64_h
1002 1.1 mrg procedure :: acc_is_present_array_h
1003 1.1 mrg end interface
1004 1.1 mrg
1005 1.1.1.10 mrg interface
1006 1.1.1.10 mrg subroutine acc_memcpy_to_device (data_dev_dest, data_host_src, &
1007 1.1.1.10 mrg bytes) bind(C)
1008 1.1.1.10 mrg use iso_c_binding, only: c_ptr, c_size_t
1009 1.1.1.10 mrg type(c_ptr), value :: data_dev_dest
1010 1.1.1.10 mrg type(*),dimension(*) :: data_host_src
1011 1.1.1.10 mrg integer(c_size_t), value :: bytes
1012 1.1.1.10 mrg end subroutine
1013 1.1.1.10 mrg end interface
1014 1.1.1.10 mrg
1015 1.1.1.10 mrg interface
1016 1.1.1.10 mrg subroutine acc_memcpy_to_device_async (data_dev_dest, data_host_src, &
1017 1.1.1.10 mrg bytes, async_arg) bind(C)
1018 1.1.1.10 mrg use iso_c_binding, only: c_ptr, c_size_t
1019 1.1.1.10 mrg import :: acc_handle_kind
1020 1.1.1.10 mrg type(c_ptr), value :: data_dev_dest
1021 1.1.1.10 mrg type(*),dimension(*) :: data_host_src
1022 1.1.1.10 mrg integer(c_size_t), value :: bytes
1023 1.1.1.10 mrg integer(acc_handle_kind), value :: async_arg
1024 1.1.1.10 mrg end subroutine
1025 1.1.1.10 mrg end interface
1026 1.1.1.10 mrg
1027 1.1.1.10 mrg interface
1028 1.1.1.10 mrg subroutine acc_memcpy_from_device (data_host_dest, data_dev_src, &
1029 1.1.1.10 mrg bytes) bind(C)
1030 1.1.1.10 mrg use iso_c_binding, only: c_ptr, c_size_t
1031 1.1.1.10 mrg type(*),dimension(*) :: data_host_dest
1032 1.1.1.10 mrg type(c_ptr), value :: data_dev_src
1033 1.1.1.10 mrg integer(c_size_t), value :: bytes
1034 1.1.1.10 mrg end subroutine
1035 1.1.1.10 mrg end interface
1036 1.1.1.10 mrg
1037 1.1.1.10 mrg interface
1038 1.1.1.10 mrg subroutine acc_memcpy_from_device_async (data_host_dest, data_dev_src, &
1039 1.1.1.10 mrg bytes, async_arg) bind(C)
1040 1.1.1.10 mrg use iso_c_binding, only: c_ptr, c_size_t
1041 1.1.1.10 mrg import :: acc_handle_kind
1042 1.1.1.10 mrg type(*),dimension(*) :: data_host_dest
1043 1.1.1.10 mrg type(c_ptr), value :: data_dev_src
1044 1.1.1.10 mrg integer(c_size_t), value :: bytes
1045 1.1.1.10 mrg integer(acc_handle_kind), value :: async_arg
1046 1.1.1.10 mrg end subroutine
1047 1.1.1.10 mrg end interface
1048 1.1 mrg
1049 1.1.1.7 mrg interface acc_copyin_async
1050 1.1.1.7 mrg procedure :: acc_copyin_async_32_h
1051 1.1.1.7 mrg procedure :: acc_copyin_async_64_h
1052 1.1.1.7 mrg procedure :: acc_copyin_async_array_h
1053 1.1.1.7 mrg end interface
1054 1.1.1.7 mrg
1055 1.1.1.7 mrg interface acc_create_async
1056 1.1.1.7 mrg procedure :: acc_create_async_32_h
1057 1.1.1.7 mrg procedure :: acc_create_async_64_h
1058 1.1.1.7 mrg procedure :: acc_create_async_array_h
1059 1.1.1.7 mrg end interface
1060 1.1.1.7 mrg
1061 1.1.1.7 mrg interface acc_copyout_async
1062 1.1.1.7 mrg procedure :: acc_copyout_async_32_h
1063 1.1.1.7 mrg procedure :: acc_copyout_async_64_h
1064 1.1.1.7 mrg procedure :: acc_copyout_async_array_h
1065 1.1.1.7 mrg end interface
1066 1.1.1.7 mrg
1067 1.1.1.7 mrg interface acc_delete_async
1068 1.1.1.7 mrg procedure :: acc_delete_async_32_h
1069 1.1.1.7 mrg procedure :: acc_delete_async_64_h
1070 1.1.1.7 mrg procedure :: acc_delete_async_array_h
1071 1.1.1.7 mrg end interface
1072 1.1.1.7 mrg
1073 1.1.1.7 mrg interface acc_update_device_async
1074 1.1.1.7 mrg procedure :: acc_update_device_async_32_h
1075 1.1.1.7 mrg procedure :: acc_update_device_async_64_h
1076 1.1.1.7 mrg procedure :: acc_update_device_async_array_h
1077 1.1.1.7 mrg end interface
1078 1.1.1.7 mrg
1079 1.1.1.7 mrg interface acc_update_self_async
1080 1.1.1.7 mrg procedure :: acc_update_self_async_32_h
1081 1.1.1.7 mrg procedure :: acc_update_self_async_64_h
1082 1.1.1.7 mrg procedure :: acc_update_self_async_array_h
1083 1.1.1.7 mrg end interface
1084 1.1.1.7 mrg
1085 1.1.1.8 mrg end module openacc
1086 1.1 mrg
1087 1.1.1.8 mrg function acc_get_num_devices_h (devicetype)
1088 1.1 mrg use openacc_internal, only: acc_get_num_devices_l
1089 1.1 mrg use openacc_kinds
1090 1.1 mrg integer acc_get_num_devices_h
1091 1.1.1.8 mrg integer (acc_device_kind) devicetype
1092 1.1.1.8 mrg acc_get_num_devices_h = acc_get_num_devices_l (devicetype)
1093 1.1 mrg end function
1094 1.1 mrg
1095 1.1.1.8 mrg subroutine acc_set_device_type_h (devicetype)
1096 1.1 mrg use openacc_internal, only: acc_set_device_type_l
1097 1.1 mrg use openacc_kinds
1098 1.1.1.8 mrg integer (acc_device_kind) devicetype
1099 1.1.1.8 mrg call acc_set_device_type_l (devicetype)
1100 1.1 mrg end subroutine
1101 1.1 mrg
1102 1.1 mrg function acc_get_device_type_h ()
1103 1.1 mrg use openacc_internal, only: acc_get_device_type_l
1104 1.1 mrg use openacc_kinds
1105 1.1 mrg integer (acc_device_kind) acc_get_device_type_h
1106 1.1 mrg acc_get_device_type_h = acc_get_device_type_l ()
1107 1.1 mrg end function
1108 1.1 mrg
1109 1.1.1.8 mrg subroutine acc_set_device_num_h (devicenum, devicetype)
1110 1.1 mrg use openacc_internal, only: acc_set_device_num_l
1111 1.1 mrg use openacc_kinds
1112 1.1.1.8 mrg integer devicenum
1113 1.1.1.8 mrg integer (acc_device_kind) devicetype
1114 1.1.1.8 mrg call acc_set_device_num_l (devicenum, devicetype)
1115 1.1 mrg end subroutine
1116 1.1 mrg
1117 1.1.1.8 mrg function acc_get_device_num_h (devicetype)
1118 1.1 mrg use openacc_internal, only: acc_get_device_num_l
1119 1.1 mrg use openacc_kinds
1120 1.1 mrg integer acc_get_device_num_h
1121 1.1.1.8 mrg integer (acc_device_kind) devicetype
1122 1.1.1.8 mrg acc_get_device_num_h = acc_get_device_num_l (devicetype)
1123 1.1.1.8 mrg end function
1124 1.1.1.8 mrg
1125 1.1.1.8 mrg function acc_get_property_h (devicenum, devicetype, property)
1126 1.1.1.8 mrg use iso_c_binding, only: c_size_t
1127 1.1.1.8 mrg use openacc_internal, only: acc_get_property_l
1128 1.1.1.8 mrg use openacc_kinds
1129 1.1.1.8 mrg implicit none (type, external)
1130 1.1.1.8 mrg integer (c_size_t) :: acc_get_property_h
1131 1.1.1.8 mrg integer, value :: devicenum
1132 1.1.1.8 mrg integer (acc_device_kind), value :: devicetype
1133 1.1.1.8 mrg integer (acc_device_property_kind), value :: property
1134 1.1.1.8 mrg acc_get_property_h = acc_get_property_l (devicenum, devicetype, property)
1135 1.1 mrg end function
1136 1.1 mrg
1137 1.1.1.8 mrg subroutine acc_get_property_string_h (devicenum, devicetype, property, string)
1138 1.1.1.8 mrg use iso_c_binding, only: c_char, c_size_t, c_ptr, c_f_pointer, c_associated
1139 1.1.1.8 mrg use openacc_internal, only: acc_get_property_string_l
1140 1.1.1.8 mrg use openacc_kinds
1141 1.1.1.8 mrg implicit none (type, external)
1142 1.1.1.8 mrg integer, value :: devicenum
1143 1.1.1.8 mrg integer (acc_device_kind), value :: devicetype
1144 1.1.1.8 mrg integer (acc_device_property_kind), value :: property
1145 1.1.1.8 mrg character (*) :: string
1146 1.1.1.8 mrg
1147 1.1.1.8 mrg type (c_ptr) :: cptr
1148 1.1.1.8 mrg integer(c_size_t) :: clen, slen, i
1149 1.1.1.8 mrg character (kind=c_char, len=1), pointer, contiguous :: sptr (:)
1150 1.1.1.8 mrg
1151 1.1.1.8 mrg interface
1152 1.1.1.8 mrg function strlen (s) bind (C, name = "strlen")
1153 1.1.1.8 mrg use iso_c_binding, only: c_ptr, c_size_t
1154 1.1.1.8 mrg type (c_ptr), intent(in), value :: s
1155 1.1.1.8 mrg integer (c_size_t) :: strlen
1156 1.1.1.8 mrg end function strlen
1157 1.1.1.8 mrg end interface
1158 1.1.1.8 mrg
1159 1.1.1.8 mrg cptr = acc_get_property_string_l (devicenum, devicetype, property)
1160 1.1.1.8 mrg string = ""
1161 1.1.1.8 mrg if (.not. c_associated (cptr)) then
1162 1.1.1.8 mrg return
1163 1.1.1.8 mrg end if
1164 1.1.1.8 mrg
1165 1.1.1.8 mrg clen = strlen (cptr)
1166 1.1.1.8 mrg call c_f_pointer (cptr, sptr, [clen])
1167 1.1.1.8 mrg
1168 1.1.1.8 mrg slen = min (clen, len (string, kind=c_size_t))
1169 1.1.1.8 mrg do i = 1, slen
1170 1.1.1.8 mrg string (i:i) = sptr (i)
1171 1.1.1.8 mrg end do
1172 1.1.1.8 mrg end subroutine
1173 1.1.1.8 mrg
1174 1.1.1.8 mrg function acc_async_test_h (arg)
1175 1.1 mrg use openacc_internal, only: acc_async_test_l
1176 1.1 mrg logical acc_async_test_h
1177 1.1.1.8 mrg integer arg
1178 1.1.1.8 mrg acc_async_test_h = acc_async_test_l (arg) /= 0
1179 1.1 mrg end function
1180 1.1 mrg
1181 1.1 mrg function acc_async_test_all_h ()
1182 1.1 mrg use openacc_internal, only: acc_async_test_all_l
1183 1.1 mrg logical acc_async_test_all_h
1184 1.1.1.8 mrg acc_async_test_all_h = acc_async_test_all_l () /= 0
1185 1.1 mrg end function
1186 1.1 mrg
1187 1.1.1.8 mrg subroutine acc_wait_h (arg)
1188 1.1 mrg use openacc_internal, only: acc_wait_l
1189 1.1.1.8 mrg integer arg
1190 1.1.1.8 mrg call acc_wait_l (arg)
1191 1.1 mrg end subroutine
1192 1.1 mrg
1193 1.1.1.8 mrg subroutine acc_wait_async_h (arg, async)
1194 1.1 mrg use openacc_internal, only: acc_wait_async_l
1195 1.1.1.8 mrg integer arg, async
1196 1.1.1.8 mrg call acc_wait_async_l (arg, async)
1197 1.1 mrg end subroutine
1198 1.1 mrg
1199 1.1 mrg subroutine acc_wait_all_h ()
1200 1.1 mrg use openacc_internal, only: acc_wait_all_l
1201 1.1 mrg call acc_wait_all_l ()
1202 1.1 mrg end subroutine
1203 1.1 mrg
1204 1.1.1.8 mrg subroutine acc_wait_all_async_h (async)
1205 1.1 mrg use openacc_internal, only: acc_wait_all_async_l
1206 1.1.1.8 mrg integer async
1207 1.1.1.8 mrg call acc_wait_all_async_l (async)
1208 1.1 mrg end subroutine
1209 1.1 mrg
1210 1.1.1.8 mrg subroutine acc_init_h (devicetype)
1211 1.1 mrg use openacc_internal, only: acc_init_l
1212 1.1 mrg use openacc_kinds
1213 1.1.1.8 mrg integer (acc_device_kind) devicetype
1214 1.1.1.8 mrg call acc_init_l (devicetype)
1215 1.1 mrg end subroutine
1216 1.1 mrg
1217 1.1.1.8 mrg subroutine acc_shutdown_h (devicetype)
1218 1.1 mrg use openacc_internal, only: acc_shutdown_l
1219 1.1 mrg use openacc_kinds
1220 1.1.1.8 mrg integer (acc_device_kind) devicetype
1221 1.1.1.8 mrg call acc_shutdown_l (devicetype)
1222 1.1 mrg end subroutine
1223 1.1 mrg
1224 1.1.1.8 mrg function acc_on_device_h (devicetype)
1225 1.1 mrg use openacc_internal, only: acc_on_device_l
1226 1.1 mrg use openacc_kinds
1227 1.1.1.8 mrg integer (acc_device_kind) devicetype
1228 1.1 mrg logical acc_on_device_h
1229 1.1.1.8 mrg acc_on_device_h = acc_on_device_l (devicetype) /= 0
1230 1.1 mrg end function
1231 1.1 mrg
1232 1.1 mrg subroutine acc_copyin_32_h (a, len)
1233 1.1 mrg use iso_c_binding, only: c_int32_t, c_size_t
1234 1.1 mrg use openacc_internal, only: acc_copyin_l
1235 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1236 1.1 mrg type (*), dimension (*) :: a
1237 1.1 mrg integer (c_int32_t) len
1238 1.1 mrg call acc_copyin_l (a, int (len, kind = c_size_t))
1239 1.1 mrg end subroutine
1240 1.1 mrg
1241 1.1 mrg subroutine acc_copyin_64_h (a, len)
1242 1.1 mrg use iso_c_binding, only: c_int64_t, c_size_t
1243 1.1 mrg use openacc_internal, only: acc_copyin_l
1244 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1245 1.1 mrg type (*), dimension (*) :: a
1246 1.1 mrg integer (c_int64_t) len
1247 1.1 mrg call acc_copyin_l (a, int (len, kind = c_size_t))
1248 1.1 mrg end subroutine
1249 1.1 mrg
1250 1.1 mrg subroutine acc_copyin_array_h (a)
1251 1.1 mrg use openacc_internal, only: acc_copyin_l
1252 1.1 mrg type (*), dimension (..), contiguous :: a
1253 1.1 mrg call acc_copyin_l (a, sizeof (a))
1254 1.1 mrg end subroutine
1255 1.1 mrg
1256 1.1 mrg subroutine acc_present_or_copyin_32_h (a, len)
1257 1.1 mrg use iso_c_binding, only: c_int32_t, c_size_t
1258 1.1 mrg use openacc_internal, only: acc_present_or_copyin_l
1259 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1260 1.1 mrg type (*), dimension (*) :: a
1261 1.1 mrg integer (c_int32_t) len
1262 1.1 mrg call acc_present_or_copyin_l (a, int (len, kind = c_size_t))
1263 1.1 mrg end subroutine
1264 1.1 mrg
1265 1.1 mrg subroutine acc_present_or_copyin_64_h (a, len)
1266 1.1 mrg use iso_c_binding, only: c_int64_t, c_size_t
1267 1.1 mrg use openacc_internal, only: acc_present_or_copyin_l
1268 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1269 1.1 mrg type (*), dimension (*) :: a
1270 1.1 mrg integer (c_int64_t) len
1271 1.1 mrg call acc_present_or_copyin_l (a, int (len, kind = c_size_t))
1272 1.1 mrg end subroutine
1273 1.1 mrg
1274 1.1 mrg subroutine acc_present_or_copyin_array_h (a)
1275 1.1 mrg use openacc_internal, only: acc_present_or_copyin_l
1276 1.1 mrg type (*), dimension (..), contiguous :: a
1277 1.1 mrg call acc_present_or_copyin_l (a, sizeof (a))
1278 1.1 mrg end subroutine
1279 1.1 mrg
1280 1.1 mrg subroutine acc_create_32_h (a, len)
1281 1.1 mrg use iso_c_binding, only: c_int32_t, c_size_t
1282 1.1 mrg use openacc_internal, only: acc_create_l
1283 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1284 1.1 mrg type (*), dimension (*) :: a
1285 1.1 mrg integer (c_int32_t) len
1286 1.1 mrg call acc_create_l (a, int (len, kind = c_size_t))
1287 1.1 mrg end subroutine
1288 1.1 mrg
1289 1.1 mrg subroutine acc_create_64_h (a, len)
1290 1.1 mrg use iso_c_binding, only: c_int64_t, c_size_t
1291 1.1 mrg use openacc_internal, only: acc_create_l
1292 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1293 1.1 mrg type (*), dimension (*) :: a
1294 1.1 mrg integer (c_int64_t) len
1295 1.1 mrg call acc_create_l (a, int (len, kind = c_size_t))
1296 1.1 mrg end subroutine
1297 1.1 mrg
1298 1.1 mrg subroutine acc_create_array_h (a)
1299 1.1 mrg use openacc_internal, only: acc_create_l
1300 1.1 mrg type (*), dimension (..), contiguous :: a
1301 1.1 mrg call acc_create_l (a, sizeof (a))
1302 1.1 mrg end subroutine
1303 1.1 mrg
1304 1.1 mrg subroutine acc_present_or_create_32_h (a, len)
1305 1.1 mrg use iso_c_binding, only: c_int32_t, c_size_t
1306 1.1 mrg use openacc_internal, only: acc_present_or_create_l
1307 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1308 1.1 mrg type (*), dimension (*) :: a
1309 1.1 mrg integer (c_int32_t) len
1310 1.1 mrg call acc_present_or_create_l (a, int (len, kind = c_size_t))
1311 1.1 mrg end subroutine
1312 1.1 mrg
1313 1.1 mrg subroutine acc_present_or_create_64_h (a, len)
1314 1.1 mrg use iso_c_binding, only: c_int64_t, c_size_t
1315 1.1 mrg use openacc_internal, only: acc_present_or_create_l
1316 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1317 1.1 mrg type (*), dimension (*) :: a
1318 1.1 mrg integer (c_int64_t) len
1319 1.1 mrg call acc_present_or_create_l (a, int (len, kind = c_size_t))
1320 1.1 mrg end subroutine
1321 1.1 mrg
1322 1.1 mrg subroutine acc_present_or_create_array_h (a)
1323 1.1 mrg use openacc_internal, only: acc_present_or_create_l
1324 1.1 mrg type (*), dimension (..), contiguous :: a
1325 1.1 mrg call acc_present_or_create_l (a, sizeof (a))
1326 1.1 mrg end subroutine
1327 1.1 mrg
1328 1.1 mrg subroutine acc_copyout_32_h (a, len)
1329 1.1 mrg use iso_c_binding, only: c_int32_t, c_size_t
1330 1.1 mrg use openacc_internal, only: acc_copyout_l
1331 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1332 1.1 mrg type (*), dimension (*) :: a
1333 1.1 mrg integer (c_int32_t) len
1334 1.1 mrg call acc_copyout_l (a, int (len, kind = c_size_t))
1335 1.1 mrg end subroutine
1336 1.1 mrg
1337 1.1 mrg subroutine acc_copyout_64_h (a, len)
1338 1.1 mrg use iso_c_binding, only: c_int64_t, c_size_t
1339 1.1 mrg use openacc_internal, only: acc_copyout_l
1340 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1341 1.1 mrg type (*), dimension (*) :: a
1342 1.1 mrg integer (c_int64_t) len
1343 1.1 mrg call acc_copyout_l (a, int (len, kind = c_size_t))
1344 1.1 mrg end subroutine
1345 1.1 mrg
1346 1.1 mrg subroutine acc_copyout_array_h (a)
1347 1.1 mrg use openacc_internal, only: acc_copyout_l
1348 1.1 mrg type (*), dimension (..), contiguous :: a
1349 1.1 mrg call acc_copyout_l (a, sizeof (a))
1350 1.1 mrg end subroutine
1351 1.1 mrg
1352 1.1.1.7 mrg subroutine acc_copyout_finalize_32_h (a, len)
1353 1.1.1.7 mrg use iso_c_binding, only: c_int32_t, c_size_t
1354 1.1.1.7 mrg use openacc_internal, only: acc_copyout_finalize_l
1355 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1356 1.1.1.7 mrg type (*), dimension (*) :: a
1357 1.1.1.7 mrg integer (c_int32_t) len
1358 1.1.1.7 mrg call acc_copyout_finalize_l (a, int (len, kind = c_size_t))
1359 1.1.1.7 mrg end subroutine
1360 1.1.1.7 mrg
1361 1.1.1.7 mrg subroutine acc_copyout_finalize_64_h (a, len)
1362 1.1.1.7 mrg use iso_c_binding, only: c_int64_t, c_size_t
1363 1.1.1.7 mrg use openacc_internal, only: acc_copyout_finalize_l
1364 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1365 1.1.1.7 mrg type (*), dimension (*) :: a
1366 1.1.1.7 mrg integer (c_int64_t) len
1367 1.1.1.7 mrg call acc_copyout_finalize_l (a, int (len, kind = c_size_t))
1368 1.1.1.7 mrg end subroutine
1369 1.1.1.7 mrg
1370 1.1.1.7 mrg subroutine acc_copyout_finalize_array_h (a)
1371 1.1.1.7 mrg use openacc_internal, only: acc_copyout_finalize_l
1372 1.1.1.7 mrg type (*), dimension (..), contiguous :: a
1373 1.1.1.7 mrg call acc_copyout_finalize_l (a, sizeof (a))
1374 1.1.1.7 mrg end subroutine
1375 1.1.1.7 mrg
1376 1.1 mrg subroutine acc_delete_32_h (a, len)
1377 1.1 mrg use iso_c_binding, only: c_int32_t, c_size_t
1378 1.1 mrg use openacc_internal, only: acc_delete_l
1379 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1380 1.1 mrg type (*), dimension (*) :: a
1381 1.1 mrg integer (c_int32_t) len
1382 1.1 mrg call acc_delete_l (a, int (len, kind = c_size_t))
1383 1.1 mrg end subroutine
1384 1.1 mrg
1385 1.1 mrg subroutine acc_delete_64_h (a, len)
1386 1.1 mrg use iso_c_binding, only: c_int64_t, c_size_t
1387 1.1 mrg use openacc_internal, only: acc_delete_l
1388 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1389 1.1 mrg type (*), dimension (*) :: a
1390 1.1 mrg integer (c_int64_t) len
1391 1.1 mrg call acc_delete_l (a, int (len, kind = c_size_t))
1392 1.1 mrg end subroutine
1393 1.1 mrg
1394 1.1 mrg subroutine acc_delete_array_h (a)
1395 1.1 mrg use openacc_internal, only: acc_delete_l
1396 1.1 mrg type (*), dimension (..), contiguous :: a
1397 1.1 mrg call acc_delete_l (a, sizeof (a))
1398 1.1 mrg end subroutine
1399 1.1 mrg
1400 1.1.1.7 mrg subroutine acc_delete_finalize_32_h (a, len)
1401 1.1.1.7 mrg use iso_c_binding, only: c_int32_t, c_size_t
1402 1.1.1.7 mrg use openacc_internal, only: acc_delete_finalize_l
1403 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1404 1.1.1.7 mrg type (*), dimension (*) :: a
1405 1.1.1.7 mrg integer (c_int32_t) len
1406 1.1.1.7 mrg call acc_delete_finalize_l (a, int (len, kind = c_size_t))
1407 1.1.1.7 mrg end subroutine
1408 1.1.1.7 mrg
1409 1.1.1.7 mrg subroutine acc_delete_finalize_64_h (a, len)
1410 1.1.1.7 mrg use iso_c_binding, only: c_int64_t, c_size_t
1411 1.1.1.7 mrg use openacc_internal, only: acc_delete_finalize_l
1412 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1413 1.1.1.7 mrg type (*), dimension (*) :: a
1414 1.1.1.7 mrg integer (c_int64_t) len
1415 1.1.1.7 mrg call acc_delete_finalize_l (a, int (len, kind = c_size_t))
1416 1.1.1.7 mrg end subroutine
1417 1.1.1.7 mrg
1418 1.1.1.7 mrg subroutine acc_delete_finalize_array_h (a)
1419 1.1.1.7 mrg use openacc_internal, only: acc_delete_finalize_l
1420 1.1.1.7 mrg type (*), dimension (..), contiguous :: a
1421 1.1.1.7 mrg call acc_delete_finalize_l (a, sizeof (a))
1422 1.1.1.7 mrg end subroutine
1423 1.1.1.7 mrg
1424 1.1 mrg subroutine acc_update_device_32_h (a, len)
1425 1.1 mrg use iso_c_binding, only: c_int32_t, c_size_t
1426 1.1 mrg use openacc_internal, only: acc_update_device_l
1427 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1428 1.1 mrg type (*), dimension (*) :: a
1429 1.1 mrg integer (c_int32_t) len
1430 1.1 mrg call acc_update_device_l (a, int (len, kind = c_size_t))
1431 1.1 mrg end subroutine
1432 1.1 mrg
1433 1.1 mrg subroutine acc_update_device_64_h (a, len)
1434 1.1 mrg use iso_c_binding, only: c_int64_t, c_size_t
1435 1.1 mrg use openacc_internal, only: acc_update_device_l
1436 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1437 1.1 mrg type (*), dimension (*) :: a
1438 1.1 mrg integer (c_int64_t) len
1439 1.1 mrg call acc_update_device_l (a, int (len, kind = c_size_t))
1440 1.1 mrg end subroutine
1441 1.1 mrg
1442 1.1 mrg subroutine acc_update_device_array_h (a)
1443 1.1 mrg use openacc_internal, only: acc_update_device_l
1444 1.1 mrg type (*), dimension (..), contiguous :: a
1445 1.1 mrg call acc_update_device_l (a, sizeof (a))
1446 1.1 mrg end subroutine
1447 1.1 mrg
1448 1.1 mrg subroutine acc_update_self_32_h (a, len)
1449 1.1 mrg use iso_c_binding, only: c_int32_t, c_size_t
1450 1.1 mrg use openacc_internal, only: acc_update_self_l
1451 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1452 1.1 mrg type (*), dimension (*) :: a
1453 1.1 mrg integer (c_int32_t) len
1454 1.1 mrg call acc_update_self_l (a, int (len, kind = c_size_t))
1455 1.1 mrg end subroutine
1456 1.1 mrg
1457 1.1 mrg subroutine acc_update_self_64_h (a, len)
1458 1.1 mrg use iso_c_binding, only: c_int64_t, c_size_t
1459 1.1 mrg use openacc_internal, only: acc_update_self_l
1460 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1461 1.1 mrg type (*), dimension (*) :: a
1462 1.1 mrg integer (c_int64_t) len
1463 1.1 mrg call acc_update_self_l (a, int (len, kind = c_size_t))
1464 1.1 mrg end subroutine
1465 1.1 mrg
1466 1.1 mrg subroutine acc_update_self_array_h (a)
1467 1.1 mrg use openacc_internal, only: acc_update_self_l
1468 1.1 mrg type (*), dimension (..), contiguous :: a
1469 1.1 mrg call acc_update_self_l (a, sizeof (a))
1470 1.1 mrg end subroutine
1471 1.1 mrg
1472 1.1 mrg function acc_is_present_32_h (a, len)
1473 1.1 mrg use iso_c_binding, only: c_int32_t, c_size_t
1474 1.1 mrg use openacc_internal, only: acc_is_present_l
1475 1.1 mrg logical acc_is_present_32_h
1476 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1477 1.1 mrg type (*), dimension (*) :: a
1478 1.1 mrg integer (c_int32_t) len
1479 1.1.1.8 mrg acc_is_present_32_h = acc_is_present_l (a, int (len, kind = c_size_t)) /= 0
1480 1.1 mrg end function
1481 1.1 mrg
1482 1.1 mrg function acc_is_present_64_h (a, len)
1483 1.1 mrg use iso_c_binding, only: c_int64_t, c_size_t
1484 1.1 mrg use openacc_internal, only: acc_is_present_l
1485 1.1 mrg logical acc_is_present_64_h
1486 1.1 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1487 1.1 mrg type (*), dimension (*) :: a
1488 1.1 mrg integer (c_int64_t) len
1489 1.1.1.8 mrg acc_is_present_64_h = acc_is_present_l (a, int (len, kind = c_size_t)) /= 0
1490 1.1 mrg end function
1491 1.1 mrg
1492 1.1 mrg function acc_is_present_array_h (a)
1493 1.1 mrg use openacc_internal, only: acc_is_present_l
1494 1.1 mrg logical acc_is_present_array_h
1495 1.1 mrg type (*), dimension (..), contiguous :: a
1496 1.1.1.8 mrg acc_is_present_array_h = acc_is_present_l (a, sizeof (a)) /= 0
1497 1.1 mrg end function
1498 1.1.1.7 mrg
1499 1.1.1.7 mrg subroutine acc_copyin_async_32_h (a, len, async)
1500 1.1.1.7 mrg use iso_c_binding, only: c_int32_t, c_size_t, c_int
1501 1.1.1.7 mrg use openacc_internal, only: acc_copyin_async_l
1502 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1503 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1504 1.1.1.7 mrg type (*), dimension (*) :: a
1505 1.1.1.7 mrg integer (c_int32_t) len
1506 1.1.1.7 mrg integer (acc_handle_kind) async
1507 1.1.1.7 mrg call acc_copyin_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
1508 1.1.1.7 mrg end subroutine
1509 1.1.1.7 mrg
1510 1.1.1.7 mrg subroutine acc_copyin_async_64_h (a, len, async)
1511 1.1.1.7 mrg use iso_c_binding, only: c_int64_t, c_size_t, c_int
1512 1.1.1.7 mrg use openacc_internal, only: acc_copyin_async_l
1513 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1514 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1515 1.1.1.7 mrg type (*), dimension (*) :: a
1516 1.1.1.7 mrg integer (c_int64_t) len
1517 1.1.1.7 mrg integer (acc_handle_kind) async
1518 1.1.1.7 mrg call acc_copyin_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
1519 1.1.1.7 mrg end subroutine
1520 1.1.1.7 mrg
1521 1.1.1.7 mrg subroutine acc_copyin_async_array_h (a, async)
1522 1.1.1.7 mrg use iso_c_binding, only: c_int
1523 1.1.1.7 mrg use openacc_internal, only: acc_copyin_async_l
1524 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1525 1.1.1.7 mrg type (*), dimension (..), contiguous :: a
1526 1.1.1.7 mrg integer (acc_handle_kind) async
1527 1.1.1.7 mrg call acc_copyin_async_l (a, sizeof (a), int (async, kind = c_int))
1528 1.1.1.7 mrg end subroutine
1529 1.1.1.7 mrg
1530 1.1.1.7 mrg subroutine acc_create_async_32_h (a, len, async)
1531 1.1.1.7 mrg use iso_c_binding, only: c_int32_t, c_size_t, c_int
1532 1.1.1.7 mrg use openacc_internal, only: acc_create_async_l
1533 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1534 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1535 1.1.1.7 mrg type (*), dimension (*) :: a
1536 1.1.1.7 mrg integer (c_int32_t) len
1537 1.1.1.7 mrg integer (acc_handle_kind) async
1538 1.1.1.7 mrg call acc_create_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
1539 1.1.1.7 mrg end subroutine
1540 1.1.1.7 mrg
1541 1.1.1.7 mrg subroutine acc_create_async_64_h (a, len, async)
1542 1.1.1.7 mrg use iso_c_binding, only: c_int64_t, c_size_t, c_int
1543 1.1.1.7 mrg use openacc_internal, only: acc_create_async_l
1544 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1545 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1546 1.1.1.7 mrg type (*), dimension (*) :: a
1547 1.1.1.7 mrg integer (c_int64_t) len
1548 1.1.1.7 mrg integer (acc_handle_kind) async
1549 1.1.1.7 mrg call acc_create_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
1550 1.1.1.7 mrg end subroutine
1551 1.1.1.7 mrg
1552 1.1.1.7 mrg subroutine acc_create_async_array_h (a, async)
1553 1.1.1.7 mrg use iso_c_binding, only: c_int
1554 1.1.1.7 mrg use openacc_internal, only: acc_create_async_l
1555 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1556 1.1.1.7 mrg type (*), dimension (..), contiguous :: a
1557 1.1.1.7 mrg integer (acc_handle_kind) async
1558 1.1.1.7 mrg call acc_create_async_l (a, sizeof (a), int (async, kind = c_int))
1559 1.1.1.7 mrg end subroutine
1560 1.1.1.7 mrg
1561 1.1.1.7 mrg subroutine acc_copyout_async_32_h (a, len, async)
1562 1.1.1.7 mrg use iso_c_binding, only: c_int32_t, c_size_t, c_int
1563 1.1.1.7 mrg use openacc_internal, only: acc_copyout_async_l
1564 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1565 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1566 1.1.1.7 mrg type (*), dimension (*) :: a
1567 1.1.1.7 mrg integer (c_int32_t) len
1568 1.1.1.7 mrg integer (acc_handle_kind) async
1569 1.1.1.7 mrg call acc_copyout_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
1570 1.1.1.7 mrg end subroutine
1571 1.1.1.7 mrg
1572 1.1.1.7 mrg subroutine acc_copyout_async_64_h (a, len, async)
1573 1.1.1.7 mrg use iso_c_binding, only: c_int64_t, c_size_t, c_int
1574 1.1.1.7 mrg use openacc_internal, only: acc_copyout_async_l
1575 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1576 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1577 1.1.1.7 mrg type (*), dimension (*) :: a
1578 1.1.1.7 mrg integer (c_int64_t) len
1579 1.1.1.7 mrg integer (acc_handle_kind) async
1580 1.1.1.7 mrg call acc_copyout_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
1581 1.1.1.7 mrg end subroutine
1582 1.1.1.7 mrg
1583 1.1.1.7 mrg subroutine acc_copyout_async_array_h (a, async)
1584 1.1.1.7 mrg use iso_c_binding, only: c_int
1585 1.1.1.7 mrg use openacc_internal, only: acc_copyout_async_l
1586 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1587 1.1.1.7 mrg type (*), dimension (..), contiguous :: a
1588 1.1.1.7 mrg integer (acc_handle_kind) async
1589 1.1.1.7 mrg call acc_copyout_async_l (a, sizeof (a), int (async, kind = c_int))
1590 1.1.1.7 mrg end subroutine
1591 1.1.1.7 mrg
1592 1.1.1.7 mrg subroutine acc_delete_async_32_h (a, len, async)
1593 1.1.1.7 mrg use iso_c_binding, only: c_int32_t, c_size_t, c_int
1594 1.1.1.7 mrg use openacc_internal, only: acc_delete_async_l
1595 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1596 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1597 1.1.1.7 mrg type (*), dimension (*) :: a
1598 1.1.1.7 mrg integer (c_int32_t) len
1599 1.1.1.7 mrg integer (acc_handle_kind) async
1600 1.1.1.7 mrg call acc_delete_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
1601 1.1.1.7 mrg end subroutine
1602 1.1.1.7 mrg
1603 1.1.1.7 mrg subroutine acc_delete_async_64_h (a, len, async)
1604 1.1.1.7 mrg use iso_c_binding, only: c_int64_t, c_size_t, c_int
1605 1.1.1.7 mrg use openacc_internal, only: acc_delete_async_l
1606 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1607 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1608 1.1.1.7 mrg type (*), dimension (*) :: a
1609 1.1.1.7 mrg integer (c_int64_t) len
1610 1.1.1.7 mrg integer (acc_handle_kind) async
1611 1.1.1.7 mrg call acc_delete_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
1612 1.1.1.7 mrg end subroutine
1613 1.1.1.7 mrg
1614 1.1.1.7 mrg subroutine acc_delete_async_array_h (a, async)
1615 1.1.1.7 mrg use iso_c_binding, only: c_int
1616 1.1.1.7 mrg use openacc_internal, only: acc_delete_async_l
1617 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1618 1.1.1.7 mrg type (*), dimension (..), contiguous :: a
1619 1.1.1.7 mrg integer (acc_handle_kind) async
1620 1.1.1.7 mrg call acc_delete_async_l (a, sizeof (a), int (async, kind = c_int))
1621 1.1.1.7 mrg end subroutine
1622 1.1.1.7 mrg
1623 1.1.1.7 mrg subroutine acc_update_device_async_32_h (a, len, async)
1624 1.1.1.7 mrg use iso_c_binding, only: c_int32_t, c_size_t, c_int
1625 1.1.1.7 mrg use openacc_internal, only: acc_update_device_async_l
1626 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1627 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1628 1.1.1.7 mrg type (*), dimension (*) :: a
1629 1.1.1.7 mrg integer (c_int32_t) len
1630 1.1.1.7 mrg integer (acc_handle_kind) async
1631 1.1.1.7 mrg call acc_update_device_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
1632 1.1.1.7 mrg end subroutine
1633 1.1.1.7 mrg
1634 1.1.1.7 mrg subroutine acc_update_device_async_64_h (a, len, async)
1635 1.1.1.7 mrg use iso_c_binding, only: c_int64_t, c_size_t, c_int
1636 1.1.1.7 mrg use openacc_internal, only: acc_update_device_async_l
1637 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1638 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1639 1.1.1.7 mrg type (*), dimension (*) :: a
1640 1.1.1.7 mrg integer (c_int64_t) len
1641 1.1.1.7 mrg integer (acc_handle_kind) async
1642 1.1.1.7 mrg call acc_update_device_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
1643 1.1.1.7 mrg end subroutine
1644 1.1.1.7 mrg
1645 1.1.1.7 mrg subroutine acc_update_device_async_array_h (a, async)
1646 1.1.1.7 mrg use iso_c_binding, only: c_int
1647 1.1.1.7 mrg use openacc_internal, only: acc_update_device_async_l
1648 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1649 1.1.1.7 mrg type (*), dimension (..), contiguous :: a
1650 1.1.1.7 mrg integer (acc_handle_kind) async
1651 1.1.1.7 mrg call acc_update_device_async_l (a, sizeof (a), int (async, kind = c_int))
1652 1.1.1.7 mrg end subroutine
1653 1.1.1.7 mrg
1654 1.1.1.7 mrg subroutine acc_update_self_async_32_h (a, len, async)
1655 1.1.1.7 mrg use iso_c_binding, only: c_int32_t, c_size_t, c_int
1656 1.1.1.7 mrg use openacc_internal, only: acc_update_self_async_l
1657 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1658 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1659 1.1.1.7 mrg type (*), dimension (*) :: a
1660 1.1.1.7 mrg integer (c_int32_t) len
1661 1.1.1.7 mrg integer (acc_handle_kind) async
1662 1.1.1.7 mrg call acc_update_self_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
1663 1.1.1.7 mrg end subroutine
1664 1.1.1.7 mrg
1665 1.1.1.7 mrg subroutine acc_update_self_async_64_h (a, len, async)
1666 1.1.1.7 mrg use iso_c_binding, only: c_int64_t, c_size_t, c_int
1667 1.1.1.7 mrg use openacc_internal, only: acc_update_self_async_l
1668 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1669 1.1.1.7 mrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
1670 1.1.1.7 mrg type (*), dimension (*) :: a
1671 1.1.1.7 mrg integer (c_int64_t) len
1672 1.1.1.7 mrg integer (acc_handle_kind) async
1673 1.1.1.7 mrg call acc_update_self_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
1674 1.1.1.7 mrg end subroutine
1675 1.1.1.7 mrg
1676 1.1.1.7 mrg subroutine acc_update_self_async_array_h (a, async)
1677 1.1.1.7 mrg use iso_c_binding, only: c_int
1678 1.1.1.7 mrg use openacc_internal, only: acc_update_self_async_l
1679 1.1.1.7 mrg use openacc_kinds, only: acc_handle_kind
1680 1.1.1.7 mrg type (*), dimension (..), contiguous :: a
1681 1.1.1.7 mrg integer (acc_handle_kind) async
1682 1.1.1.7 mrg call acc_update_self_async_l (a, sizeof (a), int (async, kind = c_int))
1683 1.1.1.7 mrg end subroutine
1684