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      ! Preview of target memory support
222      integer(omp_allocator_handle_kind)llvm_omp_target_host_mem_alloc
223      parameter(llvm_omp_target_host_mem_alloc=100)
224      integer(omp_allocator_handle_kind)llvm_omp_target_shared_mem_alloc
225      parameter(llvm_omp_target_shared_mem_alloc=101)
226      integer(omp_allocator_handle_kind)llvm_omp_target_device_mem_alloc
227      parameter(llvm_omp_target_device_mem_alloc=102)
228
229      integer(kind=omp_memspace_handle_kind)omp_default_mem_space
230      parameter(omp_default_mem_space=0)
231      integer(kind=omp_memspace_handle_kind)omp_large_cap_mem_space
232      parameter(omp_large_cap_mem_space=1)
233      integer(kind=omp_memspace_handle_kind)omp_const_mem_space
234      parameter(omp_const_mem_space=2)
235      integer(kind=omp_memspace_handle_kind)omp_high_bw_mem_space
236      parameter(omp_high_bw_mem_space=3)
237      integer(kind=omp_memspace_handle_kind)omp_low_lat_mem_space
238      parameter(omp_low_lat_mem_space=4)
239      ! Preview of target memory support
240      integer(omp_memspace_handle_kind)llvm_omp_target_host_mem_space
241      parameter(llvm_omp_target_host_mem_space=100)
242      integer(omp_memspace_handle_kind)llvm_omp_target_shared_mem_space
243      parameter(llvm_omp_target_shared_mem_space=101)
244      integer(omp_memspace_handle_kind)llvm_omp_target_device_mem_space
245      parameter(llvm_omp_target_device_mem_space=102)
246
247      integer(kind=omp_pause_resource_kind)omp_pause_resume
248      parameter(omp_pause_resume=0)
249      integer(kind=omp_pause_resource_kind)omp_pause_soft
250      parameter(omp_pause_soft=1)
251      integer(kind=omp_pause_resource_kind)omp_pause_hard
252      parameter(omp_pause_hard=2)
253
254      integer(kind=omp_interop_fr_kind)omp_ifr_cuda
255      parameter(omp_ifr_cuda=1)
256      integer(kind=omp_interop_fr_kind)omp_ifr_cuda_driver
257      parameter(omp_ifr_cuda_driver=2)
258      integer(kind=omp_interop_fr_kind)omp_ifr_opencl
259      parameter(omp_ifr_opencl=3)
260      integer(kind=omp_interop_fr_kind)omp_ifr_sycl
261      parameter(omp_ifr_sycl=4)
262      integer(kind=omp_interop_fr_kind)omp_ifr_hip
263      parameter(omp_ifr_hip=5)
264      integer(kind=omp_interop_fr_kind)omp_ifr_level_zero
265      parameter(omp_ifr_level_zero=6)
266      integer(kind=omp_interop_fr_kind)omp_ifr_last
267      parameter(omp_ifr_last=7)
268
269      integer(kind=omp_interop_kind)omp_interop_none
270      parameter(omp_interop_none=0)
271
272      interface
273
274!       ***
275!       *** omp_* entry points
276!       ***
277
278        subroutine omp_set_num_threads(num_threads) bind(c)
279          import
280          integer (kind=omp_integer_kind), value :: num_threads
281        end subroutine omp_set_num_threads
282
283        subroutine omp_set_dynamic(dynamic_threads) bind(c)
284          import
285          logical (kind=omp_logical_kind), value :: dynamic_threads
286        end subroutine omp_set_dynamic
287
288        subroutine omp_set_nested(nested) bind(c)
289          import
290          logical (kind=omp_logical_kind), value :: nested
291        end subroutine omp_set_nested
292
293        function omp_get_num_threads() bind(c)
294          import
295          integer (kind=omp_integer_kind) omp_get_num_threads
296        end function omp_get_num_threads
297
298        function omp_get_max_threads() bind(c)
299          import
300          integer (kind=omp_integer_kind) omp_get_max_threads
301        end function omp_get_max_threads
302
303        function omp_get_thread_num() bind(c)
304          import
305          integer (kind=omp_integer_kind) omp_get_thread_num
306        end function omp_get_thread_num
307
308        function omp_get_num_procs() bind(c)
309          import
310          integer (kind=omp_integer_kind) omp_get_num_procs
311        end function omp_get_num_procs
312
313        function omp_in_parallel() bind(c)
314          import
315          logical (kind=omp_logical_kind) omp_in_parallel
316        end function omp_in_parallel
317
318        function omp_in_final() bind(c)
319          import
320          logical (kind=omp_logical_kind) omp_in_final
321        end function omp_in_final
322
323        function omp_get_dynamic() bind(c)
324          import
325          logical (kind=omp_logical_kind) omp_get_dynamic
326        end function omp_get_dynamic
327
328        function omp_get_nested() bind(c)
329          import
330          logical (kind=omp_logical_kind) omp_get_nested
331        end function omp_get_nested
332
333        function omp_get_thread_limit() bind(c)
334          import
335          integer (kind=omp_integer_kind) omp_get_thread_limit
336        end function omp_get_thread_limit
337
338        subroutine omp_set_max_active_levels(max_levels) bind(c)
339          import
340          integer (kind=omp_integer_kind), value :: max_levels
341        end subroutine omp_set_max_active_levels
342
343        function omp_get_max_active_levels() bind(c)
344          import
345          integer (kind=omp_integer_kind) omp_get_max_active_levels
346        end function omp_get_max_active_levels
347
348        function omp_get_level() bind(c)
349          import
350          integer (kind=omp_integer_kind) omp_get_level
351        end function omp_get_level
352
353        function omp_get_active_level() bind(c)
354          import
355          integer (kind=omp_integer_kind) omp_get_active_level
356        end function omp_get_active_level
357
358        function omp_get_ancestor_thread_num(level) bind(c)
359          import
360          integer (kind=omp_integer_kind) omp_get_ancestor_thread_num
361          integer (kind=omp_integer_kind), value :: level
362        end function omp_get_ancestor_thread_num
363
364        function omp_get_team_size(level) bind(c)
365          import
366          integer (kind=omp_integer_kind) omp_get_team_size
367          integer (kind=omp_integer_kind), value :: level
368        end function omp_get_team_size
369
370        subroutine omp_set_schedule(kind, chunk_size) bind(c)
371          import
372          integer (kind=omp_sched_kind), value :: kind
373          integer (kind=omp_integer_kind), value :: chunk_size
374        end subroutine omp_set_schedule
375
376        subroutine omp_get_schedule(kind, chunk_size) bind(c)
377          import
378          integer (kind=omp_sched_kind) kind
379          integer (kind=omp_integer_kind) chunk_size
380        end subroutine omp_get_schedule
381
382        function omp_get_proc_bind() bind(c)
383          import
384          integer (kind=omp_proc_bind_kind) omp_get_proc_bind
385        end function omp_get_proc_bind
386
387        function omp_get_num_places() bind(c)
388          import
389          integer (kind=omp_integer_kind) omp_get_num_places
390        end function omp_get_num_places
391
392        function omp_get_place_num_procs(place_num) bind(c)
393          import
394          integer (kind=omp_integer_kind), value :: place_num
395          integer (kind=omp_integer_kind) omp_get_place_num_procs
396        end function omp_get_place_num_procs
397
398        subroutine omp_get_place_proc_ids(place_num, ids) bind(c)
399          import
400          integer (kind=omp_integer_kind), value :: place_num
401          integer (kind=omp_integer_kind) ids(*)
402        end subroutine omp_get_place_proc_ids
403
404        function omp_get_place_num() bind(c)
405          import
406          integer (kind=omp_integer_kind) omp_get_place_num
407        end function omp_get_place_num
408
409        function omp_get_partition_num_places() bind(c)
410          import
411          integer (kind=omp_integer_kind) omp_get_partition_num_places
412        end function omp_get_partition_num_places
413
414        subroutine omp_get_partition_place_nums(place_nums) bind(c)
415          import
416          integer (kind=omp_integer_kind) place_nums(*)
417        end subroutine omp_get_partition_place_nums
418
419        function omp_get_wtime() bind(c)
420          double precision omp_get_wtime
421        end function omp_get_wtime
422
423        function omp_get_wtick() bind(c)
424          double precision omp_get_wtick
425        end function omp_get_wtick
426
427        function omp_get_default_device() bind(c)
428          import
429          integer (kind=omp_integer_kind) omp_get_default_device
430        end function omp_get_default_device
431
432        subroutine omp_set_default_device(device_num) bind(c)
433          import
434          integer (kind=omp_integer_kind), value :: device_num
435        end subroutine omp_set_default_device
436
437        function omp_get_num_devices() bind(c)
438          import
439          integer (kind=omp_integer_kind) omp_get_num_devices
440        end function omp_get_num_devices
441
442        function omp_get_num_teams() bind(c)
443          import
444          integer (kind=omp_integer_kind) omp_get_num_teams
445        end function omp_get_num_teams
446
447        function omp_get_team_num() bind(c)
448          import
449          integer (kind=omp_integer_kind) omp_get_team_num
450        end function omp_get_team_num
451
452        function omp_is_initial_device() bind(c)
453          import
454          logical (kind=omp_logical_kind) omp_is_initial_device
455        end function omp_is_initial_device
456
457        function omp_get_initial_device() bind(c)
458          import
459          integer (kind=omp_integer_kind) omp_get_initial_device
460        end function omp_get_initial_device
461
462        function omp_get_device_num() bind(c)
463          import
464          integer (kind=omp_integer_kind) omp_get_device_num
465        end function omp_get_device_num
466
467        function omp_pause_resource(kind, device_num) bind(c)
468          import
469          integer (kind=omp_pause_resource_kind), value :: kind
470          integer (kind=omp_integer_kind), value :: device_num
471          integer (kind=omp_integer_kind) omp_pause_resource
472        end function omp_pause_resource
473
474        function omp_pause_resource_all(kind) bind(c)
475          import
476          integer (kind=omp_pause_resource_kind), value :: kind
477          integer (kind=omp_integer_kind) omp_pause_resource_all
478        end function omp_pause_resource_all
479
480        function omp_get_supported_active_levels() bind(c)
481          import
482          integer(kind=omp_integer_kind)omp_get_supported_active_levels
483        end function omp_get_supported_active_levels
484
485        subroutine omp_fulfill_event(event) bind(c)
486          import
487          integer (kind=omp_event_handle_kind), value :: event
488        end subroutine omp_fulfill_event
489
490        subroutine omp_init_lock(svar) bind(c)
491!DIR$ IF(__INTEL_COMPILER.GE.1400)
492!DIR$ attributes known_intrinsic :: omp_init_lock
493!DIR$ ENDIF
494          import
495          integer (kind=omp_lock_kind) svar
496        end subroutine omp_init_lock
497
498        subroutine omp_destroy_lock(svar) bind(c)
499!DIR$ IF(__INTEL_COMPILER.GE.1400)
500!DIR$ attributes known_intrinsic :: omp_destroy_lock
501!DIR$ ENDIF
502          import
503          integer (kind=omp_lock_kind) svar
504        end subroutine omp_destroy_lock
505
506        subroutine omp_set_lock(svar) bind(c)
507!DIR$ IF(__INTEL_COMPILER.GE.1400)
508!DIR$ attributes known_intrinsic :: omp_set_lock
509!DIR$ ENDIF
510          import
511          integer (kind=omp_lock_kind) svar
512        end subroutine omp_set_lock
513
514        subroutine omp_unset_lock(svar) bind(c)
515!DIR$ IF(__INTEL_COMPILER.GE.1400)
516!DIR$ attributes known_intrinsic :: omp_unset_lock
517!DIR$ ENDIF
518          import
519          integer (kind=omp_lock_kind) svar
520        end subroutine omp_unset_lock
521
522        function omp_test_lock(svar) bind(c)
523!DIR$ IF(__INTEL_COMPILER.GE.1400)
524!DIR$ attributes known_intrinsic :: omp_test_lock
525!DIR$ ENDIF
526          import
527          logical (kind=omp_logical_kind) omp_test_lock
528          integer (kind=omp_lock_kind) svar
529        end function omp_test_lock
530
531        subroutine omp_init_nest_lock(nvar) bind(c)
532!DIR$ IF(__INTEL_COMPILER.GE.1400)
533!DIR$ attributes known_intrinsic :: omp_init_nest_lock
534!DIR$ ENDIF
535          import
536          integer (kind=omp_nest_lock_kind) nvar
537        end subroutine omp_init_nest_lock
538
539        subroutine omp_destroy_nest_lock(nvar) bind(c)
540!DIR$ IF(__INTEL_COMPILER.GE.1400)
541!DIR$ attributes known_intrinsic :: omp_destroy_nest_lock
542!DIR$ ENDIF
543          import
544          integer (kind=omp_nest_lock_kind) nvar
545        end subroutine omp_destroy_nest_lock
546
547        subroutine omp_set_nest_lock(nvar) bind(c)
548!DIR$ IF(__INTEL_COMPILER.GE.1400)
549!DIR$ attributes known_intrinsic :: omp_set_nest_lock
550!DIR$ ENDIF
551          import
552          integer (kind=omp_nest_lock_kind) nvar
553        end subroutine omp_set_nest_lock
554
555        subroutine omp_unset_nest_lock(nvar) bind(c)
556!DIR$ IF(__INTEL_COMPILER.GE.1400)
557!DIR$ attributes known_intrinsic :: omp_unset_nest_lock
558!DIR$ ENDIF
559          import
560          integer (kind=omp_nest_lock_kind) nvar
561        end subroutine omp_unset_nest_lock
562
563        function omp_test_nest_lock(nvar) bind(c)
564!DIR$ IF(__INTEL_COMPILER.GE.1400)
565!DIR$ attributes known_intrinsic :: omp_test_nest_lock
566!DIR$ ENDIF
567          import
568          integer (kind=omp_integer_kind) omp_test_nest_lock
569          integer (kind=omp_nest_lock_kind) nvar
570        end function omp_test_nest_lock
571
572        function omp_get_max_task_priority() bind(c)
573          import
574          integer (kind=omp_integer_kind) omp_get_max_task_priority
575        end function omp_get_max_task_priority
576
577        subroutine omp_init_lock_with_hint(svar, hint) bind(c)
578          import
579          integer (kind=omp_lock_kind) svar
580          integer (kind=omp_lock_hint_kind), value :: hint
581        end subroutine omp_init_lock_with_hint
582
583        subroutine omp_init_nest_lock_with_hint(nvar, hint) bind(c)
584          import
585          integer (kind=omp_nest_lock_kind) nvar
586          integer (kind=omp_lock_hint_kind), value :: hint
587        end subroutine omp_init_nest_lock_with_hint
588
589        function omp_control_tool(command, modifier, arg) bind(c)
590          import
591          integer (kind=omp_integer_kind) omp_control_tool
592          integer (kind=omp_control_tool_kind), value :: command
593          integer (kind=omp_control_tool_kind), value :: modifier
594          integer (kind=kmp_pointer_kind), optional :: arg
595        end function omp_control_tool
596
597        function omp_init_allocator(memspace, ntraits, traits)
598          import
599          integer (omp_allocator_handle_kind) omp_init_allocator
600          integer (omp_memspace_handle_kind) :: memspace
601          integer (omp_integer_kind) :: ntraits
602          type(omp_alloctrait), intent(in) :: traits(*)
603        end function omp_init_allocator
604
605        subroutine omp_destroy_allocator(allocator) bind(c)
606          import
607          integer (omp_allocator_handle_kind), value :: allocator
608        end subroutine omp_destroy_allocator
609
610        subroutine omp_set_default_allocator(allocator) bind(c)
611          import
612          integer (omp_allocator_handle_kind), value :: allocator
613        end subroutine omp_set_default_allocator
614
615        function omp_get_default_allocator() bind(c)
616          import
617          integer (omp_allocator_handle_kind) omp_get_default_allocator
618        end function omp_get_default_allocator
619
620        subroutine omp_set_affinity_format(format)
621          character (len=*) :: format
622        end subroutine omp_set_affinity_format
623
624        function omp_get_affinity_format(buffer)
625          import
626          character (len=*) :: buffer
627          integer (kind=kmp_size_t_kind) :: omp_get_affinity_format
628        end function omp_get_affinity_format
629
630        subroutine omp_display_affinity(format)
631          character (len=*) :: format
632        end subroutine omp_display_affinity
633
634        function omp_capture_affinity(buffer, format)
635          import
636          character (len=*) :: format
637          character (len=*) :: buffer
638          integer (kind=kmp_size_t_kind) :: omp_capture_affinity
639        end function omp_capture_affinity
640
641        subroutine omp_set_num_teams(num_teams) bind(c)
642          import
643          integer (kind=omp_integer_kind), value :: num_teams
644        end subroutine omp_set_num_teams
645
646        function omp_get_max_teams() bind(c)
647          import
648          integer (kind=omp_integer_kind) omp_get_max_teams
649        end function omp_get_max_teams
650
651        subroutine omp_set_teams_thread_limit(thread_limit) bind(c)
652          import
653          integer (kind=omp_integer_kind), value :: thread_limit
654        end subroutine omp_set_teams_thread_limit
655
656        function omp_get_teams_thread_limit() bind(c)
657          import
658          integer (kind=omp_integer_kind) omp_get_teams_thread_limit
659        end function omp_get_teams_thread_limit
660
661        subroutine omp_display_env(verbose) bind(c)
662          import
663          logical (kind=omp_logical_kind), value :: verbose
664        end subroutine omp_display_env
665
666        function omp_target_alloc(size, device_num) bind(c)
667          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
668          type(c_ptr) omp_target_alloc
669          integer(c_size_t), value :: size
670          integer(c_int), value :: device_num
671        end function omp_target_alloc
672
673        subroutine omp_target_free(device_ptr, device_num) bind(c)
674          use, intrinsic :: iso_c_binding, only : c_ptr, c_int
675          type(c_ptr), value :: device_ptr
676          integer(c_int), value :: device_num
677        end subroutine omp_target_free
678
679        function omp_target_is_present(ptr, device_num) bind(c)
680          use, intrinsic :: iso_c_binding, only : c_ptr, c_int
681          integer(c_int) omp_target_is_present
682          type(c_ptr), value :: ptr
683          integer(c_int), value :: device_num
684        end function omp_target_is_present
685
686        function omp_target_memcpy(dst, src, length, dst_offset,                                                                    &
687     &      src_offset, dst_device_num, src_device_num) bind(c)
688          use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
689          integer(c_int) omp_target_memcpy
690          type(c_ptr), value :: dst, src
691          integer(c_size_t), value :: length, dst_offset, src_offset
692          integer(c_int), value :: dst_device_num, src_device_num
693        end function omp_target_memcpy
694
695        function omp_target_memcpy_rect(dst, src, element_size,                                                                     &
696     &      num_dims, volume, dst_offsets, src_offsets, dst_dimensions,                                                             &
697     &      src_dimensions, dst_device_num, src_device_num) bind(c)
698          use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
699          integer(c_int) omp_target_memcpy_rect
700          type(c_ptr), value :: dst, src
701          integer(c_size_t), value :: element_size
702          integer(c_int), value :: num_dims, dst_device_num,                                                                        &
703     &        src_device_num
704          integer(c_size_t), intent(in) :: volume(*), dst_offsets(*),                                                               &
705     &        src_offsets(*), dst_dimensions(*), src_dimensions(*)
706        end function omp_target_memcpy_rect
707
708        function omp_target_memcpy_async(dst, src, length, dst_offset,                                                              &
709     &      src_offset, dst_device_num, src_device_num, depobj_count,                                                               &
710     &      depobj_list) bind(c)
711          use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
712          import
713          integer(c_int) omp_target_memcpy_async
714          type(c_ptr), value :: dst, src
715          integer(c_size_t), value :: length, dst_offset, src_offset
716          integer(c_int), value :: dst_device_num, src_device_num,                                                                  &
717     &        depobj_count
718          integer(omp_depend_kind), optional :: depobj_list(*)
719        end function omp_target_memcpy_async
720
721        function omp_target_memcpy_rect_async(dst, src, element_size,                                                               &
722     &      num_dims, volume, dst_offsets, src_offsets, dst_dimensions,                                                             &
723     &      src_dimensions, dst_device_num, src_device_num,                                                                         &
724     &      depobj_count, depobj_list) bind(c)
725          use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
726          import
727          integer(c_int) omp_target_memcpy_rect_async
728          type(c_ptr), value :: dst, src
729          integer(c_size_t), value :: element_size
730          integer(c_int), value :: num_dims, dst_device_num,                                                                        &
731     &        src_device_num, depobj_count
732          integer(c_size_t), intent(in) :: volume(*), dst_offsets(*),                                                               &
733     &        src_offsets(*), dst_dimensions(*), src_dimensions(*)
734          integer(omp_depend_kind), optional :: depobj_list(*)
735        end function omp_target_memcpy_rect_async
736
737        function omp_target_associate_ptr(host_ptr, device_ptr, size,                                                               &
738     &      device_offset, device_num) bind(c)
739          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
740          integer(c_int) omp_target_associate_ptr
741          type(c_ptr), value :: host_ptr, device_ptr
742          integer(c_size_t), value :: size, device_offset
743          integer(c_int), value :: device_num
744        end function omp_target_associate_ptr
745
746        function omp_get_mapped_ptr(ptr, device_num) bind(c)
747          use, intrinsic :: iso_c_binding, only : c_ptr, c_int
748          type(c_ptr) omp_get_mapped_ptr
749          type(c_ptr), value :: ptr
750          integer(c_int), value :: device_num
751        end function omp_get_mapped_ptr
752
753        function omp_target_disassociate_ptr(ptr, device_num) bind(c)
754          use, intrinsic :: iso_c_binding, only : c_ptr, c_int
755          integer(c_int) omp_target_disassociate_ptr
756          type(c_ptr), value :: ptr
757          integer(c_int), value :: device_num
758        end function omp_target_disassociate_ptr
759
760        function omp_target_is_accessible(ptr, size, device_num) bind(c)
761          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
762          integer(c_int) omp_target_is_accessible
763          type(c_ptr), value :: ptr
764          integer(c_size_t), value :: size
765          integer(c_int), value :: device_num
766        end function omp_target_is_accessible
767
768        function omp_alloc(size, allocator) bind(c)
769          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
770          import :: omp_allocator_handle_kind
771          type(c_ptr) omp_alloc
772          integer(c_size_t), value :: size
773          integer(omp_allocator_handle_kind), value :: allocator
774        end function omp_alloc
775
776        function omp_aligned_alloc(alignment, size, allocator) bind(c)
777          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
778          import :: omp_allocator_handle_kind
779          type(c_ptr) omp_aligned_alloc
780          integer(c_size_t), value :: alignment, size
781          integer(omp_allocator_handle_kind), value :: allocator
782        end function omp_aligned_alloc
783
784        function omp_calloc(nmemb, size, allocator) bind(c)
785          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
786          import :: omp_allocator_handle_kind
787          type(c_ptr) omp_calloc
788          integer(c_size_t), value :: nmemb, size
789          integer(omp_allocator_handle_kind), value :: allocator
790        end function omp_calloc
791
792        function omp_aligned_calloc(alignment, nmemb, size,                                                                         &
793     &      allocator) bind(c)
794          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
795          import :: omp_allocator_handle_kind
796          type(c_ptr) omp_aligned_calloc
797          integer(c_size_t), value :: alignment, nmemb, size
798          integer(omp_allocator_handle_kind), value :: allocator
799        end function omp_aligned_calloc
800
801        function omp_realloc(ptr, size, allocator,                                                                                  &
802     &      free_allocator) bind(c)
803          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
804          import :: omp_allocator_handle_kind
805          type(c_ptr) omp_realloc
806          type(c_ptr), value :: ptr
807          integer(c_size_t), value :: size
808          integer(omp_allocator_handle_kind), value :: allocator
809          integer(omp_allocator_handle_kind), value :: free_allocator
810        end function omp_realloc
811
812        subroutine omp_free(ptr, allocator) bind(c)
813          use, intrinsic :: iso_c_binding, only : c_ptr
814          import :: omp_allocator_handle_kind
815          type(c_ptr), value :: ptr
816          integer(omp_allocator_handle_kind), value :: allocator
817        end subroutine omp_free
818
819        function omp_in_explicit_task() bind(c)
820          import
821          logical (kind=omp_logical_kind) omp_in_explicit_task
822        end function omp_in_explicit_task
823
824!       ***
825!       *** kmp_* entry points
826!       ***
827
828        subroutine kmp_set_stacksize(size) bind(c)
829          import
830          integer (kind=omp_integer_kind), value :: size
831        end subroutine kmp_set_stacksize
832
833        subroutine kmp_set_stacksize_s(size) bind(c)
834          import
835          integer (kind=kmp_size_t_kind), value :: size
836        end subroutine kmp_set_stacksize_s
837
838        subroutine kmp_set_blocktime(msec) bind(c)
839          import
840          integer (kind=omp_integer_kind), value :: msec
841        end subroutine kmp_set_blocktime
842
843        subroutine kmp_set_library_serial() bind(c)
844        end subroutine kmp_set_library_serial
845
846        subroutine kmp_set_library_turnaround() bind(c)
847        end subroutine kmp_set_library_turnaround
848
849        subroutine kmp_set_library_throughput() bind(c)
850        end subroutine kmp_set_library_throughput
851
852        subroutine kmp_set_library(libnum) bind(c)
853          import
854          integer (kind=omp_integer_kind), value :: libnum
855        end subroutine kmp_set_library
856
857        subroutine kmp_set_defaults(string) bind(c)
858          character string(*)
859        end subroutine kmp_set_defaults
860
861        function kmp_get_stacksize() bind(c)
862          import
863          integer (kind=omp_integer_kind) kmp_get_stacksize
864        end function kmp_get_stacksize
865
866        function kmp_get_stacksize_s() bind(c)
867          import
868          integer (kind=kmp_size_t_kind) kmp_get_stacksize_s
869        end function kmp_get_stacksize_s
870
871        function kmp_get_blocktime() bind(c)
872          import
873          integer (kind=omp_integer_kind) kmp_get_blocktime
874        end function kmp_get_blocktime
875
876        function kmp_get_library() bind(c)
877          import
878          integer (kind=omp_integer_kind) kmp_get_library
879        end function kmp_get_library
880
881        subroutine kmp_set_disp_num_buffers(num) bind(c)
882          import
883          integer (kind=omp_integer_kind), value :: num
884        end subroutine kmp_set_disp_num_buffers
885
886        function kmp_set_affinity(mask) bind(c)
887          import
888          integer (kind=omp_integer_kind) kmp_set_affinity
889          integer (kind=kmp_affinity_mask_kind) mask
890        end function kmp_set_affinity
891
892        function kmp_get_affinity(mask) bind(c)
893          import
894          integer (kind=omp_integer_kind) kmp_get_affinity
895          integer (kind=kmp_affinity_mask_kind) mask
896        end function kmp_get_affinity
897
898        function kmp_get_affinity_max_proc() bind(c)
899          import
900          integer (kind=omp_integer_kind) kmp_get_affinity_max_proc
901        end function kmp_get_affinity_max_proc
902
903        subroutine kmp_create_affinity_mask(mask) bind(c)
904          import
905          integer (kind=kmp_affinity_mask_kind) mask
906        end subroutine kmp_create_affinity_mask
907
908        subroutine kmp_destroy_affinity_mask(mask) bind(c)
909          import
910          integer (kind=kmp_affinity_mask_kind) mask
911        end subroutine kmp_destroy_affinity_mask
912
913        function kmp_set_affinity_mask_proc(proc, mask) bind(c)
914          import
915          integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc
916          integer (kind=omp_integer_kind), value :: proc
917          integer (kind=kmp_affinity_mask_kind) mask
918        end function kmp_set_affinity_mask_proc
919
920        function kmp_unset_affinity_mask_proc(proc, mask) bind(c)
921          import
922          integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc
923          integer (kind=omp_integer_kind), value :: proc
924          integer (kind=kmp_affinity_mask_kind) mask
925        end function kmp_unset_affinity_mask_proc
926
927        function kmp_get_affinity_mask_proc(proc, mask) bind(c)
928          import
929          integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc
930          integer (kind=omp_integer_kind), value :: proc
931          integer (kind=kmp_affinity_mask_kind) mask
932        end function kmp_get_affinity_mask_proc
933
934        function kmp_malloc(size) bind(c)
935          import
936          integer (kind=kmp_pointer_kind) kmp_malloc
937          integer (kind=kmp_size_t_kind), value :: size
938        end function kmp_malloc
939
940        function kmp_aligned_malloc(size, alignment) bind(c)
941          import
942          integer (kind=kmp_pointer_kind) kmp_aligned_malloc
943          integer (kind=kmp_size_t_kind), value :: size
944          integer (kind=kmp_size_t_kind), value :: alignment
945        end function kmp_aligned_malloc
946
947        function kmp_calloc(nelem, elsize) bind(c)
948          import
949          integer (kind=kmp_pointer_kind) kmp_calloc
950          integer (kind=kmp_size_t_kind), value :: nelem
951          integer (kind=kmp_size_t_kind), value :: elsize
952        end function kmp_calloc
953
954        function kmp_realloc(ptr, size) bind(c)
955          import
956          integer (kind=kmp_pointer_kind) kmp_realloc
957          integer (kind=kmp_pointer_kind), value :: ptr
958          integer (kind=kmp_size_t_kind), value :: size
959        end function kmp_realloc
960
961        subroutine kmp_free(ptr) bind(c)
962          import
963          integer (kind=kmp_pointer_kind), value :: ptr
964        end subroutine kmp_free
965
966        subroutine kmp_set_warnings_on() bind(c)
967        end subroutine kmp_set_warnings_on
968
969        subroutine kmp_set_warnings_off() bind(c)
970        end subroutine kmp_set_warnings_off
971      end interface
972
973!DIR$ IF DEFINED (__INTEL_OFFLOAD)
974
975!DIR$ IF(__INTEL_COMPILER.LT.1900)
976!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_num_threads
977!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_dynamic
978!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_nested
979!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_threads
980!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_max_threads
981!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_thread_num
982!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_procs
983!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_in_parallel
984!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_in_final
985!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_dynamic
986!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_nested
987!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_thread_limit
988!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_max_active_levels
989!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_max_active_levels
990!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_level
991!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_active_level
992!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_ancestor_thread_num
993!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_team_size
994!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_schedule
995!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_schedule
996!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_proc_bind
997!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_wtime
998!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_wtick
999!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_default_device
1000!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_default_device
1001!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_is_initial_device
1002!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_initial_device
1003!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_devices
1004!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_device_num
1005!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_pause_resource
1006!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_pause_resource_all
1007!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_supported_active_levels
1008!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_fulfill_event
1009!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_teams
1010!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_team_num
1011!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_lock
1012!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_destroy_lock
1013!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_lock
1014!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_unset_lock
1015!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_test_lock
1016!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_nest_lock
1017!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_destroy_nest_lock
1018!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_nest_lock
1019!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_unset_nest_lock
1020!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_test_nest_lock
1021!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_max_task_priority
1022!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_affinity_format
1023!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_affinity_format
1024!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_display_affinity
1025!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_capture_affinity
1026!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_stacksize
1027!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_stacksize_s
1028!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_blocktime
1029!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library_serial
1030!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library_turnaround
1031!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library_throughput
1032!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library
1033!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_defaults
1034!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_stacksize
1035!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_stacksize_s
1036!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_blocktime
1037!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_library
1038!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_disp_num_buffers
1039!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_affinity
1040!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_affinity
1041!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_affinity_max_proc
1042!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_create_affinity_mask
1043!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_destroy_affinity_mask
1044!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_affinity_mask_proc
1045!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_unset_affinity_mask_proc
1046!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_affinity_mask_proc
1047!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_malloc
1048!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_aligned_malloc
1049!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_calloc
1050!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_realloc
1051!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_free
1052!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_warnings_on
1053!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_warnings_off
1054!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_lock_with_hint
1055!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_nest_lock_with_hint
1056!DIR$ ENDIF
1057
1058!DIR$ IF(__INTEL_COMPILER.GE.1400)
1059!$omp declare target(omp_set_num_threads )
1060!$omp declare target(omp_set_dynamic )
1061!$omp declare target(omp_set_nested )
1062!$omp declare target(omp_get_num_threads )
1063!$omp declare target(omp_get_max_threads )
1064!$omp declare target(omp_get_thread_num )
1065!$omp declare target(omp_get_num_procs )
1066!$omp declare target(omp_in_parallel )
1067!$omp declare target(omp_in_final )
1068!$omp declare target(omp_get_dynamic )
1069!$omp declare target(omp_get_nested )
1070!$omp declare target(omp_get_thread_limit )
1071!$omp declare target(omp_set_max_active_levels )
1072!$omp declare target(omp_get_max_active_levels )
1073!$omp declare target(omp_get_level )
1074!$omp declare target(omp_get_active_level )
1075!$omp declare target(omp_get_ancestor_thread_num )
1076!$omp declare target(omp_get_team_size )
1077!$omp declare target(omp_set_schedule )
1078!$omp declare target(omp_get_schedule )
1079!$omp declare target(omp_get_proc_bind )
1080!$omp declare target(omp_get_wtime )
1081!$omp declare target(omp_get_wtick )
1082!$omp declare target(omp_get_default_device )
1083!$omp declare target(omp_set_default_device )
1084!$omp declare target(omp_is_initial_device )
1085!$omp declare target(omp_get_initial_device )
1086!$omp declare target(omp_get_num_devices )
1087!$omp declare target(omp_get_device_num )
1088!$omp declare target(omp_pause_resource )
1089!$omp declare target(omp_pause_resource_all )
1090!$omp declare target(omp_get_supported_active_levels )
1091!$omp declare target(omp_fulfill_event)
1092!$omp declare target(omp_get_num_teams )
1093!$omp declare target(omp_get_team_num )
1094!$omp declare target(omp_init_lock )
1095!$omp declare target(omp_destroy_lock )
1096!$omp declare target(omp_set_lock )
1097!$omp declare target(omp_unset_lock )
1098!$omp declare target(omp_test_lock )
1099!$omp declare target(omp_init_nest_lock )
1100!$omp declare target(omp_destroy_nest_lock )
1101!$omp declare target(omp_set_nest_lock )
1102!$omp declare target(omp_unset_nest_lock )
1103!$omp declare target(omp_test_nest_lock )
1104!$omp declare target(omp_get_max_task_priority )
1105!$omp declare target(omp_set_affinity_format )
1106!$omp declare target(omp_get_affinity_format )
1107!$omp declare target(omp_display_affinity )
1108!$omp declare target(omp_capture_affinity )
1109!$omp declare target(kmp_set_stacksize )
1110!$omp declare target(kmp_set_stacksize_s )
1111!$omp declare target(kmp_set_blocktime )
1112!$omp declare target(kmp_set_library_serial )
1113!$omp declare target(kmp_set_library_turnaround )
1114!$omp declare target(kmp_set_library_throughput )
1115!$omp declare target(kmp_set_library )
1116!$omp declare target(kmp_set_defaults )
1117!$omp declare target(kmp_get_stacksize )
1118!$omp declare target(kmp_get_stacksize_s )
1119!$omp declare target(kmp_get_blocktime )
1120!$omp declare target(kmp_get_library )
1121!$omp declare target(kmp_set_disp_num_buffers )
1122!$omp declare target(kmp_set_affinity )
1123!$omp declare target(kmp_get_affinity )
1124!$omp declare target(kmp_get_affinity_max_proc )
1125!$omp declare target(kmp_create_affinity_mask )
1126!$omp declare target(kmp_destroy_affinity_mask )
1127!$omp declare target(kmp_set_affinity_mask_proc )
1128!$omp declare target(kmp_unset_affinity_mask_proc )
1129!$omp declare target(kmp_get_affinity_mask_proc )
1130!$omp declare target(kmp_malloc )
1131!$omp declare target(kmp_aligned_malloc )
1132!$omp declare target(kmp_calloc )
1133!$omp declare target(kmp_realloc )
1134!$omp declare target(kmp_free )
1135!$omp declare target(kmp_set_warnings_on )
1136!$omp declare target(kmp_set_warnings_off )
1137!$omp declare target(omp_init_lock_with_hint )
1138!$omp declare target(omp_init_nest_lock_with_hint )
1139!DIR$ ENDIF
1140!DIR$ ENDIF
1141