omp_lib.f90.in revision 1.12 1 1.12 mrg ! Copyright (C) 2005-2022 Free Software Foundation, Inc.
2 1.1 mrg ! Contributed by Jakub Jelinek <jakub (a] redhat.com>.
3 1.1 mrg
4 1.5 mrg ! This file is part of the GNU Offloading and Multi Processing Library
5 1.5 mrg ! (libgomp).
6 1.1 mrg
7 1.1 mrg ! Libgomp is free software; you can redistribute it and/or modify it
8 1.1 mrg ! under the terms of the GNU General Public License as published by
9 1.1 mrg ! the Free Software Foundation; either version 3, or (at your option)
10 1.1 mrg ! any later version.
11 1.1 mrg
12 1.1 mrg ! Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
13 1.1 mrg ! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 1.1 mrg ! FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15 1.1 mrg ! more details.
16 1.1 mrg
17 1.1 mrg ! Under Section 7 of GPL version 3, you are granted additional
18 1.1 mrg ! permissions described in the GCC Runtime Library Exception, version
19 1.1 mrg ! 3.1, as published by the Free Software Foundation.
20 1.1 mrg
21 1.1 mrg ! You should have received a copy of the GNU General Public License and
22 1.1 mrg ! a copy of the GCC Runtime Library Exception along with this program;
23 1.1 mrg ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
24 1.1 mrg ! <http://www.gnu.org/licenses/>.
25 1.1 mrg
26 1.1 mrg module omp_lib_kinds
27 1.12 mrg use iso_c_binding, only: c_int, c_intptr_t
28 1.1 mrg implicit none
29 1.12 mrg private :: c_int, c_intptr_t
30 1.1 mrg integer, parameter :: omp_lock_kind = @OMP_LOCK_KIND@
31 1.1 mrg integer, parameter :: omp_nest_lock_kind = @OMP_NEST_LOCK_KIND@
32 1.1 mrg integer, parameter :: omp_sched_kind = 4
33 1.5 mrg integer, parameter :: omp_proc_bind_kind = 4
34 1.12 mrg integer, parameter :: omp_sync_hint_kind = 4
35 1.12 mrg integer, parameter :: omp_lock_hint_kind = omp_sync_hint_kind
36 1.10 mrg integer, parameter :: omp_pause_resource_kind = 4
37 1.12 mrg integer, parameter :: omp_allocator_handle_kind = c_intptr_t
38 1.12 mrg integer, parameter :: omp_alloctrait_key_kind = c_int
39 1.12 mrg integer, parameter :: omp_alloctrait_val_kind = c_intptr_t
40 1.12 mrg integer, parameter :: omp_memspace_handle_kind = c_intptr_t
41 1.12 mrg integer, parameter :: omp_depend_kind = @OMP_DEPEND_KIND@
42 1.12 mrg integer, parameter :: omp_event_handle_kind = c_intptr_t
43 1.5 mrg integer (omp_sched_kind), parameter :: omp_sched_static = 1
44 1.5 mrg integer (omp_sched_kind), parameter :: omp_sched_dynamic = 2
45 1.5 mrg integer (omp_sched_kind), parameter :: omp_sched_guided = 3
46 1.5 mrg integer (omp_sched_kind), parameter :: omp_sched_auto = 4
47 1.6 mrg integer (omp_proc_bind_kind), &
48 1.6 mrg parameter :: omp_proc_bind_false = 0
49 1.6 mrg integer (omp_proc_bind_kind), &
50 1.6 mrg parameter :: omp_proc_bind_true = 1
51 1.6 mrg integer (omp_proc_bind_kind), &
52 1.12 mrg parameter :: omp_proc_bind_primary = 2
53 1.12 mrg integer (omp_proc_bind_kind), &
54 1.6 mrg parameter :: omp_proc_bind_master = 2
55 1.6 mrg integer (omp_proc_bind_kind), &
56 1.6 mrg parameter :: omp_proc_bind_close = 3
57 1.6 mrg integer (omp_proc_bind_kind), &
58 1.6 mrg parameter :: omp_proc_bind_spread = 4
59 1.6 mrg integer (omp_lock_hint_kind), &
60 1.12 mrg parameter :: omp_sync_hint_none = 0
61 1.12 mrg integer (omp_lock_hint_kind), &
62 1.12 mrg parameter :: omp_lock_hint_none = omp_sync_hint_none
63 1.12 mrg integer (omp_lock_hint_kind), &
64 1.12 mrg parameter :: omp_sync_hint_uncontended = 1
65 1.12 mrg integer (omp_lock_hint_kind), &
66 1.12 mrg parameter :: omp_lock_hint_uncontended &
67 1.12 mrg = omp_sync_hint_uncontended
68 1.12 mrg integer (omp_lock_hint_kind), &
69 1.12 mrg parameter :: omp_sync_hint_contended = 2
70 1.12 mrg integer (omp_lock_hint_kind), &
71 1.12 mrg parameter :: omp_lock_hint_contended &
72 1.12 mrg = omp_sync_hint_contended
73 1.6 mrg integer (omp_lock_hint_kind), &
74 1.12 mrg parameter :: omp_sync_hint_nonspeculative = 4
75 1.6 mrg integer (omp_lock_hint_kind), &
76 1.12 mrg parameter :: omp_lock_hint_nonspeculative &
77 1.12 mrg = omp_sync_hint_nonspeculative
78 1.6 mrg integer (omp_lock_hint_kind), &
79 1.12 mrg parameter :: omp_sync_hint_speculative = 8
80 1.6 mrg integer (omp_lock_hint_kind), &
81 1.12 mrg parameter :: omp_lock_hint_speculative &
82 1.12 mrg = omp_sync_hint_speculative
83 1.10 mrg integer (kind=omp_pause_resource_kind), &
84 1.10 mrg parameter :: omp_pause_soft = 1
85 1.10 mrg integer (kind=omp_pause_resource_kind), &
86 1.10 mrg parameter :: omp_pause_hard = 2
87 1.12 mrg integer (kind=omp_alloctrait_key_kind), &
88 1.12 mrg parameter :: omp_atk_sync_hint = 1
89 1.12 mrg integer (kind=omp_alloctrait_key_kind), &
90 1.12 mrg parameter :: omp_atk_alignment = 2
91 1.12 mrg integer (kind=omp_alloctrait_key_kind), &
92 1.12 mrg parameter :: omp_atk_access = 3
93 1.12 mrg integer (kind=omp_alloctrait_key_kind), &
94 1.12 mrg parameter :: omp_atk_pool_size = 4
95 1.12 mrg integer (kind=omp_alloctrait_key_kind), &
96 1.12 mrg parameter :: omp_atk_fallback = 5
97 1.12 mrg integer (kind=omp_alloctrait_key_kind), &
98 1.12 mrg parameter :: omp_atk_fb_data = 6
99 1.12 mrg integer (kind=omp_alloctrait_key_kind), &
100 1.12 mrg parameter :: omp_atk_pinned = 7
101 1.12 mrg integer (kind=omp_alloctrait_key_kind), &
102 1.12 mrg parameter :: omp_atk_partition = 8
103 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
104 1.12 mrg parameter :: omp_atv_default = -1
105 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
106 1.12 mrg parameter :: omp_atv_false = 0
107 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
108 1.12 mrg parameter :: omp_atv_true = 1
109 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
110 1.12 mrg parameter :: omp_atv_contended = 3
111 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
112 1.12 mrg parameter :: omp_atv_uncontended = 4
113 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
114 1.12 mrg parameter :: omp_atv_serialized = 5
115 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
116 1.12 mrg parameter :: omp_atv_sequential = omp_atv_serialized
117 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
118 1.12 mrg parameter :: omp_atv_private = 6
119 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
120 1.12 mrg parameter :: omp_atv_all = 7
121 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
122 1.12 mrg parameter :: omp_atv_thread = 8
123 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
124 1.12 mrg parameter :: omp_atv_pteam = 9
125 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
126 1.12 mrg parameter :: omp_atv_cgroup = 10
127 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
128 1.12 mrg parameter :: omp_atv_default_mem_fb = 11
129 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
130 1.12 mrg parameter :: omp_atv_null_fb = 12
131 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
132 1.12 mrg parameter :: omp_atv_abort_fb = 13
133 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
134 1.12 mrg parameter :: omp_atv_allocator_fb = 14
135 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
136 1.12 mrg parameter :: omp_atv_environment = 15
137 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
138 1.12 mrg parameter :: omp_atv_nearest = 16
139 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
140 1.12 mrg parameter :: omp_atv_blocked = 17
141 1.12 mrg integer (kind=omp_alloctrait_val_kind), &
142 1.12 mrg parameter :: omp_atv_interleaved = 18
143 1.12 mrg integer (kind=omp_allocator_handle_kind), &
144 1.12 mrg parameter :: omp_null_allocator = 0
145 1.12 mrg integer (kind=omp_allocator_handle_kind), &
146 1.12 mrg parameter :: omp_default_mem_alloc = 1
147 1.12 mrg integer (kind=omp_allocator_handle_kind), &
148 1.12 mrg parameter :: omp_large_cap_mem_alloc = 2
149 1.12 mrg integer (kind=omp_allocator_handle_kind), &
150 1.12 mrg parameter :: omp_const_mem_alloc = 3
151 1.12 mrg integer (kind=omp_allocator_handle_kind), &
152 1.12 mrg parameter :: omp_high_bw_mem_alloc = 4
153 1.12 mrg integer (kind=omp_allocator_handle_kind), &
154 1.12 mrg parameter :: omp_low_lat_mem_alloc = 5
155 1.12 mrg integer (kind=omp_allocator_handle_kind), &
156 1.12 mrg parameter :: omp_cgroup_mem_alloc = 6
157 1.12 mrg integer (kind=omp_allocator_handle_kind), &
158 1.12 mrg parameter :: omp_pteam_mem_alloc = 7
159 1.12 mrg integer (kind=omp_allocator_handle_kind), &
160 1.12 mrg parameter :: omp_thread_mem_alloc = 8
161 1.12 mrg integer (omp_memspace_handle_kind), &
162 1.12 mrg parameter :: omp_default_mem_space = 0
163 1.12 mrg integer (omp_memspace_handle_kind), &
164 1.12 mrg parameter :: omp_large_cap_mem_space = 1
165 1.12 mrg integer (omp_memspace_handle_kind), &
166 1.12 mrg parameter :: omp_const_mem_space = 2
167 1.12 mrg integer (omp_memspace_handle_kind), &
168 1.12 mrg parameter :: omp_high_bw_mem_space = 3
169 1.12 mrg integer (omp_memspace_handle_kind), &
170 1.12 mrg parameter :: omp_low_lat_mem_space = 4
171 1.12 mrg
172 1.12 mrg type omp_alloctrait
173 1.12 mrg integer (kind=omp_alloctrait_key_kind) key
174 1.12 mrg integer (kind=omp_alloctrait_val_kind) value
175 1.12 mrg end type omp_alloctrait
176 1.1 mrg end module
177 1.1 mrg
178 1.1 mrg module omp_lib
179 1.1 mrg use omp_lib_kinds
180 1.1 mrg implicit none
181 1.8 mrg integer, parameter :: openmp_version = 201511
182 1.1 mrg
183 1.1 mrg interface
184 1.5 mrg subroutine omp_init_lock (svar)
185 1.1 mrg use omp_lib_kinds
186 1.5 mrg integer (omp_lock_kind), intent (out) :: svar
187 1.1 mrg end subroutine omp_init_lock
188 1.1 mrg end interface
189 1.1 mrg
190 1.1 mrg interface
191 1.6 mrg subroutine omp_init_lock_with_hint (svar, hint)
192 1.6 mrg use omp_lib_kinds
193 1.6 mrg integer (omp_lock_kind), intent (out) :: svar
194 1.6 mrg integer (omp_lock_hint_kind), intent (in) :: hint
195 1.6 mrg end subroutine omp_init_lock_with_hint
196 1.6 mrg end interface
197 1.6 mrg
198 1.6 mrg interface
199 1.5 mrg subroutine omp_init_nest_lock (nvar)
200 1.1 mrg use omp_lib_kinds
201 1.5 mrg integer (omp_nest_lock_kind), intent (out) :: nvar
202 1.1 mrg end subroutine omp_init_nest_lock
203 1.1 mrg end interface
204 1.1 mrg
205 1.1 mrg interface
206 1.6 mrg subroutine omp_init_nest_lock_with_hint (nvar, hint)
207 1.6 mrg use omp_lib_kinds
208 1.6 mrg integer (omp_nest_lock_kind), intent (out) :: nvar
209 1.6 mrg integer (omp_lock_hint_kind), intent (in) :: hint
210 1.6 mrg end subroutine omp_init_nest_lock_with_hint
211 1.6 mrg end interface
212 1.6 mrg
213 1.6 mrg interface
214 1.5 mrg subroutine omp_destroy_lock (svar)
215 1.1 mrg use omp_lib_kinds
216 1.5 mrg integer (omp_lock_kind), intent (inout) :: svar
217 1.1 mrg end subroutine omp_destroy_lock
218 1.1 mrg end interface
219 1.1 mrg
220 1.1 mrg interface
221 1.5 mrg subroutine omp_destroy_nest_lock (nvar)
222 1.1 mrg use omp_lib_kinds
223 1.5 mrg integer (omp_nest_lock_kind), intent (inout) :: nvar
224 1.1 mrg end subroutine omp_destroy_nest_lock
225 1.1 mrg end interface
226 1.1 mrg
227 1.1 mrg interface
228 1.5 mrg subroutine omp_set_lock (svar)
229 1.1 mrg use omp_lib_kinds
230 1.5 mrg integer (omp_lock_kind), intent (inout) :: svar
231 1.1 mrg end subroutine omp_set_lock
232 1.1 mrg end interface
233 1.1 mrg
234 1.1 mrg interface
235 1.5 mrg subroutine omp_set_nest_lock (nvar)
236 1.1 mrg use omp_lib_kinds
237 1.5 mrg integer (omp_nest_lock_kind), intent (inout) :: nvar
238 1.1 mrg end subroutine omp_set_nest_lock
239 1.1 mrg end interface
240 1.1 mrg
241 1.1 mrg interface
242 1.5 mrg subroutine omp_unset_lock (svar)
243 1.1 mrg use omp_lib_kinds
244 1.5 mrg integer (omp_lock_kind), intent (inout) :: svar
245 1.1 mrg end subroutine omp_unset_lock
246 1.1 mrg end interface
247 1.1 mrg
248 1.1 mrg interface
249 1.5 mrg subroutine omp_unset_nest_lock (nvar)
250 1.1 mrg use omp_lib_kinds
251 1.5 mrg integer (omp_nest_lock_kind), intent (inout) :: nvar
252 1.1 mrg end subroutine omp_unset_nest_lock
253 1.1 mrg end interface
254 1.1 mrg
255 1.1 mrg interface omp_set_dynamic
256 1.5 mrg subroutine omp_set_dynamic (dynamic_threads)
257 1.5 mrg logical (4), intent (in) :: dynamic_threads
258 1.1 mrg end subroutine omp_set_dynamic
259 1.5 mrg subroutine omp_set_dynamic_8 (dynamic_threads)
260 1.5 mrg logical (8), intent (in) :: dynamic_threads
261 1.1 mrg end subroutine omp_set_dynamic_8
262 1.1 mrg end interface
263 1.1 mrg
264 1.1 mrg interface omp_set_nested
265 1.5 mrg subroutine omp_set_nested (nested)
266 1.5 mrg logical (4), intent (in) :: nested
267 1.1 mrg end subroutine omp_set_nested
268 1.5 mrg subroutine omp_set_nested_8 (nested)
269 1.5 mrg logical (8), intent (in) :: nested
270 1.1 mrg end subroutine omp_set_nested_8
271 1.1 mrg end interface
272 1.1 mrg
273 1.1 mrg interface omp_set_num_threads
274 1.5 mrg subroutine omp_set_num_threads (num_threads)
275 1.5 mrg integer (4), intent (in) :: num_threads
276 1.1 mrg end subroutine omp_set_num_threads
277 1.5 mrg subroutine omp_set_num_threads_8 (num_threads)
278 1.5 mrg integer (8), intent (in) :: num_threads
279 1.1 mrg end subroutine omp_set_num_threads_8
280 1.1 mrg end interface
281 1.1 mrg
282 1.1 mrg interface
283 1.1 mrg function omp_get_dynamic ()
284 1.3 mrg logical (4) :: omp_get_dynamic
285 1.1 mrg end function omp_get_dynamic
286 1.1 mrg end interface
287 1.1 mrg
288 1.1 mrg interface
289 1.1 mrg function omp_get_nested ()
290 1.3 mrg logical (4) :: omp_get_nested
291 1.1 mrg end function omp_get_nested
292 1.1 mrg end interface
293 1.1 mrg
294 1.1 mrg interface
295 1.1 mrg function omp_in_parallel ()
296 1.3 mrg logical (4) :: omp_in_parallel
297 1.1 mrg end function omp_in_parallel
298 1.1 mrg end interface
299 1.1 mrg
300 1.1 mrg interface
301 1.5 mrg function omp_test_lock (svar)
302 1.1 mrg use omp_lib_kinds
303 1.3 mrg logical (4) :: omp_test_lock
304 1.5 mrg integer (omp_lock_kind), intent (inout) :: svar
305 1.1 mrg end function omp_test_lock
306 1.1 mrg end interface
307 1.1 mrg
308 1.1 mrg interface
309 1.1 mrg function omp_get_max_threads ()
310 1.3 mrg integer (4) :: omp_get_max_threads
311 1.1 mrg end function omp_get_max_threads
312 1.1 mrg end interface
313 1.1 mrg
314 1.1 mrg interface
315 1.1 mrg function omp_get_num_procs ()
316 1.3 mrg integer (4) :: omp_get_num_procs
317 1.1 mrg end function omp_get_num_procs
318 1.1 mrg end interface
319 1.1 mrg
320 1.1 mrg interface
321 1.1 mrg function omp_get_num_threads ()
322 1.3 mrg integer (4) :: omp_get_num_threads
323 1.1 mrg end function omp_get_num_threads
324 1.1 mrg end interface
325 1.1 mrg
326 1.1 mrg interface
327 1.1 mrg function omp_get_thread_num ()
328 1.3 mrg integer (4) :: omp_get_thread_num
329 1.1 mrg end function omp_get_thread_num
330 1.1 mrg end interface
331 1.1 mrg
332 1.1 mrg interface
333 1.5 mrg function omp_test_nest_lock (nvar)
334 1.1 mrg use omp_lib_kinds
335 1.3 mrg integer (4) :: omp_test_nest_lock
336 1.5 mrg integer (omp_nest_lock_kind), intent (inout) :: nvar
337 1.1 mrg end function omp_test_nest_lock
338 1.1 mrg end interface
339 1.1 mrg
340 1.1 mrg interface
341 1.1 mrg function omp_get_wtick ()
342 1.1 mrg double precision :: omp_get_wtick
343 1.1 mrg end function omp_get_wtick
344 1.1 mrg end interface
345 1.1 mrg
346 1.1 mrg interface
347 1.1 mrg function omp_get_wtime ()
348 1.1 mrg double precision :: omp_get_wtime
349 1.1 mrg end function omp_get_wtime
350 1.1 mrg end interface
351 1.1 mrg
352 1.1 mrg interface omp_set_schedule
353 1.6 mrg subroutine omp_set_schedule (kind, chunk_size)
354 1.1 mrg use omp_lib_kinds
355 1.1 mrg integer (omp_sched_kind), intent (in) :: kind
356 1.6 mrg integer (4), intent (in) :: chunk_size
357 1.1 mrg end subroutine omp_set_schedule
358 1.6 mrg subroutine omp_set_schedule_8 (kind, chunk_size)
359 1.1 mrg use omp_lib_kinds
360 1.1 mrg integer (omp_sched_kind), intent (in) :: kind
361 1.6 mrg integer (8), intent (in) :: chunk_size
362 1.1 mrg end subroutine omp_set_schedule_8
363 1.1 mrg end interface
364 1.1 mrg
365 1.1 mrg interface omp_get_schedule
366 1.6 mrg subroutine omp_get_schedule (kind, chunk_size)
367 1.1 mrg use omp_lib_kinds
368 1.1 mrg integer (omp_sched_kind), intent (out) :: kind
369 1.6 mrg integer (4), intent (out) :: chunk_size
370 1.1 mrg end subroutine omp_get_schedule
371 1.6 mrg subroutine omp_get_schedule_8 (kind, chunk_size)
372 1.1 mrg use omp_lib_kinds
373 1.1 mrg integer (omp_sched_kind), intent (out) :: kind
374 1.6 mrg integer (8), intent (out) :: chunk_size
375 1.1 mrg end subroutine omp_get_schedule_8
376 1.1 mrg end interface
377 1.1 mrg
378 1.1 mrg interface
379 1.1 mrg function omp_get_thread_limit ()
380 1.3 mrg integer (4) :: omp_get_thread_limit
381 1.1 mrg end function omp_get_thread_limit
382 1.1 mrg end interface
383 1.1 mrg
384 1.1 mrg interface omp_set_max_active_levels
385 1.1 mrg subroutine omp_set_max_active_levels (max_levels)
386 1.1 mrg integer (4), intent (in) :: max_levels
387 1.1 mrg end subroutine omp_set_max_active_levels
388 1.1 mrg subroutine omp_set_max_active_levels_8 (max_levels)
389 1.1 mrg integer (8), intent (in) :: max_levels
390 1.1 mrg end subroutine omp_set_max_active_levels_8
391 1.1 mrg end interface
392 1.1 mrg
393 1.1 mrg interface
394 1.1 mrg function omp_get_max_active_levels ()
395 1.3 mrg integer (4) :: omp_get_max_active_levels
396 1.1 mrg end function omp_get_max_active_levels
397 1.1 mrg end interface
398 1.1 mrg
399 1.1 mrg interface
400 1.12 mrg function omp_get_supported_active_levels ()
401 1.12 mrg integer (4) :: omp_get_supported_active_levels
402 1.12 mrg end function omp_get_supported_active_levels
403 1.12 mrg end interface
404 1.12 mrg
405 1.12 mrg interface
406 1.1 mrg function omp_get_level ()
407 1.3 mrg integer (4) :: omp_get_level
408 1.1 mrg end function omp_get_level
409 1.1 mrg end interface
410 1.1 mrg
411 1.1 mrg interface omp_get_ancestor_thread_num
412 1.1 mrg function omp_get_ancestor_thread_num (level)
413 1.1 mrg integer (4), intent (in) :: level
414 1.3 mrg integer (4) :: omp_get_ancestor_thread_num
415 1.1 mrg end function omp_get_ancestor_thread_num
416 1.1 mrg function omp_get_ancestor_thread_num_8 (level)
417 1.1 mrg integer (8), intent (in) :: level
418 1.3 mrg integer (4) :: omp_get_ancestor_thread_num_8
419 1.1 mrg end function omp_get_ancestor_thread_num_8
420 1.1 mrg end interface
421 1.1 mrg
422 1.1 mrg interface omp_get_team_size
423 1.1 mrg function omp_get_team_size (level)
424 1.1 mrg integer (4), intent (in) :: level
425 1.3 mrg integer (4) :: omp_get_team_size
426 1.1 mrg end function omp_get_team_size
427 1.1 mrg function omp_get_team_size_8 (level)
428 1.1 mrg integer (8), intent (in) :: level
429 1.3 mrg integer (4) :: omp_get_team_size_8
430 1.1 mrg end function omp_get_team_size_8
431 1.1 mrg end interface
432 1.1 mrg
433 1.1 mrg interface
434 1.1 mrg function omp_get_active_level ()
435 1.3 mrg integer (4) :: omp_get_active_level
436 1.1 mrg end function omp_get_active_level
437 1.1 mrg end interface
438 1.1 mrg
439 1.3 mrg interface
440 1.3 mrg function omp_in_final ()
441 1.3 mrg logical (4) :: omp_in_final
442 1.3 mrg end function omp_in_final
443 1.3 mrg end interface
444 1.3 mrg
445 1.5 mrg interface
446 1.5 mrg function omp_get_cancellation ()
447 1.5 mrg logical (4) :: omp_get_cancellation
448 1.5 mrg end function omp_get_cancellation
449 1.5 mrg end interface
450 1.5 mrg
451 1.5 mrg interface
452 1.5 mrg function omp_get_proc_bind ()
453 1.5 mrg use omp_lib_kinds
454 1.5 mrg integer (omp_proc_bind_kind) :: omp_get_proc_bind
455 1.5 mrg end function omp_get_proc_bind
456 1.5 mrg end interface
457 1.5 mrg
458 1.6 mrg interface
459 1.6 mrg function omp_get_num_places ()
460 1.6 mrg integer (4) :: omp_get_num_places
461 1.6 mrg end function omp_get_num_places
462 1.6 mrg end interface
463 1.6 mrg
464 1.6 mrg interface omp_get_place_num_procs
465 1.6 mrg function omp_get_place_num_procs (place_num)
466 1.6 mrg integer (4), intent(in) :: place_num
467 1.6 mrg integer (4) :: omp_get_place_num_procs
468 1.6 mrg end function omp_get_place_num_procs
469 1.6 mrg
470 1.6 mrg function omp_get_place_num_procs_8 (place_num)
471 1.6 mrg integer (8), intent(in) :: place_num
472 1.6 mrg integer (4) :: omp_get_place_num_procs_8
473 1.6 mrg end function omp_get_place_num_procs_8
474 1.6 mrg end interface
475 1.6 mrg
476 1.6 mrg interface omp_get_place_proc_ids
477 1.6 mrg subroutine omp_get_place_proc_ids (place_num, ids)
478 1.6 mrg integer (4), intent(in) :: place_num
479 1.6 mrg integer (4), intent(out) :: ids(*)
480 1.6 mrg end subroutine omp_get_place_proc_ids
481 1.6 mrg
482 1.6 mrg subroutine omp_get_place_proc_ids_8 (place_num, ids)
483 1.6 mrg integer (8), intent(in) :: place_num
484 1.6 mrg integer (8), intent(out) :: ids(*)
485 1.6 mrg end subroutine omp_get_place_proc_ids_8
486 1.6 mrg end interface
487 1.6 mrg
488 1.6 mrg interface
489 1.6 mrg function omp_get_place_num ()
490 1.6 mrg integer (4) :: omp_get_place_num
491 1.6 mrg end function omp_get_place_num
492 1.6 mrg end interface
493 1.6 mrg
494 1.6 mrg interface
495 1.6 mrg function omp_get_partition_num_places ()
496 1.6 mrg integer (4) :: omp_get_partition_num_places
497 1.6 mrg end function omp_get_partition_num_places
498 1.6 mrg end interface
499 1.6 mrg
500 1.6 mrg interface omp_get_partition_place_nums
501 1.6 mrg subroutine omp_get_partition_place_nums (place_nums)
502 1.6 mrg integer (4), intent(out) :: place_nums(*)
503 1.6 mrg end subroutine omp_get_partition_place_nums
504 1.6 mrg
505 1.6 mrg subroutine omp_get_partition_place_nums_8 (place_nums)
506 1.6 mrg integer (8), intent(out) :: place_nums(*)
507 1.6 mrg end subroutine omp_get_partition_place_nums_8
508 1.6 mrg end interface
509 1.6 mrg
510 1.5 mrg interface omp_set_default_device
511 1.5 mrg subroutine omp_set_default_device (device_num)
512 1.5 mrg integer (4), intent (in) :: device_num
513 1.5 mrg end subroutine omp_set_default_device
514 1.5 mrg subroutine omp_set_default_device_8 (device_num)
515 1.5 mrg integer (8), intent (in) :: device_num
516 1.5 mrg end subroutine omp_set_default_device_8
517 1.5 mrg end interface
518 1.5 mrg
519 1.5 mrg interface
520 1.5 mrg function omp_get_default_device ()
521 1.5 mrg integer (4) :: omp_get_default_device
522 1.5 mrg end function omp_get_default_device
523 1.5 mrg end interface
524 1.5 mrg
525 1.5 mrg interface
526 1.5 mrg function omp_get_num_devices ()
527 1.5 mrg integer (4) :: omp_get_num_devices
528 1.5 mrg end function omp_get_num_devices
529 1.5 mrg end interface
530 1.5 mrg
531 1.5 mrg interface
532 1.5 mrg function omp_get_num_teams ()
533 1.5 mrg integer (4) :: omp_get_num_teams
534 1.5 mrg end function omp_get_num_teams
535 1.5 mrg end interface
536 1.5 mrg
537 1.5 mrg interface
538 1.5 mrg function omp_get_team_num ()
539 1.5 mrg integer (4) :: omp_get_team_num
540 1.5 mrg end function omp_get_team_num
541 1.5 mrg end interface
542 1.5 mrg
543 1.5 mrg interface
544 1.5 mrg function omp_is_initial_device ()
545 1.5 mrg logical (4) :: omp_is_initial_device
546 1.5 mrg end function omp_is_initial_device
547 1.5 mrg end interface
548 1.5 mrg
549 1.6 mrg interface
550 1.6 mrg function omp_get_initial_device ()
551 1.6 mrg integer (4) :: omp_get_initial_device
552 1.6 mrg end function omp_get_initial_device
553 1.6 mrg end interface
554 1.6 mrg
555 1.6 mrg interface
556 1.12 mrg function omp_get_device_num ()
557 1.12 mrg integer (4) :: omp_get_device_num
558 1.12 mrg end function omp_get_device_num
559 1.12 mrg end interface
560 1.12 mrg
561 1.12 mrg interface
562 1.6 mrg function omp_get_max_task_priority ()
563 1.6 mrg integer (4) :: omp_get_max_task_priority
564 1.6 mrg end function omp_get_max_task_priority
565 1.6 mrg end interface
566 1.6 mrg
567 1.12 mrg interface omp_set_num_teams
568 1.12 mrg subroutine omp_set_num_teams (num_teams)
569 1.12 mrg integer (4), intent (in) :: num_teams
570 1.12 mrg end subroutine omp_set_num_teams
571 1.12 mrg subroutine omp_set_num_teams_8 (num_teams)
572 1.12 mrg integer (8), intent (in) :: num_teams
573 1.12 mrg end subroutine omp_set_num_teams_8
574 1.12 mrg end interface
575 1.12 mrg
576 1.12 mrg interface
577 1.12 mrg function omp_get_max_teams ()
578 1.12 mrg integer (4) :: omp_get_max_teams
579 1.12 mrg end function omp_get_max_teams
580 1.12 mrg end interface
581 1.12 mrg
582 1.12 mrg interface omp_set_teams_thread_limit
583 1.12 mrg subroutine omp_set_teams_thread_limit (thread_limit)
584 1.12 mrg integer (4), intent (in) :: thread_limit
585 1.12 mrg end subroutine omp_set_teams_thread_limit
586 1.12 mrg subroutine omp_set_teams_thread_limit_8 (thread_limit)
587 1.12 mrg integer (8), intent (in) :: thread_limit
588 1.12 mrg end subroutine omp_set_teams_thread_limit_8
589 1.12 mrg end interface
590 1.12 mrg
591 1.12 mrg interface
592 1.12 mrg function omp_get_teams_thread_limit ()
593 1.12 mrg integer (4) :: omp_get_teams_thread_limit
594 1.12 mrg end function omp_get_teams_thread_limit
595 1.12 mrg end interface
596 1.12 mrg
597 1.12 mrg interface
598 1.12 mrg subroutine omp_fulfill_event (event)
599 1.12 mrg use omp_lib_kinds
600 1.12 mrg integer (kind=omp_event_handle_kind), &
601 1.12 mrg value, intent(in) :: event
602 1.12 mrg end subroutine omp_fulfill_event
603 1.12 mrg end interface
604 1.12 mrg
605 1.10 mrg interface
606 1.10 mrg subroutine omp_set_affinity_format (format)
607 1.10 mrg character(len=*), intent(in) :: format
608 1.10 mrg end subroutine omp_set_affinity_format
609 1.10 mrg end interface
610 1.10 mrg
611 1.10 mrg interface
612 1.10 mrg function omp_get_affinity_format (buffer)
613 1.10 mrg integer (4) :: omp_get_affinity_format
614 1.10 mrg character(len=*), intent(out) :: buffer
615 1.10 mrg end function omp_get_affinity_format
616 1.10 mrg end interface
617 1.10 mrg
618 1.10 mrg interface
619 1.10 mrg subroutine omp_display_affinity (format)
620 1.10 mrg character(len=*), intent(in) :: format
621 1.10 mrg end subroutine omp_display_affinity
622 1.10 mrg end interface
623 1.10 mrg
624 1.10 mrg interface
625 1.10 mrg function omp_capture_affinity (buffer, format)
626 1.10 mrg integer (4) :: omp_capture_affinity
627 1.10 mrg character(len=*), intent(out) :: buffer
628 1.10 mrg character(len=*), intent(in) :: format
629 1.10 mrg end function omp_capture_affinity
630 1.10 mrg end interface
631 1.10 mrg
632 1.10 mrg interface
633 1.10 mrg function omp_pause_resource (kind, device_num)
634 1.10 mrg use omp_lib_kinds
635 1.10 mrg integer (4) :: omp_pause_resource
636 1.10 mrg integer (kind=omp_pause_resource_kind), &
637 1.10 mrg intent(in) :: kind
638 1.10 mrg integer (4) :: device_num
639 1.10 mrg end function
640 1.10 mrg end interface
641 1.10 mrg
642 1.10 mrg interface
643 1.10 mrg function omp_pause_resource_all (kind)
644 1.10 mrg use omp_lib_kinds
645 1.10 mrg integer (4) :: omp_pause_resource_all
646 1.10 mrg integer (kind=omp_pause_resource_kind), &
647 1.10 mrg intent(in) :: kind
648 1.10 mrg end function
649 1.10 mrg end interface
650 1.10 mrg
651 1.12 mrg interface omp_init_allocator
652 1.12 mrg function omp_init_allocator (memspace, ntraits, traits)
653 1.12 mrg use omp_lib_kinds
654 1.12 mrg integer (kind=omp_allocator_handle_kind) omp_init_allocator
655 1.12 mrg integer (kind=omp_memspace_handle_kind), &
656 1.12 mrg intent(in) :: memspace
657 1.12 mrg integer (4), intent(in) :: ntraits
658 1.12 mrg type (omp_alloctrait), intent(in) :: traits(*)
659 1.12 mrg end function
660 1.12 mrg function omp_init_allocator_8 (memspace, ntraits, traits)
661 1.12 mrg use omp_lib_kinds
662 1.12 mrg integer (kind=omp_allocator_handle_kind) omp_init_allocator_8
663 1.12 mrg integer (kind=omp_memspace_handle_kind), &
664 1.12 mrg intent(in) :: memspace
665 1.12 mrg integer (8), intent(in) :: ntraits
666 1.12 mrg type (omp_alloctrait), intent(in) :: traits(*)
667 1.12 mrg end function
668 1.12 mrg end interface
669 1.12 mrg
670 1.12 mrg interface
671 1.12 mrg subroutine omp_destroy_allocator (allocator)
672 1.12 mrg use omp_lib_kinds
673 1.12 mrg integer (kind=omp_allocator_handle_kind), &
674 1.12 mrg intent(in) :: allocator
675 1.12 mrg end subroutine
676 1.12 mrg end interface
677 1.12 mrg
678 1.12 mrg interface
679 1.12 mrg subroutine omp_set_default_allocator (allocator)
680 1.12 mrg use omp_lib_kinds
681 1.12 mrg integer (kind=omp_allocator_handle_kind), &
682 1.12 mrg intent(in) :: allocator
683 1.12 mrg end subroutine
684 1.12 mrg end interface
685 1.12 mrg
686 1.12 mrg interface
687 1.12 mrg function omp_get_default_allocator ()
688 1.12 mrg use omp_lib_kinds
689 1.12 mrg integer (kind=omp_allocator_handle_kind) &
690 1.12 mrg omp_get_default_allocator
691 1.12 mrg end function
692 1.12 mrg end interface
693 1.12 mrg
694 1.12 mrg interface omp_display_env
695 1.12 mrg subroutine omp_display_env (verbose)
696 1.12 mrg logical (4),intent (in) :: verbose
697 1.12 mrg end subroutine omp_display_env
698 1.12 mrg subroutine omp_display_env_8 (verbose)
699 1.12 mrg logical (8),intent (in) :: verbose
700 1.12 mrg end subroutine omp_display_env_8
701 1.12 mrg end interface
702 1.12 mrg
703 1.12 mrg interface
704 1.12 mrg function omp_alloc (size, allocator) bind(c)
705 1.12 mrg use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
706 1.12 mrg import :: omp_allocator_handle_kind
707 1.12 mrg type(c_ptr) :: omp_alloc
708 1.12 mrg integer(c_size_t), value :: size
709 1.12 mrg integer(omp_allocator_handle_kind), value :: allocator
710 1.12 mrg end function omp_alloc
711 1.12 mrg end interface
712 1.12 mrg
713 1.12 mrg interface
714 1.12 mrg function omp_aligned_alloc (alignment, size, allocator) bind(c)
715 1.12 mrg use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
716 1.12 mrg import :: omp_allocator_handle_kind
717 1.12 mrg type(c_ptr) :: omp_aligned_alloc
718 1.12 mrg integer(c_size_t), value :: alignment, size
719 1.12 mrg integer(omp_allocator_handle_kind), value :: allocator
720 1.12 mrg end function omp_aligned_alloc
721 1.12 mrg end interface
722 1.12 mrg
723 1.12 mrg interface
724 1.12 mrg subroutine omp_free(ptr, allocator) bind(c)
725 1.12 mrg use, intrinsic :: iso_c_binding, only : c_ptr
726 1.12 mrg import :: omp_allocator_handle_kind
727 1.12 mrg type(c_ptr), value :: ptr
728 1.12 mrg integer(omp_allocator_handle_kind), value :: allocator
729 1.12 mrg end subroutine omp_free
730 1.12 mrg end interface
731 1.12 mrg
732 1.12 mrg interface
733 1.12 mrg function omp_calloc (nmemb, size, allocator) bind(c)
734 1.12 mrg use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
735 1.12 mrg import :: omp_allocator_handle_kind
736 1.12 mrg type(c_ptr) :: omp_calloc
737 1.12 mrg integer(c_size_t), value :: nmemb, size
738 1.12 mrg integer(omp_allocator_handle_kind), value :: allocator
739 1.12 mrg end function omp_calloc
740 1.12 mrg end interface
741 1.12 mrg
742 1.12 mrg interface
743 1.12 mrg function omp_aligned_calloc (alignment, nmemb, size, allocator) bind(c)
744 1.12 mrg use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
745 1.12 mrg import :: omp_allocator_handle_kind
746 1.12 mrg type(c_ptr) :: omp_aligned_calloc
747 1.12 mrg integer(c_size_t), value :: alignment, nmemb, size
748 1.12 mrg integer(omp_allocator_handle_kind), value :: allocator
749 1.12 mrg end function omp_aligned_calloc
750 1.12 mrg end interface
751 1.12 mrg
752 1.12 mrg interface
753 1.12 mrg function omp_realloc (ptr, size, allocator, free_allocator) bind(c)
754 1.12 mrg use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
755 1.12 mrg import :: omp_allocator_handle_kind
756 1.12 mrg type(c_ptr) :: omp_realloc
757 1.12 mrg type(c_ptr), value :: ptr
758 1.12 mrg integer(c_size_t), value :: size
759 1.12 mrg integer(omp_allocator_handle_kind), value :: allocator, free_allocator
760 1.12 mrg end function omp_realloc
761 1.12 mrg end interface
762 1.12 mrg
763 1.12 mrg interface
764 1.12 mrg function omp_target_alloc (size, device_num) bind(c)
765 1.12 mrg use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
766 1.12 mrg type(c_ptr) :: omp_target_alloc
767 1.12 mrg integer(c_size_t), value :: size
768 1.12 mrg integer(c_int), value :: device_num
769 1.12 mrg end function omp_target_alloc
770 1.12 mrg end interface
771 1.12 mrg
772 1.12 mrg interface
773 1.12 mrg subroutine omp_target_free (device_ptr, device_num) bind(c)
774 1.12 mrg use, intrinsic :: iso_c_binding, only : c_ptr, c_int
775 1.12 mrg type(c_ptr), value :: device_ptr
776 1.12 mrg integer(c_int), value :: device_num
777 1.12 mrg end subroutine omp_target_free
778 1.12 mrg end interface
779 1.12 mrg
780 1.12 mrg interface
781 1.12 mrg function omp_target_is_present (ptr, device_num) bind(c)
782 1.12 mrg use, intrinsic :: iso_c_binding, only : c_ptr, c_int
783 1.12 mrg integer(c_int) :: omp_target_is_present
784 1.12 mrg type(c_ptr), value :: ptr
785 1.12 mrg integer(c_int), value :: device_num
786 1.12 mrg end function omp_target_is_present
787 1.12 mrg end interface
788 1.12 mrg
789 1.12 mrg interface
790 1.12 mrg function omp_target_memcpy (dst, src, length, dst_offset, &
791 1.12 mrg src_offset, dst_device_num, &
792 1.12 mrg src_device_num) bind(c)
793 1.12 mrg use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
794 1.12 mrg integer(c_int) :: omp_target_memcpy
795 1.12 mrg type(c_ptr), value :: dst, src
796 1.12 mrg integer(c_size_t), value :: length, dst_offset, src_offset
797 1.12 mrg integer(c_int), value :: dst_device_num, src_device_num
798 1.12 mrg end function omp_target_memcpy
799 1.12 mrg end interface
800 1.12 mrg
801 1.12 mrg interface
802 1.12 mrg function omp_target_memcpy_rect (dst,src,element_size, num_dims, &
803 1.12 mrg volume, dst_offsets, src_offsets, &
804 1.12 mrg dst_dimensions, src_dimensions, &
805 1.12 mrg dst_device_num, src_device_num) &
806 1.12 mrg bind(c)
807 1.12 mrg use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
808 1.12 mrg integer(c_int) :: omp_target_memcpy_rect
809 1.12 mrg type(c_ptr), value :: dst, src
810 1.12 mrg integer(c_size_t), value :: element_size
811 1.12 mrg integer(c_int), value :: num_dims, dst_device_num, src_device_num
812 1.12 mrg integer(c_size_t), intent(in) :: volume(*), dst_offsets(*), &
813 1.12 mrg src_offsets(*), dst_dimensions(*), &
814 1.12 mrg src_dimensions(*)
815 1.12 mrg end function omp_target_memcpy_rect
816 1.12 mrg end interface
817 1.12 mrg
818 1.12 mrg interface
819 1.12 mrg function omp_target_associate_ptr (host_ptr, device_ptr, size, &
820 1.12 mrg device_offset, device_num) bind(c)
821 1.12 mrg use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
822 1.12 mrg integer(c_int) :: omp_target_associate_ptr
823 1.12 mrg type(c_ptr), value :: host_ptr, device_ptr
824 1.12 mrg integer(c_size_t), value :: size, device_offset
825 1.12 mrg integer(c_int), value :: device_num
826 1.12 mrg end function omp_target_associate_ptr
827 1.12 mrg end interface
828 1.12 mrg
829 1.12 mrg interface
830 1.12 mrg function omp_target_disassociate_ptr (ptr, device_num) bind(c)
831 1.12 mrg use, intrinsic :: iso_c_binding, only : c_ptr, c_int
832 1.12 mrg integer(c_int) :: omp_target_disassociate_ptr
833 1.12 mrg type(c_ptr), value :: ptr
834 1.12 mrg integer(c_int), value :: device_num
835 1.12 mrg end function omp_target_disassociate_ptr
836 1.12 mrg end interface
837 1.12 mrg
838 1.12 mrg #if _OPENMP >= 201811
839 1.12 mrg !GCC$ ATTRIBUTES DEPRECATED :: omp_get_nested, omp_set_nested
840 1.12 mrg #endif
841 1.12 mrg
842 1.12 mrg #if _OPENMP >= 202011
843 1.12 mrg !GCC$ ATTRIBUTES DEPRECATED :: omp_proc_bind_master, omp_atv_sequential
844 1.12 mrg #endif
845 1.12 mrg
846 1.1 mrg end module omp_lib
847