omp_lib.f90.in revision 1.5 1 1.5 mrg ! Copyright (C) 2005-2015 Free Software Foundation, Inc.
2 1.1 mrg ! Contributed by Jakub Jelinek <jakub (a] redhat.com>.
3 1.1 mrg
4 1.5 mrg ! This file is part of the GNU Offloading and Multi Processing Library
5 1.5 mrg ! (libgomp).
6 1.1 mrg
7 1.1 mrg ! Libgomp is free software; you can redistribute it and/or modify it
8 1.1 mrg ! under the terms of the GNU General Public License as published by
9 1.1 mrg ! the Free Software Foundation; either version 3, or (at your option)
10 1.1 mrg ! any later version.
11 1.1 mrg
12 1.1 mrg ! Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
13 1.1 mrg ! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 1.1 mrg ! FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15 1.1 mrg ! more details.
16 1.1 mrg
17 1.1 mrg ! Under Section 7 of GPL version 3, you are granted additional
18 1.1 mrg ! permissions described in the GCC Runtime Library Exception, version
19 1.1 mrg ! 3.1, as published by the Free Software Foundation.
20 1.1 mrg
21 1.1 mrg ! You should have received a copy of the GNU General Public License and
22 1.1 mrg ! a copy of the GCC Runtime Library Exception along with this program;
23 1.1 mrg ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
24 1.1 mrg ! <http://www.gnu.org/licenses/>.
25 1.1 mrg
26 1.1 mrg module omp_lib_kinds
27 1.1 mrg implicit none
28 1.1 mrg integer, parameter :: omp_lock_kind = @OMP_LOCK_KIND@
29 1.1 mrg integer, parameter :: omp_nest_lock_kind = @OMP_NEST_LOCK_KIND@
30 1.1 mrg integer, parameter :: omp_sched_kind = 4
31 1.5 mrg integer, parameter :: omp_proc_bind_kind = 4
32 1.5 mrg integer (omp_sched_kind), parameter :: omp_sched_static = 1
33 1.5 mrg integer (omp_sched_kind), parameter :: omp_sched_dynamic = 2
34 1.5 mrg integer (omp_sched_kind), parameter :: omp_sched_guided = 3
35 1.5 mrg integer (omp_sched_kind), parameter :: omp_sched_auto = 4
36 1.5 mrg integer (omp_proc_bind_kind), parameter :: omp_proc_bind_false = 0
37 1.5 mrg integer (omp_proc_bind_kind), parameter :: omp_proc_bind_true = 1
38 1.5 mrg integer (omp_proc_bind_kind), parameter :: omp_proc_bind_master = 2
39 1.5 mrg integer (omp_proc_bind_kind), parameter :: omp_proc_bind_close = 3
40 1.5 mrg integer (omp_proc_bind_kind), parameter :: omp_proc_bind_spread = 4
41 1.1 mrg end module
42 1.1 mrg
43 1.1 mrg module omp_lib
44 1.1 mrg use omp_lib_kinds
45 1.1 mrg implicit none
46 1.5 mrg integer, parameter :: openmp_version = 201307
47 1.1 mrg
48 1.1 mrg interface
49 1.5 mrg subroutine omp_init_lock (svar)
50 1.1 mrg use omp_lib_kinds
51 1.5 mrg integer (omp_lock_kind), intent (out) :: svar
52 1.1 mrg end subroutine omp_init_lock
53 1.1 mrg end interface
54 1.1 mrg
55 1.1 mrg interface
56 1.5 mrg subroutine omp_init_nest_lock (nvar)
57 1.1 mrg use omp_lib_kinds
58 1.5 mrg integer (omp_nest_lock_kind), intent (out) :: nvar
59 1.1 mrg end subroutine omp_init_nest_lock
60 1.1 mrg end interface
61 1.1 mrg
62 1.1 mrg interface
63 1.5 mrg subroutine omp_destroy_lock (svar)
64 1.1 mrg use omp_lib_kinds
65 1.5 mrg integer (omp_lock_kind), intent (inout) :: svar
66 1.1 mrg end subroutine omp_destroy_lock
67 1.1 mrg end interface
68 1.1 mrg
69 1.1 mrg interface
70 1.5 mrg subroutine omp_destroy_nest_lock (nvar)
71 1.1 mrg use omp_lib_kinds
72 1.5 mrg integer (omp_nest_lock_kind), intent (inout) :: nvar
73 1.1 mrg end subroutine omp_destroy_nest_lock
74 1.1 mrg end interface
75 1.1 mrg
76 1.1 mrg interface
77 1.5 mrg subroutine omp_set_lock (svar)
78 1.1 mrg use omp_lib_kinds
79 1.5 mrg integer (omp_lock_kind), intent (inout) :: svar
80 1.1 mrg end subroutine omp_set_lock
81 1.1 mrg end interface
82 1.1 mrg
83 1.1 mrg interface
84 1.5 mrg subroutine omp_set_nest_lock (nvar)
85 1.1 mrg use omp_lib_kinds
86 1.5 mrg integer (omp_nest_lock_kind), intent (inout) :: nvar
87 1.1 mrg end subroutine omp_set_nest_lock
88 1.1 mrg end interface
89 1.1 mrg
90 1.1 mrg interface
91 1.5 mrg subroutine omp_unset_lock (svar)
92 1.1 mrg use omp_lib_kinds
93 1.5 mrg integer (omp_lock_kind), intent (inout) :: svar
94 1.1 mrg end subroutine omp_unset_lock
95 1.1 mrg end interface
96 1.1 mrg
97 1.1 mrg interface
98 1.5 mrg subroutine omp_unset_nest_lock (nvar)
99 1.1 mrg use omp_lib_kinds
100 1.5 mrg integer (omp_nest_lock_kind), intent (inout) :: nvar
101 1.1 mrg end subroutine omp_unset_nest_lock
102 1.1 mrg end interface
103 1.1 mrg
104 1.1 mrg interface omp_set_dynamic
105 1.5 mrg subroutine omp_set_dynamic (dynamic_threads)
106 1.5 mrg logical (4), intent (in) :: dynamic_threads
107 1.1 mrg end subroutine omp_set_dynamic
108 1.5 mrg subroutine omp_set_dynamic_8 (dynamic_threads)
109 1.5 mrg logical (8), intent (in) :: dynamic_threads
110 1.1 mrg end subroutine omp_set_dynamic_8
111 1.1 mrg end interface
112 1.1 mrg
113 1.1 mrg interface omp_set_nested
114 1.5 mrg subroutine omp_set_nested (nested)
115 1.5 mrg logical (4), intent (in) :: nested
116 1.1 mrg end subroutine omp_set_nested
117 1.5 mrg subroutine omp_set_nested_8 (nested)
118 1.5 mrg logical (8), intent (in) :: nested
119 1.1 mrg end subroutine omp_set_nested_8
120 1.1 mrg end interface
121 1.1 mrg
122 1.1 mrg interface omp_set_num_threads
123 1.5 mrg subroutine omp_set_num_threads (num_threads)
124 1.5 mrg integer (4), intent (in) :: num_threads
125 1.1 mrg end subroutine omp_set_num_threads
126 1.5 mrg subroutine omp_set_num_threads_8 (num_threads)
127 1.5 mrg integer (8), intent (in) :: num_threads
128 1.1 mrg end subroutine omp_set_num_threads_8
129 1.1 mrg end interface
130 1.1 mrg
131 1.1 mrg interface
132 1.1 mrg function omp_get_dynamic ()
133 1.3 mrg logical (4) :: omp_get_dynamic
134 1.1 mrg end function omp_get_dynamic
135 1.1 mrg end interface
136 1.1 mrg
137 1.1 mrg interface
138 1.1 mrg function omp_get_nested ()
139 1.3 mrg logical (4) :: omp_get_nested
140 1.1 mrg end function omp_get_nested
141 1.1 mrg end interface
142 1.1 mrg
143 1.1 mrg interface
144 1.1 mrg function omp_in_parallel ()
145 1.3 mrg logical (4) :: omp_in_parallel
146 1.1 mrg end function omp_in_parallel
147 1.1 mrg end interface
148 1.1 mrg
149 1.1 mrg interface
150 1.5 mrg function omp_test_lock (svar)
151 1.1 mrg use omp_lib_kinds
152 1.3 mrg logical (4) :: omp_test_lock
153 1.5 mrg integer (omp_lock_kind), intent (inout) :: svar
154 1.1 mrg end function omp_test_lock
155 1.1 mrg end interface
156 1.1 mrg
157 1.1 mrg interface
158 1.1 mrg function omp_get_max_threads ()
159 1.3 mrg integer (4) :: omp_get_max_threads
160 1.1 mrg end function omp_get_max_threads
161 1.1 mrg end interface
162 1.1 mrg
163 1.1 mrg interface
164 1.1 mrg function omp_get_num_procs ()
165 1.3 mrg integer (4) :: omp_get_num_procs
166 1.1 mrg end function omp_get_num_procs
167 1.1 mrg end interface
168 1.1 mrg
169 1.1 mrg interface
170 1.1 mrg function omp_get_num_threads ()
171 1.3 mrg integer (4) :: omp_get_num_threads
172 1.1 mrg end function omp_get_num_threads
173 1.1 mrg end interface
174 1.1 mrg
175 1.1 mrg interface
176 1.1 mrg function omp_get_thread_num ()
177 1.3 mrg integer (4) :: omp_get_thread_num
178 1.1 mrg end function omp_get_thread_num
179 1.1 mrg end interface
180 1.1 mrg
181 1.1 mrg interface
182 1.5 mrg function omp_test_nest_lock (nvar)
183 1.1 mrg use omp_lib_kinds
184 1.3 mrg integer (4) :: omp_test_nest_lock
185 1.5 mrg integer (omp_nest_lock_kind), intent (inout) :: nvar
186 1.1 mrg end function omp_test_nest_lock
187 1.1 mrg end interface
188 1.1 mrg
189 1.1 mrg interface
190 1.1 mrg function omp_get_wtick ()
191 1.1 mrg double precision :: omp_get_wtick
192 1.1 mrg end function omp_get_wtick
193 1.1 mrg end interface
194 1.1 mrg
195 1.1 mrg interface
196 1.1 mrg function omp_get_wtime ()
197 1.1 mrg double precision :: omp_get_wtime
198 1.1 mrg end function omp_get_wtime
199 1.1 mrg end interface
200 1.1 mrg
201 1.1 mrg interface omp_set_schedule
202 1.1 mrg subroutine omp_set_schedule (kind, modifier)
203 1.1 mrg use omp_lib_kinds
204 1.1 mrg integer (omp_sched_kind), intent (in) :: kind
205 1.1 mrg integer (4), intent (in) :: modifier
206 1.1 mrg end subroutine omp_set_schedule
207 1.1 mrg subroutine omp_set_schedule_8 (kind, modifier)
208 1.1 mrg use omp_lib_kinds
209 1.1 mrg integer (omp_sched_kind), intent (in) :: kind
210 1.1 mrg integer (8), intent (in) :: modifier
211 1.1 mrg end subroutine omp_set_schedule_8
212 1.1 mrg end interface
213 1.1 mrg
214 1.1 mrg interface omp_get_schedule
215 1.1 mrg subroutine omp_get_schedule (kind, modifier)
216 1.1 mrg use omp_lib_kinds
217 1.1 mrg integer (omp_sched_kind), intent (out) :: kind
218 1.1 mrg integer (4), intent (out) :: modifier
219 1.1 mrg end subroutine omp_get_schedule
220 1.1 mrg subroutine omp_get_schedule_8 (kind, modifier)
221 1.1 mrg use omp_lib_kinds
222 1.1 mrg integer (omp_sched_kind), intent (out) :: kind
223 1.1 mrg integer (8), intent (out) :: modifier
224 1.1 mrg end subroutine omp_get_schedule_8
225 1.1 mrg end interface
226 1.1 mrg
227 1.1 mrg interface
228 1.1 mrg function omp_get_thread_limit ()
229 1.3 mrg integer (4) :: omp_get_thread_limit
230 1.1 mrg end function omp_get_thread_limit
231 1.1 mrg end interface
232 1.1 mrg
233 1.1 mrg interface omp_set_max_active_levels
234 1.1 mrg subroutine omp_set_max_active_levels (max_levels)
235 1.1 mrg integer (4), intent (in) :: max_levels
236 1.1 mrg end subroutine omp_set_max_active_levels
237 1.1 mrg subroutine omp_set_max_active_levels_8 (max_levels)
238 1.1 mrg integer (8), intent (in) :: max_levels
239 1.1 mrg end subroutine omp_set_max_active_levels_8
240 1.1 mrg end interface
241 1.1 mrg
242 1.1 mrg interface
243 1.1 mrg function omp_get_max_active_levels ()
244 1.3 mrg integer (4) :: omp_get_max_active_levels
245 1.1 mrg end function omp_get_max_active_levels
246 1.1 mrg end interface
247 1.1 mrg
248 1.1 mrg interface
249 1.1 mrg function omp_get_level ()
250 1.3 mrg integer (4) :: omp_get_level
251 1.1 mrg end function omp_get_level
252 1.1 mrg end interface
253 1.1 mrg
254 1.1 mrg interface omp_get_ancestor_thread_num
255 1.1 mrg function omp_get_ancestor_thread_num (level)
256 1.1 mrg integer (4), intent (in) :: level
257 1.3 mrg integer (4) :: omp_get_ancestor_thread_num
258 1.1 mrg end function omp_get_ancestor_thread_num
259 1.1 mrg function omp_get_ancestor_thread_num_8 (level)
260 1.1 mrg integer (8), intent (in) :: level
261 1.3 mrg integer (4) :: omp_get_ancestor_thread_num_8
262 1.1 mrg end function omp_get_ancestor_thread_num_8
263 1.1 mrg end interface
264 1.1 mrg
265 1.1 mrg interface omp_get_team_size
266 1.1 mrg function omp_get_team_size (level)
267 1.1 mrg integer (4), intent (in) :: level
268 1.3 mrg integer (4) :: omp_get_team_size
269 1.1 mrg end function omp_get_team_size
270 1.1 mrg function omp_get_team_size_8 (level)
271 1.1 mrg integer (8), intent (in) :: level
272 1.3 mrg integer (4) :: omp_get_team_size_8
273 1.1 mrg end function omp_get_team_size_8
274 1.1 mrg end interface
275 1.1 mrg
276 1.1 mrg interface
277 1.1 mrg function omp_get_active_level ()
278 1.3 mrg integer (4) :: omp_get_active_level
279 1.1 mrg end function omp_get_active_level
280 1.1 mrg end interface
281 1.1 mrg
282 1.3 mrg interface
283 1.3 mrg function omp_in_final ()
284 1.3 mrg logical (4) :: omp_in_final
285 1.3 mrg end function omp_in_final
286 1.3 mrg end interface
287 1.3 mrg
288 1.5 mrg interface
289 1.5 mrg function omp_get_cancellation ()
290 1.5 mrg logical (4) :: omp_get_cancellation
291 1.5 mrg end function omp_get_cancellation
292 1.5 mrg end interface
293 1.5 mrg
294 1.5 mrg interface
295 1.5 mrg function omp_get_proc_bind ()
296 1.5 mrg use omp_lib_kinds
297 1.5 mrg integer (omp_proc_bind_kind) :: omp_get_proc_bind
298 1.5 mrg end function omp_get_proc_bind
299 1.5 mrg end interface
300 1.5 mrg
301 1.5 mrg interface omp_set_default_device
302 1.5 mrg subroutine omp_set_default_device (device_num)
303 1.5 mrg integer (4), intent (in) :: device_num
304 1.5 mrg end subroutine omp_set_default_device
305 1.5 mrg subroutine omp_set_default_device_8 (device_num)
306 1.5 mrg integer (8), intent (in) :: device_num
307 1.5 mrg end subroutine omp_set_default_device_8
308 1.5 mrg end interface
309 1.5 mrg
310 1.5 mrg interface
311 1.5 mrg function omp_get_default_device ()
312 1.5 mrg integer (4) :: omp_get_default_device
313 1.5 mrg end function omp_get_default_device
314 1.5 mrg end interface
315 1.5 mrg
316 1.5 mrg interface
317 1.5 mrg function omp_get_num_devices ()
318 1.5 mrg integer (4) :: omp_get_num_devices
319 1.5 mrg end function omp_get_num_devices
320 1.5 mrg end interface
321 1.5 mrg
322 1.5 mrg interface
323 1.5 mrg function omp_get_num_teams ()
324 1.5 mrg integer (4) :: omp_get_num_teams
325 1.5 mrg end function omp_get_num_teams
326 1.5 mrg end interface
327 1.5 mrg
328 1.5 mrg interface
329 1.5 mrg function omp_get_team_num ()
330 1.5 mrg integer (4) :: omp_get_team_num
331 1.5 mrg end function omp_get_team_num
332 1.5 mrg end interface
333 1.5 mrg
334 1.5 mrg interface
335 1.5 mrg function omp_is_initial_device ()
336 1.5 mrg logical (4) :: omp_is_initial_device
337 1.5 mrg end function omp_is_initial_device
338 1.5 mrg end interface
339 1.5 mrg
340 1.1 mrg end module omp_lib
341