xref: /freebsd/contrib/llvm-project/openmp/runtime/src/include/omp_lib.h.var (revision d9a42747950146bf03cda7f6e25d219253f8a57a)
1! include/omp_lib.h.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      integer omp_integer_kind
14      parameter(omp_integer_kind=4)
15      integer omp_logical_kind
16      parameter(omp_logical_kind=4)
17      integer omp_real_kind
18      parameter(omp_real_kind=4)
19      integer omp_lock_kind
20      parameter(omp_lock_kind=int_ptr_kind())
21      integer omp_nest_lock_kind
22      parameter(omp_nest_lock_kind=int_ptr_kind())
23      integer omp_sched_kind
24      parameter(omp_sched_kind=omp_integer_kind)
25      integer omp_proc_bind_kind
26      parameter(omp_proc_bind_kind=omp_integer_kind)
27      integer kmp_pointer_kind
28      parameter(kmp_pointer_kind=int_ptr_kind())
29      integer kmp_size_t_kind
30      parameter(kmp_size_t_kind=int_ptr_kind())
31      integer kmp_affinity_mask_kind
32      parameter(kmp_affinity_mask_kind=int_ptr_kind())
33      integer omp_sync_hint_kind
34      parameter(omp_sync_hint_kind=omp_integer_kind)
35      integer omp_lock_hint_kind
36      parameter(omp_lock_hint_kind=omp_sync_hint_kind)
37      integer omp_control_tool_kind
38      parameter(omp_control_tool_kind=omp_integer_kind)
39      integer omp_control_tool_result_kind
40      parameter(omp_control_tool_result_kind=omp_integer_kind)
41      integer omp_allocator_handle_kind
42      parameter(omp_allocator_handle_kind=int_ptr_kind())
43      integer omp_memspace_handle_kind
44      parameter(omp_memspace_handle_kind=int_ptr_kind())
45      integer omp_alloctrait_key_kind
46      parameter(omp_alloctrait_key_kind=omp_integer_kind)
47      integer omp_alloctrait_val_kind
48      parameter(omp_alloctrait_val_kind=int_ptr_kind())
49      integer omp_pause_resource_kind
50      parameter(omp_pause_resource_kind=omp_integer_kind)
51      integer omp_depend_kind
52      parameter(omp_depend_kind=int_ptr_kind())
53      integer omp_event_handle_kind
54      parameter(omp_event_handle_kind=int_ptr_kind())
55      integer omp_interop_kind
56      parameter(omp_interop_kind=int_ptr_kind())
57      integer omp_interop_fr_kind
58      parameter(omp_interop_fr_kind=omp_integer_kind)
59
60      integer(kind=omp_integer_kind)openmp_version
61      parameter(openmp_version=@LIBOMP_OMP_YEAR_MONTH@)
62      integer(kind=omp_integer_kind)kmp_version_major
63      parameter(kmp_version_major=@LIBOMP_VERSION_MAJOR@)
64      integer(kind=omp_integer_kind)kmp_version_minor
65      parameter(kmp_version_minor=@LIBOMP_VERSION_MINOR@)
66      integer(kind=omp_integer_kind)kmp_version_build
67      parameter(kmp_version_build=@LIBOMP_VERSION_BUILD@)
68      character(*)kmp_build_date
69      parameter(kmp_build_date='@LIBOMP_BUILD_DATE@')
70
71      integer(kind=omp_sched_kind)omp_sched_static
72      parameter(omp_sched_static=1)
73      integer(kind=omp_sched_kind)omp_sched_dynamic
74      parameter(omp_sched_dynamic=2)
75      integer(kind=omp_sched_kind)omp_sched_guided
76      parameter(omp_sched_guided=3)
77      integer(kind=omp_sched_kind)omp_sched_auto
78      parameter(omp_sched_auto=4)
79      integer(kind=omp_sched_kind)omp_sched_monotonic
80      parameter(omp_sched_monotonic=Z'80000000')
81
82      integer(kind=omp_proc_bind_kind)omp_proc_bind_false
83      parameter(omp_proc_bind_false=0)
84      integer(kind=omp_proc_bind_kind)omp_proc_bind_true
85      parameter(omp_proc_bind_true=1)
86      integer(kind=omp_proc_bind_kind)omp_proc_bind_master
87      parameter(omp_proc_bind_master=2)
88      integer(kind=omp_proc_bind_kind)omp_proc_bind_close
89      parameter(omp_proc_bind_close=3)
90      integer(kind=omp_proc_bind_kind)omp_proc_bind_spread
91      parameter(omp_proc_bind_spread=4)
92
93      integer(kind=omp_sync_hint_kind)omp_sync_hint_none
94      parameter(omp_sync_hint_none=0)
95      integer(kind=omp_sync_hint_kind)omp_sync_hint_uncontended
96      parameter(omp_sync_hint_uncontended=1)
97      integer(kind=omp_sync_hint_kind)omp_sync_hint_contended
98      parameter(omp_sync_hint_contended=2)
99      integer(kind=omp_sync_hint_kind)omp_sync_hint_nonspeculative
100      parameter(omp_sync_hint_nonspeculative=4)
101      integer(kind=omp_sync_hint_kind)omp_sync_hint_speculative
102      parameter(omp_sync_hint_speculative=8)
103      integer(kind=omp_lock_hint_kind)omp_lock_hint_none
104      parameter(omp_lock_hint_none=omp_sync_hint_none)
105      integer(kind=omp_lock_hint_kind)omp_lock_hint_uncontended
106      parameter(omp_lock_hint_uncontended=omp_sync_hint_uncontended)
107      integer(kind=omp_lock_hint_kind)omp_lock_hint_contended
108      parameter(omp_lock_hint_contended=omp_sync_hint_contended)
109      integer(kind=omp_lock_hint_kind)omp_lock_hint_nonspeculative
110      parameter(omp_lock_hint_nonspeculative=4)
111      integer(kind=omp_lock_hint_kind)omp_lock_hint_speculative
112      parameter(omp_lock_hint_speculative=omp_sync_hint_speculative)
113      integer(kind=omp_lock_hint_kind)kmp_lock_hint_hle
114      parameter(kmp_lock_hint_hle=65536)
115      integer(kind=omp_lock_hint_kind)kmp_lock_hint_rtm
116      parameter(kmp_lock_hint_rtm=131072)
117      integer(kind=omp_lock_hint_kind)kmp_lock_hint_adaptive
118      parameter(kmp_lock_hint_adaptive=262144)
119
120      integer(kind=omp_control_tool_kind)omp_control_tool_start
121      parameter(omp_control_tool_start=1)
122      integer(kind=omp_control_tool_kind)omp_control_tool_pause
123      parameter(omp_control_tool_pause=2)
124      integer(kind=omp_control_tool_kind)omp_control_tool_flush
125      parameter(omp_control_tool_flush=3)
126      integer(kind=omp_control_tool_kind)omp_control_tool_end
127      parameter(omp_control_tool_end=4)
128
129      integer(omp_control_tool_result_kind)omp_control_tool_notool
130      parameter(omp_control_tool_notool=-2)
131      integer(omp_control_tool_result_kind)omp_control_tool_nocallback
132      parameter(omp_control_tool_nocallback=-1)
133      integer(omp_control_tool_result_kind)omp_control_tool_success
134      parameter(omp_control_tool_success=0)
135      integer(omp_control_tool_result_kind)omp_control_tool_ignored
136      parameter(omp_control_tool_ignored=1)
137
138      integer(kind=omp_alloctrait_key_kind)omp_atk_sync_hint
139      parameter(omp_atk_sync_hint=1)
140      integer(kind=omp_alloctrait_key_kind)omp_atk_alignment
141      parameter(omp_atk_alignment=2)
142      integer(kind=omp_alloctrait_key_kind)omp_atk_access
143      parameter(omp_atk_access=3)
144      integer(kind=omp_alloctrait_key_kind)omp_atk_pool_size
145      parameter(omp_atk_pool_size=4)
146      integer(kind=omp_alloctrait_key_kind)omp_atk_fallback
147      parameter(omp_atk_fallback=5)
148      integer(kind=omp_alloctrait_key_kind)omp_atk_fb_data
149      parameter(omp_atk_fb_data=6)
150      integer(kind=omp_alloctrait_key_kind)omp_atk_pinned
151      parameter(omp_atk_pinned=7)
152      integer(kind=omp_alloctrait_key_kind)omp_atk_partition
153      parameter(omp_atk_partition=8)
154
155      integer(kind=omp_alloctrait_val_kind)omp_atv_default
156      parameter(omp_atv_default=-1)
157      ! Reserved for future use
158      integer(kind=omp_alloctrait_val_kind)omp_atv_false
159      parameter(omp_atv_false=0)
160      ! Reserved for future use
161      integer(kind=omp_alloctrait_val_kind)omp_atv_true
162      parameter(omp_atv_true=1)
163      integer(kind=omp_alloctrait_val_kind)omp_atv_contended
164      parameter(omp_atv_contended=3)
165      integer(kind=omp_alloctrait_val_kind)omp_atv_uncontended
166      parameter(omp_atv_uncontended=4)
167      integer(kind=omp_alloctrait_val_kind)omp_atv_serialized
168      parameter(omp_atv_serialized=5)
169      integer(kind=omp_alloctrait_val_kind)omp_atv_sequential
170      parameter(omp_atv_sequential=5)
171      integer(kind=omp_alloctrait_val_kind)omp_atv_private
172      parameter(omp_atv_private=6)
173      integer(kind=omp_alloctrait_val_kind)omp_atv_all
174      parameter(omp_atv_all=7)
175      integer(kind=omp_alloctrait_val_kind)omp_atv_thread
176      parameter(omp_atv_thread=8)
177      integer(kind=omp_alloctrait_val_kind)omp_atv_pteam
178      parameter(omp_atv_pteam=9)
179      integer(kind=omp_alloctrait_val_kind)omp_atv_cgroup
180      parameter(omp_atv_cgroup=10)
181      integer(kind=omp_alloctrait_val_kind)omp_atv_default_mem_fb
182      parameter(omp_atv_default_mem_fb=11)
183      integer(kind=omp_alloctrait_val_kind)omp_atv_null_fb
184      parameter(omp_atv_null_fb=12)
185      integer(kind=omp_alloctrait_val_kind)omp_atv_abort_fb
186      parameter(omp_atv_abort_fb=13)
187      integer(kind=omp_alloctrait_val_kind)omp_atv_allocator_fb
188      parameter(omp_atv_allocator_fb=14)
189      integer(kind=omp_alloctrait_val_kind)omp_atv_environment
190      parameter(omp_atv_environment=15)
191      integer(kind=omp_alloctrait_val_kind)omp_atv_nearest
192      parameter(omp_atv_nearest=16)
193      integer(kind=omp_alloctrait_val_kind)omp_atv_blocked
194      parameter(omp_atv_blocked=17)
195      integer(kind=omp_alloctrait_val_kind)omp_atv_interleaved
196      parameter(omp_atv_interleaved=18)
197
198      type omp_alloctrait
199        integer (kind=omp_alloctrait_key_kind) key
200        integer (kind=omp_alloctrait_val_kind) value
201      end type omp_alloctrait
202
203      integer(kind=omp_allocator_handle_kind)omp_null_allocator
204      parameter(omp_null_allocator=0)
205      integer(kind=omp_allocator_handle_kind)omp_default_mem_alloc
206      parameter(omp_default_mem_alloc=1)
207      integer(kind=omp_allocator_handle_kind)omp_large_cap_mem_alloc
208      parameter(omp_large_cap_mem_alloc=2)
209      integer(kind=omp_allocator_handle_kind)omp_const_mem_alloc
210      parameter(omp_const_mem_alloc=3)
211      integer(kind=omp_allocator_handle_kind)omp_high_bw_mem_alloc
212      parameter(omp_high_bw_mem_alloc=4)
213      integer(kind=omp_allocator_handle_kind)omp_low_lat_mem_alloc
214      parameter(omp_low_lat_mem_alloc=5)
215      integer(kind=omp_allocator_handle_kind)omp_cgroup_mem_alloc
216      parameter(omp_cgroup_mem_alloc=6)
217      integer(kind=omp_allocator_handle_kind)omp_pteam_mem_alloc
218      parameter(omp_pteam_mem_alloc=7)
219      integer(kind=omp_allocator_handle_kind)omp_thread_mem_alloc
220      parameter(omp_thread_mem_alloc=8)
221      integer(omp_allocator_handle_kind)llvm_omp_target_host_mem_alloc
222      parameter(llvm_omp_target_host_mem_alloc=100)
223      integer(omp_allocator_handle_kind)llvm_omp_target_shared_mem_alloc
224      parameter(llvm_omp_target_shared_mem_alloc=101)
225      integer(omp_allocator_handle_kind)llvm_omp_target_device_mem_alloc
226      parameter(llvm_omp_target_device_mem_alloc=102)
227
228      integer(kind=omp_memspace_handle_kind)omp_default_mem_space
229      parameter(omp_default_mem_space=0)
230      integer(kind=omp_memspace_handle_kind)omp_large_cap_mem_space
231      parameter(omp_large_cap_mem_space=1)
232      integer(kind=omp_memspace_handle_kind)omp_const_mem_space
233      parameter(omp_const_mem_space=2)
234      integer(kind=omp_memspace_handle_kind)omp_high_bw_mem_space
235      parameter(omp_high_bw_mem_space=3)
236      integer(kind=omp_memspace_handle_kind)omp_low_lat_mem_space
237      parameter(omp_low_lat_mem_space=4)
238      integer(omp_memspace_handle_kind)llvm_omp_target_host_mem_space
239      parameter(llvm_omp_target_host_mem_space=100)
240      integer(omp_memspace_handle_kind)llvm_omp_target_shared_mem_space
241      parameter(llvm_omp_target_shared_mem_space=101)
242      integer(omp_memspace_handle_kind)llvm_omp_target_device_mem_space
243      parameter(llvm_omp_target_device_mem_space=102)
244
245      integer(kind=omp_pause_resource_kind)omp_pause_resume
246      parameter(omp_pause_resume=0)
247      integer(kind=omp_pause_resource_kind)omp_pause_soft
248      parameter(omp_pause_soft=1)
249      integer(kind=omp_pause_resource_kind)omp_pause_hard
250      parameter(omp_pause_hard=2)
251
252      integer(kind=omp_interop_fr_kind)omp_ifr_cuda
253      parameter(omp_ifr_cuda=1)
254      integer(kind=omp_interop_fr_kind)omp_ifr_cuda_driver
255      parameter(omp_ifr_cuda_driver=2)
256      integer(kind=omp_interop_fr_kind)omp_ifr_opencl
257      parameter(omp_ifr_opencl=3)
258      integer(kind=omp_interop_fr_kind)omp_ifr_sycl
259      parameter(omp_ifr_sycl=4)
260      integer(kind=omp_interop_fr_kind)omp_ifr_hip
261      parameter(omp_ifr_hip=5)
262      integer(kind=omp_interop_fr_kind)omp_ifr_level_zero
263      parameter(omp_ifr_level_zero=6)
264      integer(kind=omp_interop_fr_kind)omp_ifr_last
265      parameter(omp_ifr_last=7)
266
267      integer(kind=omp_interop_kind)omp_interop_none
268      parameter(omp_interop_none=0)
269
270      interface
271
272!       ***
273!       *** omp_* entry points
274!       ***
275
276        subroutine omp_set_num_threads(num_threads) bind(c)
277          import
278          integer (kind=omp_integer_kind), value :: num_threads
279        end subroutine omp_set_num_threads
280
281        subroutine omp_set_dynamic(dynamic_threads) bind(c)
282          import
283          logical (kind=omp_logical_kind), value :: dynamic_threads
284        end subroutine omp_set_dynamic
285
286        subroutine omp_set_nested(nested) bind(c)
287          import
288          logical (kind=omp_logical_kind), value :: nested
289        end subroutine omp_set_nested
290
291        function omp_get_num_threads() bind(c)
292          import
293          integer (kind=omp_integer_kind) omp_get_num_threads
294        end function omp_get_num_threads
295
296        function omp_get_max_threads() bind(c)
297          import
298          integer (kind=omp_integer_kind) omp_get_max_threads
299        end function omp_get_max_threads
300
301        function omp_get_thread_num() bind(c)
302          import
303          integer (kind=omp_integer_kind) omp_get_thread_num
304        end function omp_get_thread_num
305
306        function omp_get_num_procs() bind(c)
307          import
308          integer (kind=omp_integer_kind) omp_get_num_procs
309        end function omp_get_num_procs
310
311        function omp_in_parallel() bind(c)
312          import
313          logical (kind=omp_logical_kind) omp_in_parallel
314        end function omp_in_parallel
315
316        function omp_in_final() bind(c)
317          import
318          logical (kind=omp_logical_kind) omp_in_final
319        end function omp_in_final
320
321        function omp_get_dynamic() bind(c)
322          import
323          logical (kind=omp_logical_kind) omp_get_dynamic
324        end function omp_get_dynamic
325
326        function omp_get_nested() bind(c)
327          import
328          logical (kind=omp_logical_kind) omp_get_nested
329        end function omp_get_nested
330
331        function omp_get_thread_limit() bind(c)
332          import
333          integer (kind=omp_integer_kind) omp_get_thread_limit
334        end function omp_get_thread_limit
335
336        subroutine omp_set_max_active_levels(max_levels) bind(c)
337          import
338          integer (kind=omp_integer_kind), value :: max_levels
339        end subroutine omp_set_max_active_levels
340
341        function omp_get_max_active_levels() bind(c)
342          import
343          integer (kind=omp_integer_kind) omp_get_max_active_levels
344        end function omp_get_max_active_levels
345
346        function omp_get_level() bind(c)
347          import
348          integer (kind=omp_integer_kind) omp_get_level
349        end function omp_get_level
350
351        function omp_get_active_level() bind(c)
352          import
353          integer (kind=omp_integer_kind) omp_get_active_level
354        end function omp_get_active_level
355
356        function omp_get_ancestor_thread_num(level) bind(c)
357          import
358          integer (kind=omp_integer_kind) omp_get_ancestor_thread_num
359          integer (kind=omp_integer_kind), value :: level
360        end function omp_get_ancestor_thread_num
361
362        function omp_get_team_size(level) bind(c)
363          import
364          integer (kind=omp_integer_kind) omp_get_team_size
365          integer (kind=omp_integer_kind), value :: level
366        end function omp_get_team_size
367
368        subroutine omp_set_schedule(kind, chunk_size) bind(c)
369          import
370          integer (kind=omp_sched_kind), value :: kind
371          integer (kind=omp_integer_kind), value :: chunk_size
372        end subroutine omp_set_schedule
373
374        subroutine omp_get_schedule(kind, chunk_size) bind(c)
375          import
376          integer (kind=omp_sched_kind) kind
377          integer (kind=omp_integer_kind) chunk_size
378        end subroutine omp_get_schedule
379
380        function omp_get_proc_bind() bind(c)
381          import
382          integer (kind=omp_proc_bind_kind) omp_get_proc_bind
383        end function omp_get_proc_bind
384
385        function omp_get_num_places() bind(c)
386          import
387          integer (kind=omp_integer_kind) omp_get_num_places
388        end function omp_get_num_places
389
390        function omp_get_place_num_procs(place_num) bind(c)
391          import
392          integer (kind=omp_integer_kind), value :: place_num
393          integer (kind=omp_integer_kind) omp_get_place_num_procs
394        end function omp_get_place_num_procs
395
396        subroutine omp_get_place_proc_ids(place_num, ids) bind(c)
397          import
398          integer (kind=omp_integer_kind), value :: place_num
399          integer (kind=omp_integer_kind) ids(*)
400        end subroutine omp_get_place_proc_ids
401
402        function omp_get_place_num() bind(c)
403          import
404          integer (kind=omp_integer_kind) omp_get_place_num
405        end function omp_get_place_num
406
407        function omp_get_partition_num_places() bind(c)
408          import
409          integer (kind=omp_integer_kind) omp_get_partition_num_places
410        end function omp_get_partition_num_places
411
412        subroutine omp_get_partition_place_nums(place_nums) bind(c)
413          import
414          integer (kind=omp_integer_kind) place_nums(*)
415        end subroutine omp_get_partition_place_nums
416
417        function omp_get_wtime() bind(c)
418          double precision omp_get_wtime
419        end function omp_get_wtime
420
421        function omp_get_wtick() bind(c)
422          double precision omp_get_wtick
423        end function omp_get_wtick
424
425        function omp_get_default_device() bind(c)
426          import
427          integer (kind=omp_integer_kind) omp_get_default_device
428        end function omp_get_default_device
429
430        subroutine omp_set_default_device(device_num) bind(c)
431          import
432          integer (kind=omp_integer_kind), value :: device_num
433        end subroutine omp_set_default_device
434
435        function omp_get_num_devices() bind(c)
436          import
437          integer (kind=omp_integer_kind) omp_get_num_devices
438        end function omp_get_num_devices
439
440        function omp_get_num_teams() bind(c)
441          import
442          integer (kind=omp_integer_kind) omp_get_num_teams
443        end function omp_get_num_teams
444
445        function omp_get_team_num() bind(c)
446          import
447          integer (kind=omp_integer_kind) omp_get_team_num
448        end function omp_get_team_num
449
450        function omp_is_initial_device() bind(c)
451          import
452          logical (kind=omp_logical_kind) omp_is_initial_device
453        end function omp_is_initial_device
454
455        function omp_get_initial_device() bind(c)
456          import
457          integer (kind=omp_integer_kind) omp_get_initial_device
458        end function omp_get_initial_device
459
460        function omp_get_device_num() bind(c)
461          import
462          integer (kind=omp_integer_kind) omp_get_device_num
463        end function omp_get_device_num
464
465        function omp_pause_resource(kind, device_num) bind(c)
466          import
467          integer (kind=omp_pause_resource_kind), value :: kind
468          integer (kind=omp_integer_kind), value :: device_num
469          integer (kind=omp_integer_kind) omp_pause_resource
470        end function omp_pause_resource
471
472        function omp_pause_resource_all(kind) bind(c)
473          import
474          integer (kind=omp_pause_resource_kind), value :: kind
475          integer (kind=omp_integer_kind) omp_pause_resource_all
476        end function omp_pause_resource_all
477
478        function omp_get_supported_active_levels() bind(c)
479          import
480          integer(kind=omp_integer_kind)omp_get_supported_active_levels
481        end function omp_get_supported_active_levels
482
483        subroutine omp_fulfill_event(event) bind(c)
484          import
485          integer (kind=omp_event_handle_kind), value :: event
486        end subroutine omp_fulfill_event
487
488        subroutine omp_init_lock(svar) bind(c)
489!DIR$ IF(__INTEL_COMPILER.GE.1400)
490!DIR$ attributes known_intrinsic :: omp_init_lock
491!DIR$ ENDIF
492          import
493          integer (kind=omp_lock_kind) svar
494        end subroutine omp_init_lock
495
496        subroutine omp_destroy_lock(svar) bind(c)
497!DIR$ IF(__INTEL_COMPILER.GE.1400)
498!DIR$ attributes known_intrinsic :: omp_destroy_lock
499!DIR$ ENDIF
500          import
501          integer (kind=omp_lock_kind) svar
502        end subroutine omp_destroy_lock
503
504        subroutine omp_set_lock(svar) bind(c)
505!DIR$ IF(__INTEL_COMPILER.GE.1400)
506!DIR$ attributes known_intrinsic :: omp_set_lock
507!DIR$ ENDIF
508          import
509          integer (kind=omp_lock_kind) svar
510        end subroutine omp_set_lock
511
512        subroutine omp_unset_lock(svar) bind(c)
513!DIR$ IF(__INTEL_COMPILER.GE.1400)
514!DIR$ attributes known_intrinsic :: omp_unset_lock
515!DIR$ ENDIF
516          import
517          integer (kind=omp_lock_kind) svar
518        end subroutine omp_unset_lock
519
520        function omp_test_lock(svar) bind(c)
521!DIR$ IF(__INTEL_COMPILER.GE.1400)
522!DIR$ attributes known_intrinsic :: omp_test_lock
523!DIR$ ENDIF
524          import
525          logical (kind=omp_logical_kind) omp_test_lock
526          integer (kind=omp_lock_kind) svar
527        end function omp_test_lock
528
529        subroutine omp_init_nest_lock(nvar) bind(c)
530!DIR$ IF(__INTEL_COMPILER.GE.1400)
531!DIR$ attributes known_intrinsic :: omp_init_nest_lock
532!DIR$ ENDIF
533          import
534          integer (kind=omp_nest_lock_kind) nvar
535        end subroutine omp_init_nest_lock
536
537        subroutine omp_destroy_nest_lock(nvar) bind(c)
538!DIR$ IF(__INTEL_COMPILER.GE.1400)
539!DIR$ attributes known_intrinsic :: omp_destroy_nest_lock
540!DIR$ ENDIF
541          import
542          integer (kind=omp_nest_lock_kind) nvar
543        end subroutine omp_destroy_nest_lock
544
545        subroutine omp_set_nest_lock(nvar) bind(c)
546!DIR$ IF(__INTEL_COMPILER.GE.1400)
547!DIR$ attributes known_intrinsic :: omp_set_nest_lock
548!DIR$ ENDIF
549          import
550          integer (kind=omp_nest_lock_kind) nvar
551        end subroutine omp_set_nest_lock
552
553        subroutine omp_unset_nest_lock(nvar) bind(c)
554!DIR$ IF(__INTEL_COMPILER.GE.1400)
555!DIR$ attributes known_intrinsic :: omp_unset_nest_lock
556!DIR$ ENDIF
557          import
558          integer (kind=omp_nest_lock_kind) nvar
559        end subroutine omp_unset_nest_lock
560
561        function omp_test_nest_lock(nvar) bind(c)
562!DIR$ IF(__INTEL_COMPILER.GE.1400)
563!DIR$ attributes known_intrinsic :: omp_test_nest_lock
564!DIR$ ENDIF
565          import
566          integer (kind=omp_integer_kind) omp_test_nest_lock
567          integer (kind=omp_nest_lock_kind) nvar
568        end function omp_test_nest_lock
569
570        function omp_get_max_task_priority() bind(c)
571          import
572          integer (kind=omp_integer_kind) omp_get_max_task_priority
573        end function omp_get_max_task_priority
574
575        subroutine omp_init_lock_with_hint(svar, hint) bind(c)
576          import
577          integer (kind=omp_lock_kind) svar
578          integer (kind=omp_lock_hint_kind), value :: hint
579        end subroutine omp_init_lock_with_hint
580
581        subroutine omp_init_nest_lock_with_hint(nvar, hint) bind(c)
582          import
583          integer (kind=omp_nest_lock_kind) nvar
584          integer (kind=omp_lock_hint_kind), value :: hint
585        end subroutine omp_init_nest_lock_with_hint
586
587        function omp_control_tool(command, modifier, arg) bind(c)
588          import
589          integer (kind=omp_integer_kind) omp_control_tool
590          integer (kind=omp_control_tool_kind), value :: command
591          integer (kind=omp_control_tool_kind), value :: modifier
592          integer (kind=kmp_pointer_kind), optional :: arg
593        end function omp_control_tool
594
595        function omp_init_allocator(memspace, ntraits, traits)
596          import
597          integer (omp_allocator_handle_kind) omp_init_allocator
598          integer (omp_memspace_handle_kind) :: memspace
599          integer (omp_integer_kind) :: ntraits
600          type(omp_alloctrait), intent(in) :: traits(*)
601        end function omp_init_allocator
602
603        subroutine omp_destroy_allocator(allocator) bind(c)
604          import
605          integer (omp_allocator_handle_kind), value :: allocator
606        end subroutine omp_destroy_allocator
607
608        subroutine omp_set_default_allocator(allocator) bind(c)
609          import
610          integer (omp_allocator_handle_kind), value :: allocator
611        end subroutine omp_set_default_allocator
612
613        function omp_get_default_allocator() bind(c)
614          import
615          integer (omp_allocator_handle_kind) omp_get_default_allocator
616        end function omp_get_default_allocator
617
618        subroutine omp_set_affinity_format(format)
619          character (len=*) :: format
620        end subroutine omp_set_affinity_format
621
622        function omp_get_affinity_format(buffer)
623          import
624          character (len=*) :: buffer
625          integer (kind=kmp_size_t_kind) :: omp_get_affinity_format
626        end function omp_get_affinity_format
627
628        subroutine omp_display_affinity(format)
629          character (len=*) :: format
630        end subroutine omp_display_affinity
631
632        function omp_capture_affinity(buffer, format)
633          import
634          character (len=*) :: format
635          character (len=*) :: buffer
636          integer (kind=kmp_size_t_kind) :: omp_capture_affinity
637        end function omp_capture_affinity
638
639        subroutine omp_set_num_teams(num_teams) bind(c)
640          import
641          integer (kind=omp_integer_kind), value :: num_teams
642        end subroutine omp_set_num_teams
643
644        function omp_get_max_teams() bind(c)
645          import
646          integer (kind=omp_integer_kind) omp_get_max_teams
647        end function omp_get_max_teams
648
649        subroutine omp_set_teams_thread_limit(thread_limit) bind(c)
650          import
651          integer (kind=omp_integer_kind), value :: thread_limit
652        end subroutine omp_set_teams_thread_limit
653
654        function omp_get_teams_thread_limit() bind(c)
655          import
656          integer (kind=omp_integer_kind) omp_get_teams_thread_limit
657        end function omp_get_teams_thread_limit
658
659        subroutine omp_display_env(verbose) bind(c)
660          import
661          logical (kind=omp_logical_kind), value :: verbose
662        end subroutine omp_display_env
663
664        function omp_target_alloc(size, device_num) bind(c)
665          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
666          type(c_ptr) omp_target_alloc
667          integer(c_size_t), value :: size
668          integer(c_int), value :: device_num
669        end function omp_target_alloc
670
671        subroutine omp_target_free(device_ptr, device_num) bind(c)
672          use, intrinsic :: iso_c_binding, only : c_ptr, c_int
673          type(c_ptr), value :: device_ptr
674          integer(c_int), value :: device_num
675        end subroutine omp_target_free
676
677        function omp_target_is_present(ptr, device_num) bind(c)
678          use, intrinsic :: iso_c_binding, only : c_ptr, c_int
679          integer(c_int) omp_target_is_present
680          type(c_ptr), value :: ptr
681          integer(c_int), value :: device_num
682        end function omp_target_is_present
683
684        function omp_target_memcpy(dst, src, length, dst_offset,                                                                    &
685     &      src_offset, dst_device_num, src_device_num) bind(c)
686          use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
687          integer(c_int) omp_target_memcpy
688          type(c_ptr), value :: dst, src
689          integer(c_size_t), value :: length, dst_offset, src_offset
690          integer(c_int), value :: dst_device_num, src_device_num
691        end function omp_target_memcpy
692
693        function omp_target_memcpy_rect(dst, src, element_size,                                                                     &
694     &      num_dims, volume, dst_offsets, src_offsets, dst_dimensions,                                                             &
695     &      src_dimensions, dst_device_num, src_device_num) bind(c)
696          use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
697          integer(c_int) omp_target_memcpy_rect
698          type(c_ptr), value :: dst, src
699          integer(c_size_t), value :: element_size
700          integer(c_int), value :: num_dims, dst_device_num,                                                                        &
701     &        src_device_num
702          integer(c_size_t), intent(in) :: volume(*), dst_offsets(*),                                                               &
703     &        src_offsets(*), dst_dimensions(*), src_dimensions(*)
704        end function omp_target_memcpy_rect
705
706        function omp_target_memcpy_async(dst, src, length, dst_offset,                                                              &
707     &      src_offset, dst_device_num, src_device_num, depobj_count,                                                               &
708     &      depobj_list) bind(c)
709          use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
710          import
711          integer(c_int) omp_target_memcpy_async
712          type(c_ptr), value :: dst, src
713          integer(c_size_t), value :: length, dst_offset, src_offset
714          integer(c_int), value :: dst_device_num, src_device_num,                                                                  &
715     &        depobj_count
716          integer(omp_depend_kind), optional :: depobj_list(*)
717        end function omp_target_memcpy_async
718
719        function omp_target_memcpy_rect_async(dst, src, element_size,                                                               &
720     &      num_dims, volume, dst_offsets, src_offsets, dst_dimensions,                                                             &
721     &      src_dimensions, dst_device_num, src_device_num,                                                                         &
722     &      depobj_count, depobj_list) bind(c)
723          use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
724          import
725          integer(c_int) omp_target_memcpy_rect_async
726          type(c_ptr), value :: dst, src
727          integer(c_size_t), value :: element_size
728          integer(c_int), value :: num_dims, dst_device_num,                                                                        &
729     &        src_device_num, depobj_count
730          integer(c_size_t), intent(in) :: volume(*), dst_offsets(*),                                                               &
731     &        src_offsets(*), dst_dimensions(*), src_dimensions(*)
732          integer(omp_depend_kind), optional :: depobj_list(*)
733        end function omp_target_memcpy_rect_async
734
735        function omp_target_associate_ptr(host_ptr, device_ptr, size,                                                               &
736     &      device_offset, device_num) bind(c)
737          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
738          integer(c_int) omp_target_associate_ptr
739          type(c_ptr), value :: host_ptr, device_ptr
740          integer(c_size_t), value :: size, device_offset
741          integer(c_int), value :: device_num
742        end function omp_target_associate_ptr
743
744        function omp_get_mapped_ptr(ptr, device_num) bind(c)
745          use, intrinsic :: iso_c_binding, only : c_ptr, c_int
746          type(c_ptr) omp_get_mapped_ptr
747          type(c_ptr), value :: ptr
748          integer(c_int), value :: device_num
749        end function omp_get_mapped_ptr
750
751        function omp_target_disassociate_ptr(ptr, device_num) bind(c)
752          use, intrinsic :: iso_c_binding, only : c_ptr, c_int
753          integer(c_int) omp_target_disassociate_ptr
754          type(c_ptr), value :: ptr
755          integer(c_int), value :: device_num
756        end function omp_target_disassociate_ptr
757
758        function omp_target_is_accessible(ptr, size, device_num) bind(c)
759          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
760          integer(c_int) omp_target_is_accessible
761          type(c_ptr), value :: ptr
762          integer(c_size_t), value :: size
763          integer(c_int), value :: device_num
764        end function omp_target_is_accessible
765
766        function omp_alloc(size, allocator) bind(c)
767          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
768          import :: omp_allocator_handle_kind
769          type(c_ptr) omp_alloc
770          integer(c_size_t), value :: size
771          integer(omp_allocator_handle_kind), value :: allocator
772        end function omp_alloc
773
774        function omp_aligned_alloc(alignment, size, allocator) bind(c)
775          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
776          import :: omp_allocator_handle_kind
777          type(c_ptr) omp_aligned_alloc
778          integer(c_size_t), value :: alignment, size
779          integer(omp_allocator_handle_kind), value :: allocator
780        end function omp_aligned_alloc
781
782        function omp_calloc(nmemb, size, allocator) bind(c)
783          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
784          import :: omp_allocator_handle_kind
785          type(c_ptr) omp_calloc
786          integer(c_size_t), value :: nmemb, size
787          integer(omp_allocator_handle_kind), value :: allocator
788        end function omp_calloc
789
790        function omp_aligned_calloc(alignment, nmemb, size,                                                                         &
791     &      allocator) bind(c)
792          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
793          import :: omp_allocator_handle_kind
794          type(c_ptr) omp_aligned_calloc
795          integer(c_size_t), value :: alignment, nmemb, size
796          integer(omp_allocator_handle_kind), value :: allocator
797        end function omp_aligned_calloc
798
799        function omp_realloc(ptr, size, allocator,                                                                                  &
800     &      free_allocator) bind(c)
801          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
802          import :: omp_allocator_handle_kind
803          type(c_ptr) omp_realloc
804          type(c_ptr), value :: ptr
805          integer(c_size_t), value :: size
806          integer(omp_allocator_handle_kind), value :: allocator
807          integer(omp_allocator_handle_kind), value :: free_allocator
808        end function omp_realloc
809
810        subroutine omp_free(ptr, allocator) bind(c)
811          use, intrinsic :: iso_c_binding, only : c_ptr
812          import :: omp_allocator_handle_kind
813          type(c_ptr), value :: ptr
814          integer(omp_allocator_handle_kind), value :: allocator
815        end subroutine omp_free
816
817        function omp_in_explicit_task() bind(c)
818          import
819          logical (kind=omp_logical_kind) omp_in_explicit_task
820        end function omp_in_explicit_task
821
822!       ***
823!       *** kmp_* entry points
824!       ***
825
826        subroutine kmp_set_stacksize(size) bind(c)
827          import
828          integer (kind=omp_integer_kind), value :: size
829        end subroutine kmp_set_stacksize
830
831        subroutine kmp_set_stacksize_s(size) bind(c)
832          import
833          integer (kind=kmp_size_t_kind), value :: size
834        end subroutine kmp_set_stacksize_s
835
836        subroutine kmp_set_blocktime(msec) bind(c)
837          import
838          integer (kind=omp_integer_kind), value :: msec
839        end subroutine kmp_set_blocktime
840
841        subroutine kmp_set_library_serial() bind(c)
842        end subroutine kmp_set_library_serial
843
844        subroutine kmp_set_library_turnaround() bind(c)
845        end subroutine kmp_set_library_turnaround
846
847        subroutine kmp_set_library_throughput() bind(c)
848        end subroutine kmp_set_library_throughput
849
850        subroutine kmp_set_library(libnum) bind(c)
851          import
852          integer (kind=omp_integer_kind), value :: libnum
853        end subroutine kmp_set_library
854
855        subroutine kmp_set_defaults(string) bind(c)
856          character string(*)
857        end subroutine kmp_set_defaults
858
859        function kmp_get_stacksize() bind(c)
860          import
861          integer (kind=omp_integer_kind) kmp_get_stacksize
862        end function kmp_get_stacksize
863
864        function kmp_get_stacksize_s() bind(c)
865          import
866          integer (kind=kmp_size_t_kind) kmp_get_stacksize_s
867        end function kmp_get_stacksize_s
868
869        function kmp_get_blocktime() bind(c)
870          import
871          integer (kind=omp_integer_kind) kmp_get_blocktime
872        end function kmp_get_blocktime
873
874        function kmp_get_library() bind(c)
875          import
876          integer (kind=omp_integer_kind) kmp_get_library
877        end function kmp_get_library
878
879        subroutine kmp_set_disp_num_buffers(num) bind(c)
880          import
881          integer (kind=omp_integer_kind), value :: num
882        end subroutine kmp_set_disp_num_buffers
883
884        function kmp_set_affinity(mask) bind(c)
885          import
886          integer (kind=omp_integer_kind) kmp_set_affinity
887          integer (kind=kmp_affinity_mask_kind) mask
888        end function kmp_set_affinity
889
890        function kmp_get_affinity(mask) bind(c)
891          import
892          integer (kind=omp_integer_kind) kmp_get_affinity
893          integer (kind=kmp_affinity_mask_kind) mask
894        end function kmp_get_affinity
895
896        function kmp_get_affinity_max_proc() bind(c)
897          import
898          integer (kind=omp_integer_kind) kmp_get_affinity_max_proc
899        end function kmp_get_affinity_max_proc
900
901        subroutine kmp_create_affinity_mask(mask) bind(c)
902          import
903          integer (kind=kmp_affinity_mask_kind) mask
904        end subroutine kmp_create_affinity_mask
905
906        subroutine kmp_destroy_affinity_mask(mask) bind(c)
907          import
908          integer (kind=kmp_affinity_mask_kind) mask
909        end subroutine kmp_destroy_affinity_mask
910
911        function kmp_set_affinity_mask_proc(proc, mask) bind(c)
912          import
913          integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc
914          integer (kind=omp_integer_kind), value :: proc
915          integer (kind=kmp_affinity_mask_kind) mask
916        end function kmp_set_affinity_mask_proc
917
918        function kmp_unset_affinity_mask_proc(proc, mask) bind(c)
919          import
920          integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc
921          integer (kind=omp_integer_kind), value :: proc
922          integer (kind=kmp_affinity_mask_kind) mask
923        end function kmp_unset_affinity_mask_proc
924
925        function kmp_get_affinity_mask_proc(proc, mask) bind(c)
926          import
927          integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc
928          integer (kind=omp_integer_kind), value :: proc
929          integer (kind=kmp_affinity_mask_kind) mask
930        end function kmp_get_affinity_mask_proc
931
932        function kmp_malloc(size) bind(c)
933          import
934          integer (kind=kmp_pointer_kind) kmp_malloc
935          integer (kind=kmp_size_t_kind), value :: size
936        end function kmp_malloc
937
938        function kmp_aligned_malloc(size, alignment) bind(c)
939          import
940          integer (kind=kmp_pointer_kind) kmp_aligned_malloc
941          integer (kind=kmp_size_t_kind), value :: size
942          integer (kind=kmp_size_t_kind), value :: alignment
943        end function kmp_aligned_malloc
944
945        function kmp_calloc(nelem, elsize) bind(c)
946          import
947          integer (kind=kmp_pointer_kind) kmp_calloc
948          integer (kind=kmp_size_t_kind), value :: nelem
949          integer (kind=kmp_size_t_kind), value :: elsize
950        end function kmp_calloc
951
952        function kmp_realloc(ptr, size) bind(c)
953          import
954          integer (kind=kmp_pointer_kind) kmp_realloc
955          integer (kind=kmp_pointer_kind), value :: ptr
956          integer (kind=kmp_size_t_kind), value :: size
957        end function kmp_realloc
958
959        subroutine kmp_free(ptr) bind(c)
960          import
961          integer (kind=kmp_pointer_kind), value :: ptr
962        end subroutine kmp_free
963
964        subroutine kmp_set_warnings_on() bind(c)
965        end subroutine kmp_set_warnings_on
966
967        subroutine kmp_set_warnings_off() bind(c)
968        end subroutine kmp_set_warnings_off
969      end interface
970
971!DIR$ IF DEFINED (__INTEL_OFFLOAD)
972
973!DIR$ IF(__INTEL_COMPILER.LT.1900)
974!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_num_threads
975!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_dynamic
976!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_nested
977!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_threads
978!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_max_threads
979!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_thread_num
980!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_procs
981!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_in_parallel
982!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_in_final
983!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_dynamic
984!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_nested
985!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_thread_limit
986!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_max_active_levels
987!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_max_active_levels
988!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_level
989!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_active_level
990!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_ancestor_thread_num
991!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_team_size
992!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_schedule
993!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_schedule
994!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_proc_bind
995!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_wtime
996!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_wtick
997!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_default_device
998!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_default_device
999!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_is_initial_device
1000!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_initial_device
1001!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_devices
1002!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_device_num
1003!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_pause_resource
1004!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_pause_resource_all
1005!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_supported_active_levels
1006!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_fulfill_event
1007!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_teams
1008!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_team_num
1009!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_lock
1010!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_destroy_lock
1011!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_lock
1012!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_unset_lock
1013!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_test_lock
1014!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_nest_lock
1015!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_destroy_nest_lock
1016!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_nest_lock
1017!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_unset_nest_lock
1018!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_test_nest_lock
1019!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_max_task_priority
1020!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_affinity_format
1021!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_affinity_format
1022!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_display_affinity
1023!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_capture_affinity
1024!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_stacksize
1025!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_stacksize_s
1026!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_blocktime
1027!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library_serial
1028!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library_turnaround
1029!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library_throughput
1030!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library
1031!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_defaults
1032!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_stacksize
1033!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_stacksize_s
1034!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_blocktime
1035!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_library
1036!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_disp_num_buffers
1037!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_affinity
1038!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_affinity
1039!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_affinity_max_proc
1040!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_create_affinity_mask
1041!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_destroy_affinity_mask
1042!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_affinity_mask_proc
1043!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_unset_affinity_mask_proc
1044!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_affinity_mask_proc
1045!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_malloc
1046!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_aligned_malloc
1047!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_calloc
1048!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_realloc
1049!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_free
1050!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_warnings_on
1051!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_warnings_off
1052!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_lock_with_hint
1053!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_nest_lock_with_hint
1054!DIR$ ENDIF
1055
1056!DIR$ IF(__INTEL_COMPILER.GE.1400)
1057!$omp declare target(omp_set_num_threads )
1058!$omp declare target(omp_set_dynamic )
1059!$omp declare target(omp_set_nested )
1060!$omp declare target(omp_get_num_threads )
1061!$omp declare target(omp_get_max_threads )
1062!$omp declare target(omp_get_thread_num )
1063!$omp declare target(omp_get_num_procs )
1064!$omp declare target(omp_in_parallel )
1065!$omp declare target(omp_in_final )
1066!$omp declare target(omp_get_dynamic )
1067!$omp declare target(omp_get_nested )
1068!$omp declare target(omp_get_thread_limit )
1069!$omp declare target(omp_set_max_active_levels )
1070!$omp declare target(omp_get_max_active_levels )
1071!$omp declare target(omp_get_level )
1072!$omp declare target(omp_get_active_level )
1073!$omp declare target(omp_get_ancestor_thread_num )
1074!$omp declare target(omp_get_team_size )
1075!$omp declare target(omp_set_schedule )
1076!$omp declare target(omp_get_schedule )
1077!$omp declare target(omp_get_proc_bind )
1078!$omp declare target(omp_get_wtime )
1079!$omp declare target(omp_get_wtick )
1080!$omp declare target(omp_get_default_device )
1081!$omp declare target(omp_set_default_device )
1082!$omp declare target(omp_is_initial_device )
1083!$omp declare target(omp_get_initial_device )
1084!$omp declare target(omp_get_num_devices )
1085!$omp declare target(omp_get_device_num )
1086!$omp declare target(omp_pause_resource )
1087!$omp declare target(omp_pause_resource_all )
1088!$omp declare target(omp_get_supported_active_levels )
1089!$omp declare target(omp_fulfill_event)
1090!$omp declare target(omp_get_num_teams )
1091!$omp declare target(omp_get_team_num )
1092!$omp declare target(omp_init_lock )
1093!$omp declare target(omp_destroy_lock )
1094!$omp declare target(omp_set_lock )
1095!$omp declare target(omp_unset_lock )
1096!$omp declare target(omp_test_lock )
1097!$omp declare target(omp_init_nest_lock )
1098!$omp declare target(omp_destroy_nest_lock )
1099!$omp declare target(omp_set_nest_lock )
1100!$omp declare target(omp_unset_nest_lock )
1101!$omp declare target(omp_test_nest_lock )
1102!$omp declare target(omp_get_max_task_priority )
1103!$omp declare target(omp_set_affinity_format )
1104!$omp declare target(omp_get_affinity_format )
1105!$omp declare target(omp_display_affinity )
1106!$omp declare target(omp_capture_affinity )
1107!$omp declare target(kmp_set_stacksize )
1108!$omp declare target(kmp_set_stacksize_s )
1109!$omp declare target(kmp_set_blocktime )
1110!$omp declare target(kmp_set_library_serial )
1111!$omp declare target(kmp_set_library_turnaround )
1112!$omp declare target(kmp_set_library_throughput )
1113!$omp declare target(kmp_set_library )
1114!$omp declare target(kmp_set_defaults )
1115!$omp declare target(kmp_get_stacksize )
1116!$omp declare target(kmp_get_stacksize_s )
1117!$omp declare target(kmp_get_blocktime )
1118!$omp declare target(kmp_get_library )
1119!$omp declare target(kmp_set_disp_num_buffers )
1120!$omp declare target(kmp_set_affinity )
1121!$omp declare target(kmp_get_affinity )
1122!$omp declare target(kmp_get_affinity_max_proc )
1123!$omp declare target(kmp_create_affinity_mask )
1124!$omp declare target(kmp_destroy_affinity_mask )
1125!$omp declare target(kmp_set_affinity_mask_proc )
1126!$omp declare target(kmp_unset_affinity_mask_proc )
1127!$omp declare target(kmp_get_affinity_mask_proc )
1128!$omp declare target(kmp_malloc )
1129!$omp declare target(kmp_aligned_malloc )
1130!$omp declare target(kmp_calloc )
1131!$omp declare target(kmp_realloc )
1132!$omp declare target(kmp_free )
1133!$omp declare target(kmp_set_warnings_on )
1134!$omp declare target(kmp_set_warnings_off )
1135!$omp declare target(omp_init_lock_with_hint )
1136!$omp declare target(omp_init_nest_lock_with_hint )
1137!DIR$ ENDIF
1138!DIR$ ENDIF
1139