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