1*404b540aSrobert! Copyright (C) 2005 Free Software Foundation, Inc. 2*404b540aSrobert! Contributed by Jakub Jelinek <jakub@redhat.com>. 3*404b540aSrobert 4*404b540aSrobert! This file is part of the GNU OpenMP Library (libgomp). 5*404b540aSrobert 6*404b540aSrobert! Libgomp is free software; you can redistribute it and/or modify it 7*404b540aSrobert! under the terms of the GNU Lesser General Public License as published by 8*404b540aSrobert! the Free Software Foundation; either version 2.1 of the License, or 9*404b540aSrobert! (at your option) any later version. 10*404b540aSrobert 11*404b540aSrobert! Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY 12*404b540aSrobert! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 13*404b540aSrobert! FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 14*404b540aSrobert! more details. 15*404b540aSrobert 16*404b540aSrobert! You should have received a copy of the GNU Lesser General Public License 17*404b540aSrobert! along with libgomp; see the file COPYING.LIB. If not, write to the 18*404b540aSrobert! Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 19*404b540aSrobert! MA 02110-1301, USA. */ 20*404b540aSrobert 21*404b540aSrobert! As a special exception, if you link this library with other files, some 22*404b540aSrobert! of which are compiled with GCC, to produce an executable, this library 23*404b540aSrobert! does not by itself cause the resulting executable to be covered by the 24*404b540aSrobert! GNU General Public License. This exception does not however invalidate 25*404b540aSrobert! any other reasons why the executable file might be covered by the GNU 26*404b540aSrobert! General Public License. 27*404b540aSrobert 28*404b540aSrobert module omp_lib_kinds 29*404b540aSrobert integer, parameter :: omp_integer_kind = 4 30*404b540aSrobert integer, parameter :: omp_logical_kind = 4 31*404b540aSrobert integer, parameter :: omp_lock_kind = @OMP_LOCK_KIND@ 32*404b540aSrobert integer, parameter :: omp_nest_lock_kind = @OMP_NEST_LOCK_KIND@ 33*404b540aSrobert end module 34*404b540aSrobert 35*404b540aSrobert module omp_lib 36*404b540aSrobert use omp_lib_kinds 37*404b540aSrobert integer, parameter :: openmp_version = 200505 38*404b540aSrobert 39*404b540aSrobert interface 40*404b540aSrobert subroutine omp_init_lock (lock) 41*404b540aSrobert use omp_lib_kinds 42*404b540aSrobert integer (omp_lock_kind), intent (out) :: lock 43*404b540aSrobert end subroutine omp_init_lock 44*404b540aSrobert end interface 45*404b540aSrobert 46*404b540aSrobert interface 47*404b540aSrobert subroutine omp_init_nest_lock (lock) 48*404b540aSrobert use omp_lib_kinds 49*404b540aSrobert integer (omp_nest_lock_kind), intent (out) :: lock 50*404b540aSrobert end subroutine omp_init_nest_lock 51*404b540aSrobert end interface 52*404b540aSrobert 53*404b540aSrobert interface 54*404b540aSrobert subroutine omp_destroy_lock (lock) 55*404b540aSrobert use omp_lib_kinds 56*404b540aSrobert integer (omp_lock_kind), intent (inout) :: lock 57*404b540aSrobert end subroutine omp_destroy_lock 58*404b540aSrobert end interface 59*404b540aSrobert 60*404b540aSrobert interface 61*404b540aSrobert subroutine omp_destroy_nest_lock (lock) 62*404b540aSrobert use omp_lib_kinds 63*404b540aSrobert integer (omp_nest_lock_kind), intent (inout) :: lock 64*404b540aSrobert end subroutine omp_destroy_nest_lock 65*404b540aSrobert end interface 66*404b540aSrobert 67*404b540aSrobert interface 68*404b540aSrobert subroutine omp_set_lock (lock) 69*404b540aSrobert use omp_lib_kinds 70*404b540aSrobert integer (omp_lock_kind), intent (inout) :: lock 71*404b540aSrobert end subroutine omp_set_lock 72*404b540aSrobert end interface 73*404b540aSrobert 74*404b540aSrobert interface 75*404b540aSrobert subroutine omp_set_nest_lock (lock) 76*404b540aSrobert use omp_lib_kinds 77*404b540aSrobert integer (omp_nest_lock_kind), intent (inout) :: lock 78*404b540aSrobert end subroutine omp_set_nest_lock 79*404b540aSrobert end interface 80*404b540aSrobert 81*404b540aSrobert interface 82*404b540aSrobert subroutine omp_unset_lock (lock) 83*404b540aSrobert use omp_lib_kinds 84*404b540aSrobert integer (omp_lock_kind), intent (inout) :: lock 85*404b540aSrobert end subroutine omp_unset_lock 86*404b540aSrobert end interface 87*404b540aSrobert 88*404b540aSrobert interface 89*404b540aSrobert subroutine omp_unset_nest_lock (lock) 90*404b540aSrobert use omp_lib_kinds 91*404b540aSrobert integer (omp_nest_lock_kind), intent (inout) :: lock 92*404b540aSrobert end subroutine omp_unset_nest_lock 93*404b540aSrobert end interface 94*404b540aSrobert 95*404b540aSrobert interface omp_set_dynamic 96*404b540aSrobert subroutine omp_set_dynamic (set) 97*404b540aSrobert logical (4), intent (in) :: set 98*404b540aSrobert end subroutine omp_set_dynamic 99*404b540aSrobert subroutine omp_set_dynamic_8 (set) 100*404b540aSrobert logical (8), intent (in) :: set 101*404b540aSrobert end subroutine omp_set_dynamic_8 102*404b540aSrobert end interface 103*404b540aSrobert 104*404b540aSrobert interface omp_set_nested 105*404b540aSrobert subroutine omp_set_nested (set) 106*404b540aSrobert logical (4), intent (in) :: set 107*404b540aSrobert end subroutine omp_set_nested 108*404b540aSrobert subroutine omp_set_nested_8 (set) 109*404b540aSrobert logical (8), intent (in) :: set 110*404b540aSrobert end subroutine omp_set_nested_8 111*404b540aSrobert end interface 112*404b540aSrobert 113*404b540aSrobert interface omp_set_num_threads 114*404b540aSrobert subroutine omp_set_num_threads (set) 115*404b540aSrobert integer (4), intent (in) :: set 116*404b540aSrobert end subroutine omp_set_num_threads 117*404b540aSrobert subroutine omp_set_num_threads_8 (set) 118*404b540aSrobert integer (8), intent (in) :: set 119*404b540aSrobert end subroutine omp_set_num_threads_8 120*404b540aSrobert end interface 121*404b540aSrobert 122*404b540aSrobert interface 123*404b540aSrobert function omp_get_dynamic () 124*404b540aSrobert use omp_lib_kinds 125*404b540aSrobert logical (omp_logical_kind) :: omp_get_dynamic 126*404b540aSrobert end function omp_get_dynamic 127*404b540aSrobert end interface 128*404b540aSrobert 129*404b540aSrobert interface 130*404b540aSrobert function omp_get_nested () 131*404b540aSrobert use omp_lib_kinds 132*404b540aSrobert logical (omp_logical_kind) :: omp_get_nested 133*404b540aSrobert end function omp_get_nested 134*404b540aSrobert end interface 135*404b540aSrobert 136*404b540aSrobert interface 137*404b540aSrobert function omp_in_parallel () 138*404b540aSrobert use omp_lib_kinds 139*404b540aSrobert logical (omp_logical_kind) :: omp_in_parallel 140*404b540aSrobert end function omp_in_parallel 141*404b540aSrobert end interface 142*404b540aSrobert 143*404b540aSrobert interface 144*404b540aSrobert function omp_test_lock (lock) 145*404b540aSrobert use omp_lib_kinds 146*404b540aSrobert logical (omp_logical_kind) :: omp_test_lock 147*404b540aSrobert integer (omp_lock_kind), intent (inout) :: lock 148*404b540aSrobert end function omp_test_lock 149*404b540aSrobert end interface 150*404b540aSrobert 151*404b540aSrobert interface 152*404b540aSrobert function omp_get_max_threads () 153*404b540aSrobert use omp_lib_kinds 154*404b540aSrobert integer (omp_integer_kind) :: omp_get_max_threads 155*404b540aSrobert end function omp_get_max_threads 156*404b540aSrobert end interface 157*404b540aSrobert 158*404b540aSrobert interface 159*404b540aSrobert function omp_get_num_procs () 160*404b540aSrobert use omp_lib_kinds 161*404b540aSrobert integer (omp_integer_kind) :: omp_get_num_procs 162*404b540aSrobert end function omp_get_num_procs 163*404b540aSrobert end interface 164*404b540aSrobert 165*404b540aSrobert interface 166*404b540aSrobert function omp_get_num_threads () 167*404b540aSrobert use omp_lib_kinds 168*404b540aSrobert integer (omp_integer_kind) :: omp_get_num_threads 169*404b540aSrobert end function omp_get_num_threads 170*404b540aSrobert end interface 171*404b540aSrobert 172*404b540aSrobert interface 173*404b540aSrobert function omp_get_thread_num () 174*404b540aSrobert use omp_lib_kinds 175*404b540aSrobert integer (omp_integer_kind) :: omp_get_thread_num 176*404b540aSrobert end function omp_get_thread_num 177*404b540aSrobert end interface 178*404b540aSrobert 179*404b540aSrobert interface 180*404b540aSrobert function omp_test_nest_lock (lock) 181*404b540aSrobert use omp_lib_kinds 182*404b540aSrobert integer (omp_integer_kind) :: omp_test_nest_lock 183*404b540aSrobert integer (omp_nest_lock_kind), intent (inout) :: lock 184*404b540aSrobert end function omp_test_nest_lock 185*404b540aSrobert end interface 186*404b540aSrobert 187*404b540aSrobert interface 188*404b540aSrobert function omp_get_wtick () 189*404b540aSrobert double precision :: omp_get_wtick 190*404b540aSrobert end function omp_get_wtick 191*404b540aSrobert end interface 192*404b540aSrobert 193*404b540aSrobert interface 194*404b540aSrobert function omp_get_wtime () 195*404b540aSrobert double precision :: omp_get_wtime 196*404b540aSrobert end function omp_get_wtime 197*404b540aSrobert end interface 198*404b540aSrobert 199*404b540aSrobert end module omp_lib 200