]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/openmp/runtime/src/include/omp_lib.f.var
MFC r355940:
[FreeBSD/FreeBSD.git] / contrib / llvm-project / openmp / runtime / src / include / omp_lib.f.var
1 ! include/omp_lib.f.var
2
3 !
4 !//===----------------------------------------------------------------------===//
5 !//
6 !// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
7 !// See https://llvm.org/LICENSE.txt for license information.
8 !// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
9 !//
10 !//===----------------------------------------------------------------------===//
11 !
12
13 !***
14 !*** Some of the directives for the following routine extend past column 72,
15 !*** so process this file in 132-column mode.
16 !***
17
18 !dec$ fixedformlinesize:132
19
20       module omp_lib_kinds
21
22         integer, parameter :: omp_integer_kind       = 4
23         integer, parameter :: omp_logical_kind       = 4
24         integer, parameter :: omp_real_kind          = 4
25         integer, parameter :: omp_lock_kind          = int_ptr_kind()
26         integer, parameter :: omp_nest_lock_kind     = int_ptr_kind()
27         integer, parameter :: omp_sched_kind         = omp_integer_kind
28         integer, parameter :: omp_proc_bind_kind     = omp_integer_kind
29         integer, parameter :: kmp_pointer_kind       = int_ptr_kind()
30         integer, parameter :: kmp_size_t_kind        = int_ptr_kind()
31         integer, parameter :: kmp_affinity_mask_kind = int_ptr_kind()
32         integer, parameter :: kmp_cancel_kind        = omp_integer_kind
33         integer, parameter :: omp_lock_hint_kind     = omp_integer_kind
34         integer, parameter :: omp_control_tool_kind  = omp_integer_kind
35         integer, parameter :: omp_control_tool_result_kind = omp_integer_kind
36         integer, parameter :: omp_allocator_handle_kind = int_ptr_kind()
37         integer, parameter :: omp_memspace_handle_kind = int_ptr_kind()
38         integer, parameter :: omp_alloctrait_key_kind = omp_integer_kind
39         integer, parameter :: omp_alloctrait_val_kind = int_ptr_kind()
40
41         type omp_alloctrait
42           integer(kind=omp_alloctrait_key_kind) key
43           integer(kind=omp_alloctrait_val_kind) value
44         end type omp_alloctrait
45
46         integer, parameter :: omp_pause_resource_kind = omp_integer_kind
47         integer, parameter :: omp_depend_kind = int_ptr_kind()
48         integer, parameter :: omp_event_handle_kind = int_ptr_kind()
49
50       end module omp_lib_kinds
51
52       module omp_lib
53
54         use omp_lib_kinds
55
56         integer (kind=omp_integer_kind), parameter :: kmp_version_major = @LIBOMP_VERSION_MAJOR@
57         integer (kind=omp_integer_kind), parameter :: kmp_version_minor = @LIBOMP_VERSION_MINOR@
58         integer (kind=omp_integer_kind), parameter :: kmp_version_build = @LIBOMP_VERSION_BUILD@
59         character(*), parameter :: kmp_build_date    = '@LIBOMP_BUILD_DATE@'
60         integer (kind=omp_integer_kind), parameter :: openmp_version    = @LIBOMP_OMP_YEAR_MONTH@
61
62         integer(kind=omp_sched_kind), parameter :: omp_sched_static  = 1
63         integer(kind=omp_sched_kind), parameter :: omp_sched_dynamic = 2
64         integer(kind=omp_sched_kind), parameter :: omp_sched_guided  = 3
65         integer(kind=omp_sched_kind), parameter :: omp_sched_auto    = 4
66         integer(kind=omp_sched_kind), parameter :: omp_sched_monotonic = Z'80000000'
67
68         integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_false = 0
69         integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_true = 1
70         integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_master = 2
71         integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_close = 3
72         integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_spread = 4
73
74         integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_parallel = 1
75         integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_loop = 2
76         integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_sections = 3
77         integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_taskgroup = 4
78
79         integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_none           = 0
80         integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_uncontended    = 1
81         integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_contended      = 2
82         integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_nonspeculative = 4
83         integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_speculative    = 8
84         integer (kind=omp_lock_hint_kind), parameter :: kmp_lock_hint_hle            = 65536
85         integer (kind=omp_lock_hint_kind), parameter :: kmp_lock_hint_rtm            = 131072
86         integer (kind=omp_lock_hint_kind), parameter :: kmp_lock_hint_adaptive       = 262144
87
88         integer (kind=omp_alloctrait_key_kind), parameter :: omp_atk_threadmodel = 1
89         integer (kind=omp_alloctrait_key_kind), parameter :: omp_atk_alignment = 2
90         integer (kind=omp_alloctrait_key_kind), parameter :: omp_atk_access = 3
91         integer (kind=omp_alloctrait_key_kind), parameter :: omp_atk_pool_size = 4
92         integer (kind=omp_alloctrait_key_kind), parameter :: omp_atk_fallback = 5
93         integer (kind=omp_alloctrait_key_kind), parameter :: omp_atk_fb_data = 6
94         integer (kind=omp_alloctrait_key_kind), parameter :: omp_atk_pinned = 7
95         integer (kind=omp_alloctrait_key_kind), parameter :: omp_atk_partition = 8
96
97         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_false = 0
98         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_true = 1
99         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_default = 2
100         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_contended = 3
101         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_uncontended = 4
102         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_sequential = 5
103         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_private = 6
104         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_all = 7
105         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_thread = 8
106         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_pteam = 9
107         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_cgroup = 10
108         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_default_mem_fb = 11
109         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_null_fb = 12
110         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_abort_fb = 13
111         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_allocator_fb = 14
112         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_environment = 15
113         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_nearest = 16
114         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_blocked = 17
115         integer (kind=omp_alloctrait_val_kind), parameter :: omp_atv_interleaved = 18
116
117         integer (kind=omp_allocator_handle_kind), parameter :: omp_null_allocator = 0
118         integer (kind=omp_allocator_handle_kind), parameter :: omp_default_mem_alloc = 1
119         integer (kind=omp_allocator_handle_kind), parameter :: omp_large_cap_mem_alloc = 2
120         integer (kind=omp_allocator_handle_kind), parameter :: omp_const_mem_alloc = 3
121         integer (kind=omp_allocator_handle_kind), parameter :: omp_high_bw_mem_alloc = 4
122         integer (kind=omp_allocator_handle_kind), parameter :: omp_low_lat_mem_alloc = 5
123         integer (kind=omp_allocator_handle_kind), parameter :: omp_cgroup_mem_alloc = 6
124         integer (kind=omp_allocator_handle_kind), parameter :: omp_pteam_mem_alloc = 7
125         integer (kind=omp_allocator_handle_kind), parameter :: omp_thread_mem_alloc = 8
126
127         integer (kind=omp_memspace_handle_kind), parameter :: omp_default_mem_space = 0
128         integer (kind=omp_memspace_handle_kind), parameter :: omp_large_cap_mem_space = 1
129         integer (kind=omp_memspace_handle_kind), parameter :: omp_const_mem_space = 2
130         integer (kind=omp_memspace_handle_kind), parameter :: omp_high_bw_mem_space = 3
131         integer (kind=omp_memspace_handle_kind), parameter :: omp_low_lat_mem_space = 4
132
133         integer (kind=omp_pause_resource_kind), parameter :: omp_pause_resume = 0
134         integer (kind=omp_pause_resource_kind), parameter :: omp_pause_soft = 1
135         integer (kind=omp_pause_resource_kind), parameter :: omp_pause_hard = 2
136
137         interface
138
139 !         ***
140 !         *** omp_* entry points
141 !         ***
142
143           subroutine omp_set_num_threads(num_threads)
144             use omp_lib_kinds
145             integer (kind=omp_integer_kind) num_threads
146           end subroutine omp_set_num_threads
147
148           subroutine omp_set_dynamic(dynamic_threads)
149             use omp_lib_kinds
150             logical (kind=omp_logical_kind) dynamic_threads
151           end subroutine omp_set_dynamic
152
153           subroutine omp_set_nested(nested)
154             use omp_lib_kinds
155             logical (kind=omp_logical_kind) nested
156           end subroutine omp_set_nested
157
158           function omp_get_num_threads()
159             use omp_lib_kinds
160             integer (kind=omp_integer_kind) omp_get_num_threads
161           end function omp_get_num_threads
162
163           function omp_get_max_threads()
164             use omp_lib_kinds
165             integer (kind=omp_integer_kind) omp_get_max_threads
166           end function omp_get_max_threads
167
168           function omp_get_thread_num()
169             use omp_lib_kinds
170             integer (kind=omp_integer_kind) omp_get_thread_num
171           end function omp_get_thread_num
172
173           function omp_get_num_procs()
174             use omp_lib_kinds
175             integer (kind=omp_integer_kind) omp_get_num_procs
176           end function omp_get_num_procs
177
178           function omp_in_parallel()
179             use omp_lib_kinds
180             logical (kind=omp_logical_kind) omp_in_parallel
181           end function omp_in_parallel
182
183           function omp_in_final()
184             use omp_lib_kinds
185             logical (kind=omp_logical_kind) omp_in_final
186           end function omp_in_final
187
188           function omp_get_dynamic()
189             use omp_lib_kinds
190             logical (kind=omp_logical_kind) omp_get_dynamic
191           end function omp_get_dynamic
192
193           function omp_get_nested()
194             use omp_lib_kinds
195             logical (kind=omp_logical_kind) omp_get_nested
196           end function omp_get_nested
197
198           function omp_get_thread_limit()
199             use omp_lib_kinds
200             integer (kind=omp_integer_kind) omp_get_thread_limit
201           end function omp_get_thread_limit
202
203           subroutine omp_set_max_active_levels(max_levels)
204             use omp_lib_kinds
205             integer (kind=omp_integer_kind) max_levels
206           end subroutine omp_set_max_active_levels
207
208           function omp_get_max_active_levels()
209             use omp_lib_kinds
210             integer (kind=omp_integer_kind) omp_get_max_active_levels
211           end function omp_get_max_active_levels
212
213           function omp_get_level()
214             use omp_lib_kinds
215             integer (kind=omp_integer_kind) omp_get_level
216           end function omp_get_level
217
218           function omp_get_active_level()
219             use omp_lib_kinds
220             integer (kind=omp_integer_kind) omp_get_active_level
221           end function omp_get_active_level
222
223           function omp_get_ancestor_thread_num(level)
224             use omp_lib_kinds
225             integer (kind=omp_integer_kind) level
226             integer (kind=omp_integer_kind) omp_get_ancestor_thread_num
227           end function omp_get_ancestor_thread_num
228
229           function omp_get_team_size(level)
230             use omp_lib_kinds
231             integer (kind=omp_integer_kind) level
232             integer (kind=omp_integer_kind) omp_get_team_size
233           end function omp_get_team_size
234
235           subroutine omp_set_schedule(kind, chunk_size)
236             use omp_lib_kinds
237             integer (kind=omp_sched_kind) kind
238             integer (kind=omp_integer_kind) chunk_size
239           end subroutine omp_set_schedule
240
241           subroutine omp_get_schedule(kind, chunk_size)
242             use omp_lib_kinds
243             integer (kind=omp_sched_kind) kind
244             integer (kind=omp_integer_kind) chunk_size
245           end subroutine omp_get_schedule
246
247           function omp_get_proc_bind()
248             use omp_lib_kinds
249             integer (kind=omp_proc_bind_kind) omp_get_proc_bind
250           end function omp_get_proc_bind
251
252           function omp_get_num_places()
253             use omp_lib_kinds
254             integer (kind=omp_integer_kind) omp_get_num_places
255           end function omp_get_num_places
256
257           function omp_get_place_num_procs(place_num)
258             use omp_lib_kinds
259             integer (kind=omp_integer_kind) place_num
260             integer (kind=omp_integer_kind) omp_get_place_num_procs
261           end function omp_get_place_num_procs
262
263           subroutine omp_get_place_proc_ids(place_num, ids)
264             use omp_lib_kinds
265             integer (kind=omp_integer_kind) place_num
266             integer (kind=omp_integer_kind) ids(*)
267           end subroutine omp_get_place_proc_ids
268
269           function omp_get_place_num()
270             use omp_lib_kinds
271             integer (kind=omp_integer_kind) omp_get_place_num
272           end function omp_get_place_num
273
274           function omp_get_partition_num_places()
275             use omp_lib_kinds
276             integer (kind=omp_integer_kind) omp_get_partition_num_places
277           end function omp_get_partition_num_places
278
279           subroutine omp_get_partition_place_nums(place_nums)
280             use omp_lib_kinds
281             integer (kind=omp_integer_kind) place_nums(*)
282           end subroutine omp_get_partition_place_nums
283
284           function omp_get_wtime()
285             double precision omp_get_wtime
286           end function omp_get_wtime
287
288           function omp_get_wtick ()
289             double precision omp_get_wtick
290           end function omp_get_wtick
291
292           function omp_get_default_device()
293             use omp_lib_kinds
294             integer (kind=omp_integer_kind) omp_get_default_device
295           end function omp_get_default_device
296
297           subroutine omp_set_default_device(device_num)
298             use omp_lib_kinds
299             integer (kind=omp_integer_kind) device_num
300           end subroutine omp_set_default_device
301
302           function omp_get_num_devices()
303             use omp_lib_kinds
304             integer (kind=omp_integer_kind) omp_get_num_devices
305           end function omp_get_num_devices
306
307           function omp_get_num_teams()
308             use omp_lib_kinds
309             integer (kind=omp_integer_kind) omp_get_num_teams
310           end function omp_get_num_teams
311
312           function omp_get_team_num()
313             use omp_lib_kinds
314             integer (kind=omp_integer_kind) omp_get_team_num
315           end function omp_get_team_num
316
317           function omp_get_cancellation()
318             use omp_lib_kinds
319             integer (kind=omp_integer_kind) omp_get_cancellation
320           end function omp_get_cancellation
321
322           function omp_is_initial_device()
323             use omp_lib_kinds
324             logical (kind=omp_logical_kind) omp_is_initial_device
325           end function omp_is_initial_device
326
327           function omp_get_initial_device()
328             use omp_lib_kinds
329             integer (kind=omp_integer_kind) omp_get_initial_device
330           end function omp_get_initial_device
331
332           function omp_get_device_num()
333             use omp_lib_kinds
334             integer (kind=omp_integer_kind) omp_get_device_num
335           end function omp_get_device_num
336
337           function omp_pause_resource(kind, device_num)
338             use omp_lib_kinds
339             integer (kind=omp_pause_resource_kind) kind
340             integer (kind=omp_integer_kind) device_num
341             integer (kind=omp_integer_kind) omp_pause_resource
342           end function omp_pause_resource
343
344           function omp_pause_resource_all(kind)
345             use omp_lib_kinds
346             integer (kind=omp_pause_resource_kind) kind
347             integer (kind=omp_integer_kind) omp_pause_resource_all
348           end function omp_pause_resource_all
349
350           function omp_get_supported_active_levels()
351             use omp_lib_kinds
352             integer (kind=omp_integer_kind) omp_get_supported_active_levels
353           end function omp_get_supported_active_levels
354
355           subroutine omp_fulfill_event(event)
356             use omp_lib_kinds
357             integer (kind=omp_event_handle_kind) event
358           end subroutine omp_fulfill_event
359
360           subroutine omp_init_lock(svar)
361 !DIR$ IF(__INTEL_COMPILER.GE.1400)
362 !DIR$ attributes known_intrinsic :: omp_init_lock
363 !DIR$ ENDIF
364             use omp_lib_kinds
365             integer (kind=omp_lock_kind) svar
366           end subroutine omp_init_lock
367
368           subroutine omp_destroy_lock(svar)
369 !DIR$ IF(__INTEL_COMPILER.GE.1400)
370 !DIR$ attributes known_intrinsic :: omp_destroy_lock
371 !DIR$ ENDIF
372             use omp_lib_kinds
373             integer (kind=omp_lock_kind) svar
374           end subroutine omp_destroy_lock
375
376           subroutine omp_set_lock(svar)
377 !DIR$ IF(__INTEL_COMPILER.GE.1400)
378 !DIR$ attributes known_intrinsic :: omp_set_lock
379 !DIR$ ENDIF
380             use omp_lib_kinds
381             integer (kind=omp_lock_kind) svar
382           end subroutine omp_set_lock
383
384           subroutine omp_unset_lock(svar)
385 !DIR$ IF(__INTEL_COMPILER.GE.1400)
386 !DIR$ attributes known_intrinsic :: omp_unset_lock
387 !DIR$ ENDIF
388             use omp_lib_kinds
389             integer (kind=omp_lock_kind) svar
390           end subroutine omp_unset_lock
391
392           function omp_test_lock(svar)
393 !DIR$ IF(__INTEL_COMPILER.GE.1400)
394 !DIR$ attributes known_intrinsic :: omp_test_lock
395 !DIR$ ENDIF
396             use omp_lib_kinds
397             logical (kind=omp_logical_kind) omp_test_lock
398             integer (kind=omp_lock_kind) svar
399           end function omp_test_lock
400
401           subroutine omp_init_nest_lock(nvar)
402 !DIR$ IF(__INTEL_COMPILER.GE.1400)
403 !DIR$ attributes known_intrinsic :: omp_init_nest_lock
404 !DIR$ ENDIF
405             use omp_lib_kinds
406             integer (kind=omp_nest_lock_kind) nvar
407           end subroutine omp_init_nest_lock
408
409           subroutine omp_destroy_nest_lock(nvar)
410 !DIR$ IF(__INTEL_COMPILER.GE.1400)
411 !DIR$ attributes known_intrinsic :: omp_destroy_nest_lock
412 !DIR$ ENDIF
413             use omp_lib_kinds
414             integer (kind=omp_nest_lock_kind) nvar
415           end subroutine omp_destroy_nest_lock
416
417           subroutine omp_set_nest_lock(nvar)
418 !DIR$ IF(__INTEL_COMPILER.GE.1400)
419 !DIR$ attributes known_intrinsic :: omp_set_nest_lock
420 !DIR$ ENDIF
421             use omp_lib_kinds
422             integer (kind=omp_nest_lock_kind) nvar
423           end subroutine omp_set_nest_lock
424
425           subroutine omp_unset_nest_lock(nvar)
426 !DIR$ IF(__INTEL_COMPILER.GE.1400)
427 !DIR$ attributes known_intrinsic :: omp_unset_nest_lock
428 !DIR$ ENDIF
429             use omp_lib_kinds
430             integer (kind=omp_nest_lock_kind) nvar
431           end subroutine omp_unset_nest_lock
432
433           function omp_test_nest_lock(nvar)
434 !DIR$ IF(__INTEL_COMPILER.GE.1400)
435 !DIR$ attributes known_intrinsic :: omp_test_nest_lock
436 !DIR$ ENDIF
437             use omp_lib_kinds
438             integer (kind=omp_integer_kind) omp_test_nest_lock
439             integer (kind=omp_nest_lock_kind) nvar
440           end function omp_test_nest_lock
441
442           function omp_get_max_task_priority()
443             use omp_lib_kinds
444             integer (kind=omp_integer_kind) omp_get_max_task_priority
445           end function omp_get_max_task_priority
446
447           function omp_init_allocator(memspace, ntraits, traits)
448             use omp_lib_kinds
449             integer (omp_allocator_handle_kind) omp_init_allocator
450             integer (omp_memspace_handle_kind) :: memspace
451             integer (omp_integer_kind) :: ntraits
452             type(omp_alloctrait), intent(in) :: traits(*)
453           end function omp_init_allocator
454
455           subroutine omp_destroy_allocator(allocator) bind(c)
456             use omp_lib_kinds
457             integer (omp_allocator_handle_kind), value :: allocator
458           end subroutine omp_destroy_allocator
459
460           subroutine omp_set_default_allocator(allocator) bind(c)
461             use omp_lib_kinds
462             integer (omp_allocator_handle_kind) allocator
463           end subroutine omp_set_default_allocator
464
465           function omp_get_default_allocator() bind(c)
466             use omp_lib_kinds
467             integer(omp_allocator_handle_kind)omp_get_default_allocator
468           end function omp_get_default_allocator
469
470           subroutine omp_set_affinity_format(format)
471             character (len=*) format
472           end subroutine omp_set_affinity_format
473
474           function omp_get_affinity_format(buffer)
475             use omp_lib_kinds
476             character (len=*) buffer
477             integer (kind=kmp_size_t_kind) omp_get_affinity_format
478           end function omp_get_affinity_format
479
480           subroutine omp_display_affinity(format)
481             character (len=*) format
482           end subroutine omp_display_affinity
483
484           function omp_capture_affinity(buffer, format)
485             use omp_lib_kinds
486             character (len=*) format
487             character (len=*) buffer
488             integer (kind=kmp_size_t_kind) omp_capture_affinity
489           end function omp_capture_affinity
490
491 !         ***
492 !         *** kmp_* entry points
493 !         ***
494
495           subroutine kmp_set_stacksize(size)
496             use omp_lib_kinds
497             integer (kind=omp_integer_kind) size
498           end subroutine kmp_set_stacksize
499
500           subroutine kmp_set_stacksize_s(size)
501             use omp_lib_kinds
502             integer (kind=kmp_size_t_kind) size
503           end subroutine kmp_set_stacksize_s
504
505           subroutine kmp_set_blocktime(msec)
506             use omp_lib_kinds
507             integer (kind=omp_integer_kind) msec
508           end subroutine kmp_set_blocktime
509
510           subroutine kmp_set_library_serial()
511           end subroutine kmp_set_library_serial
512
513           subroutine kmp_set_library_turnaround()
514           end subroutine kmp_set_library_turnaround
515
516           subroutine kmp_set_library_throughput()
517           end subroutine kmp_set_library_throughput
518
519           subroutine kmp_set_library(libnum)
520             use omp_lib_kinds
521             integer (kind=omp_integer_kind) libnum
522           end subroutine kmp_set_library
523
524           subroutine kmp_set_defaults(string)
525             character*(*) string
526           end subroutine kmp_set_defaults
527
528           function kmp_get_stacksize()
529             use omp_lib_kinds
530             integer (kind=omp_integer_kind) kmp_get_stacksize
531           end function kmp_get_stacksize
532
533           function kmp_get_stacksize_s()
534             use omp_lib_kinds
535             integer (kind=kmp_size_t_kind) kmp_get_stacksize_s
536           end function kmp_get_stacksize_s
537
538           function kmp_get_blocktime()
539             use omp_lib_kinds
540             integer (kind=omp_integer_kind) kmp_get_blocktime
541           end function kmp_get_blocktime
542
543           function kmp_get_library()
544             use omp_lib_kinds
545             integer (kind=omp_integer_kind) kmp_get_library
546           end function kmp_get_library
547
548           subroutine kmp_set_disp_num_buffers(num)
549             use omp_lib_kinds
550             integer (kind=omp_integer_kind) num
551           end subroutine kmp_set_disp_num_buffers
552
553           function kmp_set_affinity(mask)
554             use omp_lib_kinds
555             integer (kind=omp_integer_kind) kmp_set_affinity
556             integer (kind=kmp_affinity_mask_kind) mask
557           end function kmp_set_affinity
558
559           function kmp_get_affinity(mask)
560             use omp_lib_kinds
561             integer (kind=omp_integer_kind) kmp_get_affinity
562             integer (kind=kmp_affinity_mask_kind) mask
563           end function kmp_get_affinity
564
565           function kmp_get_affinity_max_proc()
566             use omp_lib_kinds
567             integer (kind=omp_integer_kind) kmp_get_affinity_max_proc
568           end function kmp_get_affinity_max_proc
569
570           subroutine kmp_create_affinity_mask(mask)
571             use omp_lib_kinds
572             integer (kind=kmp_affinity_mask_kind) mask
573           end subroutine kmp_create_affinity_mask
574
575           subroutine kmp_destroy_affinity_mask(mask)
576             use omp_lib_kinds
577             integer (kind=kmp_affinity_mask_kind) mask
578           end subroutine kmp_destroy_affinity_mask
579
580           function kmp_set_affinity_mask_proc(proc, mask)
581             use omp_lib_kinds
582             integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc
583             integer (kind=omp_integer_kind) proc
584             integer (kind=kmp_affinity_mask_kind) mask
585           end function kmp_set_affinity_mask_proc
586
587           function kmp_unset_affinity_mask_proc(proc, mask)
588             use omp_lib_kinds
589             integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc
590             integer (kind=omp_integer_kind) proc
591             integer (kind=kmp_affinity_mask_kind) mask
592           end function kmp_unset_affinity_mask_proc
593
594           function kmp_get_affinity_mask_proc(proc, mask)
595             use omp_lib_kinds
596             integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc
597             integer (kind=omp_integer_kind) proc
598             integer (kind=kmp_affinity_mask_kind) mask
599           end function kmp_get_affinity_mask_proc
600
601           function kmp_malloc(size)
602             use omp_lib_kinds
603             integer (kind=kmp_pointer_kind) kmp_malloc
604             integer (kind=kmp_size_t_kind) size
605           end function kmp_malloc
606
607           function kmp_aligned_malloc(size, alignment)
608             use omp_lib_kinds
609             integer (kind=kmp_pointer_kind) kmp_aligned_malloc
610             integer (kind=kmp_size_t_kind) size
611             integer (kind=kmp_size_t_kind) alignment
612           end function kmp_aligned_malloc
613
614           function kmp_calloc(nelem, elsize)
615             use omp_lib_kinds
616             integer (kind=kmp_pointer_kind) kmp_calloc
617             integer (kind=kmp_size_t_kind) nelem
618             integer (kind=kmp_size_t_kind) elsize
619           end function kmp_calloc
620
621           function kmp_realloc(ptr, size)
622             use omp_lib_kinds
623             integer (kind=kmp_pointer_kind) kmp_realloc
624             integer (kind=kmp_pointer_kind) ptr
625             integer (kind=kmp_size_t_kind) size
626           end function kmp_realloc
627
628           subroutine kmp_free(ptr)
629             use omp_lib_kinds
630             integer (kind=kmp_pointer_kind) ptr
631           end subroutine kmp_free
632
633           subroutine kmp_set_warnings_on()
634           end subroutine kmp_set_warnings_on
635
636           subroutine kmp_set_warnings_off()
637           end subroutine kmp_set_warnings_off
638
639           function kmp_get_cancellation_status(cancelkind)
640             use omp_lib_kinds
641             integer (kind=kmp_cancel_kind) cancelkind
642             logical (kind=omp_logical_kind) kmp_get_cancellation_status
643           end function kmp_get_cancellation_status
644
645           subroutine omp_init_lock_with_hint(svar, hint)
646             use omp_lib_kinds
647             integer (kind=omp_lock_kind) svar
648             integer (kind=omp_lock_hint_kind) hint
649           end subroutine omp_init_lock_with_hint
650
651           subroutine omp_init_nest_lock_with_hint(nvar, hint)
652             use omp_lib_kinds
653             integer (kind=omp_nest_lock_kind) nvar
654             integer (kind=omp_lock_hint_kind) hint
655           end subroutine omp_init_nest_lock_with_hint
656
657           function omp_control_tool(command, modifier)
658             use omp_lib_kinds
659             integer (kind=omp_integer_kind) omp_control_tool
660             integer (kind=omp_control_tool_kind) command
661             integer (kind=omp_control_tool_kind) modifier
662           end function omp_control_tool
663
664         end interface
665
666 !dec$ if defined(_WIN32)
667 !dec$   if defined(_WIN64) .or. defined(_M_AMD64)
668
669 !***
670 !*** The Fortran entry points must be in uppercase, even if the /Qlowercase
671 !*** option is specified.  The alias attribute ensures that the specified
672 !*** string is used as the entry point.
673 !***
674 !*** On the Windows* OS IA-32 architecture, the Fortran entry points have an
675 !*** underscore prepended.  On the Windows* OS Intel(R) 64
676 !*** architecture, no underscore is prepended.
677 !***
678
679 !dec$ attributes alias:'OMP_SET_NUM_THREADS' :: omp_set_num_threads
680 !dec$ attributes alias:'OMP_SET_DYNAMIC' :: omp_set_dynamic
681 !dec$ attributes alias:'OMP_SET_NESTED' :: omp_set_nested
682 !dec$ attributes alias:'OMP_GET_NUM_THREADS' :: omp_get_num_threads
683 !dec$ attributes alias:'OMP_GET_MAX_THREADS' :: omp_get_max_threads
684 !dec$ attributes alias:'OMP_GET_THREAD_NUM' :: omp_get_thread_num
685 !dec$ attributes alias:'OMP_GET_NUM_PROCS' :: omp_get_num_procs
686 !dec$ attributes alias:'OMP_IN_PARALLEL' :: omp_in_parallel
687 !dec$ attributes alias:'OMP_GET_DYNAMIC' :: omp_get_dynamic
688 !dec$ attributes alias:'OMP_GET_NESTED' :: omp_get_nested
689 !dec$ attributes alias:'OMP_GET_THREAD_LIMIT' :: omp_get_thread_limit
690 !dec$ attributes alias:'OMP_SET_MAX_ACTIVE_LEVELS' :: omp_set_max_active_levels
691 !dec$ attributes alias:'OMP_GET_MAX_ACTIVE_LEVELS' :: omp_get_max_active_levels
692 !dec$ attributes alias:'OMP_GET_LEVEL' :: omp_get_level
693 !dec$ attributes alias:'OMP_GET_ACTIVE_LEVEL' :: omp_get_active_level
694 !dec$ attributes alias:'OMP_GET_ANCESTOR_THREAD_NUM' :: omp_get_ancestor_thread_num
695 !dec$ attributes alias:'OMP_GET_TEAM_SIZE' :: omp_get_team_size
696 !dec$ attributes alias:'OMP_SET_SCHEDULE' :: omp_set_schedule
697 !dec$ attributes alias:'OMP_GET_SCHEDULE' :: omp_get_schedule
698 !dec$ attributes alias:'OMP_GET_PROC_BIND' :: omp_get_proc_bind
699 !dec$ attributes alias:'OMP_GET_WTIME' :: omp_get_wtime
700 !dec$ attributes alias:'OMP_GET_WTICK' :: omp_get_wtick
701 !dec$ attributes alias:'OMP_GET_DEFAULT_DEVICE' :: omp_get_default_device
702 !dec$ attributes alias:'OMP_SET_DEFAULT_DEVICE' :: omp_set_default_device
703 !dec$ attributes alias:'OMP_GET_NUM_DEVICES' :: omp_get_num_devices
704 !dec$ attributes alias:'OMP_GET_NUM_TEAMS' :: omp_get_num_teams
705 !dec$ attributes alias:'OMP_GET_TEAM_NUM' :: omp_get_team_num
706 !dec$ attributes alias:'OMP_GET_CANCELLATION' :: omp_get_cancellation
707 !dec$ attributes alias:'OMP_IS_INITIAL_DEVICE' :: omp_is_initial_device
708 !dec$ attributes alias:'OMP_GET_INITIAL_DEVICE' :: omp_get_initial_device
709 !dec$ attributes alias:'OMP_GET_MAX_TASK_PRIORITY' :: omp_get_max_task_priority
710 !dec$ attributes alias:'OMP_GET_DEVICE_NUM' :: omp_get_device_num
711 !dec$ attributes alias:'OMP_PAUSE_RESOURCE' :: omp_pause_resource
712 !dec$ attributes alias:'OMP_PAUSE_RESOURCE_ALL' :: omp_pause_resource_all
713 !dec$ attributes alias:'OMP_GET_SUPPORTED_ACTIVE_LEVELS' :: omp_get_supported_active_levels
714 !dec$ attributes alias:'OMP_FULFILL_EVENT' :: omp_fulfill_event
715
716 !dec$ attributes alias:'OMP_CONTROL_TOOL' :: omp_control_tool
717 !dec$ attributes alias:'OMP_SET_AFFINITY_FORMAT' :: omp_set_affinity_format
718 !dec$ attributes alias:'OMP_GET_AFFINITY_FORMAT' :: omp_get_affinity_format
719 !dec$ attributes alias:'OMP_DISPLAY_AFFINITY' :: omp_display_affinity
720 !dec$ attributes alias:'OMP_CAPTURE_AFFINITY' :: omp_capture_affinity
721
722 !dec$ attributes alias:'omp_init_lock' :: omp_init_lock
723 !dec$ attributes alias:'omp_init_lock_with_hint' :: omp_init_lock_with_hint
724 !dec$ attributes alias:'omp_destroy_lock' :: omp_destroy_lock
725 !dec$ attributes alias:'omp_set_lock' :: omp_set_lock
726 !dec$ attributes alias:'omp_unset_lock' :: omp_unset_lock
727 !dec$ attributes alias:'omp_test_lock' :: omp_test_lock
728 !dec$ attributes alias:'omp_init_nest_lock' :: omp_init_nest_lock
729 !dec$ attributes alias:'omp_init_nest_lock_with_hint' :: omp_init_nest_lock_with_hint
730 !dec$ attributes alias:'omp_destroy_nest_lock' :: omp_destroy_nest_lock
731 !dec$ attributes alias:'omp_set_nest_lock' :: omp_set_nest_lock
732 !dec$ attributes alias:'omp_unset_nest_lock' :: omp_unset_nest_lock
733 !dec$ attributes alias:'omp_test_nest_lock' :: omp_test_nest_lock
734
735 !dec$ attributes alias:'KMP_SET_STACKSIZE'::kmp_set_stacksize
736 !dec$ attributes alias:'KMP_SET_STACKSIZE_S'::kmp_set_stacksize_s
737 !dec$ attributes alias:'KMP_SET_BLOCKTIME'::kmp_set_blocktime
738 !dec$ attributes alias:'KMP_SET_LIBRARY_SERIAL'::kmp_set_library_serial
739 !dec$ attributes alias:'KMP_SET_LIBRARY_TURNAROUND'::kmp_set_library_turnaround
740 !dec$ attributes alias:'KMP_SET_LIBRARY_THROUGHPUT'::kmp_set_library_throughput
741 !dec$ attributes alias:'KMP_SET_LIBRARY'::kmp_set_library
742 !dec$ attributes alias:'KMP_GET_STACKSIZE'::kmp_get_stacksize
743 !dec$ attributes alias:'KMP_GET_STACKSIZE_S'::kmp_get_stacksize_s
744 !dec$ attributes alias:'KMP_GET_BLOCKTIME'::kmp_get_blocktime
745 !dec$ attributes alias:'KMP_GET_LIBRARY'::kmp_get_library
746 !dec$ attributes alias:'KMP_SET_AFFINITY'::kmp_set_affinity
747 !dec$ attributes alias:'KMP_GET_AFFINITY'::kmp_get_affinity
748 !dec$ attributes alias:'KMP_GET_AFFINITY_MAX_PROC'::kmp_get_affinity_max_proc
749 !dec$ attributes alias:'KMP_CREATE_AFFINITY_MASK'::kmp_create_affinity_mask
750 !dec$ attributes alias:'KMP_DESTROY_AFFINITY_MASK'::kmp_destroy_affinity_mask
751 !dec$ attributes alias:'KMP_SET_AFFINITY_MASK_PROC'::kmp_set_affinity_mask_proc
752 !dec$ attributes alias:'KMP_UNSET_AFFINITY_MASK_PROC'::kmp_unset_affinity_mask_proc
753 !dec$ attributes alias:'KMP_GET_AFFINITY_MASK_PROC'::kmp_get_affinity_mask_proc
754 !dec$ attributes alias:'KMP_MALLOC'::kmp_malloc
755 !dec$ attributes alias:'KMP_ALIGNED_MALLOC'::kmp_aligned_malloc
756 !dec$ attributes alias:'KMP_CALLOC'::kmp_calloc
757 !dec$ attributes alias:'KMP_REALLOC'::kmp_realloc
758 !dec$ attributes alias:'KMP_FREE'::kmp_free
759
760 !dec$ attributes alias:'KMP_SET_WARNINGS_ON'::kmp_set_warnings_on
761 !dec$ attributes alias:'KMP_SET_WARNINGS_OFF'::kmp_set_warnings_off
762
763 !dec$ attributes alias:'KMP_GET_CANCELLATION_STATUS' :: kmp_get_cancellation_status
764
765 !dec$   else
766
767 !***
768 !*** On Windows* OS IA-32 architecture, the Fortran entry points have an underscore prepended.
769 !***
770
771 !dec$ attributes alias:'_OMP_SET_NUM_THREADS' :: omp_set_num_threads
772 !dec$ attributes alias:'_OMP_SET_DYNAMIC' :: omp_set_dynamic
773 !dec$ attributes alias:'_OMP_SET_NESTED' :: omp_set_nested
774 !dec$ attributes alias:'_OMP_GET_NUM_THREADS' :: omp_get_num_threads
775 !dec$ attributes alias:'_OMP_GET_MAX_THREADS' :: omp_get_max_threads
776 !dec$ attributes alias:'_OMP_GET_THREAD_NUM' :: omp_get_thread_num
777 !dec$ attributes alias:'_OMP_GET_NUM_PROCS' :: omp_get_num_procs
778 !dec$ attributes alias:'_OMP_IN_PARALLEL' :: omp_in_parallel
779 !dec$ attributes alias:'_OMP_GET_DYNAMIC' :: omp_get_dynamic
780 !dec$ attributes alias:'_OMP_GET_NESTED' :: omp_get_nested
781 !dec$ attributes alias:'_OMP_GET_THREAD_LIMIT' :: omp_get_thread_limit
782 !dec$ attributes alias:'_OMP_SET_MAX_ACTIVE_LEVELS' :: omp_set_max_active_levels
783 !dec$ attributes alias:'_OMP_GET_MAX_ACTIVE_LEVELS' :: omp_get_max_active_levels
784 !dec$ attributes alias:'_OMP_GET_LEVEL' :: omp_get_level
785 !dec$ attributes alias:'_OMP_GET_ACTIVE_LEVEL' :: omp_get_active_level
786 !dec$ attributes alias:'_OMP_GET_ANCESTOR_THREAD_NUM' :: omp_get_ancestor_thread_num
787 !dec$ attributes alias:'_OMP_GET_TEAM_SIZE' :: omp_get_team_size
788 !dec$ attributes alias:'_OMP_SET_SCHEDULE' :: omp_set_schedule
789 !dec$ attributes alias:'_OMP_GET_SCHEDULE' :: omp_get_schedule
790 !dec$ attributes alias:'_OMP_GET_PROC_BIND' :: omp_get_proc_bind
791 !dec$ attributes alias:'_OMP_GET_WTIME' :: omp_get_wtime
792 !dec$ attributes alias:'_OMP_GET_WTICK' :: omp_get_wtick
793 !dec$ attributes alias:'_OMP_GET_DEFAULT_DEVICE' :: omp_get_default_device
794 !dec$ attributes alias:'_OMP_SET_DEFAULT_DEVICE' :: omp_set_default_device
795 !dec$ attributes alias:'_OMP_GET_NUM_DEVICES' :: omp_get_num_devices
796 !dec$ attributes alias:'_OMP_GET_NUM_TEAMS' :: omp_get_num_teams
797 !dec$ attributes alias:'_OMP_GET_TEAM_NUM' :: omp_get_team_num
798 !dec$ attributes alias:'_OMP_GET_CANCELLATION' :: omp_get_cancellation
799 !dec$ attributes alias:'_OMP_IS_INITIAL_DEVICE' :: omp_is_initial_device
800 !dec$ attributes alias:'_OMP_GET_INITIAL_DEVICE' :: omp_get_initial_device
801 !dec$ attributes alias:'_OMP_GET_MAX_TASK_PRIORTY' :: omp_get_max_task_priority
802 !dec$ attributes alias:'_OMP_GET_DEVICE_NUM' :: omp_get_device_num
803 !dec$ attributes alias:'_OMP_PAUSE_RESOURCE' :: omp_pause_resource
804 !dec$ attributes alias:'_OMP_PAUSE_RESOURCE_ALL' :: omp_pause_resource_all
805 !dec$ attributes alias:'_OMP_GET_SUPPORTED_ACTIVE_LEVELS' :: omp_get_supported_active_levels
806 !dec$ attributes alias:'_OMP_FULFILL_EVENT' :: omp_fulfill_event
807
808 !dec$ attributes alias:'_OMP_CONTROL_TOOL' :: omp_control_tool
809 !dec$ attributes alias:'_OMP_SET_AFFINITY_FORMAT' :: omp_set_affinity_format
810 !dec$ attributes alias:'_OMP_GET_AFFINITY_FORMAT' :: omp_get_affinity_format
811 !dec$ attributes alias:'_OMP_DISPLAY_AFFINITY' :: omp_display_affinity
812 !dec$ attributes alias:'_OMP_CAPTURE_AFFINITY' :: omp_capture_affinity
813
814 !dec$ attributes alias:'_omp_init_lock' :: omp_init_lock
815 !dec$ attributes alias:'_omp_init_lock_with_hint' :: omp_init_lock_with_hint
816 !dec$ attributes alias:'_omp_destroy_lock' :: omp_destroy_lock
817 !dec$ attributes alias:'_omp_set_lock' :: omp_set_lock
818 !dec$ attributes alias:'_omp_unset_lock' :: omp_unset_lock
819 !dec$ attributes alias:'_omp_test_lock' :: omp_test_lock
820 !dec$ attributes alias:'_omp_init_nest_lock' :: omp_init_nest_lock
821 !dec$ attributes alias:'_omp_init_nest_lock_with_hint' :: omp_init_nest_lock_with_hint
822 !dec$ attributes alias:'_omp_destroy_nest_lock' :: omp_destroy_nest_lock
823 !dec$ attributes alias:'_omp_set_nest_lock' :: omp_set_nest_lock
824 !dec$ attributes alias:'_omp_unset_nest_lock' :: omp_unset_nest_lock
825 !dec$ attributes alias:'_omp_test_nest_lock' :: omp_test_nest_lock
826
827 !dec$ attributes alias:'_KMP_SET_STACKSIZE'::kmp_set_stacksize
828 !dec$ attributes alias:'_KMP_SET_STACKSIZE_S'::kmp_set_stacksize_s
829 !dec$ attributes alias:'_KMP_SET_BLOCKTIME'::kmp_set_blocktime
830 !dec$ attributes alias:'_KMP_SET_LIBRARY_SERIAL'::kmp_set_library_serial
831 !dec$ attributes alias:'_KMP_SET_LIBRARY_TURNAROUND'::kmp_set_library_turnaround
832 !dec$ attributes alias:'_KMP_SET_LIBRARY_THROUGHPUT'::kmp_set_library_throughput
833 !dec$ attributes alias:'_KMP_SET_LIBRARY'::kmp_set_library
834 !dec$ attributes alias:'_KMP_GET_STACKSIZE'::kmp_get_stacksize
835 !dec$ attributes alias:'_KMP_GET_STACKSIZE_S'::kmp_get_stacksize_s
836 !dec$ attributes alias:'_KMP_GET_BLOCKTIME'::kmp_get_blocktime
837 !dec$ attributes alias:'_KMP_GET_LIBRARY'::kmp_get_library
838 !dec$ attributes alias:'_KMP_SET_AFFINITY'::kmp_set_affinity
839 !dec$ attributes alias:'_KMP_GET_AFFINITY'::kmp_get_affinity
840 !dec$ attributes alias:'_KMP_GET_AFFINITY_MAX_PROC'::kmp_get_affinity_max_proc
841 !dec$ attributes alias:'_KMP_CREATE_AFFINITY_MASK'::kmp_create_affinity_mask
842 !dec$ attributes alias:'_KMP_DESTROY_AFFINITY_MASK'::kmp_destroy_affinity_mask
843 !dec$ attributes alias:'_KMP_SET_AFFINITY_MASK_PROC'::kmp_set_affinity_mask_proc
844 !dec$ attributes alias:'_KMP_UNSET_AFFINITY_MASK_PROC'::kmp_unset_affinity_mask_proc
845 !dec$ attributes alias:'_KMP_GET_AFFINITY_MASK_PROC'::kmp_get_affinity_mask_proc
846 !dec$ attributes alias:'_KMP_MALLOC'::kmp_malloc
847 !dec$ attributes alias:'_KMP_ALIGNED_MALLOC'::kmp_aligned_malloc
848 !dec$ attributes alias:'_KMP_CALLOC'::kmp_calloc
849 !dec$ attributes alias:'_KMP_REALLOC'::kmp_realloc
850 !dec$ attributes alias:'_KMP_FREE'::kmp_free
851
852 !dec$ attributes alias:'_KMP_SET_WARNINGS_ON'::kmp_set_warnings_on
853 !dec$ attributes alias:'_KMP_SET_WARNINGS_OFF'::kmp_set_warnings_off
854
855 !dec$ attributes alias:'_KMP_GET_CANCELLATION_STATUS' :: kmp_get_cancellation_status
856
857 !dec$   endif
858 !dec$ endif
859
860 !dec$ if defined(__linux)
861
862 !***
863 !*** The Linux* OS entry points are in lowercase, with an underscore appended.
864 !***
865
866 !dec$ attributes alias:'omp_set_num_threads_'::omp_set_num_threads
867 !dec$ attributes alias:'omp_set_dynamic_'::omp_set_dynamic
868 !dec$ attributes alias:'omp_set_nested_'::omp_set_nested
869 !dec$ attributes alias:'omp_get_num_threads_'::omp_get_num_threads
870 !dec$ attributes alias:'omp_get_max_threads_'::omp_get_max_threads
871 !dec$ attributes alias:'omp_get_thread_num_'::omp_get_thread_num
872 !dec$ attributes alias:'omp_get_num_procs_'::omp_get_num_procs
873 !dec$ attributes alias:'omp_in_parallel_'::omp_in_parallel
874 !dec$ attributes alias:'omp_get_dynamic_'::omp_get_dynamic
875 !dec$ attributes alias:'omp_get_nested_'::omp_get_nested
876 !dec$ attributes alias:'omp_get_thread_limit_'::omp_get_thread_limit
877 !dec$ attributes alias:'omp_set_max_active_levels_'::omp_set_max_active_levels
878 !dec$ attributes alias:'omp_get_max_active_levels_'::omp_get_max_active_levels
879 !dec$ attributes alias:'omp_get_level_'::omp_get_level
880 !dec$ attributes alias:'omp_get_active_level_'::omp_get_active_level
881 !dec$ attributes alias:'omp_get_ancestor_thread_num_'::omp_get_ancestor_thread_num
882 !dec$ attributes alias:'omp_get_team_size_'::omp_get_team_size
883 !dec$ attributes alias:'omp_set_schedule_'::omp_set_schedule
884 !dec$ attributes alias:'omp_get_schedule_'::omp_get_schedule
885 !dec$ attributes alias:'omp_get_proc_bind_' :: omp_get_proc_bind
886 !dec$ attributes alias:'omp_get_wtime_'::omp_get_wtime
887 !dec$ attributes alias:'omp_get_wtick_'::omp_get_wtick
888 !dec$ attributes alias:'omp_get_default_device_'::omp_get_default_device
889 !dec$ attributes alias:'omp_set_default_device_'::omp_set_default_device
890 !dec$ attributes alias:'omp_get_num_devices_'::omp_get_num_devices
891 !dec$ attributes alias:'omp_get_num_teams_'::omp_get_num_teams
892 !dec$ attributes alias:'omp_get_team_num_'::omp_get_team_num
893 !dec$ attributes alias:'omp_get_cancellation_'::omp_get_cancellation
894 !dec$ attributes alias:'omp_is_initial_device_'::omp_is_initial_device
895 !dec$ attributes alias:'omp_get_initial_device_'::omp_get_initial_device
896 !dec$ attributes alias:'omp_get_max_task_priority_'::omp_get_max_task_priority
897 !dec$ attributes alias:'omp_get_device_num_'::omp_get_device_num
898 !dec$ attributes alias:'omp_pause_resource_' :: omp_pause_resource
899 !dec$ attributes alias:'omp_pause_resource_all_' :: omp_pause_resource_all
900 !dec$ attributes alias:'omp_get_supported_active_levels_' :: omp_get_supported_active_levels
901 !dec$ attributes alias:'omp_fulfill_event_' :: omp_fulfill_event
902
903 !dec$ attributes alias:'omp_set_affinity_format_' :: omp_set_affinity_format
904 !dec$ attributes alias:'omp_get_affinity_format_' :: omp_get_affinity_format
905 !dec$ attributes alias:'omp_display_affinity_' :: omp_display_affinity
906 !dec$ attributes alias:'omp_capture_affinity_' :: omp_capture_affinity
907
908 !dec$ attributes alias:'omp_init_lock_'::omp_init_lock
909 !dec$ attributes alias:'omp_init_lock_with_hint_'::omp_init_lock_with_hint
910 !dec$ attributes alias:'omp_destroy_lock_'::omp_destroy_lock
911 !dec$ attributes alias:'omp_set_lock_'::omp_set_lock
912 !dec$ attributes alias:'omp_unset_lock_'::omp_unset_lock
913 !dec$ attributes alias:'omp_test_lock_'::omp_test_lock
914 !dec$ attributes alias:'omp_init_nest_lock_'::omp_init_nest_lock
915 !dec$ attributes alias:'omp_init_nest_lock_with_hint_'::omp_init_nest_lock_with_hint
916 !dec$ attributes alias:'omp_destroy_nest_lock_'::omp_destroy_nest_lock
917 !dec$ attributes alias:'omp_set_nest_lock_'::omp_set_nest_lock
918 !dec$ attributes alias:'omp_unset_nest_lock_'::omp_unset_nest_lock
919 !dec$ attributes alias:'omp_test_nest_lock_'::omp_test_nest_lock
920 !dec$ attributes alias:'omp_control_tool_'::omp_control_tool
921
922 !dec$ attributes alias:'kmp_set_stacksize_'::kmp_set_stacksize
923 !dec$ attributes alias:'kmp_set_stacksize_s_'::kmp_set_stacksize_s
924 !dec$ attributes alias:'kmp_set_blocktime_'::kmp_set_blocktime
925 !dec$ attributes alias:'kmp_set_library_serial_'::kmp_set_library_serial
926 !dec$ attributes alias:'kmp_set_library_turnaround_'::kmp_set_library_turnaround
927 !dec$ attributes alias:'kmp_set_library_throughput_'::kmp_set_library_throughput
928 !dec$ attributes alias:'kmp_set_library_'::kmp_set_library
929 !dec$ attributes alias:'kmp_get_stacksize_'::kmp_get_stacksize
930 !dec$ attributes alias:'kmp_get_stacksize_s_'::kmp_get_stacksize_s
931 !dec$ attributes alias:'kmp_get_blocktime_'::kmp_get_blocktime
932 !dec$ attributes alias:'kmp_get_library_'::kmp_get_library
933 !dec$ attributes alias:'kmp_set_affinity_'::kmp_set_affinity
934 !dec$ attributes alias:'kmp_get_affinity_'::kmp_get_affinity
935 !dec$ attributes alias:'kmp_get_affinity_max_proc_'::kmp_get_affinity_max_proc
936 !dec$ attributes alias:'kmp_create_affinity_mask_'::kmp_create_affinity_mask
937 !dec$ attributes alias:'kmp_destroy_affinity_mask_'::kmp_destroy_affinity_mask
938 !dec$ attributes alias:'kmp_set_affinity_mask_proc_'::kmp_set_affinity_mask_proc
939 !dec$ attributes alias:'kmp_unset_affinity_mask_proc_'::kmp_unset_affinity_mask_proc
940 !dec$ attributes alias:'kmp_get_affinity_mask_proc_'::kmp_get_affinity_mask_proc
941 !dec$ attributes alias:'kmp_malloc_'::kmp_malloc
942 !dec$ attributes alias:'kmp_aligned_malloc_'::kmp_aligned_malloc
943 !dec$ attributes alias:'kmp_calloc_'::kmp_calloc
944 !dec$ attributes alias:'kmp_realloc_'::kmp_realloc
945 !dec$ attributes alias:'kmp_free_'::kmp_free
946
947 !dec$ attributes alias:'kmp_set_warnings_on_'::kmp_set_warnings_on
948 !dec$ attributes alias:'kmp_set_warnings_off_'::kmp_set_warnings_off
949 !dec$ attributes alias:'kmp_get_cancellation_status_'::kmp_get_cancellation_status
950
951 !dec$ endif
952
953 !dec$ if defined(__APPLE__)
954
955 !***
956 !*** The Mac entry points are in lowercase, with an both an underscore
957 !*** appended and an underscore prepended.
958 !***
959
960 !dec$ attributes alias:'_omp_set_num_threads_'::omp_set_num_threads
961 !dec$ attributes alias:'_omp_set_dynamic_'::omp_set_dynamic
962 !dec$ attributes alias:'_omp_set_nested_'::omp_set_nested
963 !dec$ attributes alias:'_omp_get_num_threads_'::omp_get_num_threads
964 !dec$ attributes alias:'_omp_get_max_threads_'::omp_get_max_threads
965 !dec$ attributes alias:'_omp_get_thread_num_'::omp_get_thread_num
966 !dec$ attributes alias:'_omp_get_num_procs_'::omp_get_num_procs
967 !dec$ attributes alias:'_omp_in_parallel_'::omp_in_parallel
968 !dec$ attributes alias:'_omp_get_dynamic_'::omp_get_dynamic
969 !dec$ attributes alias:'_omp_get_nested_'::omp_get_nested
970 !dec$ attributes alias:'_omp_get_thread_limit_'::omp_get_thread_limit
971 !dec$ attributes alias:'_omp_set_max_active_levels_'::omp_set_max_active_levels
972 !dec$ attributes alias:'_omp_get_max_active_levels_'::omp_get_max_active_levels
973 !dec$ attributes alias:'_omp_get_level_'::omp_get_level
974 !dec$ attributes alias:'_omp_get_active_level_'::omp_get_active_level
975 !dec$ attributes alias:'_omp_get_ancestor_thread_num_'::omp_get_ancestor_thread_num
976 !dec$ attributes alias:'_omp_get_team_size_'::omp_get_team_size
977 !dec$ attributes alias:'_omp_set_schedule_'::omp_set_schedule
978 !dec$ attributes alias:'_omp_get_schedule_'::omp_get_schedule
979 !dec$ attributes alias:'_omp_get_proc_bind_' :: omp_get_proc_bind
980 !dec$ attributes alias:'_omp_get_wtime_'::omp_get_wtime
981 !dec$ attributes alias:'_omp_get_wtick_'::omp_get_wtick
982 !dec$ attributes alias:'_omp_get_default_device_'::omp_get_default_device
983 !dec$ attributes alias:'_omp_set_default_device_'::omp_set_default_device
984 !dec$ attributes alias:'_omp_get_num_devices_'::omp_get_num_devices
985 !dec$ attributes alias:'_omp_get_num_teams_'::omp_get_num_teams
986 !dec$ attributes alias:'_omp_get_team_num_'::omp_get_team_num
987 !dec$ attributes alias:'_omp_get_cancellation_'::omp_get_cancellation
988 !dec$ attributes alias:'_omp_is_initial_device_'::omp_is_initial_device
989 !dec$ attributes alias:'_omp_get_initial_device_'::omp_get_initial_device
990 !dec$ attributes alias:'_omp_get_max_task_priorty_'::omp_get_max_task_priority
991 !dec$ attributes alias:'_omp_get_device_num_'::omp_get_device_num
992 !dec$ attributes alias:'_omp_pause_resource_' :: omp_pause_resource
993 !dec$ attributes alias:'_omp_pause_resource_all_' :: omp_pause_resource_all
994 !dec$ attributes alias:'_omp_get_supported_active_levels_' :: omp_get_supported_active_levels
995 !dec$ attributes alias:'_omp_fulfill_event_' :: omp_fulfill_event
996
997 !dec$ attributes alias:'_omp_init_lock_'::omp_init_lock
998 !dec$ attributes alias:'_omp_init_lock_with_hint_'::omp_init_lock_with_hint
999 !dec$ attributes alias:'_omp_destroy_lock_'::omp_destroy_lock
1000 !dec$ attributes alias:'_omp_set_lock_'::omp_set_lock
1001 !dec$ attributes alias:'_omp_unset_lock_'::omp_unset_lock
1002 !dec$ attributes alias:'_omp_test_lock_'::omp_test_lock
1003 !dec$ attributes alias:'_omp_init_nest_lock_'::omp_init_nest_lock
1004 !dec$ attributes alias:'_omp_init_nest_lock_with_hint_'::omp_init_nest_lock_with_hint
1005 !dec$ attributes alias:'_omp_destroy_nest_lock_'::omp_destroy_nest_lock
1006 !dec$ attributes alias:'_omp_set_nest_lock_'::omp_set_nest_lock
1007 !dec$ attributes alias:'_omp_unset_nest_lock_'::omp_unset_nest_lock
1008 !dec$ attributes alias:'_omp_test_nest_lock_'::omp_test_nest_lock
1009 !dec$ attributes alias:'_omp_control_tool_'::omp_control_tool
1010 !dec$ attributes alias:'_omp_set_affinity_format_' :: omp_set_affinity_format
1011 !dec$ attributes alias:'_omp_get_affinity_format_' :: omp_get_affinity_format
1012 !dec$ attributes alias:'_omp_display_affinity_' :: omp_display_affinity
1013 !dec$ attributes alias:'_omp_capture_affinity_' :: omp_capture_affinity
1014
1015 !dec$ attributes alias:'_kmp_set_stacksize_'::kmp_set_stacksize
1016 !dec$ attributes alias:'_kmp_set_stacksize_s_'::kmp_set_stacksize_s
1017 !dec$ attributes alias:'_kmp_set_blocktime_'::kmp_set_blocktime
1018 !dec$ attributes alias:'_kmp_set_library_serial_'::kmp_set_library_serial
1019 !dec$ attributes alias:'_kmp_set_library_turnaround_'::kmp_set_library_turnaround
1020 !dec$ attributes alias:'_kmp_set_library_throughput_'::kmp_set_library_throughput
1021 !dec$ attributes alias:'_kmp_set_library_'::kmp_set_library
1022 !dec$ attributes alias:'_kmp_get_stacksize_'::kmp_get_stacksize
1023 !dec$ attributes alias:'_kmp_get_stacksize_s_'::kmp_get_stacksize_s
1024 !dec$ attributes alias:'_kmp_get_blocktime_'::kmp_get_blocktime
1025 !dec$ attributes alias:'_kmp_get_library_'::kmp_get_library
1026 !dec$ attributes alias:'_kmp_set_affinity_'::kmp_set_affinity
1027 !dec$ attributes alias:'_kmp_get_affinity_'::kmp_get_affinity
1028 !dec$ attributes alias:'_kmp_get_affinity_max_proc_'::kmp_get_affinity_max_proc
1029 !dec$ attributes alias:'_kmp_create_affinity_mask_'::kmp_create_affinity_mask
1030 !dec$ attributes alias:'_kmp_destroy_affinity_mask_'::kmp_destroy_affinity_mask
1031 !dec$ attributes alias:'_kmp_set_affinity_mask_proc_'::kmp_set_affinity_mask_proc
1032 !dec$ attributes alias:'_kmp_unset_affinity_mask_proc_'::kmp_unset_affinity_mask_proc
1033 !dec$ attributes alias:'_kmp_get_affinity_mask_proc_'::kmp_get_affinity_mask_proc
1034 !dec$ attributes alias:'_kmp_malloc_'::kmp_malloc
1035 !dec$ attributes alias:'_kmp_aligned_malloc_'::kmp_aligned_malloc
1036 !dec$ attributes alias:'_kmp_calloc_'::kmp_calloc
1037 !dec$ attributes alias:'_kmp_realloc_'::kmp_realloc
1038 !dec$ attributes alias:'_kmp_free_'::kmp_free
1039
1040 !dec$ attributes alias:'_kmp_set_warnings_on_'::kmp_set_warnings_on
1041 !dec$ attributes alias:'_kmp_set_warnings_off_'::kmp_set_warnings_off
1042
1043 !dec$ attributes alias:'_kmp_get_cancellation_status_'::kmp_get_cancellation_status
1044
1045 !dec$ endif
1046
1047       end module omp_lib