OSDN Git Service

2014-05-07 Richard Biener <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / libgomp / omp_lib.f90.in
1 !  Copyright (C) 2005, 2007, 2008, 2009, 2011 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 General Public License as published by
8 !  the Free Software Foundation; either version 3, or (at your option)
9 !  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 General Public License for
14 !  more details.
15
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.
19
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/>.
24
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
31
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
40
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
47
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
54
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
61
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
68
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
75
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
82
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
89
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
96
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
105
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
114
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
123
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
130
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
137
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
144
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
152
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
159
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
166
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
173
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
180
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
188
189         interface
190           function omp_get_wtick ()
191             double precision :: omp_get_wtick
192           end function omp_get_wtick
193         end interface
194
195         interface
196           function omp_get_wtime ()
197             double precision :: omp_get_wtime
198           end function omp_get_wtime
199         end interface
200
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
213
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
226
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
233
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
244
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
251
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
258
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
271
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
284
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
291
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
298
299       end module omp_lib