1 ! include/30/omp_lib.f90.var
4 !//===----------------------------------------------------------------------===//
6 !// The LLVM Compiler Infrastructure
8 !// This file is dual licensed under the MIT and the University of Illinois Open
9 !// Source Licenses. See LICENSE.txt for details.
11 !//===----------------------------------------------------------------------===//
16 use, intrinsic :: iso_c_binding
18 integer, parameter :: omp_integer_kind = c_int
19 integer, parameter :: omp_logical_kind = 4
20 integer, parameter :: omp_real_kind = c_float
21 integer, parameter :: kmp_double_kind = c_double
22 integer, parameter :: omp_lock_kind = c_intptr_t
23 integer, parameter :: omp_nest_lock_kind = c_intptr_t
24 integer, parameter :: omp_sched_kind = omp_integer_kind
25 integer, parameter :: kmp_pointer_kind = c_intptr_t
26 integer, parameter :: kmp_size_t_kind = c_size_t
27 integer, parameter :: kmp_affinity_mask_kind = c_intptr_t
29 end module omp_lib_kinds
35 integer (kind=omp_integer_kind), parameter :: openmp_version = @LIBOMP_OMP_YEAR_MONTH@
36 integer (kind=omp_integer_kind), parameter :: kmp_version_major = @LIBOMP_VERSION_MAJOR@
37 integer (kind=omp_integer_kind), parameter :: kmp_version_minor = @LIBOMP_VERSION_MINOR@
38 integer (kind=omp_integer_kind), parameter :: kmp_version_build = @LIBOMP_VERSION_BUILD@
39 character(*) kmp_build_date
40 parameter( kmp_build_date = '@LIBOMP_BUILD_DATE@' )
42 integer(kind=omp_sched_kind), parameter :: omp_sched_static = 1
43 integer(kind=omp_sched_kind), parameter :: omp_sched_dynamic = 2
44 integer(kind=omp_sched_kind), parameter :: omp_sched_guided = 3
45 integer(kind=omp_sched_kind), parameter :: omp_sched_auto = 4
50 ! *** omp_* entry points
53 subroutine omp_set_num_threads(nthreads) bind(c)
55 integer (kind=omp_integer_kind), value :: nthreads
56 end subroutine omp_set_num_threads
58 subroutine omp_set_dynamic(enable) bind(c)
60 logical (kind=omp_logical_kind), value :: enable
61 end subroutine omp_set_dynamic
63 subroutine omp_set_nested(enable) bind(c)
65 logical (kind=omp_logical_kind), value :: enable
66 end subroutine omp_set_nested
68 function omp_get_num_threads() bind(c)
70 integer (kind=omp_integer_kind) omp_get_num_threads
71 end function omp_get_num_threads
73 function omp_get_max_threads() bind(c)
75 integer (kind=omp_integer_kind) omp_get_max_threads
76 end function omp_get_max_threads
78 function omp_get_thread_num() bind(c)
80 integer (kind=omp_integer_kind) omp_get_thread_num
81 end function omp_get_thread_num
83 function omp_get_num_procs() bind(c)
85 integer (kind=omp_integer_kind) omp_get_num_procs
86 end function omp_get_num_procs
88 function omp_in_parallel() bind(c)
90 logical (kind=omp_logical_kind) omp_in_parallel
91 end function omp_in_parallel
93 function omp_in_final() bind(c)
95 logical (kind=omp_logical_kind) omp_in_final
96 end function omp_in_final
98 function omp_get_dynamic() bind(c)
100 logical (kind=omp_logical_kind) omp_get_dynamic
101 end function omp_get_dynamic
103 function omp_get_nested() bind(c)
105 logical (kind=omp_logical_kind) omp_get_nested
106 end function omp_get_nested
108 function omp_get_thread_limit() bind(c)
110 integer (kind=omp_integer_kind) omp_get_thread_limit
111 end function omp_get_thread_limit
113 subroutine omp_set_max_active_levels(max_levels) bind(c)
115 integer (kind=omp_integer_kind), value :: max_levels
116 end subroutine omp_set_max_active_levels
118 function omp_get_max_active_levels() bind(c)
120 integer (kind=omp_integer_kind) omp_get_max_active_levels
121 end function omp_get_max_active_levels
123 function omp_get_level() bind(c)
125 integer (kind=omp_integer_kind) :: omp_get_level
126 end function omp_get_level
128 function omp_get_active_level() bind(c)
130 integer (kind=omp_integer_kind) :: omp_get_active_level
131 end function omp_get_active_level
133 function omp_get_ancestor_thread_num(level) bind(c)
135 integer (kind=omp_integer_kind) omp_get_ancestor_thread_num
136 integer (kind=omp_integer_kind), value :: level
137 end function omp_get_ancestor_thread_num
139 function omp_get_team_size(level) bind(c)
141 integer (kind=omp_integer_kind) omp_get_team_size
142 integer (kind=omp_integer_kind), value :: level
143 end function omp_get_team_size
145 subroutine omp_set_schedule(kind, modifier) bind(c)
147 integer (kind=omp_sched_kind), value :: kind
148 integer (kind=omp_integer_kind), value :: modifier
149 end subroutine omp_set_schedule
151 subroutine omp_get_schedule(kind, modifier) bind(c)
153 integer (kind=omp_sched_kind) :: kind
154 integer (kind=omp_integer_kind) :: modifier
155 end subroutine omp_get_schedule
157 function omp_get_wtime() bind(c)
159 real (kind=kmp_double_kind) omp_get_wtime
160 end function omp_get_wtime
162 function omp_get_wtick() bind(c)
164 real (kind=kmp_double_kind) omp_get_wtick
165 end function omp_get_wtick
167 subroutine omp_init_lock(lockvar) bind(c)
169 integer (kind=omp_lock_kind) lockvar
170 end subroutine omp_init_lock
172 subroutine omp_destroy_lock(lockvar) bind(c)
174 integer (kind=omp_lock_kind) lockvar
175 end subroutine omp_destroy_lock
177 subroutine omp_set_lock(lockvar) bind(c)
179 integer (kind=omp_lock_kind) lockvar
180 end subroutine omp_set_lock
182 subroutine omp_unset_lock(lockvar) bind(c)
184 integer (kind=omp_lock_kind) lockvar
185 end subroutine omp_unset_lock
187 function omp_test_lock(lockvar) bind(c)
189 logical (kind=omp_logical_kind) omp_test_lock
190 integer (kind=omp_lock_kind) lockvar
191 end function omp_test_lock
193 subroutine omp_init_nest_lock(lockvar) bind(c)
195 integer (kind=omp_nest_lock_kind) lockvar
196 end subroutine omp_init_nest_lock
198 subroutine omp_destroy_nest_lock(lockvar) bind(c)
200 integer (kind=omp_nest_lock_kind) lockvar
201 end subroutine omp_destroy_nest_lock
203 subroutine omp_set_nest_lock(lockvar) bind(c)
205 integer (kind=omp_nest_lock_kind) lockvar
206 end subroutine omp_set_nest_lock
208 subroutine omp_unset_nest_lock(lockvar) bind(c)
210 integer (kind=omp_nest_lock_kind) lockvar
211 end subroutine omp_unset_nest_lock
213 function omp_test_nest_lock(lockvar) bind(c)
215 integer (kind=omp_integer_kind) omp_test_nest_lock
216 integer (kind=omp_nest_lock_kind) lockvar
217 end function omp_test_nest_lock
220 ! *** kmp_* entry points
223 subroutine kmp_set_stacksize(size) bind(c)
225 integer (kind=omp_integer_kind), value :: size
226 end subroutine kmp_set_stacksize
228 subroutine kmp_set_stacksize_s(size) bind(c)
230 integer (kind=kmp_size_t_kind), value :: size
231 end subroutine kmp_set_stacksize_s
233 subroutine kmp_set_blocktime(msec) bind(c)
235 integer (kind=omp_integer_kind), value :: msec
236 end subroutine kmp_set_blocktime
238 subroutine kmp_set_library_serial() bind(c)
239 end subroutine kmp_set_library_serial
241 subroutine kmp_set_library_turnaround() bind(c)
242 end subroutine kmp_set_library_turnaround
244 subroutine kmp_set_library_throughput() bind(c)
245 end subroutine kmp_set_library_throughput
247 subroutine kmp_set_library(libnum) bind(c)
249 integer (kind=omp_integer_kind), value :: libnum
250 end subroutine kmp_set_library
252 subroutine kmp_set_defaults(string) bind(c)
253 use, intrinsic :: iso_c_binding
254 character (kind=c_char) :: string(*)
255 end subroutine kmp_set_defaults
257 function kmp_get_stacksize() bind(c)
259 integer (kind=omp_integer_kind) kmp_get_stacksize
260 end function kmp_get_stacksize
262 function kmp_get_stacksize_s() bind(c)
264 integer (kind=kmp_size_t_kind) kmp_get_stacksize_s
265 end function kmp_get_stacksize_s
267 function kmp_get_blocktime() bind(c)
269 integer (kind=omp_integer_kind) kmp_get_blocktime
270 end function kmp_get_blocktime
272 function kmp_get_library() bind(c)
274 integer (kind=omp_integer_kind) kmp_get_library
275 end function kmp_get_library
277 function kmp_set_affinity(mask) bind(c)
279 integer (kind=omp_integer_kind) kmp_set_affinity
280 integer (kind=kmp_affinity_mask_kind) mask
281 end function kmp_set_affinity
283 function kmp_get_affinity(mask) bind(c)
285 integer (kind=omp_integer_kind) kmp_get_affinity
286 integer (kind=kmp_affinity_mask_kind) mask
287 end function kmp_get_affinity
289 function kmp_get_affinity_max_proc() bind(c)
291 integer (kind=omp_integer_kind) kmp_get_affinity_max_proc
292 end function kmp_get_affinity_max_proc
294 subroutine kmp_create_affinity_mask(mask) bind(c)
296 integer (kind=kmp_affinity_mask_kind) mask
297 end subroutine kmp_create_affinity_mask
299 subroutine kmp_destroy_affinity_mask(mask) bind(c)
301 integer (kind=kmp_affinity_mask_kind) mask
302 end subroutine kmp_destroy_affinity_mask
304 function kmp_set_affinity_mask_proc(proc, mask) bind(c)
306 integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc
307 integer (kind=omp_integer_kind), value :: proc
308 integer (kind=kmp_affinity_mask_kind) mask
309 end function kmp_set_affinity_mask_proc
311 function kmp_unset_affinity_mask_proc(proc, mask) bind(c)
313 integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc
314 integer (kind=omp_integer_kind), value :: proc
315 integer (kind=kmp_affinity_mask_kind) mask
316 end function kmp_unset_affinity_mask_proc
318 function kmp_get_affinity_mask_proc(proc, mask) bind(c)
320 integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc
321 integer (kind=omp_integer_kind), value :: proc
322 integer (kind=kmp_affinity_mask_kind) mask
323 end function kmp_get_affinity_mask_proc
325 function kmp_malloc(size) bind(c)
327 integer (kind=kmp_pointer_kind) kmp_malloc
328 integer (kind=kmp_size_t_kind), value :: size
329 end function kmp_malloc
331 function kmp_aligned_malloc(size, alignment) bind(c)
333 integer (kind=kmp_pointer_kind) kmp_aligned_malloc
334 integer (kind=kmp_size_t_kind), value :: size
335 integer (kind=kmp_size_t_kind), value :: alignment
336 end function kmp_aligned_malloc
338 function kmp_calloc(nelem, elsize) bind(c)
340 integer (kind=kmp_pointer_kind) kmp_calloc
341 integer (kind=kmp_size_t_kind), value :: nelem
342 integer (kind=kmp_size_t_kind), value :: elsize
343 end function kmp_calloc
345 function kmp_realloc(ptr, size) bind(c)
347 integer (kind=kmp_pointer_kind) kmp_realloc
348 integer (kind=kmp_pointer_kind), value :: ptr
349 integer (kind=kmp_size_t_kind), value :: size
350 end function kmp_realloc
352 subroutine kmp_free(ptr) bind(c)
354 integer (kind=kmp_pointer_kind), value :: ptr
355 end subroutine kmp_free
357 subroutine kmp_set_warnings_on() bind(c)
358 end subroutine kmp_set_warnings_on
360 subroutine kmp_set_warnings_off() bind(c)
361 end subroutine kmp_set_warnings_off