Home | History | Annotate | Line # | Download | only in libgomp
omp_lib.f90.in revision 1.5
      1  1.5  mrg !  Copyright (C) 2005-2015 Free Software Foundation, Inc.
      2  1.1  mrg !  Contributed by Jakub Jelinek <jakub (a] redhat.com>.
      3  1.1  mrg 
      4  1.5  mrg !  This file is part of the GNU Offloading and Multi Processing Library
      5  1.5  mrg !  (libgomp).
      6  1.1  mrg 
      7  1.1  mrg !  Libgomp is free software; you can redistribute it and/or modify it
      8  1.1  mrg !  under the terms of the GNU General Public License as published by
      9  1.1  mrg !  the Free Software Foundation; either version 3, or (at your option)
     10  1.1  mrg !  any later version.
     11  1.1  mrg 
     12  1.1  mrg !  Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
     13  1.1  mrg !  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     14  1.1  mrg !  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
     15  1.1  mrg !  more details.
     16  1.1  mrg 
     17  1.1  mrg !  Under Section 7 of GPL version 3, you are granted additional
     18  1.1  mrg !  permissions described in the GCC Runtime Library Exception, version
     19  1.1  mrg !  3.1, as published by the Free Software Foundation.
     20  1.1  mrg 
     21  1.1  mrg !  You should have received a copy of the GNU General Public License and
     22  1.1  mrg !  a copy of the GCC Runtime Library Exception along with this program;
     23  1.1  mrg !  see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
     24  1.1  mrg !  <http://www.gnu.org/licenses/>.
     25  1.1  mrg 
     26  1.1  mrg       module omp_lib_kinds
     27  1.1  mrg         implicit none
     28  1.1  mrg         integer, parameter :: omp_lock_kind = @OMP_LOCK_KIND@
     29  1.1  mrg         integer, parameter :: omp_nest_lock_kind = @OMP_NEST_LOCK_KIND@
     30  1.1  mrg         integer, parameter :: omp_sched_kind = 4
     31  1.5  mrg         integer, parameter :: omp_proc_bind_kind = 4
     32  1.5  mrg         integer (omp_sched_kind), parameter :: omp_sched_static = 1
     33  1.5  mrg         integer (omp_sched_kind), parameter :: omp_sched_dynamic = 2
     34  1.5  mrg         integer (omp_sched_kind), parameter :: omp_sched_guided = 3
     35  1.5  mrg         integer (omp_sched_kind), parameter :: omp_sched_auto = 4
     36  1.5  mrg         integer (omp_proc_bind_kind), parameter :: omp_proc_bind_false = 0
     37  1.5  mrg         integer (omp_proc_bind_kind), parameter :: omp_proc_bind_true = 1
     38  1.5  mrg         integer (omp_proc_bind_kind), parameter :: omp_proc_bind_master = 2
     39  1.5  mrg         integer (omp_proc_bind_kind), parameter :: omp_proc_bind_close = 3
     40  1.5  mrg         integer (omp_proc_bind_kind), parameter :: omp_proc_bind_spread = 4
     41  1.1  mrg       end module
     42  1.1  mrg 
     43  1.1  mrg       module omp_lib
     44  1.1  mrg         use omp_lib_kinds
     45  1.1  mrg         implicit none
     46  1.5  mrg         integer, parameter :: openmp_version = 201307
     47  1.1  mrg 
     48  1.1  mrg         interface
     49  1.5  mrg           subroutine omp_init_lock (svar)
     50  1.1  mrg             use omp_lib_kinds
     51  1.5  mrg             integer (omp_lock_kind), intent (out) :: svar
     52  1.1  mrg           end subroutine omp_init_lock
     53  1.1  mrg         end interface
     54  1.1  mrg 
     55  1.1  mrg         interface
     56  1.5  mrg           subroutine omp_init_nest_lock (nvar)
     57  1.1  mrg             use omp_lib_kinds
     58  1.5  mrg             integer (omp_nest_lock_kind), intent (out) :: nvar
     59  1.1  mrg           end subroutine omp_init_nest_lock
     60  1.1  mrg         end interface
     61  1.1  mrg 
     62  1.1  mrg         interface
     63  1.5  mrg           subroutine omp_destroy_lock (svar)
     64  1.1  mrg             use omp_lib_kinds
     65  1.5  mrg             integer (omp_lock_kind), intent (inout) :: svar
     66  1.1  mrg           end subroutine omp_destroy_lock
     67  1.1  mrg         end interface
     68  1.1  mrg 
     69  1.1  mrg         interface
     70  1.5  mrg           subroutine omp_destroy_nest_lock (nvar)
     71  1.1  mrg             use omp_lib_kinds
     72  1.5  mrg             integer (omp_nest_lock_kind), intent (inout) :: nvar
     73  1.1  mrg           end subroutine omp_destroy_nest_lock
     74  1.1  mrg         end interface
     75  1.1  mrg 
     76  1.1  mrg         interface
     77  1.5  mrg           subroutine omp_set_lock (svar)
     78  1.1  mrg             use omp_lib_kinds
     79  1.5  mrg             integer (omp_lock_kind), intent (inout) :: svar
     80  1.1  mrg           end subroutine omp_set_lock
     81  1.1  mrg         end interface
     82  1.1  mrg 
     83  1.1  mrg         interface
     84  1.5  mrg           subroutine omp_set_nest_lock (nvar)
     85  1.1  mrg             use omp_lib_kinds
     86  1.5  mrg             integer (omp_nest_lock_kind), intent (inout) :: nvar
     87  1.1  mrg           end subroutine omp_set_nest_lock
     88  1.1  mrg         end interface
     89  1.1  mrg 
     90  1.1  mrg         interface
     91  1.5  mrg           subroutine omp_unset_lock (svar)
     92  1.1  mrg             use omp_lib_kinds
     93  1.5  mrg             integer (omp_lock_kind), intent (inout) :: svar
     94  1.1  mrg           end subroutine omp_unset_lock
     95  1.1  mrg         end interface
     96  1.1  mrg 
     97  1.1  mrg         interface
     98  1.5  mrg           subroutine omp_unset_nest_lock (nvar)
     99  1.1  mrg             use omp_lib_kinds
    100  1.5  mrg             integer (omp_nest_lock_kind), intent (inout) :: nvar
    101  1.1  mrg           end subroutine omp_unset_nest_lock
    102  1.1  mrg         end interface
    103  1.1  mrg 
    104  1.1  mrg         interface omp_set_dynamic
    105  1.5  mrg           subroutine omp_set_dynamic (dynamic_threads)
    106  1.5  mrg             logical (4), intent (in) :: dynamic_threads
    107  1.1  mrg           end subroutine omp_set_dynamic
    108  1.5  mrg           subroutine omp_set_dynamic_8 (dynamic_threads)
    109  1.5  mrg             logical (8), intent (in) :: dynamic_threads
    110  1.1  mrg           end subroutine omp_set_dynamic_8
    111  1.1  mrg         end interface
    112  1.1  mrg 
    113  1.1  mrg         interface omp_set_nested
    114  1.5  mrg           subroutine omp_set_nested (nested)
    115  1.5  mrg             logical (4), intent (in) :: nested
    116  1.1  mrg           end subroutine omp_set_nested
    117  1.5  mrg           subroutine omp_set_nested_8 (nested)
    118  1.5  mrg             logical (8), intent (in) :: nested
    119  1.1  mrg           end subroutine omp_set_nested_8
    120  1.1  mrg         end interface
    121  1.1  mrg 
    122  1.1  mrg         interface omp_set_num_threads
    123  1.5  mrg           subroutine omp_set_num_threads (num_threads)
    124  1.5  mrg             integer (4), intent (in) :: num_threads
    125  1.1  mrg           end subroutine omp_set_num_threads
    126  1.5  mrg           subroutine omp_set_num_threads_8 (num_threads)
    127  1.5  mrg             integer (8), intent (in) :: num_threads
    128  1.1  mrg           end subroutine omp_set_num_threads_8
    129  1.1  mrg         end interface
    130  1.1  mrg 
    131  1.1  mrg         interface
    132  1.1  mrg           function omp_get_dynamic ()
    133  1.3  mrg             logical (4) :: omp_get_dynamic
    134  1.1  mrg           end function omp_get_dynamic
    135  1.1  mrg         end interface
    136  1.1  mrg 
    137  1.1  mrg         interface
    138  1.1  mrg           function omp_get_nested ()
    139  1.3  mrg             logical (4) :: omp_get_nested
    140  1.1  mrg           end function omp_get_nested
    141  1.1  mrg         end interface
    142  1.1  mrg 
    143  1.1  mrg         interface
    144  1.1  mrg           function omp_in_parallel ()
    145  1.3  mrg             logical (4) :: omp_in_parallel
    146  1.1  mrg           end function omp_in_parallel
    147  1.1  mrg         end interface
    148  1.1  mrg 
    149  1.1  mrg         interface
    150  1.5  mrg           function omp_test_lock (svar)
    151  1.1  mrg             use omp_lib_kinds
    152  1.3  mrg             logical (4) :: omp_test_lock
    153  1.5  mrg             integer (omp_lock_kind), intent (inout) :: svar
    154  1.1  mrg           end function omp_test_lock
    155  1.1  mrg         end interface
    156  1.1  mrg 
    157  1.1  mrg         interface
    158  1.1  mrg           function omp_get_max_threads ()
    159  1.3  mrg             integer (4) :: omp_get_max_threads
    160  1.1  mrg           end function omp_get_max_threads
    161  1.1  mrg         end interface
    162  1.1  mrg 
    163  1.1  mrg         interface
    164  1.1  mrg           function omp_get_num_procs ()
    165  1.3  mrg             integer (4) :: omp_get_num_procs
    166  1.1  mrg           end function omp_get_num_procs
    167  1.1  mrg         end interface
    168  1.1  mrg 
    169  1.1  mrg         interface
    170  1.1  mrg           function omp_get_num_threads ()
    171  1.3  mrg             integer (4) :: omp_get_num_threads
    172  1.1  mrg           end function omp_get_num_threads
    173  1.1  mrg         end interface
    174  1.1  mrg 
    175  1.1  mrg         interface
    176  1.1  mrg           function omp_get_thread_num ()
    177  1.3  mrg             integer (4) :: omp_get_thread_num
    178  1.1  mrg           end function omp_get_thread_num
    179  1.1  mrg         end interface
    180  1.1  mrg 
    181  1.1  mrg         interface
    182  1.5  mrg           function omp_test_nest_lock (nvar)
    183  1.1  mrg             use omp_lib_kinds
    184  1.3  mrg             integer (4) :: omp_test_nest_lock
    185  1.5  mrg             integer (omp_nest_lock_kind), intent (inout) :: nvar
    186  1.1  mrg           end function omp_test_nest_lock
    187  1.1  mrg         end interface
    188  1.1  mrg 
    189  1.1  mrg         interface
    190  1.1  mrg           function omp_get_wtick ()
    191  1.1  mrg             double precision :: omp_get_wtick
    192  1.1  mrg           end function omp_get_wtick
    193  1.1  mrg         end interface
    194  1.1  mrg 
    195  1.1  mrg         interface
    196  1.1  mrg           function omp_get_wtime ()
    197  1.1  mrg             double precision :: omp_get_wtime
    198  1.1  mrg           end function omp_get_wtime
    199  1.1  mrg         end interface
    200  1.1  mrg 
    201  1.1  mrg         interface omp_set_schedule
    202  1.1  mrg           subroutine omp_set_schedule (kind, modifier)
    203  1.1  mrg             use omp_lib_kinds
    204  1.1  mrg             integer (omp_sched_kind), intent (in) :: kind
    205  1.1  mrg             integer (4), intent (in) :: modifier
    206  1.1  mrg           end subroutine omp_set_schedule
    207  1.1  mrg           subroutine omp_set_schedule_8 (kind, modifier)
    208  1.1  mrg             use omp_lib_kinds
    209  1.1  mrg             integer (omp_sched_kind), intent (in) :: kind
    210  1.1  mrg             integer (8), intent (in) :: modifier
    211  1.1  mrg           end subroutine omp_set_schedule_8
    212  1.1  mrg          end interface
    213  1.1  mrg 
    214  1.1  mrg         interface omp_get_schedule
    215  1.1  mrg           subroutine omp_get_schedule (kind, modifier)
    216  1.1  mrg             use omp_lib_kinds
    217  1.1  mrg             integer (omp_sched_kind), intent (out) :: kind
    218  1.1  mrg             integer (4), intent (out) :: modifier
    219  1.1  mrg           end subroutine omp_get_schedule
    220  1.1  mrg           subroutine omp_get_schedule_8 (kind, modifier)
    221  1.1  mrg             use omp_lib_kinds
    222  1.1  mrg             integer (omp_sched_kind), intent (out) :: kind
    223  1.1  mrg             integer (8), intent (out) :: modifier
    224  1.1  mrg           end subroutine omp_get_schedule_8
    225  1.1  mrg          end interface
    226  1.1  mrg 
    227  1.1  mrg         interface
    228  1.1  mrg           function omp_get_thread_limit ()
    229  1.3  mrg             integer (4) :: omp_get_thread_limit
    230  1.1  mrg           end function omp_get_thread_limit
    231  1.1  mrg         end interface
    232  1.1  mrg 
    233  1.1  mrg         interface omp_set_max_active_levels
    234  1.1  mrg           subroutine omp_set_max_active_levels (max_levels)
    235  1.1  mrg             integer (4), intent (in) :: max_levels
    236  1.1  mrg           end subroutine omp_set_max_active_levels
    237  1.1  mrg           subroutine omp_set_max_active_levels_8 (max_levels)
    238  1.1  mrg             integer (8), intent (in) :: max_levels
    239  1.1  mrg           end subroutine omp_set_max_active_levels_8
    240  1.1  mrg         end interface
    241  1.1  mrg 
    242  1.1  mrg         interface
    243  1.1  mrg           function omp_get_max_active_levels ()
    244  1.3  mrg             integer (4) :: omp_get_max_active_levels
    245  1.1  mrg           end function omp_get_max_active_levels
    246  1.1  mrg         end interface
    247  1.1  mrg 
    248  1.1  mrg         interface
    249  1.1  mrg           function omp_get_level ()
    250  1.3  mrg             integer (4) :: omp_get_level
    251  1.1  mrg           end function omp_get_level
    252  1.1  mrg         end interface
    253  1.1  mrg 
    254  1.1  mrg         interface omp_get_ancestor_thread_num
    255  1.1  mrg           function omp_get_ancestor_thread_num (level)
    256  1.1  mrg             integer (4), intent (in) :: level
    257  1.3  mrg             integer (4) :: omp_get_ancestor_thread_num
    258  1.1  mrg           end function omp_get_ancestor_thread_num
    259  1.1  mrg           function omp_get_ancestor_thread_num_8 (level)
    260  1.1  mrg             integer (8), intent (in) :: level
    261  1.3  mrg             integer (4) :: omp_get_ancestor_thread_num_8
    262  1.1  mrg           end function omp_get_ancestor_thread_num_8
    263  1.1  mrg         end interface
    264  1.1  mrg 
    265  1.1  mrg         interface omp_get_team_size
    266  1.1  mrg           function omp_get_team_size (level)
    267  1.1  mrg             integer (4), intent (in) :: level
    268  1.3  mrg             integer (4) :: omp_get_team_size
    269  1.1  mrg           end function omp_get_team_size
    270  1.1  mrg           function omp_get_team_size_8 (level)
    271  1.1  mrg             integer (8), intent (in) :: level
    272  1.3  mrg             integer (4) :: omp_get_team_size_8
    273  1.1  mrg           end function omp_get_team_size_8
    274  1.1  mrg         end interface
    275  1.1  mrg 
    276  1.1  mrg         interface
    277  1.1  mrg           function omp_get_active_level ()
    278  1.3  mrg             integer (4) :: omp_get_active_level
    279  1.1  mrg           end function omp_get_active_level
    280  1.1  mrg         end interface
    281  1.1  mrg 
    282  1.3  mrg         interface
    283  1.3  mrg           function omp_in_final ()
    284  1.3  mrg             logical (4) :: omp_in_final
    285  1.3  mrg           end function omp_in_final
    286  1.3  mrg         end interface
    287  1.3  mrg 
    288  1.5  mrg         interface
    289  1.5  mrg           function omp_get_cancellation ()
    290  1.5  mrg             logical (4) :: omp_get_cancellation
    291  1.5  mrg           end function omp_get_cancellation
    292  1.5  mrg         end interface
    293  1.5  mrg 
    294  1.5  mrg         interface
    295  1.5  mrg           function omp_get_proc_bind ()
    296  1.5  mrg             use omp_lib_kinds
    297  1.5  mrg             integer (omp_proc_bind_kind) :: omp_get_proc_bind
    298  1.5  mrg           end function omp_get_proc_bind
    299  1.5  mrg         end interface
    300  1.5  mrg 
    301  1.5  mrg         interface omp_set_default_device
    302  1.5  mrg           subroutine omp_set_default_device (device_num)
    303  1.5  mrg             integer (4), intent (in) :: device_num
    304  1.5  mrg           end subroutine omp_set_default_device
    305  1.5  mrg           subroutine omp_set_default_device_8 (device_num)
    306  1.5  mrg             integer (8), intent (in) :: device_num
    307  1.5  mrg           end subroutine omp_set_default_device_8
    308  1.5  mrg         end interface
    309  1.5  mrg 
    310  1.5  mrg         interface
    311  1.5  mrg           function omp_get_default_device ()
    312  1.5  mrg             integer (4) :: omp_get_default_device
    313  1.5  mrg           end function omp_get_default_device
    314  1.5  mrg         end interface
    315  1.5  mrg 
    316  1.5  mrg         interface
    317  1.5  mrg           function omp_get_num_devices ()
    318  1.5  mrg             integer (4) :: omp_get_num_devices
    319  1.5  mrg           end function omp_get_num_devices
    320  1.5  mrg         end interface
    321  1.5  mrg 
    322  1.5  mrg         interface
    323  1.5  mrg           function omp_get_num_teams ()
    324  1.5  mrg             integer (4) :: omp_get_num_teams
    325  1.5  mrg           end function omp_get_num_teams
    326  1.5  mrg         end interface
    327  1.5  mrg 
    328  1.5  mrg         interface
    329  1.5  mrg           function omp_get_team_num ()
    330  1.5  mrg             integer (4) :: omp_get_team_num
    331  1.5  mrg           end function omp_get_team_num
    332  1.5  mrg         end interface
    333  1.5  mrg 
    334  1.5  mrg         interface
    335  1.5  mrg           function omp_is_initial_device ()
    336  1.5  mrg             logical (4) :: omp_is_initial_device
    337  1.5  mrg           end function omp_is_initial_device
    338  1.5  mrg         end interface
    339  1.5  mrg 
    340  1.1  mrg       end module omp_lib
    341