1 ! Copyright (C) 2005, 2007, 2008, 2009, 2011 Free Software Foundation, Inc.
2 ! Contributed by Jakub Jelinek <jakub@redhat.com>.
4 ! This file is part of the GNU OpenMP Library (libgomp).
6 ! Libgomp is free software; you can redistribute it and/or modify it
7 ! under the terms of the GNU General Public License as published by
8 ! the Free Software Foundation; either version 3, or (at your option)
11 ! Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
12 ! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13 ! FOR A PARTICULAR PURPOSE. See the GNU General Public License for
16 ! Under Section 7 of GPL version 3, you are granted additional
17 ! permissions described in the GCC Runtime Library Exception, version
18 ! 3.1, as published by the Free Software Foundation.
20 ! You should have received a copy of the GNU General Public License and
21 ! a copy of the GCC Runtime Library Exception along with this program;
22 ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23 ! <http://www.gnu.org/licenses/>.
27 integer, parameter :: omp_lock_kind
= @OMP_LOCK_KIND@
28 integer, parameter :: omp_nest_lock_kind
= @OMP_NEST_LOCK_KIND@
29 integer, parameter :: omp_sched_kind
= 4
35 integer, parameter :: openmp_version
= 201107
36 integer (omp_sched_kind
), parameter :: omp_sched_static
= 1
37 integer (omp_sched_kind
), parameter :: omp_sched_dynamic
= 2
38 integer (omp_sched_kind
), parameter :: omp_sched_guided
= 3
39 integer (omp_sched_kind
), parameter :: omp_sched_auto
= 4
42 subroutine omp_init_lock (lock
)
44 integer (omp_lock_kind
), intent (out
) :: lock
45 end subroutine omp_init_lock
49 subroutine omp_init_nest_lock (lock
)
51 integer (omp_nest_lock_kind
), intent (out
) :: lock
52 end subroutine omp_init_nest_lock
56 subroutine omp_destroy_lock (lock
)
58 integer (omp_lock_kind
), intent (inout
) :: lock
59 end subroutine omp_destroy_lock
63 subroutine omp_destroy_nest_lock (lock
)
65 integer (omp_nest_lock_kind
), intent (inout
) :: lock
66 end subroutine omp_destroy_nest_lock
70 subroutine omp_set_lock (lock
)
72 integer (omp_lock_kind
), intent (inout
) :: lock
73 end subroutine omp_set_lock
77 subroutine omp_set_nest_lock (lock
)
79 integer (omp_nest_lock_kind
), intent (inout
) :: lock
80 end subroutine omp_set_nest_lock
84 subroutine omp_unset_lock (lock
)
86 integer (omp_lock_kind
), intent (inout
) :: lock
87 end subroutine omp_unset_lock
91 subroutine omp_unset_nest_lock (lock
)
93 integer (omp_nest_lock_kind
), intent (inout
) :: lock
94 end subroutine omp_unset_nest_lock
97 interface omp_set_dynamic
98 subroutine omp_set_dynamic (set
)
99 logical (4), intent (in
) :: set
100 end subroutine omp_set_dynamic
101 subroutine omp_set_dynamic_8 (set
)
102 logical (8), intent (in
) :: set
103 end subroutine omp_set_dynamic_8
106 interface omp_set_nested
107 subroutine omp_set_nested (set
)
108 logical (4), intent (in
) :: set
109 end subroutine omp_set_nested
110 subroutine omp_set_nested_8 (set
)
111 logical (8), intent (in
) :: set
112 end subroutine omp_set_nested_8
115 interface omp_set_num_threads
116 subroutine omp_set_num_threads (set
)
117 integer (4), intent (in
) :: set
118 end subroutine omp_set_num_threads
119 subroutine omp_set_num_threads_8 (set
)
120 integer (8), intent (in
) :: set
121 end subroutine omp_set_num_threads_8
125 function omp_get_dynamic ()
127 logical (4) :: omp_get_dynamic
128 end function omp_get_dynamic
132 function omp_get_nested ()
134 logical (4) :: omp_get_nested
135 end function omp_get_nested
139 function omp_in_parallel ()
141 logical (4) :: omp_in_parallel
142 end function omp_in_parallel
146 function omp_test_lock (lock
)
148 logical (4) :: omp_test_lock
149 integer (omp_lock_kind
), intent (inout
) :: lock
150 end function omp_test_lock
154 function omp_get_max_threads ()
156 integer (4) :: omp_get_max_threads
157 end function omp_get_max_threads
161 function omp_get_num_procs ()
163 integer (4) :: omp_get_num_procs
164 end function omp_get_num_procs
168 function omp_get_num_threads ()
170 integer (4) :: omp_get_num_threads
171 end function omp_get_num_threads
175 function omp_get_thread_num ()
177 integer (4) :: omp_get_thread_num
178 end function omp_get_thread_num
182 function omp_test_nest_lock (lock
)
184 integer (4) :: omp_test_nest_lock
185 integer (omp_nest_lock_kind
), intent (inout
) :: lock
186 end function omp_test_nest_lock
190 function omp_get_wtick ()
191 double precision :: omp_get_wtick
192 end function omp_get_wtick
196 function omp_get_wtime ()
197 double precision :: omp_get_wtime
198 end function omp_get_wtime
201 interface omp_set_schedule
202 subroutine omp_set_schedule (kind
, modifier
)
204 integer (omp_sched_kind
), intent (in
) :: kind
205 integer (4), intent (in
) :: modifier
206 end subroutine omp_set_schedule
207 subroutine omp_set_schedule_8 (kind
, modifier
)
209 integer (omp_sched_kind
), intent (in
) :: kind
210 integer (8), intent (in
) :: modifier
211 end subroutine omp_set_schedule_8
214 interface omp_get_schedule
215 subroutine omp_get_schedule (kind
, modifier
)
217 integer (omp_sched_kind
), intent (out
) :: kind
218 integer (4), intent (out
) :: modifier
219 end subroutine omp_get_schedule
220 subroutine omp_get_schedule_8 (kind
, modifier
)
222 integer (omp_sched_kind
), intent (out
) :: kind
223 integer (8), intent (out
) :: modifier
224 end subroutine omp_get_schedule_8
228 function omp_get_thread_limit ()
230 integer (4) :: omp_get_thread_limit
231 end function omp_get_thread_limit
234 interface omp_set_max_active_levels
235 subroutine omp_set_max_active_levels (max_levels
)
237 integer (4), intent (in
) :: max_levels
238 end subroutine omp_set_max_active_levels
239 subroutine omp_set_max_active_levels_8 (max_levels
)
241 integer (8), intent (in
) :: max_levels
242 end subroutine omp_set_max_active_levels_8
246 function omp_get_max_active_levels ()
248 integer (4) :: omp_get_max_active_levels
249 end function omp_get_max_active_levels
253 function omp_get_level ()
255 integer (4) :: omp_get_level
256 end function omp_get_level
259 interface omp_get_ancestor_thread_num
260 function omp_get_ancestor_thread_num (level
)
262 integer (4), intent (in
) :: level
263 integer (4) :: omp_get_ancestor_thread_num
264 end function omp_get_ancestor_thread_num
265 function omp_get_ancestor_thread_num_8 (level
)
267 integer (8), intent (in
) :: level
268 integer (4) :: omp_get_ancestor_thread_num_8
269 end function omp_get_ancestor_thread_num_8
272 interface omp_get_team_size
273 function omp_get_team_size (level
)
275 integer (4), intent (in
) :: level
276 integer (4) :: omp_get_team_size
277 end function omp_get_team_size
278 function omp_get_team_size_8 (level
)
280 integer (8), intent (in
) :: level
281 integer (4) :: omp_get_team_size_8
282 end function omp_get_team_size_8
286 function omp_get_active_level ()
288 integer (4) :: omp_get_active_level
289 end function omp_get_active_level
293 function omp_in_final ()
295 logical (4) :: omp_in_final
296 end function omp_in_final