annotate libgomp/openacc.f90 @ 158:494b0b89df80 default tip

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