OSDN Git Service

* except.h: Correct checks for when SJLJ exceptions must be used.
[pf3gnuchains/gcc-fork.git] / libgomp / omp_lib.f90.in
1 !  Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc.
2 !  Contributed by Jakub Jelinek <jakub@redhat.com>.
3
4 !  This file is part of the GNU OpenMP Library (libgomp).
5
6 !  Libgomp is free software; you can redistribute it and/or modify it
7 !  under the terms of the GNU Lesser General Public License as published by
8 !  the Free Software Foundation; either version 2.1 of the License, or
9 !  (at your option) any later version.
10
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 Lesser General Public License for
14 !  more details.
15
16 !  You should have received a copy of the GNU Lesser General Public License
17 !  along with libgomp; see the file COPYING.LIB.  If not, write to the
18 !  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 !  MA 02110-1301, USA.  */
20
21 !  As a special exception, if you link this library with other files, some
22 !  of which are compiled with GCC, to produce an executable, this library
23 !  does not by itself cause the resulting executable to be covered by the
24 !  GNU General Public License.  This exception does not however invalidate
25 !  any other reasons why the executable file might be covered by the GNU
26 !  General Public License.
27
28       module omp_lib_kinds
29         integer, parameter :: omp_integer_kind = 4
30         integer, parameter :: omp_logical_kind = 4
31         integer, parameter :: omp_lock_kind = @OMP_LOCK_KIND@
32         integer, parameter :: omp_nest_lock_kind = @OMP_NEST_LOCK_KIND@
33         integer, parameter :: omp_sched_kind = 4
34       end module
35
36       module omp_lib
37         use omp_lib_kinds
38         integer, parameter :: openmp_version = 200805
39         integer (omp_sched_kind), parameter :: omp_sched_static = 1
40         integer (omp_sched_kind), parameter :: omp_sched_dynamic = 2
41         integer (omp_sched_kind), parameter :: omp_sched_guided = 3
42         integer (omp_sched_kind), parameter :: omp_sched_auto = 4
43
44         interface
45           subroutine omp_init_lock (lock)
46             use omp_lib_kinds
47             integer (omp_lock_kind), intent (out) :: lock
48           end subroutine omp_init_lock
49         end interface
50
51         interface
52           subroutine omp_init_nest_lock (lock)
53             use omp_lib_kinds
54             integer (omp_nest_lock_kind), intent (out) :: lock
55           end subroutine omp_init_nest_lock
56         end interface
57
58         interface
59           subroutine omp_destroy_lock (lock)
60             use omp_lib_kinds
61             integer (omp_lock_kind), intent (inout) :: lock
62           end subroutine omp_destroy_lock
63         end interface
64
65         interface
66           subroutine omp_destroy_nest_lock (lock)
67             use omp_lib_kinds
68             integer (omp_nest_lock_kind), intent (inout) :: lock
69           end subroutine omp_destroy_nest_lock
70         end interface
71
72         interface
73           subroutine omp_set_lock (lock)
74             use omp_lib_kinds
75             integer (omp_lock_kind), intent (inout) :: lock
76           end subroutine omp_set_lock
77         end interface
78
79         interface
80           subroutine omp_set_nest_lock (lock)
81             use omp_lib_kinds
82             integer (omp_nest_lock_kind), intent (inout) :: lock
83           end subroutine omp_set_nest_lock
84         end interface
85
86         interface
87           subroutine omp_unset_lock (lock)
88             use omp_lib_kinds
89             integer (omp_lock_kind), intent (inout) :: lock
90           end subroutine omp_unset_lock
91         end interface
92
93         interface
94           subroutine omp_unset_nest_lock (lock)
95             use omp_lib_kinds
96             integer (omp_nest_lock_kind), intent (inout) :: lock
97           end subroutine omp_unset_nest_lock
98         end interface
99
100         interface omp_set_dynamic
101           subroutine omp_set_dynamic (set)
102             logical (4), intent (in) :: set
103           end subroutine omp_set_dynamic
104           subroutine omp_set_dynamic_8 (set)
105             logical (8), intent (in) :: set
106           end subroutine omp_set_dynamic_8
107         end interface
108
109         interface omp_set_nested
110           subroutine omp_set_nested (set)
111             logical (4), intent (in) :: set
112           end subroutine omp_set_nested
113           subroutine omp_set_nested_8 (set)
114             logical (8), intent (in) :: set
115           end subroutine omp_set_nested_8
116         end interface
117
118         interface omp_set_num_threads
119           subroutine omp_set_num_threads (set)
120             integer (4), intent (in) :: set
121           end subroutine omp_set_num_threads
122           subroutine omp_set_num_threads_8 (set)
123             integer (8), intent (in) :: set
124           end subroutine omp_set_num_threads_8
125         end interface
126
127         interface
128           function omp_get_dynamic ()
129             use omp_lib_kinds
130             logical (omp_logical_kind) :: omp_get_dynamic
131           end function omp_get_dynamic
132         end interface
133
134         interface
135           function omp_get_nested ()
136             use omp_lib_kinds
137             logical (omp_logical_kind) :: omp_get_nested
138           end function omp_get_nested
139         end interface
140
141         interface
142           function omp_in_parallel ()
143             use omp_lib_kinds
144             logical (omp_logical_kind) :: omp_in_parallel
145           end function omp_in_parallel
146         end interface
147
148         interface
149           function omp_test_lock (lock)
150             use omp_lib_kinds
151             logical (omp_logical_kind) :: omp_test_lock
152             integer (omp_lock_kind), intent (inout) :: lock
153           end function omp_test_lock
154         end interface
155
156         interface
157           function omp_get_max_threads ()
158             use omp_lib_kinds
159             integer (omp_integer_kind) :: omp_get_max_threads
160           end function omp_get_max_threads
161         end interface
162
163         interface
164           function omp_get_num_procs ()
165             use omp_lib_kinds
166             integer (omp_integer_kind) :: omp_get_num_procs
167           end function omp_get_num_procs
168         end interface
169
170         interface
171           function omp_get_num_threads ()
172             use omp_lib_kinds
173             integer (omp_integer_kind) :: omp_get_num_threads
174           end function omp_get_num_threads
175         end interface
176
177         interface
178           function omp_get_thread_num ()
179             use omp_lib_kinds
180             integer (omp_integer_kind) :: omp_get_thread_num
181           end function omp_get_thread_num
182         end interface
183
184         interface
185           function omp_test_nest_lock (lock)
186             use omp_lib_kinds
187             integer (omp_integer_kind) :: omp_test_nest_lock
188             integer (omp_nest_lock_kind), intent (inout) :: lock
189           end function omp_test_nest_lock
190         end interface
191
192         interface
193           function omp_get_wtick ()
194             double precision :: omp_get_wtick
195           end function omp_get_wtick
196         end interface
197
198         interface
199           function omp_get_wtime ()
200             double precision :: omp_get_wtime
201           end function omp_get_wtime
202         end interface
203
204         interface omp_set_schedule
205           subroutine omp_set_schedule (kind, modifier)
206             use omp_lib_kinds
207             integer (omp_sched_kind), intent (in) :: kind
208             integer (4), intent (in) :: modifier
209           end subroutine omp_set_schedule
210           subroutine omp_set_schedule_8 (kind, modifier)
211             use omp_lib_kinds
212             integer (omp_sched_kind), intent (in) :: kind
213             integer (8), intent (in) :: modifier
214           end subroutine omp_set_schedule_8
215          end interface
216
217         interface omp_get_schedule
218           subroutine omp_get_schedule (kind, modifier)
219             use omp_lib_kinds
220             integer (omp_sched_kind), intent (out) :: kind
221             integer (4), intent (out) :: modifier
222           end subroutine omp_get_schedule
223           subroutine omp_get_schedule_8 (kind, modifier)
224             use omp_lib_kinds
225             integer (omp_sched_kind), intent (out) :: kind
226             integer (8), intent (out) :: modifier
227           end subroutine omp_get_schedule_8
228          end interface
229
230         interface
231           function omp_get_thread_limit ()
232             use omp_lib_kinds
233             integer (omp_integer_kind) :: omp_get_thread_limit
234           end function omp_get_thread_limit
235         end interface
236
237         interface omp_set_max_active_levels
238           subroutine omp_set_max_active_levels (max_levels)
239             use omp_lib_kinds
240             integer (4), intent (in) :: max_levels
241           end subroutine omp_set_max_active_levels
242           subroutine omp_set_max_active_levels_8 (max_levels)
243             use omp_lib_kinds
244             integer (8), intent (in) :: max_levels
245           end subroutine omp_set_max_active_levels_8
246         end interface
247
248         interface
249           function omp_get_max_active_levels ()
250             use omp_lib_kinds
251             integer (omp_integer_kind) :: omp_get_max_active_levels
252           end function omp_get_max_active_levels
253         end interface
254
255         interface
256           function omp_get_level ()
257             use omp_lib_kinds
258             integer (omp_integer_kind) :: omp_get_level
259           end function omp_get_level
260         end interface
261
262         interface omp_get_ancestor_thread_num
263           function omp_get_ancestor_thread_num (level)
264             use omp_lib_kinds
265             integer (4), intent (in) :: level
266             integer (omp_integer_kind) :: omp_get_ancestor_thread_num
267           end function omp_get_ancestor_thread_num
268           function omp_get_ancestor_thread_num_8 (level)
269             use omp_lib_kinds
270             integer (8), intent (in) :: level
271             integer (omp_integer_kind) :: omp_get_ancestor_thread_num
272           end function omp_get_ancestor_thread_num_8
273         end interface
274
275         interface omp_get_team_size
276           function omp_get_team_size (level)
277             use omp_lib_kinds
278             integer (4), intent (in) :: level
279             integer (omp_integer_kind) :: omp_get_team_size
280           end function omp_get_team_size
281           function omp_get_team_size_8 (level)
282             use omp_lib_kinds
283             integer (8), intent (in) :: level
284             integer (omp_integer_kind) :: omp_get_team_size
285           end function omp_get_team_size_8
286         end interface
287
288         interface
289           function omp_get_active_level ()
290             use omp_lib_kinds
291             integer (omp_integer_kind) :: omp_get_active_level
292           end function omp_get_active_level
293         end interface
294
295       end module omp_lib