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