2011-10-19 Tom de Vries <tom@codesourcery.com>
[official-gcc.git] / libgomp / omp_lib.f90.in
blobd00fa0551f681a34c436d9cbc798500c200f09e9
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)
9 ! any later version.
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
14 ! more details.
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/>.
25 module omp_lib_kinds
26 implicit none
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
30 end module
32 module omp_lib
33 use omp_lib_kinds
34 implicit none
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
41 interface
42 subroutine omp_init_lock (lock)
43 use omp_lib_kinds
44 integer (omp_lock_kind), intent (out) :: lock
45 end subroutine omp_init_lock
46 end interface
48 interface
49 subroutine omp_init_nest_lock (lock)
50 use omp_lib_kinds
51 integer (omp_nest_lock_kind), intent (out) :: lock
52 end subroutine omp_init_nest_lock
53 end interface
55 interface
56 subroutine omp_destroy_lock (lock)
57 use omp_lib_kinds
58 integer (omp_lock_kind), intent (inout) :: lock
59 end subroutine omp_destroy_lock
60 end interface
62 interface
63 subroutine omp_destroy_nest_lock (lock)
64 use omp_lib_kinds
65 integer (omp_nest_lock_kind), intent (inout) :: lock
66 end subroutine omp_destroy_nest_lock
67 end interface
69 interface
70 subroutine omp_set_lock (lock)
71 use omp_lib_kinds
72 integer (omp_lock_kind), intent (inout) :: lock
73 end subroutine omp_set_lock
74 end interface
76 interface
77 subroutine omp_set_nest_lock (lock)
78 use omp_lib_kinds
79 integer (omp_nest_lock_kind), intent (inout) :: lock
80 end subroutine omp_set_nest_lock
81 end interface
83 interface
84 subroutine omp_unset_lock (lock)
85 use omp_lib_kinds
86 integer (omp_lock_kind), intent (inout) :: lock
87 end subroutine omp_unset_lock
88 end interface
90 interface
91 subroutine omp_unset_nest_lock (lock)
92 use omp_lib_kinds
93 integer (omp_nest_lock_kind), intent (inout) :: lock
94 end subroutine omp_unset_nest_lock
95 end interface
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
104 end interface
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
113 end interface
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
122 end interface
124 interface
125 function omp_get_dynamic ()
126 use omp_lib_kinds
127 logical (4) :: omp_get_dynamic
128 end function omp_get_dynamic
129 end interface
131 interface
132 function omp_get_nested ()
133 use omp_lib_kinds
134 logical (4) :: omp_get_nested
135 end function omp_get_nested
136 end interface
138 interface
139 function omp_in_parallel ()
140 use omp_lib_kinds
141 logical (4) :: omp_in_parallel
142 end function omp_in_parallel
143 end interface
145 interface
146 function omp_test_lock (lock)
147 use omp_lib_kinds
148 logical (4) :: omp_test_lock
149 integer (omp_lock_kind), intent (inout) :: lock
150 end function omp_test_lock
151 end interface
153 interface
154 function omp_get_max_threads ()
155 use omp_lib_kinds
156 integer (4) :: omp_get_max_threads
157 end function omp_get_max_threads
158 end interface
160 interface
161 function omp_get_num_procs ()
162 use omp_lib_kinds
163 integer (4) :: omp_get_num_procs
164 end function omp_get_num_procs
165 end interface
167 interface
168 function omp_get_num_threads ()
169 use omp_lib_kinds
170 integer (4) :: omp_get_num_threads
171 end function omp_get_num_threads
172 end interface
174 interface
175 function omp_get_thread_num ()
176 use omp_lib_kinds
177 integer (4) :: omp_get_thread_num
178 end function omp_get_thread_num
179 end interface
181 interface
182 function omp_test_nest_lock (lock)
183 use omp_lib_kinds
184 integer (4) :: omp_test_nest_lock
185 integer (omp_nest_lock_kind), intent (inout) :: lock
186 end function omp_test_nest_lock
187 end interface
189 interface
190 function omp_get_wtick ()
191 double precision :: omp_get_wtick
192 end function omp_get_wtick
193 end interface
195 interface
196 function omp_get_wtime ()
197 double precision :: omp_get_wtime
198 end function omp_get_wtime
199 end interface
201 interface omp_set_schedule
202 subroutine omp_set_schedule (kind, modifier)
203 use omp_lib_kinds
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)
208 use omp_lib_kinds
209 integer (omp_sched_kind), intent (in) :: kind
210 integer (8), intent (in) :: modifier
211 end subroutine omp_set_schedule_8
212 end interface
214 interface omp_get_schedule
215 subroutine omp_get_schedule (kind, modifier)
216 use omp_lib_kinds
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)
221 use omp_lib_kinds
222 integer (omp_sched_kind), intent (out) :: kind
223 integer (8), intent (out) :: modifier
224 end subroutine omp_get_schedule_8
225 end interface
227 interface
228 function omp_get_thread_limit ()
229 use omp_lib_kinds
230 integer (4) :: omp_get_thread_limit
231 end function omp_get_thread_limit
232 end interface
234 interface omp_set_max_active_levels
235 subroutine omp_set_max_active_levels (max_levels)
236 use omp_lib_kinds
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)
240 use omp_lib_kinds
241 integer (8), intent (in) :: max_levels
242 end subroutine omp_set_max_active_levels_8
243 end interface
245 interface
246 function omp_get_max_active_levels ()
247 use omp_lib_kinds
248 integer (4) :: omp_get_max_active_levels
249 end function omp_get_max_active_levels
250 end interface
252 interface
253 function omp_get_level ()
254 use omp_lib_kinds
255 integer (4) :: omp_get_level
256 end function omp_get_level
257 end interface
259 interface omp_get_ancestor_thread_num
260 function omp_get_ancestor_thread_num (level)
261 use omp_lib_kinds
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)
266 use omp_lib_kinds
267 integer (8), intent (in) :: level
268 integer (4) :: omp_get_ancestor_thread_num_8
269 end function omp_get_ancestor_thread_num_8
270 end interface
272 interface omp_get_team_size
273 function omp_get_team_size (level)
274 use omp_lib_kinds
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)
279 use omp_lib_kinds
280 integer (8), intent (in) :: level
281 integer (4) :: omp_get_team_size_8
282 end function omp_get_team_size_8
283 end interface
285 interface
286 function omp_get_active_level ()
287 use omp_lib_kinds
288 integer (4) :: omp_get_active_level
289 end function omp_get_active_level
290 end interface
292 interface
293 function omp_in_final ()
294 use omp_lib_kinds
295 logical (4) :: omp_in_final
296 end function omp_in_final
297 end interface
299 end module omp_lib