xref: /freebsd-src/contrib/llvm-project/openmp/runtime/src/include/omp_lib.h.var (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
10b57cec5SDimitry Andric! include/omp_lib.h.var
20b57cec5SDimitry Andric
30b57cec5SDimitry Andric!
40b57cec5SDimitry Andric!//===----------------------------------------------------------------------===//
50b57cec5SDimitry Andric!//
60b57cec5SDimitry Andric!// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
70b57cec5SDimitry Andric!// See https://llvm.org/LICENSE.txt for license information.
80b57cec5SDimitry Andric!// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
90b57cec5SDimitry Andric!//
100b57cec5SDimitry Andric!//===----------------------------------------------------------------------===//
110b57cec5SDimitry Andric!
120b57cec5SDimitry Andric
130b57cec5SDimitry Andric      integer omp_integer_kind
140b57cec5SDimitry Andric      parameter(omp_integer_kind=4)
150b57cec5SDimitry Andric      integer omp_logical_kind
160b57cec5SDimitry Andric      parameter(omp_logical_kind=4)
170b57cec5SDimitry Andric      integer omp_real_kind
180b57cec5SDimitry Andric      parameter(omp_real_kind=4)
190b57cec5SDimitry Andric      integer omp_lock_kind
200b57cec5SDimitry Andric      parameter(omp_lock_kind=int_ptr_kind())
210b57cec5SDimitry Andric      integer omp_nest_lock_kind
220b57cec5SDimitry Andric      parameter(omp_nest_lock_kind=int_ptr_kind())
230b57cec5SDimitry Andric      integer omp_sched_kind
240b57cec5SDimitry Andric      parameter(omp_sched_kind=omp_integer_kind)
250b57cec5SDimitry Andric      integer omp_proc_bind_kind
260b57cec5SDimitry Andric      parameter(omp_proc_bind_kind=omp_integer_kind)
270b57cec5SDimitry Andric      integer kmp_pointer_kind
280b57cec5SDimitry Andric      parameter(kmp_pointer_kind=int_ptr_kind())
290b57cec5SDimitry Andric      integer kmp_size_t_kind
300b57cec5SDimitry Andric      parameter(kmp_size_t_kind=int_ptr_kind())
310b57cec5SDimitry Andric      integer kmp_affinity_mask_kind
320b57cec5SDimitry Andric      parameter(kmp_affinity_mask_kind=int_ptr_kind())
330b57cec5SDimitry Andric      integer omp_sync_hint_kind
340b57cec5SDimitry Andric      parameter(omp_sync_hint_kind=omp_integer_kind)
350b57cec5SDimitry Andric      integer omp_lock_hint_kind
360b57cec5SDimitry Andric      parameter(omp_lock_hint_kind=omp_sync_hint_kind)
370b57cec5SDimitry Andric      integer omp_control_tool_kind
380b57cec5SDimitry Andric      parameter(omp_control_tool_kind=omp_integer_kind)
390b57cec5SDimitry Andric      integer omp_control_tool_result_kind
400b57cec5SDimitry Andric      parameter(omp_control_tool_result_kind=omp_integer_kind)
410b57cec5SDimitry Andric      integer omp_allocator_handle_kind
420b57cec5SDimitry Andric      parameter(omp_allocator_handle_kind=int_ptr_kind())
430b57cec5SDimitry Andric      integer omp_memspace_handle_kind
440b57cec5SDimitry Andric      parameter(omp_memspace_handle_kind=int_ptr_kind())
450b57cec5SDimitry Andric      integer omp_alloctrait_key_kind
460b57cec5SDimitry Andric      parameter(omp_alloctrait_key_kind=omp_integer_kind)
470b57cec5SDimitry Andric      integer omp_alloctrait_val_kind
480b57cec5SDimitry Andric      parameter(omp_alloctrait_val_kind=int_ptr_kind())
490b57cec5SDimitry Andric      integer omp_pause_resource_kind
500b57cec5SDimitry Andric      parameter(omp_pause_resource_kind=omp_integer_kind)
510b57cec5SDimitry Andric      integer omp_depend_kind
520b57cec5SDimitry Andric      parameter(omp_depend_kind=int_ptr_kind())
530b57cec5SDimitry Andric      integer omp_event_handle_kind
540b57cec5SDimitry Andric      parameter(omp_event_handle_kind=int_ptr_kind())
55fe6060f1SDimitry Andric      integer omp_interop_kind
56fe6060f1SDimitry Andric      parameter(omp_interop_kind=int_ptr_kind())
57fe6060f1SDimitry Andric      integer omp_interop_fr_kind
58fe6060f1SDimitry Andric      parameter(omp_interop_fr_kind=omp_integer_kind)
590b57cec5SDimitry Andric
600b57cec5SDimitry Andric      integer(kind=omp_integer_kind)openmp_version
610b57cec5SDimitry Andric      parameter(openmp_version=@LIBOMP_OMP_YEAR_MONTH@)
620b57cec5SDimitry Andric      integer(kind=omp_integer_kind)kmp_version_major
630b57cec5SDimitry Andric      parameter(kmp_version_major=@LIBOMP_VERSION_MAJOR@)
640b57cec5SDimitry Andric      integer(kind=omp_integer_kind)kmp_version_minor
650b57cec5SDimitry Andric      parameter(kmp_version_minor=@LIBOMP_VERSION_MINOR@)
660b57cec5SDimitry Andric      integer(kind=omp_integer_kind)kmp_version_build
670b57cec5SDimitry Andric      parameter(kmp_version_build=@LIBOMP_VERSION_BUILD@)
680b57cec5SDimitry Andric      character(*)kmp_build_date
690b57cec5SDimitry Andric      parameter(kmp_build_date='@LIBOMP_BUILD_DATE@')
700b57cec5SDimitry Andric
710b57cec5SDimitry Andric      integer(kind=omp_sched_kind)omp_sched_static
720b57cec5SDimitry Andric      parameter(omp_sched_static=1)
730b57cec5SDimitry Andric      integer(kind=omp_sched_kind)omp_sched_dynamic
740b57cec5SDimitry Andric      parameter(omp_sched_dynamic=2)
750b57cec5SDimitry Andric      integer(kind=omp_sched_kind)omp_sched_guided
760b57cec5SDimitry Andric      parameter(omp_sched_guided=3)
770b57cec5SDimitry Andric      integer(kind=omp_sched_kind)omp_sched_auto
780b57cec5SDimitry Andric      parameter(omp_sched_auto=4)
790b57cec5SDimitry Andric      integer(kind=omp_sched_kind)omp_sched_monotonic
800b57cec5SDimitry Andric      parameter(omp_sched_monotonic=Z'80000000')
810b57cec5SDimitry Andric
820b57cec5SDimitry Andric      integer(kind=omp_proc_bind_kind)omp_proc_bind_false
830b57cec5SDimitry Andric      parameter(omp_proc_bind_false=0)
840b57cec5SDimitry Andric      integer(kind=omp_proc_bind_kind)omp_proc_bind_true
850b57cec5SDimitry Andric      parameter(omp_proc_bind_true=1)
860b57cec5SDimitry Andric      integer(kind=omp_proc_bind_kind)omp_proc_bind_master
870b57cec5SDimitry Andric      parameter(omp_proc_bind_master=2)
880b57cec5SDimitry Andric      integer(kind=omp_proc_bind_kind)omp_proc_bind_close
890b57cec5SDimitry Andric      parameter(omp_proc_bind_close=3)
900b57cec5SDimitry Andric      integer(kind=omp_proc_bind_kind)omp_proc_bind_spread
910b57cec5SDimitry Andric      parameter(omp_proc_bind_spread=4)
920b57cec5SDimitry Andric
930b57cec5SDimitry Andric      integer(kind=omp_sync_hint_kind)omp_sync_hint_none
940b57cec5SDimitry Andric      parameter(omp_sync_hint_none=0)
950b57cec5SDimitry Andric      integer(kind=omp_sync_hint_kind)omp_sync_hint_uncontended
960b57cec5SDimitry Andric      parameter(omp_sync_hint_uncontended=1)
970b57cec5SDimitry Andric      integer(kind=omp_sync_hint_kind)omp_sync_hint_contended
980b57cec5SDimitry Andric      parameter(omp_sync_hint_contended=2)
990b57cec5SDimitry Andric      integer(kind=omp_sync_hint_kind)omp_sync_hint_nonspeculative
1000b57cec5SDimitry Andric      parameter(omp_sync_hint_nonspeculative=4)
1010b57cec5SDimitry Andric      integer(kind=omp_sync_hint_kind)omp_sync_hint_speculative
1020b57cec5SDimitry Andric      parameter(omp_sync_hint_speculative=8)
1030b57cec5SDimitry Andric      integer(kind=omp_lock_hint_kind)omp_lock_hint_none
1040b57cec5SDimitry Andric      parameter(omp_lock_hint_none=omp_sync_hint_none)
1050b57cec5SDimitry Andric      integer(kind=omp_lock_hint_kind)omp_lock_hint_uncontended
1060b57cec5SDimitry Andric      parameter(omp_lock_hint_uncontended=omp_sync_hint_uncontended)
1070b57cec5SDimitry Andric      integer(kind=omp_lock_hint_kind)omp_lock_hint_contended
1080b57cec5SDimitry Andric      parameter(omp_lock_hint_contended=omp_sync_hint_contended)
1090b57cec5SDimitry Andric      integer(kind=omp_lock_hint_kind)omp_lock_hint_nonspeculative
1100b57cec5SDimitry Andric      parameter(omp_lock_hint_nonspeculative=4)
1110b57cec5SDimitry Andric      integer(kind=omp_lock_hint_kind)omp_lock_hint_speculative
1120b57cec5SDimitry Andric      parameter(omp_lock_hint_speculative=omp_sync_hint_speculative)
1130b57cec5SDimitry Andric      integer(kind=omp_lock_hint_kind)kmp_lock_hint_hle
1140b57cec5SDimitry Andric      parameter(kmp_lock_hint_hle=65536)
1150b57cec5SDimitry Andric      integer(kind=omp_lock_hint_kind)kmp_lock_hint_rtm
1160b57cec5SDimitry Andric      parameter(kmp_lock_hint_rtm=131072)
1170b57cec5SDimitry Andric      integer(kind=omp_lock_hint_kind)kmp_lock_hint_adaptive
1180b57cec5SDimitry Andric      parameter(kmp_lock_hint_adaptive=262144)
1190b57cec5SDimitry Andric
1200b57cec5SDimitry Andric      integer(kind=omp_control_tool_kind)omp_control_tool_start
1210b57cec5SDimitry Andric      parameter(omp_control_tool_start=1)
1220b57cec5SDimitry Andric      integer(kind=omp_control_tool_kind)omp_control_tool_pause
1230b57cec5SDimitry Andric      parameter(omp_control_tool_pause=2)
1240b57cec5SDimitry Andric      integer(kind=omp_control_tool_kind)omp_control_tool_flush
1250b57cec5SDimitry Andric      parameter(omp_control_tool_flush=3)
1260b57cec5SDimitry Andric      integer(kind=omp_control_tool_kind)omp_control_tool_end
1270b57cec5SDimitry Andric      parameter(omp_control_tool_end=4)
1280b57cec5SDimitry Andric
1290b57cec5SDimitry Andric      integer(omp_control_tool_result_kind)omp_control_tool_notool
1300b57cec5SDimitry Andric      parameter(omp_control_tool_notool=-2)
1310b57cec5SDimitry Andric      integer(omp_control_tool_result_kind)omp_control_tool_nocallback
1320b57cec5SDimitry Andric      parameter(omp_control_tool_nocallback=-1)
1330b57cec5SDimitry Andric      integer(omp_control_tool_result_kind)omp_control_tool_success
1340b57cec5SDimitry Andric      parameter(omp_control_tool_success=0)
1350b57cec5SDimitry Andric      integer(omp_control_tool_result_kind)omp_control_tool_ignored
1360b57cec5SDimitry Andric      parameter(omp_control_tool_ignored=1)
1370b57cec5SDimitry Andric
138e8d8bef9SDimitry Andric      integer(kind=omp_alloctrait_key_kind)omp_atk_sync_hint
139e8d8bef9SDimitry Andric      parameter(omp_atk_sync_hint=1)
1400b57cec5SDimitry Andric      integer(kind=omp_alloctrait_key_kind)omp_atk_alignment
1410b57cec5SDimitry Andric      parameter(omp_atk_alignment=2)
1420b57cec5SDimitry Andric      integer(kind=omp_alloctrait_key_kind)omp_atk_access
1430b57cec5SDimitry Andric      parameter(omp_atk_access=3)
1440b57cec5SDimitry Andric      integer(kind=omp_alloctrait_key_kind)omp_atk_pool_size
1450b57cec5SDimitry Andric      parameter(omp_atk_pool_size=4)
1460b57cec5SDimitry Andric      integer(kind=omp_alloctrait_key_kind)omp_atk_fallback
1470b57cec5SDimitry Andric      parameter(omp_atk_fallback=5)
1480b57cec5SDimitry Andric      integer(kind=omp_alloctrait_key_kind)omp_atk_fb_data
1490b57cec5SDimitry Andric      parameter(omp_atk_fb_data=6)
1500b57cec5SDimitry Andric      integer(kind=omp_alloctrait_key_kind)omp_atk_pinned
1510b57cec5SDimitry Andric      parameter(omp_atk_pinned=7)
1520b57cec5SDimitry Andric      integer(kind=omp_alloctrait_key_kind)omp_atk_partition
1530b57cec5SDimitry Andric      parameter(omp_atk_partition=8)
1540b57cec5SDimitry Andric
155e8d8bef9SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_default
156e8d8bef9SDimitry Andric      parameter(omp_atv_default=-1)
1570b57cec5SDimitry Andric      ! Reserved for future use
1580b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_false
1590b57cec5SDimitry Andric      parameter(omp_atv_false=0)
1600b57cec5SDimitry Andric      ! Reserved for future use
1610b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_true
1620b57cec5SDimitry Andric      parameter(omp_atv_true=1)
1630b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_contended
1640b57cec5SDimitry Andric      parameter(omp_atv_contended=3)
1650b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_uncontended
1660b57cec5SDimitry Andric      parameter(omp_atv_uncontended=4)
167e8d8bef9SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_serialized
168e8d8bef9SDimitry Andric      parameter(omp_atv_serialized=5)
1690b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_sequential
1700b57cec5SDimitry Andric      parameter(omp_atv_sequential=5)
1710b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_private
1720b57cec5SDimitry Andric      parameter(omp_atv_private=6)
1730b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_all
1740b57cec5SDimitry Andric      parameter(omp_atv_all=7)
1750b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_thread
1760b57cec5SDimitry Andric      parameter(omp_atv_thread=8)
1770b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_pteam
1780b57cec5SDimitry Andric      parameter(omp_atv_pteam=9)
1790b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_cgroup
1800b57cec5SDimitry Andric      parameter(omp_atv_cgroup=10)
1810b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_default_mem_fb
1820b57cec5SDimitry Andric      parameter(omp_atv_default_mem_fb=11)
1830b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_null_fb
1840b57cec5SDimitry Andric      parameter(omp_atv_null_fb=12)
1850b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_abort_fb
1860b57cec5SDimitry Andric      parameter(omp_atv_abort_fb=13)
1870b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_allocator_fb
1880b57cec5SDimitry Andric      parameter(omp_atv_allocator_fb=14)
1890b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_environment
1900b57cec5SDimitry Andric      parameter(omp_atv_environment=15)
1910b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_nearest
1920b57cec5SDimitry Andric      parameter(omp_atv_nearest=16)
1930b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_blocked
1940b57cec5SDimitry Andric      parameter(omp_atv_blocked=17)
1950b57cec5SDimitry Andric      integer(kind=omp_alloctrait_val_kind)omp_atv_interleaved
1960b57cec5SDimitry Andric      parameter(omp_atv_interleaved=18)
1970b57cec5SDimitry Andric
1980b57cec5SDimitry Andric      type omp_alloctrait
1990b57cec5SDimitry Andric        integer (kind=omp_alloctrait_key_kind) key
2000b57cec5SDimitry Andric        integer (kind=omp_alloctrait_val_kind) value
2010b57cec5SDimitry Andric      end type omp_alloctrait
2020b57cec5SDimitry Andric
2030b57cec5SDimitry Andric      integer(kind=omp_allocator_handle_kind)omp_null_allocator
2040b57cec5SDimitry Andric      parameter(omp_null_allocator=0)
2050b57cec5SDimitry Andric      integer(kind=omp_allocator_handle_kind)omp_default_mem_alloc
2060b57cec5SDimitry Andric      parameter(omp_default_mem_alloc=1)
2070b57cec5SDimitry Andric      integer(kind=omp_allocator_handle_kind)omp_large_cap_mem_alloc
2080b57cec5SDimitry Andric      parameter(omp_large_cap_mem_alloc=2)
2090b57cec5SDimitry Andric      integer(kind=omp_allocator_handle_kind)omp_const_mem_alloc
2100b57cec5SDimitry Andric      parameter(omp_const_mem_alloc=3)
2110b57cec5SDimitry Andric      integer(kind=omp_allocator_handle_kind)omp_high_bw_mem_alloc
2120b57cec5SDimitry Andric      parameter(omp_high_bw_mem_alloc=4)
2130b57cec5SDimitry Andric      integer(kind=omp_allocator_handle_kind)omp_low_lat_mem_alloc
2140b57cec5SDimitry Andric      parameter(omp_low_lat_mem_alloc=5)
2150b57cec5SDimitry Andric      integer(kind=omp_allocator_handle_kind)omp_cgroup_mem_alloc
2160b57cec5SDimitry Andric      parameter(omp_cgroup_mem_alloc=6)
2170b57cec5SDimitry Andric      integer(kind=omp_allocator_handle_kind)omp_pteam_mem_alloc
2180b57cec5SDimitry Andric      parameter(omp_pteam_mem_alloc=7)
2190b57cec5SDimitry Andric      integer(kind=omp_allocator_handle_kind)omp_thread_mem_alloc
2200b57cec5SDimitry Andric      parameter(omp_thread_mem_alloc=8)
221349cc55cSDimitry Andric      integer(omp_allocator_handle_kind)llvm_omp_target_host_mem_alloc
222fe6060f1SDimitry Andric      parameter(llvm_omp_target_host_mem_alloc=100)
223349cc55cSDimitry Andric      integer(omp_allocator_handle_kind)llvm_omp_target_shared_mem_alloc
224fe6060f1SDimitry Andric      parameter(llvm_omp_target_shared_mem_alloc=101)
225349cc55cSDimitry Andric      integer(omp_allocator_handle_kind)llvm_omp_target_device_mem_alloc
226fe6060f1SDimitry Andric      parameter(llvm_omp_target_device_mem_alloc=102)
2270b57cec5SDimitry Andric
2280b57cec5SDimitry Andric      integer(kind=omp_memspace_handle_kind)omp_default_mem_space
2290b57cec5SDimitry Andric      parameter(omp_default_mem_space=0)
2300b57cec5SDimitry Andric      integer(kind=omp_memspace_handle_kind)omp_large_cap_mem_space
2310b57cec5SDimitry Andric      parameter(omp_large_cap_mem_space=1)
2320b57cec5SDimitry Andric      integer(kind=omp_memspace_handle_kind)omp_const_mem_space
2330b57cec5SDimitry Andric      parameter(omp_const_mem_space=2)
2340b57cec5SDimitry Andric      integer(kind=omp_memspace_handle_kind)omp_high_bw_mem_space
2350b57cec5SDimitry Andric      parameter(omp_high_bw_mem_space=3)
2360b57cec5SDimitry Andric      integer(kind=omp_memspace_handle_kind)omp_low_lat_mem_space
2370b57cec5SDimitry Andric      parameter(omp_low_lat_mem_space=4)
238349cc55cSDimitry Andric      integer(omp_memspace_handle_kind)llvm_omp_target_host_mem_space
239fe6060f1SDimitry Andric      parameter(llvm_omp_target_host_mem_space=100)
240349cc55cSDimitry Andric      integer(omp_memspace_handle_kind)llvm_omp_target_shared_mem_space
241fe6060f1SDimitry Andric      parameter(llvm_omp_target_shared_mem_space=101)
242349cc55cSDimitry Andric      integer(omp_memspace_handle_kind)llvm_omp_target_device_mem_space
243fe6060f1SDimitry Andric      parameter(llvm_omp_target_device_mem_space=102)
2440b57cec5SDimitry Andric
2450b57cec5SDimitry Andric      integer(kind=omp_pause_resource_kind)omp_pause_resume
2460b57cec5SDimitry Andric      parameter(omp_pause_resume=0)
2470b57cec5SDimitry Andric      integer(kind=omp_pause_resource_kind)omp_pause_soft
2480b57cec5SDimitry Andric      parameter(omp_pause_soft=1)
2490b57cec5SDimitry Andric      integer(kind=omp_pause_resource_kind)omp_pause_hard
2500b57cec5SDimitry Andric      parameter(omp_pause_hard=2)
2510b57cec5SDimitry Andric
252fe6060f1SDimitry Andric      integer(kind=omp_interop_fr_kind)omp_ifr_cuda
253fe6060f1SDimitry Andric      parameter(omp_ifr_cuda=1)
254fe6060f1SDimitry Andric      integer(kind=omp_interop_fr_kind)omp_ifr_cuda_driver
255fe6060f1SDimitry Andric      parameter(omp_ifr_cuda_driver=2)
256fe6060f1SDimitry Andric      integer(kind=omp_interop_fr_kind)omp_ifr_opencl
257fe6060f1SDimitry Andric      parameter(omp_ifr_opencl=3)
258fe6060f1SDimitry Andric      integer(kind=omp_interop_fr_kind)omp_ifr_sycl
259fe6060f1SDimitry Andric      parameter(omp_ifr_sycl=4)
260fe6060f1SDimitry Andric      integer(kind=omp_interop_fr_kind)omp_ifr_hip
261fe6060f1SDimitry Andric      parameter(omp_ifr_hip=5)
262fe6060f1SDimitry Andric      integer(kind=omp_interop_fr_kind)omp_ifr_level_zero
263fe6060f1SDimitry Andric      parameter(omp_ifr_level_zero=6)
264fe6060f1SDimitry Andric      integer(kind=omp_interop_fr_kind)omp_ifr_last
265fe6060f1SDimitry Andric      parameter(omp_ifr_last=7)
266fe6060f1SDimitry Andric
267fe6060f1SDimitry Andric      integer(kind=omp_interop_kind)omp_interop_none
268fe6060f1SDimitry Andric      parameter(omp_interop_none=0)
269fe6060f1SDimitry Andric
2700b57cec5SDimitry Andric      interface
2710b57cec5SDimitry Andric
2720b57cec5SDimitry Andric!       ***
2730b57cec5SDimitry Andric!       *** omp_* entry points
2740b57cec5SDimitry Andric!       ***
2750b57cec5SDimitry Andric
2760b57cec5SDimitry Andric        subroutine omp_set_num_threads(num_threads) bind(c)
2770b57cec5SDimitry Andric          import
2780b57cec5SDimitry Andric          integer (kind=omp_integer_kind), value :: num_threads
2790b57cec5SDimitry Andric        end subroutine omp_set_num_threads
2800b57cec5SDimitry Andric
2810b57cec5SDimitry Andric        subroutine omp_set_dynamic(dynamic_threads) bind(c)
2820b57cec5SDimitry Andric          import
2830b57cec5SDimitry Andric          logical (kind=omp_logical_kind), value :: dynamic_threads
2840b57cec5SDimitry Andric        end subroutine omp_set_dynamic
2850b57cec5SDimitry Andric
2860b57cec5SDimitry Andric        subroutine omp_set_nested(nested) bind(c)
2870b57cec5SDimitry Andric          import
2880b57cec5SDimitry Andric          logical (kind=omp_logical_kind), value :: nested
2890b57cec5SDimitry Andric        end subroutine omp_set_nested
2900b57cec5SDimitry Andric
2910b57cec5SDimitry Andric        function omp_get_num_threads() bind(c)
2920b57cec5SDimitry Andric          import
2930b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_num_threads
2940b57cec5SDimitry Andric        end function omp_get_num_threads
2950b57cec5SDimitry Andric
2960b57cec5SDimitry Andric        function omp_get_max_threads() bind(c)
2970b57cec5SDimitry Andric          import
2980b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_max_threads
2990b57cec5SDimitry Andric        end function omp_get_max_threads
3000b57cec5SDimitry Andric
3010b57cec5SDimitry Andric        function omp_get_thread_num() bind(c)
3020b57cec5SDimitry Andric          import
3030b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_thread_num
3040b57cec5SDimitry Andric        end function omp_get_thread_num
3050b57cec5SDimitry Andric
3060b57cec5SDimitry Andric        function omp_get_num_procs() bind(c)
3070b57cec5SDimitry Andric          import
3080b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_num_procs
3090b57cec5SDimitry Andric        end function omp_get_num_procs
3100b57cec5SDimitry Andric
3110b57cec5SDimitry Andric        function omp_in_parallel() bind(c)
3120b57cec5SDimitry Andric          import
3130b57cec5SDimitry Andric          logical (kind=omp_logical_kind) omp_in_parallel
3140b57cec5SDimitry Andric        end function omp_in_parallel
3150b57cec5SDimitry Andric
3160b57cec5SDimitry Andric        function omp_in_final() bind(c)
3170b57cec5SDimitry Andric          import
3180b57cec5SDimitry Andric          logical (kind=omp_logical_kind) omp_in_final
3190b57cec5SDimitry Andric        end function omp_in_final
3200b57cec5SDimitry Andric
3210b57cec5SDimitry Andric        function omp_get_dynamic() bind(c)
3220b57cec5SDimitry Andric          import
3230b57cec5SDimitry Andric          logical (kind=omp_logical_kind) omp_get_dynamic
3240b57cec5SDimitry Andric        end function omp_get_dynamic
3250b57cec5SDimitry Andric
3260b57cec5SDimitry Andric        function omp_get_nested() bind(c)
3270b57cec5SDimitry Andric          import
3280b57cec5SDimitry Andric          logical (kind=omp_logical_kind) omp_get_nested
3290b57cec5SDimitry Andric        end function omp_get_nested
3300b57cec5SDimitry Andric
3310b57cec5SDimitry Andric        function omp_get_thread_limit() bind(c)
3320b57cec5SDimitry Andric          import
3330b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_thread_limit
3340b57cec5SDimitry Andric        end function omp_get_thread_limit
3350b57cec5SDimitry Andric
3360b57cec5SDimitry Andric        subroutine omp_set_max_active_levels(max_levels) bind(c)
3370b57cec5SDimitry Andric          import
3380b57cec5SDimitry Andric          integer (kind=omp_integer_kind), value :: max_levels
3390b57cec5SDimitry Andric        end subroutine omp_set_max_active_levels
3400b57cec5SDimitry Andric
3410b57cec5SDimitry Andric        function omp_get_max_active_levels() bind(c)
3420b57cec5SDimitry Andric          import
3430b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_max_active_levels
3440b57cec5SDimitry Andric        end function omp_get_max_active_levels
3450b57cec5SDimitry Andric
3460b57cec5SDimitry Andric        function omp_get_level() bind(c)
3470b57cec5SDimitry Andric          import
3480b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_level
3490b57cec5SDimitry Andric        end function omp_get_level
3500b57cec5SDimitry Andric
3510b57cec5SDimitry Andric        function omp_get_active_level() bind(c)
3520b57cec5SDimitry Andric          import
3530b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_active_level
3540b57cec5SDimitry Andric        end function omp_get_active_level
3550b57cec5SDimitry Andric
3560b57cec5SDimitry Andric        function omp_get_ancestor_thread_num(level) bind(c)
3570b57cec5SDimitry Andric          import
3580b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_ancestor_thread_num
3590b57cec5SDimitry Andric          integer (kind=omp_integer_kind), value :: level
3600b57cec5SDimitry Andric        end function omp_get_ancestor_thread_num
3610b57cec5SDimitry Andric
3620b57cec5SDimitry Andric        function omp_get_team_size(level) bind(c)
3630b57cec5SDimitry Andric          import
3640b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_team_size
3650b57cec5SDimitry Andric          integer (kind=omp_integer_kind), value :: level
3660b57cec5SDimitry Andric        end function omp_get_team_size
3670b57cec5SDimitry Andric
3680b57cec5SDimitry Andric        subroutine omp_set_schedule(kind, chunk_size) bind(c)
3690b57cec5SDimitry Andric          import
3700b57cec5SDimitry Andric          integer (kind=omp_sched_kind), value :: kind
3710b57cec5SDimitry Andric          integer (kind=omp_integer_kind), value :: chunk_size
3720b57cec5SDimitry Andric        end subroutine omp_set_schedule
3730b57cec5SDimitry Andric
3740b57cec5SDimitry Andric        subroutine omp_get_schedule(kind, chunk_size) bind(c)
3750b57cec5SDimitry Andric          import
3760b57cec5SDimitry Andric          integer (kind=omp_sched_kind) kind
3770b57cec5SDimitry Andric          integer (kind=omp_integer_kind) chunk_size
3780b57cec5SDimitry Andric        end subroutine omp_get_schedule
3790b57cec5SDimitry Andric
3800b57cec5SDimitry Andric        function omp_get_proc_bind() bind(c)
3810b57cec5SDimitry Andric          import
3820b57cec5SDimitry Andric          integer (kind=omp_proc_bind_kind) omp_get_proc_bind
3830b57cec5SDimitry Andric        end function omp_get_proc_bind
3840b57cec5SDimitry Andric
3850b57cec5SDimitry Andric        function omp_get_num_places() bind(c)
3860b57cec5SDimitry Andric          import
3870b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_num_places
3880b57cec5SDimitry Andric        end function omp_get_num_places
3890b57cec5SDimitry Andric
3900b57cec5SDimitry Andric        function omp_get_place_num_procs(place_num) bind(c)
3910b57cec5SDimitry Andric          import
3920b57cec5SDimitry Andric          integer (kind=omp_integer_kind), value :: place_num
3930b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_place_num_procs
3940b57cec5SDimitry Andric        end function omp_get_place_num_procs
3950b57cec5SDimitry Andric
3960b57cec5SDimitry Andric        subroutine omp_get_place_proc_ids(place_num, ids) bind(c)
3970b57cec5SDimitry Andric          import
3980b57cec5SDimitry Andric          integer (kind=omp_integer_kind), value :: place_num
3990b57cec5SDimitry Andric          integer (kind=omp_integer_kind) ids(*)
4000b57cec5SDimitry Andric        end subroutine omp_get_place_proc_ids
4010b57cec5SDimitry Andric
4020b57cec5SDimitry Andric        function omp_get_place_num() bind(c)
4030b57cec5SDimitry Andric          import
4040b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_place_num
4050b57cec5SDimitry Andric        end function omp_get_place_num
4060b57cec5SDimitry Andric
4070b57cec5SDimitry Andric        function omp_get_partition_num_places() bind(c)
4080b57cec5SDimitry Andric          import
4090b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_partition_num_places
4100b57cec5SDimitry Andric        end function omp_get_partition_num_places
4110b57cec5SDimitry Andric
4120b57cec5SDimitry Andric        subroutine omp_get_partition_place_nums(place_nums) bind(c)
4130b57cec5SDimitry Andric          import
4140b57cec5SDimitry Andric          integer (kind=omp_integer_kind) place_nums(*)
4150b57cec5SDimitry Andric        end subroutine omp_get_partition_place_nums
4160b57cec5SDimitry Andric
4170b57cec5SDimitry Andric        function omp_get_wtime() bind(c)
4180b57cec5SDimitry Andric          double precision omp_get_wtime
4190b57cec5SDimitry Andric        end function omp_get_wtime
4200b57cec5SDimitry Andric
4210b57cec5SDimitry Andric        function omp_get_wtick() bind(c)
4220b57cec5SDimitry Andric          double precision omp_get_wtick
4230b57cec5SDimitry Andric        end function omp_get_wtick
4240b57cec5SDimitry Andric
4250b57cec5SDimitry Andric        function omp_get_default_device() bind(c)
4260b57cec5SDimitry Andric          import
4270b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_default_device
4280b57cec5SDimitry Andric        end function omp_get_default_device
4290b57cec5SDimitry Andric
4300b57cec5SDimitry Andric        subroutine omp_set_default_device(device_num) bind(c)
4310b57cec5SDimitry Andric          import
4320b57cec5SDimitry Andric          integer (kind=omp_integer_kind), value :: device_num
4330b57cec5SDimitry Andric        end subroutine omp_set_default_device
4340b57cec5SDimitry Andric
4350b57cec5SDimitry Andric        function omp_get_num_devices() bind(c)
4360b57cec5SDimitry Andric          import
4370b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_num_devices
4380b57cec5SDimitry Andric        end function omp_get_num_devices
4390b57cec5SDimitry Andric
4400b57cec5SDimitry Andric        function omp_get_num_teams() bind(c)
4410b57cec5SDimitry Andric          import
4420b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_num_teams
4430b57cec5SDimitry Andric        end function omp_get_num_teams
4440b57cec5SDimitry Andric
4450b57cec5SDimitry Andric        function omp_get_team_num() bind(c)
4460b57cec5SDimitry Andric          import
4470b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_team_num
4480b57cec5SDimitry Andric        end function omp_get_team_num
4490b57cec5SDimitry Andric
4500b57cec5SDimitry Andric        function omp_is_initial_device() bind(c)
4510b57cec5SDimitry Andric          import
4520b57cec5SDimitry Andric          logical (kind=omp_logical_kind) omp_is_initial_device
4530b57cec5SDimitry Andric        end function omp_is_initial_device
4540b57cec5SDimitry Andric
4550b57cec5SDimitry Andric        function omp_get_initial_device() bind(c)
4560b57cec5SDimitry Andric          import
4570b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_initial_device
4580b57cec5SDimitry Andric        end function omp_get_initial_device
4590b57cec5SDimitry Andric
4600b57cec5SDimitry Andric        function omp_get_device_num() bind(c)
4610b57cec5SDimitry Andric          import
4620b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_device_num
4630b57cec5SDimitry Andric        end function omp_get_device_num
4640b57cec5SDimitry Andric
4650b57cec5SDimitry Andric        function omp_pause_resource(kind, device_num) bind(c)
4660b57cec5SDimitry Andric          import
4670b57cec5SDimitry Andric          integer (kind=omp_pause_resource_kind), value :: kind
4680b57cec5SDimitry Andric          integer (kind=omp_integer_kind), value :: device_num
4690b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_pause_resource
4700b57cec5SDimitry Andric        end function omp_pause_resource
4710b57cec5SDimitry Andric
4720b57cec5SDimitry Andric        function omp_pause_resource_all(kind) bind(c)
4730b57cec5SDimitry Andric          import
4740b57cec5SDimitry Andric          integer (kind=omp_pause_resource_kind), value :: kind
4750b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_pause_resource_all
4760b57cec5SDimitry Andric        end function omp_pause_resource_all
4770b57cec5SDimitry Andric
4780b57cec5SDimitry Andric        function omp_get_supported_active_levels() bind(c)
4790b57cec5SDimitry Andric          import
4800b57cec5SDimitry Andric          integer(kind=omp_integer_kind)omp_get_supported_active_levels
4810b57cec5SDimitry Andric        end function omp_get_supported_active_levels
4820b57cec5SDimitry Andric
4830b57cec5SDimitry Andric        subroutine omp_fulfill_event(event) bind(c)
4840b57cec5SDimitry Andric          import
4850b57cec5SDimitry Andric          integer (kind=omp_event_handle_kind), value :: event
4860b57cec5SDimitry Andric        end subroutine omp_fulfill_event
4870b57cec5SDimitry Andric
4880b57cec5SDimitry Andric        subroutine omp_init_lock(svar) bind(c)
489*0fca6ea1SDimitry Andric#ifdef __INTEL_COMPILER
4900b57cec5SDimitry Andric!DIR$ IF(__INTEL_COMPILER.GE.1400)
4910b57cec5SDimitry Andric!DIR$ attributes known_intrinsic :: omp_init_lock
4920b57cec5SDimitry Andric!DIR$ ENDIF
493*0fca6ea1SDimitry Andric#endif
4940b57cec5SDimitry Andric          import
4950b57cec5SDimitry Andric          integer (kind=omp_lock_kind) svar
4960b57cec5SDimitry Andric        end subroutine omp_init_lock
4970b57cec5SDimitry Andric
4980b57cec5SDimitry Andric        subroutine omp_destroy_lock(svar) bind(c)
499*0fca6ea1SDimitry Andric#ifdef __INTEL_COMPILER
5000b57cec5SDimitry Andric!DIR$ IF(__INTEL_COMPILER.GE.1400)
5010b57cec5SDimitry Andric!DIR$ attributes known_intrinsic :: omp_destroy_lock
5020b57cec5SDimitry Andric!DIR$ ENDIF
503*0fca6ea1SDimitry Andric#endif
5040b57cec5SDimitry Andric          import
5050b57cec5SDimitry Andric          integer (kind=omp_lock_kind) svar
5060b57cec5SDimitry Andric        end subroutine omp_destroy_lock
5070b57cec5SDimitry Andric
5080b57cec5SDimitry Andric        subroutine omp_set_lock(svar) bind(c)
509*0fca6ea1SDimitry Andric#ifdef __INTEL_COMPILER
5100b57cec5SDimitry Andric!DIR$ IF(__INTEL_COMPILER.GE.1400)
5110b57cec5SDimitry Andric!DIR$ attributes known_intrinsic :: omp_set_lock
5120b57cec5SDimitry Andric!DIR$ ENDIF
513*0fca6ea1SDimitry Andric#endif
5140b57cec5SDimitry Andric          import
5150b57cec5SDimitry Andric          integer (kind=omp_lock_kind) svar
5160b57cec5SDimitry Andric        end subroutine omp_set_lock
5170b57cec5SDimitry Andric
5180b57cec5SDimitry Andric        subroutine omp_unset_lock(svar) bind(c)
519*0fca6ea1SDimitry Andric#ifdef __INTEL_COMPILER
5200b57cec5SDimitry Andric!DIR$ IF(__INTEL_COMPILER.GE.1400)
5210b57cec5SDimitry Andric!DIR$ attributes known_intrinsic :: omp_unset_lock
5220b57cec5SDimitry Andric!DIR$ ENDIF
523*0fca6ea1SDimitry Andric#endif
5240b57cec5SDimitry Andric          import
5250b57cec5SDimitry Andric          integer (kind=omp_lock_kind) svar
5260b57cec5SDimitry Andric        end subroutine omp_unset_lock
5270b57cec5SDimitry Andric
5280b57cec5SDimitry Andric        function omp_test_lock(svar) bind(c)
529*0fca6ea1SDimitry Andric#ifdef __INTEL_COMPILER
5300b57cec5SDimitry Andric!DIR$ IF(__INTEL_COMPILER.GE.1400)
5310b57cec5SDimitry Andric!DIR$ attributes known_intrinsic :: omp_test_lock
5320b57cec5SDimitry Andric!DIR$ ENDIF
533*0fca6ea1SDimitry Andric#endif
5340b57cec5SDimitry Andric          import
5350b57cec5SDimitry Andric          logical (kind=omp_logical_kind) omp_test_lock
5360b57cec5SDimitry Andric          integer (kind=omp_lock_kind) svar
5370b57cec5SDimitry Andric        end function omp_test_lock
5380b57cec5SDimitry Andric
5390b57cec5SDimitry Andric        subroutine omp_init_nest_lock(nvar) bind(c)
540*0fca6ea1SDimitry Andric#ifdef __INTEL_COMPILER
5410b57cec5SDimitry Andric!DIR$ IF(__INTEL_COMPILER.GE.1400)
5420b57cec5SDimitry Andric!DIR$ attributes known_intrinsic :: omp_init_nest_lock
5430b57cec5SDimitry Andric!DIR$ ENDIF
544*0fca6ea1SDimitry Andric#endif
5450b57cec5SDimitry Andric          import
5460b57cec5SDimitry Andric          integer (kind=omp_nest_lock_kind) nvar
5470b57cec5SDimitry Andric        end subroutine omp_init_nest_lock
5480b57cec5SDimitry Andric
5490b57cec5SDimitry Andric        subroutine omp_destroy_nest_lock(nvar) bind(c)
550*0fca6ea1SDimitry Andric#ifdef __INTEL_COMPILER
5510b57cec5SDimitry Andric!DIR$ IF(__INTEL_COMPILER.GE.1400)
5520b57cec5SDimitry Andric!DIR$ attributes known_intrinsic :: omp_destroy_nest_lock
5530b57cec5SDimitry Andric!DIR$ ENDIF
554*0fca6ea1SDimitry Andric#endif
5550b57cec5SDimitry Andric          import
5560b57cec5SDimitry Andric          integer (kind=omp_nest_lock_kind) nvar
5570b57cec5SDimitry Andric        end subroutine omp_destroy_nest_lock
5580b57cec5SDimitry Andric
5590b57cec5SDimitry Andric        subroutine omp_set_nest_lock(nvar) bind(c)
560*0fca6ea1SDimitry Andric#ifdef __INTEL_COMPILER
5610b57cec5SDimitry Andric!DIR$ IF(__INTEL_COMPILER.GE.1400)
5620b57cec5SDimitry Andric!DIR$ attributes known_intrinsic :: omp_set_nest_lock
5630b57cec5SDimitry Andric!DIR$ ENDIF
564*0fca6ea1SDimitry Andric#endif
5650b57cec5SDimitry Andric          import
5660b57cec5SDimitry Andric          integer (kind=omp_nest_lock_kind) nvar
5670b57cec5SDimitry Andric        end subroutine omp_set_nest_lock
5680b57cec5SDimitry Andric
5690b57cec5SDimitry Andric        subroutine omp_unset_nest_lock(nvar) bind(c)
570*0fca6ea1SDimitry Andric#ifdef __INTEL_COMPILER
5710b57cec5SDimitry Andric!DIR$ IF(__INTEL_COMPILER.GE.1400)
5720b57cec5SDimitry Andric!DIR$ attributes known_intrinsic :: omp_unset_nest_lock
5730b57cec5SDimitry Andric!DIR$ ENDIF
574*0fca6ea1SDimitry Andric#endif
5750b57cec5SDimitry Andric          import
5760b57cec5SDimitry Andric          integer (kind=omp_nest_lock_kind) nvar
5770b57cec5SDimitry Andric        end subroutine omp_unset_nest_lock
5780b57cec5SDimitry Andric
5790b57cec5SDimitry Andric        function omp_test_nest_lock(nvar) bind(c)
580*0fca6ea1SDimitry Andric#ifdef __INTEL_COMPILER
5810b57cec5SDimitry Andric!DIR$ IF(__INTEL_COMPILER.GE.1400)
5820b57cec5SDimitry Andric!DIR$ attributes known_intrinsic :: omp_test_nest_lock
5830b57cec5SDimitry Andric!DIR$ ENDIF
584*0fca6ea1SDimitry Andric#endif
5850b57cec5SDimitry Andric          import
5860b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_test_nest_lock
5870b57cec5SDimitry Andric          integer (kind=omp_nest_lock_kind) nvar
5880b57cec5SDimitry Andric        end function omp_test_nest_lock
5890b57cec5SDimitry Andric
5900b57cec5SDimitry Andric        function omp_get_max_task_priority() bind(c)
5910b57cec5SDimitry Andric          import
5920b57cec5SDimitry Andric          integer (kind=omp_integer_kind) omp_get_max_task_priority
5930b57cec5SDimitry Andric        end function omp_get_max_task_priority
5940b57cec5SDimitry Andric
59581ad6265SDimitry Andric        subroutine omp_init_lock_with_hint(svar, hint) bind(c)
59681ad6265SDimitry Andric          import
59781ad6265SDimitry Andric          integer (kind=omp_lock_kind) svar
59881ad6265SDimitry Andric          integer (kind=omp_lock_hint_kind), value :: hint
59981ad6265SDimitry Andric        end subroutine omp_init_lock_with_hint
60081ad6265SDimitry Andric
60181ad6265SDimitry Andric        subroutine omp_init_nest_lock_with_hint(nvar, hint) bind(c)
60281ad6265SDimitry Andric          import
60381ad6265SDimitry Andric          integer (kind=omp_nest_lock_kind) nvar
60481ad6265SDimitry Andric          integer (kind=omp_lock_hint_kind), value :: hint
60581ad6265SDimitry Andric        end subroutine omp_init_nest_lock_with_hint
60681ad6265SDimitry Andric
60781ad6265SDimitry Andric        function omp_control_tool(command, modifier, arg) bind(c)
60881ad6265SDimitry Andric          import
60981ad6265SDimitry Andric          integer (kind=omp_integer_kind) omp_control_tool
61081ad6265SDimitry Andric          integer (kind=omp_control_tool_kind), value :: command
61181ad6265SDimitry Andric          integer (kind=omp_control_tool_kind), value :: modifier
61281ad6265SDimitry Andric          integer (kind=kmp_pointer_kind), optional :: arg
61381ad6265SDimitry Andric        end function omp_control_tool
61481ad6265SDimitry Andric
6150b57cec5SDimitry Andric        function omp_init_allocator(memspace, ntraits, traits)
6160b57cec5SDimitry Andric          import
6170b57cec5SDimitry Andric          integer (omp_allocator_handle_kind) omp_init_allocator
6180b57cec5SDimitry Andric          integer (omp_memspace_handle_kind) :: memspace
6190b57cec5SDimitry Andric          integer (omp_integer_kind) :: ntraits
6200b57cec5SDimitry Andric          type(omp_alloctrait), intent(in) :: traits(*)
6210b57cec5SDimitry Andric        end function omp_init_allocator
6220b57cec5SDimitry Andric
6230b57cec5SDimitry Andric        subroutine omp_destroy_allocator(allocator) bind(c)
6240b57cec5SDimitry Andric          import
6250b57cec5SDimitry Andric          integer (omp_allocator_handle_kind), value :: allocator
6260b57cec5SDimitry Andric        end subroutine omp_destroy_allocator
6270b57cec5SDimitry Andric
6280b57cec5SDimitry Andric        subroutine omp_set_default_allocator(allocator) bind(c)
6290b57cec5SDimitry Andric          import
6300b57cec5SDimitry Andric          integer (omp_allocator_handle_kind), value :: allocator
6310b57cec5SDimitry Andric        end subroutine omp_set_default_allocator
6320b57cec5SDimitry Andric
6330b57cec5SDimitry Andric        function omp_get_default_allocator() bind(c)
6340b57cec5SDimitry Andric          import
6350b57cec5SDimitry Andric          integer (omp_allocator_handle_kind) omp_get_default_allocator
6360b57cec5SDimitry Andric        end function omp_get_default_allocator
6370b57cec5SDimitry Andric
6380b57cec5SDimitry Andric        subroutine omp_set_affinity_format(format)
6390b57cec5SDimitry Andric          character (len=*) :: format
6400b57cec5SDimitry Andric        end subroutine omp_set_affinity_format
6410b57cec5SDimitry Andric
6420b57cec5SDimitry Andric        function omp_get_affinity_format(buffer)
6430b57cec5SDimitry Andric          import
6440b57cec5SDimitry Andric          character (len=*) :: buffer
6450b57cec5SDimitry Andric          integer (kind=kmp_size_t_kind) :: omp_get_affinity_format
6460b57cec5SDimitry Andric        end function omp_get_affinity_format
6470b57cec5SDimitry Andric
6480b57cec5SDimitry Andric        subroutine omp_display_affinity(format)
6490b57cec5SDimitry Andric          character (len=*) :: format
6500b57cec5SDimitry Andric        end subroutine omp_display_affinity
6510b57cec5SDimitry Andric
6520b57cec5SDimitry Andric        function omp_capture_affinity(buffer, format)
6530b57cec5SDimitry Andric          import
6540b57cec5SDimitry Andric          character (len=*) :: format
6550b57cec5SDimitry Andric          character (len=*) :: buffer
6560b57cec5SDimitry Andric          integer (kind=kmp_size_t_kind) :: omp_capture_affinity
6570b57cec5SDimitry Andric        end function omp_capture_affinity
6580b57cec5SDimitry Andric
659fe6060f1SDimitry Andric        subroutine omp_set_num_teams(num_teams) bind(c)
660fe6060f1SDimitry Andric          import
661fe6060f1SDimitry Andric          integer (kind=omp_integer_kind), value :: num_teams
662fe6060f1SDimitry Andric        end subroutine omp_set_num_teams
663fe6060f1SDimitry Andric
664fe6060f1SDimitry Andric        function omp_get_max_teams() bind(c)
665fe6060f1SDimitry Andric          import
666fe6060f1SDimitry Andric          integer (kind=omp_integer_kind) omp_get_max_teams
667fe6060f1SDimitry Andric        end function omp_get_max_teams
668fe6060f1SDimitry Andric
669fe6060f1SDimitry Andric        subroutine omp_set_teams_thread_limit(thread_limit) bind(c)
670fe6060f1SDimitry Andric          import
671fe6060f1SDimitry Andric          integer (kind=omp_integer_kind), value :: thread_limit
672fe6060f1SDimitry Andric        end subroutine omp_set_teams_thread_limit
673fe6060f1SDimitry Andric
674fe6060f1SDimitry Andric        function omp_get_teams_thread_limit() bind(c)
675fe6060f1SDimitry Andric          import
676fe6060f1SDimitry Andric          integer (kind=omp_integer_kind) omp_get_teams_thread_limit
677fe6060f1SDimitry Andric        end function omp_get_teams_thread_limit
678fe6060f1SDimitry Andric
6795ffd83dbSDimitry Andric        subroutine omp_display_env(verbose) bind(c)
6805ffd83dbSDimitry Andric          import
6815ffd83dbSDimitry Andric          logical (kind=omp_logical_kind), value :: verbose
6825ffd83dbSDimitry Andric        end subroutine omp_display_env
6835ffd83dbSDimitry Andric
684e8d8bef9SDimitry Andric        function omp_target_alloc(size, device_num) bind(c)
685e8d8bef9SDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
686e8d8bef9SDimitry Andric          type(c_ptr) omp_target_alloc
687e8d8bef9SDimitry Andric          integer(c_size_t), value :: size
688e8d8bef9SDimitry Andric          integer(c_int), value :: device_num
689e8d8bef9SDimitry Andric        end function omp_target_alloc
690e8d8bef9SDimitry Andric
691e8d8bef9SDimitry Andric        subroutine omp_target_free(device_ptr, device_num) bind(c)
692e8d8bef9SDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_int
693e8d8bef9SDimitry Andric          type(c_ptr), value :: device_ptr
694e8d8bef9SDimitry Andric          integer(c_int), value :: device_num
695e8d8bef9SDimitry Andric        end subroutine omp_target_free
696e8d8bef9SDimitry Andric
697e8d8bef9SDimitry Andric        function omp_target_is_present(ptr, device_num) bind(c)
698e8d8bef9SDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_int
699e8d8bef9SDimitry Andric          integer(c_int) omp_target_is_present
700e8d8bef9SDimitry Andric          type(c_ptr), value :: ptr
701e8d8bef9SDimitry Andric          integer(c_int), value :: device_num
702e8d8bef9SDimitry Andric        end function omp_target_is_present
703e8d8bef9SDimitry Andric
704e8d8bef9SDimitry Andric        function omp_target_memcpy(dst, src, length, dst_offset,                                                                    &
705e8d8bef9SDimitry Andric     &      src_offset, dst_device_num, src_device_num) bind(c)
706e8d8bef9SDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
707e8d8bef9SDimitry Andric          integer(c_int) omp_target_memcpy
708e8d8bef9SDimitry Andric          type(c_ptr), value :: dst, src
709e8d8bef9SDimitry Andric          integer(c_size_t), value :: length, dst_offset, src_offset
710e8d8bef9SDimitry Andric          integer(c_int), value :: dst_device_num, src_device_num
711e8d8bef9SDimitry Andric        end function omp_target_memcpy
712e8d8bef9SDimitry Andric
713e8d8bef9SDimitry Andric        function omp_target_memcpy_rect(dst, src, element_size,                                                                     &
714e8d8bef9SDimitry Andric     &      num_dims, volume, dst_offsets, src_offsets, dst_dimensions,                                                             &
715e8d8bef9SDimitry Andric     &      src_dimensions, dst_device_num, src_device_num) bind(c)
716e8d8bef9SDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
717e8d8bef9SDimitry Andric          integer(c_int) omp_target_memcpy_rect
718e8d8bef9SDimitry Andric          type(c_ptr), value :: dst, src
719e8d8bef9SDimitry Andric          integer(c_size_t), value :: element_size
720e8d8bef9SDimitry Andric          integer(c_int), value :: num_dims, dst_device_num,                                                                        &
721e8d8bef9SDimitry Andric     &        src_device_num
722e8d8bef9SDimitry Andric          integer(c_size_t), intent(in) :: volume(*), dst_offsets(*),                                                               &
723e8d8bef9SDimitry Andric     &        src_offsets(*), dst_dimensions(*), src_dimensions(*)
724e8d8bef9SDimitry Andric        end function omp_target_memcpy_rect
725e8d8bef9SDimitry Andric
726e8d8bef9SDimitry Andric        function omp_target_memcpy_async(dst, src, length, dst_offset,                                                              &
727e8d8bef9SDimitry Andric     &      src_offset, dst_device_num, src_device_num, depobj_count,                                                               &
728e8d8bef9SDimitry Andric     &      depobj_list) bind(c)
729e8d8bef9SDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
730e8d8bef9SDimitry Andric          import
731e8d8bef9SDimitry Andric          integer(c_int) omp_target_memcpy_async
732e8d8bef9SDimitry Andric          type(c_ptr), value :: dst, src
733e8d8bef9SDimitry Andric          integer(c_size_t), value :: length, dst_offset, src_offset
734e8d8bef9SDimitry Andric          integer(c_int), value :: dst_device_num, src_device_num,                                                                  &
735e8d8bef9SDimitry Andric     &        depobj_count
736e8d8bef9SDimitry Andric          integer(omp_depend_kind), optional :: depobj_list(*)
737e8d8bef9SDimitry Andric        end function omp_target_memcpy_async
738e8d8bef9SDimitry Andric
739e8d8bef9SDimitry Andric        function omp_target_memcpy_rect_async(dst, src, element_size,                                                               &
740e8d8bef9SDimitry Andric     &      num_dims, volume, dst_offsets, src_offsets, dst_dimensions,                                                             &
741e8d8bef9SDimitry Andric     &      src_dimensions, dst_device_num, src_device_num,                                                                         &
742e8d8bef9SDimitry Andric     &      depobj_count, depobj_list) bind(c)
743e8d8bef9SDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
744e8d8bef9SDimitry Andric          import
745e8d8bef9SDimitry Andric          integer(c_int) omp_target_memcpy_rect_async
746e8d8bef9SDimitry Andric          type(c_ptr), value :: dst, src
747e8d8bef9SDimitry Andric          integer(c_size_t), value :: element_size
748e8d8bef9SDimitry Andric          integer(c_int), value :: num_dims, dst_device_num,                                                                        &
749e8d8bef9SDimitry Andric     &        src_device_num, depobj_count
750e8d8bef9SDimitry Andric          integer(c_size_t), intent(in) :: volume(*), dst_offsets(*),                                                               &
751e8d8bef9SDimitry Andric     &        src_offsets(*), dst_dimensions(*), src_dimensions(*)
752e8d8bef9SDimitry Andric          integer(omp_depend_kind), optional :: depobj_list(*)
753e8d8bef9SDimitry Andric        end function omp_target_memcpy_rect_async
754e8d8bef9SDimitry Andric
7555f757f3fSDimitry Andric        function omp_target_memset(ptr, val, count, device_num) bind(c)
7565f757f3fSDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
7575f757f3fSDimitry Andric          type(c_ptr) :: omp_target_memset
7585f757f3fSDimitry Andric          type(c_ptr), value :: ptr
7595f757f3fSDimitry Andric          integer(c_int), value :: val
7605f757f3fSDimitry Andric          integer(c_size_t), value :: count
7615f757f3fSDimitry Andric          integer(c_int), value :: device_num
7625f757f3fSDimitry Andric        end function
7635f757f3fSDimitry Andric
7645f757f3fSDimitry Andric        function omp_target_memset_async(ptr, val, count, device_num,                                                               &
7657a6dacacSDimitry Andric     &      depobj_count, depobj_list) bind(c)
7665f757f3fSDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
7677a6dacacSDimitry Andric          import
7685f757f3fSDimitry Andric          type(c_ptr) :: omp_target_memset_async
7695f757f3fSDimitry Andric          type(c_ptr), value :: ptr
7705f757f3fSDimitry Andric          integer(c_int), value :: val
7715f757f3fSDimitry Andric          integer(c_size_t), value :: count
7725f757f3fSDimitry Andric          integer(c_int), value :: device_num
7735f757f3fSDimitry Andric          integer(c_int), value :: depobj_count
7745f757f3fSDimitry Andric          integer(omp_depend_kind), optional :: depobj_list(*)
7755f757f3fSDimitry Andric        end function
7765f757f3fSDimitry Andric
777e8d8bef9SDimitry Andric        function omp_target_associate_ptr(host_ptr, device_ptr, size,                                                               &
778e8d8bef9SDimitry Andric     &      device_offset, device_num) bind(c)
779e8d8bef9SDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
780e8d8bef9SDimitry Andric          integer(c_int) omp_target_associate_ptr
781e8d8bef9SDimitry Andric          type(c_ptr), value :: host_ptr, device_ptr
782e8d8bef9SDimitry Andric          integer(c_size_t), value :: size, device_offset
783e8d8bef9SDimitry Andric          integer(c_int), value :: device_num
784e8d8bef9SDimitry Andric        end function omp_target_associate_ptr
785e8d8bef9SDimitry Andric
786e8d8bef9SDimitry Andric        function omp_get_mapped_ptr(ptr, device_num) bind(c)
787e8d8bef9SDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_int
788e8d8bef9SDimitry Andric          type(c_ptr) omp_get_mapped_ptr
789e8d8bef9SDimitry Andric          type(c_ptr), value :: ptr
790e8d8bef9SDimitry Andric          integer(c_int), value :: device_num
791e8d8bef9SDimitry Andric        end function omp_get_mapped_ptr
792e8d8bef9SDimitry Andric
793e8d8bef9SDimitry Andric        function omp_target_disassociate_ptr(ptr, device_num) bind(c)
794e8d8bef9SDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_int
795e8d8bef9SDimitry Andric          integer(c_int) omp_target_disassociate_ptr
796e8d8bef9SDimitry Andric          type(c_ptr), value :: ptr
797e8d8bef9SDimitry Andric          integer(c_int), value :: device_num
798e8d8bef9SDimitry Andric        end function omp_target_disassociate_ptr
799e8d8bef9SDimitry Andric
800fe6060f1SDimitry Andric        function omp_target_is_accessible(ptr, size, device_num) bind(c)
801fe6060f1SDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
802fe6060f1SDimitry Andric          integer(c_int) omp_target_is_accessible
803fe6060f1SDimitry Andric          type(c_ptr), value :: ptr
804fe6060f1SDimitry Andric          integer(c_size_t), value :: size
805fe6060f1SDimitry Andric          integer(c_int), value :: device_num
806fe6060f1SDimitry Andric        end function omp_target_is_accessible
807fe6060f1SDimitry Andric
808349cc55cSDimitry Andric        function omp_alloc(size, allocator) bind(c)
809349cc55cSDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
81081ad6265SDimitry Andric          import :: omp_allocator_handle_kind
811349cc55cSDimitry Andric          type(c_ptr) omp_alloc
812349cc55cSDimitry Andric          integer(c_size_t), value :: size
813349cc55cSDimitry Andric          integer(omp_allocator_handle_kind), value :: allocator
814349cc55cSDimitry Andric        end function omp_alloc
815349cc55cSDimitry Andric
816349cc55cSDimitry Andric        function omp_aligned_alloc(alignment, size, allocator) bind(c)
817349cc55cSDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
81881ad6265SDimitry Andric          import :: omp_allocator_handle_kind
819349cc55cSDimitry Andric          type(c_ptr) omp_aligned_alloc
820349cc55cSDimitry Andric          integer(c_size_t), value :: alignment, size
821349cc55cSDimitry Andric          integer(omp_allocator_handle_kind), value :: allocator
822349cc55cSDimitry Andric        end function omp_aligned_alloc
823349cc55cSDimitry Andric
824349cc55cSDimitry Andric        function omp_calloc(nmemb, size, allocator) bind(c)
825349cc55cSDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
82681ad6265SDimitry Andric          import :: omp_allocator_handle_kind
827349cc55cSDimitry Andric          type(c_ptr) omp_calloc
828349cc55cSDimitry Andric          integer(c_size_t), value :: nmemb, size
829349cc55cSDimitry Andric          integer(omp_allocator_handle_kind), value :: allocator
830349cc55cSDimitry Andric        end function omp_calloc
831349cc55cSDimitry Andric
8320eae32dcSDimitry Andric        function omp_aligned_calloc(alignment, nmemb, size,                                                                         &
8330eae32dcSDimitry Andric     &      allocator) bind(c)
834349cc55cSDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
83581ad6265SDimitry Andric          import :: omp_allocator_handle_kind
836349cc55cSDimitry Andric          type(c_ptr) omp_aligned_calloc
837349cc55cSDimitry Andric          integer(c_size_t), value :: alignment, nmemb, size
838349cc55cSDimitry Andric          integer(omp_allocator_handle_kind), value :: allocator
839349cc55cSDimitry Andric        end function omp_aligned_calloc
840349cc55cSDimitry Andric
8410eae32dcSDimitry Andric        function omp_realloc(ptr, size, allocator,                                                                                  &
8420eae32dcSDimitry Andric     &      free_allocator) bind(c)
843349cc55cSDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
84481ad6265SDimitry Andric          import :: omp_allocator_handle_kind
845349cc55cSDimitry Andric          type(c_ptr) omp_realloc
846349cc55cSDimitry Andric          type(c_ptr), value :: ptr
847349cc55cSDimitry Andric          integer(c_size_t), value :: size
848349cc55cSDimitry Andric          integer(omp_allocator_handle_kind), value :: allocator
849349cc55cSDimitry Andric          integer(omp_allocator_handle_kind), value :: free_allocator
850349cc55cSDimitry Andric        end function omp_realloc
851349cc55cSDimitry Andric
852349cc55cSDimitry Andric        subroutine omp_free(ptr, allocator) bind(c)
853349cc55cSDimitry Andric          use, intrinsic :: iso_c_binding, only : c_ptr
85481ad6265SDimitry Andric          import :: omp_allocator_handle_kind
855349cc55cSDimitry Andric          type(c_ptr), value :: ptr
856349cc55cSDimitry Andric          integer(omp_allocator_handle_kind), value :: allocator
857349cc55cSDimitry Andric        end subroutine omp_free
858349cc55cSDimitry Andric
85981ad6265SDimitry Andric        function omp_in_explicit_task() bind(c)
86081ad6265SDimitry Andric          import
86181ad6265SDimitry Andric          logical (kind=omp_logical_kind) omp_in_explicit_task
86281ad6265SDimitry Andric        end function omp_in_explicit_task
86381ad6265SDimitry Andric
8640b57cec5SDimitry Andric!       ***
8650b57cec5SDimitry Andric!       *** kmp_* entry points
8660b57cec5SDimitry Andric!       ***
8670b57cec5SDimitry Andric
8680b57cec5SDimitry Andric        subroutine kmp_set_stacksize(size) bind(c)
8690b57cec5SDimitry Andric          import
8700b57cec5SDimitry Andric          integer (kind=omp_integer_kind), value :: size
8710b57cec5SDimitry Andric        end subroutine kmp_set_stacksize
8720b57cec5SDimitry Andric
8730b57cec5SDimitry Andric        subroutine kmp_set_stacksize_s(size) bind(c)
8740b57cec5SDimitry Andric          import
8750b57cec5SDimitry Andric          integer (kind=kmp_size_t_kind), value :: size
8760b57cec5SDimitry Andric        end subroutine kmp_set_stacksize_s
8770b57cec5SDimitry Andric
8780b57cec5SDimitry Andric        subroutine kmp_set_blocktime(msec) bind(c)
8790b57cec5SDimitry Andric          import
8800b57cec5SDimitry Andric          integer (kind=omp_integer_kind), value :: msec
8810b57cec5SDimitry Andric        end subroutine kmp_set_blocktime
8820b57cec5SDimitry Andric
8830b57cec5SDimitry Andric        subroutine kmp_set_library_serial() bind(c)
8840b57cec5SDimitry Andric        end subroutine kmp_set_library_serial
8850b57cec5SDimitry Andric
8860b57cec5SDimitry Andric        subroutine kmp_set_library_turnaround() bind(c)
8870b57cec5SDimitry Andric        end subroutine kmp_set_library_turnaround
8880b57cec5SDimitry Andric
8890b57cec5SDimitry Andric        subroutine kmp_set_library_throughput() bind(c)
8900b57cec5SDimitry Andric        end subroutine kmp_set_library_throughput
8910b57cec5SDimitry Andric
8920b57cec5SDimitry Andric        subroutine kmp_set_library(libnum) bind(c)
8930b57cec5SDimitry Andric          import
8940b57cec5SDimitry Andric          integer (kind=omp_integer_kind), value :: libnum
8950b57cec5SDimitry Andric        end subroutine kmp_set_library
8960b57cec5SDimitry Andric
8970b57cec5SDimitry Andric        subroutine kmp_set_defaults(string) bind(c)
8980b57cec5SDimitry Andric          character string(*)
8990b57cec5SDimitry Andric        end subroutine kmp_set_defaults
9000b57cec5SDimitry Andric
9010b57cec5SDimitry Andric        function kmp_get_stacksize() bind(c)
9020b57cec5SDimitry Andric          import
9030b57cec5SDimitry Andric          integer (kind=omp_integer_kind) kmp_get_stacksize
9040b57cec5SDimitry Andric        end function kmp_get_stacksize
9050b57cec5SDimitry Andric
9060b57cec5SDimitry Andric        function kmp_get_stacksize_s() bind(c)
9070b57cec5SDimitry Andric          import
9080b57cec5SDimitry Andric          integer (kind=kmp_size_t_kind) kmp_get_stacksize_s
9090b57cec5SDimitry Andric        end function kmp_get_stacksize_s
9100b57cec5SDimitry Andric
9110b57cec5SDimitry Andric        function kmp_get_blocktime() bind(c)
9120b57cec5SDimitry Andric          import
9130b57cec5SDimitry Andric          integer (kind=omp_integer_kind) kmp_get_blocktime
9140b57cec5SDimitry Andric        end function kmp_get_blocktime
9150b57cec5SDimitry Andric
9160b57cec5SDimitry Andric        function kmp_get_library() bind(c)
9170b57cec5SDimitry Andric          import
9180b57cec5SDimitry Andric          integer (kind=omp_integer_kind) kmp_get_library
9190b57cec5SDimitry Andric        end function kmp_get_library
9200b57cec5SDimitry Andric
9210b57cec5SDimitry Andric        subroutine kmp_set_disp_num_buffers(num) bind(c)
9220b57cec5SDimitry Andric          import
9230b57cec5SDimitry Andric          integer (kind=omp_integer_kind), value :: num
9240b57cec5SDimitry Andric        end subroutine kmp_set_disp_num_buffers
9250b57cec5SDimitry Andric
9260b57cec5SDimitry Andric        function kmp_set_affinity(mask) bind(c)
9270b57cec5SDimitry Andric          import
9280b57cec5SDimitry Andric          integer (kind=omp_integer_kind) kmp_set_affinity
9290b57cec5SDimitry Andric          integer (kind=kmp_affinity_mask_kind) mask
9300b57cec5SDimitry Andric        end function kmp_set_affinity
9310b57cec5SDimitry Andric
9320b57cec5SDimitry Andric        function kmp_get_affinity(mask) bind(c)
9330b57cec5SDimitry Andric          import
9340b57cec5SDimitry Andric          integer (kind=omp_integer_kind) kmp_get_affinity
9350b57cec5SDimitry Andric          integer (kind=kmp_affinity_mask_kind) mask
9360b57cec5SDimitry Andric        end function kmp_get_affinity
9370b57cec5SDimitry Andric
9380b57cec5SDimitry Andric        function kmp_get_affinity_max_proc() bind(c)
9390b57cec5SDimitry Andric          import
9400b57cec5SDimitry Andric          integer (kind=omp_integer_kind) kmp_get_affinity_max_proc
9410b57cec5SDimitry Andric        end function kmp_get_affinity_max_proc
9420b57cec5SDimitry Andric
9430b57cec5SDimitry Andric        subroutine kmp_create_affinity_mask(mask) bind(c)
9440b57cec5SDimitry Andric          import
9450b57cec5SDimitry Andric          integer (kind=kmp_affinity_mask_kind) mask
9460b57cec5SDimitry Andric        end subroutine kmp_create_affinity_mask
9470b57cec5SDimitry Andric
9480b57cec5SDimitry Andric        subroutine kmp_destroy_affinity_mask(mask) bind(c)
9490b57cec5SDimitry Andric          import
9500b57cec5SDimitry Andric          integer (kind=kmp_affinity_mask_kind) mask
9510b57cec5SDimitry Andric        end subroutine kmp_destroy_affinity_mask
9520b57cec5SDimitry Andric
9530b57cec5SDimitry Andric        function kmp_set_affinity_mask_proc(proc, mask) bind(c)
9540b57cec5SDimitry Andric          import
9550b57cec5SDimitry Andric          integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc
9560b57cec5SDimitry Andric          integer (kind=omp_integer_kind), value :: proc
9570b57cec5SDimitry Andric          integer (kind=kmp_affinity_mask_kind) mask
9580b57cec5SDimitry Andric        end function kmp_set_affinity_mask_proc
9590b57cec5SDimitry Andric
9600b57cec5SDimitry Andric        function kmp_unset_affinity_mask_proc(proc, mask) bind(c)
9610b57cec5SDimitry Andric          import
9620b57cec5SDimitry Andric          integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc
9630b57cec5SDimitry Andric          integer (kind=omp_integer_kind), value :: proc
9640b57cec5SDimitry Andric          integer (kind=kmp_affinity_mask_kind) mask
9650b57cec5SDimitry Andric        end function kmp_unset_affinity_mask_proc
9660b57cec5SDimitry Andric
9670b57cec5SDimitry Andric        function kmp_get_affinity_mask_proc(proc, mask) bind(c)
9680b57cec5SDimitry Andric          import
9690b57cec5SDimitry Andric          integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc
9700b57cec5SDimitry Andric          integer (kind=omp_integer_kind), value :: proc
9710b57cec5SDimitry Andric          integer (kind=kmp_affinity_mask_kind) mask
9720b57cec5SDimitry Andric        end function kmp_get_affinity_mask_proc
9730b57cec5SDimitry Andric
9740b57cec5SDimitry Andric        function kmp_malloc(size) bind(c)
9750b57cec5SDimitry Andric          import
9760b57cec5SDimitry Andric          integer (kind=kmp_pointer_kind) kmp_malloc
9770b57cec5SDimitry Andric          integer (kind=kmp_size_t_kind), value :: size
9780b57cec5SDimitry Andric        end function kmp_malloc
9790b57cec5SDimitry Andric
9800b57cec5SDimitry Andric        function kmp_aligned_malloc(size, alignment) bind(c)
9810b57cec5SDimitry Andric          import
9820b57cec5SDimitry Andric          integer (kind=kmp_pointer_kind) kmp_aligned_malloc
9830b57cec5SDimitry Andric          integer (kind=kmp_size_t_kind), value :: size
9840b57cec5SDimitry Andric          integer (kind=kmp_size_t_kind), value :: alignment
9850b57cec5SDimitry Andric        end function kmp_aligned_malloc
9860b57cec5SDimitry Andric
9870b57cec5SDimitry Andric        function kmp_calloc(nelem, elsize) bind(c)
9880b57cec5SDimitry Andric          import
9890b57cec5SDimitry Andric          integer (kind=kmp_pointer_kind) kmp_calloc
9900b57cec5SDimitry Andric          integer (kind=kmp_size_t_kind), value :: nelem
9910b57cec5SDimitry Andric          integer (kind=kmp_size_t_kind), value :: elsize
9920b57cec5SDimitry Andric        end function kmp_calloc
9930b57cec5SDimitry Andric
9940b57cec5SDimitry Andric        function kmp_realloc(ptr, size) bind(c)
9950b57cec5SDimitry Andric          import
9960b57cec5SDimitry Andric          integer (kind=kmp_pointer_kind) kmp_realloc
9970b57cec5SDimitry Andric          integer (kind=kmp_pointer_kind), value :: ptr
9980b57cec5SDimitry Andric          integer (kind=kmp_size_t_kind), value :: size
9990b57cec5SDimitry Andric        end function kmp_realloc
10000b57cec5SDimitry Andric
10010b57cec5SDimitry Andric        subroutine kmp_free(ptr) bind(c)
10020b57cec5SDimitry Andric          import
10030b57cec5SDimitry Andric          integer (kind=kmp_pointer_kind), value :: ptr
10040b57cec5SDimitry Andric        end subroutine kmp_free
10050b57cec5SDimitry Andric
10060b57cec5SDimitry Andric        subroutine kmp_set_warnings_on() bind(c)
10070b57cec5SDimitry Andric        end subroutine kmp_set_warnings_on
10080b57cec5SDimitry Andric
10090b57cec5SDimitry Andric        subroutine kmp_set_warnings_off() bind(c)
10100b57cec5SDimitry Andric        end subroutine kmp_set_warnings_off
10110b57cec5SDimitry Andric      end interface
10120b57cec5SDimitry Andric
1013*0fca6ea1SDimitry Andric#ifdef __INTEL_COMPILER
10140b57cec5SDimitry Andric!DIR$ IF DEFINED (__INTEL_OFFLOAD)
10150b57cec5SDimitry Andric
10160b57cec5SDimitry Andric!DIR$ IF(__INTEL_COMPILER.LT.1900)
10170b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_num_threads
10180b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_dynamic
10190b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_nested
10200b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_threads
10210b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_max_threads
10220b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_thread_num
10230b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_procs
10240b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_in_parallel
10250b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_in_final
10260b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_dynamic
10270b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_nested
10280b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_thread_limit
10290b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_max_active_levels
10300b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_max_active_levels
10310b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_level
10320b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_active_level
10330b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_ancestor_thread_num
10340b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_team_size
10350b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_schedule
10360b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_schedule
10370b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_proc_bind
10380b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_wtime
10390b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_wtick
10400b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_default_device
10410b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_default_device
10420b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_is_initial_device
10430b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_initial_device
10440b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_devices
10450b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_device_num
10460b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_pause_resource
10470b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_pause_resource_all
10480b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_supported_active_levels
10490b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_fulfill_event
10500b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_teams
10510b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_team_num
10520b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_lock
10530b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_destroy_lock
10540b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_lock
10550b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_unset_lock
10560b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_test_lock
10570b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_nest_lock
10580b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_destroy_nest_lock
10590b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_nest_lock
10600b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_unset_nest_lock
10610b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_test_nest_lock
10620b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_max_task_priority
10630b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_affinity_format
10640b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_affinity_format
10650b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_display_affinity
10660b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_capture_affinity
10670b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_stacksize
10680b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_stacksize_s
10690b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_blocktime
10700b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library_serial
10710b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library_turnaround
10720b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library_throughput
10730b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library
10740b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_defaults
10750b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_stacksize
10760b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_stacksize_s
10770b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_blocktime
10780b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_library
10790b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_disp_num_buffers
10800b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_affinity
10810b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_affinity
10820b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_affinity_max_proc
10830b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_create_affinity_mask
10840b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_destroy_affinity_mask
10850b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_affinity_mask_proc
10860b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_unset_affinity_mask_proc
10870b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_affinity_mask_proc
10880b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_malloc
10890b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_aligned_malloc
10900b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_calloc
10910b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_realloc
10920b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_free
10930b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_warnings_on
10940b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_warnings_off
10950b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_lock_with_hint
10960b57cec5SDimitry Andric!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_nest_lock_with_hint
10970b57cec5SDimitry Andric!DIR$ ENDIF
10980b57cec5SDimitry Andric
10990b57cec5SDimitry Andric!DIR$ IF(__INTEL_COMPILER.GE.1400)
11000b57cec5SDimitry Andric!$omp declare target(omp_set_num_threads )
11010b57cec5SDimitry Andric!$omp declare target(omp_set_dynamic )
11020b57cec5SDimitry Andric!$omp declare target(omp_set_nested )
11030b57cec5SDimitry Andric!$omp declare target(omp_get_num_threads )
11040b57cec5SDimitry Andric!$omp declare target(omp_get_max_threads )
11050b57cec5SDimitry Andric!$omp declare target(omp_get_thread_num )
11060b57cec5SDimitry Andric!$omp declare target(omp_get_num_procs )
11070b57cec5SDimitry Andric!$omp declare target(omp_in_parallel )
11080b57cec5SDimitry Andric!$omp declare target(omp_in_final )
11090b57cec5SDimitry Andric!$omp declare target(omp_get_dynamic )
11100b57cec5SDimitry Andric!$omp declare target(omp_get_nested )
11110b57cec5SDimitry Andric!$omp declare target(omp_get_thread_limit )
11120b57cec5SDimitry Andric!$omp declare target(omp_set_max_active_levels )
11130b57cec5SDimitry Andric!$omp declare target(omp_get_max_active_levels )
11140b57cec5SDimitry Andric!$omp declare target(omp_get_level )
11150b57cec5SDimitry Andric!$omp declare target(omp_get_active_level )
11160b57cec5SDimitry Andric!$omp declare target(omp_get_ancestor_thread_num )
11170b57cec5SDimitry Andric!$omp declare target(omp_get_team_size )
11180b57cec5SDimitry Andric!$omp declare target(omp_set_schedule )
11190b57cec5SDimitry Andric!$omp declare target(omp_get_schedule )
11200b57cec5SDimitry Andric!$omp declare target(omp_get_proc_bind )
11210b57cec5SDimitry Andric!$omp declare target(omp_get_wtime )
11220b57cec5SDimitry Andric!$omp declare target(omp_get_wtick )
11230b57cec5SDimitry Andric!$omp declare target(omp_get_default_device )
11240b57cec5SDimitry Andric!$omp declare target(omp_set_default_device )
11250b57cec5SDimitry Andric!$omp declare target(omp_is_initial_device )
11260b57cec5SDimitry Andric!$omp declare target(omp_get_initial_device )
11270b57cec5SDimitry Andric!$omp declare target(omp_get_num_devices )
11280b57cec5SDimitry Andric!$omp declare target(omp_get_device_num )
11290b57cec5SDimitry Andric!$omp declare target(omp_pause_resource )
11300b57cec5SDimitry Andric!$omp declare target(omp_pause_resource_all )
11310b57cec5SDimitry Andric!$omp declare target(omp_get_supported_active_levels )
11320b57cec5SDimitry Andric!$omp declare target(omp_fulfill_event)
11330b57cec5SDimitry Andric!$omp declare target(omp_get_num_teams )
11340b57cec5SDimitry Andric!$omp declare target(omp_get_team_num )
11350b57cec5SDimitry Andric!$omp declare target(omp_init_lock )
11360b57cec5SDimitry Andric!$omp declare target(omp_destroy_lock )
11370b57cec5SDimitry Andric!$omp declare target(omp_set_lock )
11380b57cec5SDimitry Andric!$omp declare target(omp_unset_lock )
11390b57cec5SDimitry Andric!$omp declare target(omp_test_lock )
11400b57cec5SDimitry Andric!$omp declare target(omp_init_nest_lock )
11410b57cec5SDimitry Andric!$omp declare target(omp_destroy_nest_lock )
11420b57cec5SDimitry Andric!$omp declare target(omp_set_nest_lock )
11430b57cec5SDimitry Andric!$omp declare target(omp_unset_nest_lock )
11440b57cec5SDimitry Andric!$omp declare target(omp_test_nest_lock )
11450b57cec5SDimitry Andric!$omp declare target(omp_get_max_task_priority )
11460b57cec5SDimitry Andric!$omp declare target(omp_set_affinity_format )
11470b57cec5SDimitry Andric!$omp declare target(omp_get_affinity_format )
11480b57cec5SDimitry Andric!$omp declare target(omp_display_affinity )
11490b57cec5SDimitry Andric!$omp declare target(omp_capture_affinity )
11500b57cec5SDimitry Andric!$omp declare target(kmp_set_stacksize )
11510b57cec5SDimitry Andric!$omp declare target(kmp_set_stacksize_s )
11520b57cec5SDimitry Andric!$omp declare target(kmp_set_blocktime )
11530b57cec5SDimitry Andric!$omp declare target(kmp_set_library_serial )
11540b57cec5SDimitry Andric!$omp declare target(kmp_set_library_turnaround )
11550b57cec5SDimitry Andric!$omp declare target(kmp_set_library_throughput )
11560b57cec5SDimitry Andric!$omp declare target(kmp_set_library )
11570b57cec5SDimitry Andric!$omp declare target(kmp_set_defaults )
11580b57cec5SDimitry Andric!$omp declare target(kmp_get_stacksize )
11590b57cec5SDimitry Andric!$omp declare target(kmp_get_stacksize_s )
11600b57cec5SDimitry Andric!$omp declare target(kmp_get_blocktime )
11610b57cec5SDimitry Andric!$omp declare target(kmp_get_library )
11620b57cec5SDimitry Andric!$omp declare target(kmp_set_disp_num_buffers )
11630b57cec5SDimitry Andric!$omp declare target(kmp_set_affinity )
11640b57cec5SDimitry Andric!$omp declare target(kmp_get_affinity )
11650b57cec5SDimitry Andric!$omp declare target(kmp_get_affinity_max_proc )
11660b57cec5SDimitry Andric!$omp declare target(kmp_create_affinity_mask )
11670b57cec5SDimitry Andric!$omp declare target(kmp_destroy_affinity_mask )
11680b57cec5SDimitry Andric!$omp declare target(kmp_set_affinity_mask_proc )
11690b57cec5SDimitry Andric!$omp declare target(kmp_unset_affinity_mask_proc )
11700b57cec5SDimitry Andric!$omp declare target(kmp_get_affinity_mask_proc )
11710b57cec5SDimitry Andric!$omp declare target(kmp_malloc )
11720b57cec5SDimitry Andric!$omp declare target(kmp_aligned_malloc )
11730b57cec5SDimitry Andric!$omp declare target(kmp_calloc )
11740b57cec5SDimitry Andric!$omp declare target(kmp_realloc )
11750b57cec5SDimitry Andric!$omp declare target(kmp_free )
11760b57cec5SDimitry Andric!$omp declare target(kmp_set_warnings_on )
11770b57cec5SDimitry Andric!$omp declare target(kmp_set_warnings_off )
11780b57cec5SDimitry Andric!$omp declare target(omp_init_lock_with_hint )
11790b57cec5SDimitry Andric!$omp declare target(omp_init_nest_lock_with_hint )
11800b57cec5SDimitry Andric!DIR$ ENDIF
11810b57cec5SDimitry Andric!DIR$ ENDIF
1182*0fca6ea1SDimitry Andric#endif
1183