Home | History | Annotate | Line # | Download | only in libgomp
omp_lib.f90.in revision 1.6
      1  1.6  mrg !  Copyright (C) 2005-2016 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.6  mrg         integer, parameter :: omp_lock_hint_kind = 4
     33  1.5  mrg         integer (omp_sched_kind), parameter :: omp_sched_static = 1
     34  1.5  mrg         integer (omp_sched_kind), parameter :: omp_sched_dynamic = 2
     35  1.5  mrg         integer (omp_sched_kind), parameter :: omp_sched_guided = 3
     36  1.5  mrg         integer (omp_sched_kind), parameter :: omp_sched_auto = 4
     37  1.6  mrg         integer (omp_proc_bind_kind), &
     38  1.6  mrg                  parameter :: omp_proc_bind_false = 0
     39  1.6  mrg         integer (omp_proc_bind_kind), &
     40  1.6  mrg                  parameter :: omp_proc_bind_true = 1
     41  1.6  mrg         integer (omp_proc_bind_kind), &
     42  1.6  mrg                  parameter :: omp_proc_bind_master = 2
     43  1.6  mrg         integer (omp_proc_bind_kind), &
     44  1.6  mrg                  parameter :: omp_proc_bind_close = 3
     45  1.6  mrg         integer (omp_proc_bind_kind), &
     46  1.6  mrg                  parameter :: omp_proc_bind_spread = 4
     47  1.6  mrg         integer (omp_lock_hint_kind), &
     48  1.6  mrg                  parameter :: omp_lock_hint_none = 0
     49  1.6  mrg         integer (omp_lock_hint_kind), &
     50  1.6  mrg                  parameter :: omp_lock_hint_uncontended = 1
     51  1.6  mrg         integer (omp_lock_hint_kind), &
     52  1.6  mrg                  parameter :: omp_lock_hint_contended = 2
     53  1.6  mrg         integer (omp_lock_hint_kind), &
     54  1.6  mrg                  parameter :: omp_lock_hint_nonspeculative = 4
     55  1.6  mrg         integer (omp_lock_hint_kind), &
     56  1.6  mrg                  parameter :: omp_lock_hint_speculative = 8
     57  1.1  mrg       end module
     58  1.1  mrg 
     59  1.1  mrg       module omp_lib
     60  1.1  mrg         use omp_lib_kinds
     61  1.1  mrg         implicit none
     62  1.5  mrg         integer, parameter :: openmp_version = 201307
     63  1.1  mrg 
     64  1.1  mrg         interface
     65  1.5  mrg           subroutine omp_init_lock (svar)
     66  1.1  mrg             use omp_lib_kinds
     67  1.5  mrg             integer (omp_lock_kind), intent (out) :: svar
     68  1.1  mrg           end subroutine omp_init_lock
     69  1.1  mrg         end interface
     70  1.1  mrg 
     71  1.1  mrg         interface
     72  1.6  mrg           subroutine omp_init_lock_with_hint (svar, hint)
     73  1.6  mrg             use omp_lib_kinds
     74  1.6  mrg             integer (omp_lock_kind), intent (out) :: svar
     75  1.6  mrg             integer (omp_lock_hint_kind), intent (in) :: hint
     76  1.6  mrg           end subroutine omp_init_lock_with_hint
     77  1.6  mrg         end interface
     78  1.6  mrg 
     79  1.6  mrg         interface
     80  1.5  mrg           subroutine omp_init_nest_lock (nvar)
     81  1.1  mrg             use omp_lib_kinds
     82  1.5  mrg             integer (omp_nest_lock_kind), intent (out) :: nvar
     83  1.1  mrg           end subroutine omp_init_nest_lock
     84  1.1  mrg         end interface
     85  1.1  mrg 
     86  1.1  mrg         interface
     87  1.6  mrg           subroutine omp_init_nest_lock_with_hint (nvar, hint)
     88  1.6  mrg             use omp_lib_kinds
     89  1.6  mrg             integer (omp_nest_lock_kind), intent (out) :: nvar
     90  1.6  mrg             integer (omp_lock_hint_kind), intent (in) :: hint
     91  1.6  mrg           end subroutine omp_init_nest_lock_with_hint
     92  1.6  mrg         end interface
     93  1.6  mrg 
     94  1.6  mrg         interface
     95  1.5  mrg           subroutine omp_destroy_lock (svar)
     96  1.1  mrg             use omp_lib_kinds
     97  1.5  mrg             integer (omp_lock_kind), intent (inout) :: svar
     98  1.1  mrg           end subroutine omp_destroy_lock
     99  1.1  mrg         end interface
    100  1.1  mrg 
    101  1.1  mrg         interface
    102  1.5  mrg           subroutine omp_destroy_nest_lock (nvar)
    103  1.1  mrg             use omp_lib_kinds
    104  1.5  mrg             integer (omp_nest_lock_kind), intent (inout) :: nvar
    105  1.1  mrg           end subroutine omp_destroy_nest_lock
    106  1.1  mrg         end interface
    107  1.1  mrg 
    108  1.1  mrg         interface
    109  1.5  mrg           subroutine omp_set_lock (svar)
    110  1.1  mrg             use omp_lib_kinds
    111  1.5  mrg             integer (omp_lock_kind), intent (inout) :: svar
    112  1.1  mrg           end subroutine omp_set_lock
    113  1.1  mrg         end interface
    114  1.1  mrg 
    115  1.1  mrg         interface
    116  1.5  mrg           subroutine omp_set_nest_lock (nvar)
    117  1.1  mrg             use omp_lib_kinds
    118  1.5  mrg             integer (omp_nest_lock_kind), intent (inout) :: nvar
    119  1.1  mrg           end subroutine omp_set_nest_lock
    120  1.1  mrg         end interface
    121  1.1  mrg 
    122  1.1  mrg         interface
    123  1.5  mrg           subroutine omp_unset_lock (svar)
    124  1.1  mrg             use omp_lib_kinds
    125  1.5  mrg             integer (omp_lock_kind), intent (inout) :: svar
    126  1.1  mrg           end subroutine omp_unset_lock
    127  1.1  mrg         end interface
    128  1.1  mrg 
    129  1.1  mrg         interface
    130  1.5  mrg           subroutine omp_unset_nest_lock (nvar)
    131  1.1  mrg             use omp_lib_kinds
    132  1.5  mrg             integer (omp_nest_lock_kind), intent (inout) :: nvar
    133  1.1  mrg           end subroutine omp_unset_nest_lock
    134  1.1  mrg         end interface
    135  1.1  mrg 
    136  1.1  mrg         interface omp_set_dynamic
    137  1.5  mrg           subroutine omp_set_dynamic (dynamic_threads)
    138  1.5  mrg             logical (4), intent (in) :: dynamic_threads
    139  1.1  mrg           end subroutine omp_set_dynamic
    140  1.5  mrg           subroutine omp_set_dynamic_8 (dynamic_threads)
    141  1.5  mrg             logical (8), intent (in) :: dynamic_threads
    142  1.1  mrg           end subroutine omp_set_dynamic_8
    143  1.1  mrg         end interface
    144  1.1  mrg 
    145  1.1  mrg         interface omp_set_nested
    146  1.5  mrg           subroutine omp_set_nested (nested)
    147  1.5  mrg             logical (4), intent (in) :: nested
    148  1.1  mrg           end subroutine omp_set_nested
    149  1.5  mrg           subroutine omp_set_nested_8 (nested)
    150  1.5  mrg             logical (8), intent (in) :: nested
    151  1.1  mrg           end subroutine omp_set_nested_8
    152  1.1  mrg         end interface
    153  1.1  mrg 
    154  1.1  mrg         interface omp_set_num_threads
    155  1.5  mrg           subroutine omp_set_num_threads (num_threads)
    156  1.5  mrg             integer (4), intent (in) :: num_threads
    157  1.1  mrg           end subroutine omp_set_num_threads
    158  1.5  mrg           subroutine omp_set_num_threads_8 (num_threads)
    159  1.5  mrg             integer (8), intent (in) :: num_threads
    160  1.1  mrg           end subroutine omp_set_num_threads_8
    161  1.1  mrg         end interface
    162  1.1  mrg 
    163  1.1  mrg         interface
    164  1.1  mrg           function omp_get_dynamic ()
    165  1.3  mrg             logical (4) :: omp_get_dynamic
    166  1.1  mrg           end function omp_get_dynamic
    167  1.1  mrg         end interface
    168  1.1  mrg 
    169  1.1  mrg         interface
    170  1.1  mrg           function omp_get_nested ()
    171  1.3  mrg             logical (4) :: omp_get_nested
    172  1.1  mrg           end function omp_get_nested
    173  1.1  mrg         end interface
    174  1.1  mrg 
    175  1.1  mrg         interface
    176  1.1  mrg           function omp_in_parallel ()
    177  1.3  mrg             logical (4) :: omp_in_parallel
    178  1.1  mrg           end function omp_in_parallel
    179  1.1  mrg         end interface
    180  1.1  mrg 
    181  1.1  mrg         interface
    182  1.5  mrg           function omp_test_lock (svar)
    183  1.1  mrg             use omp_lib_kinds
    184  1.3  mrg             logical (4) :: omp_test_lock
    185  1.5  mrg             integer (omp_lock_kind), intent (inout) :: svar
    186  1.1  mrg           end function omp_test_lock
    187  1.1  mrg         end interface
    188  1.1  mrg 
    189  1.1  mrg         interface
    190  1.1  mrg           function omp_get_max_threads ()
    191  1.3  mrg             integer (4) :: omp_get_max_threads
    192  1.1  mrg           end function omp_get_max_threads
    193  1.1  mrg         end interface
    194  1.1  mrg 
    195  1.1  mrg         interface
    196  1.1  mrg           function omp_get_num_procs ()
    197  1.3  mrg             integer (4) :: omp_get_num_procs
    198  1.1  mrg           end function omp_get_num_procs
    199  1.1  mrg         end interface
    200  1.1  mrg 
    201  1.1  mrg         interface
    202  1.1  mrg           function omp_get_num_threads ()
    203  1.3  mrg             integer (4) :: omp_get_num_threads
    204  1.1  mrg           end function omp_get_num_threads
    205  1.1  mrg         end interface
    206  1.1  mrg 
    207  1.1  mrg         interface
    208  1.1  mrg           function omp_get_thread_num ()
    209  1.3  mrg             integer (4) :: omp_get_thread_num
    210  1.1  mrg           end function omp_get_thread_num
    211  1.1  mrg         end interface
    212  1.1  mrg 
    213  1.1  mrg         interface
    214  1.5  mrg           function omp_test_nest_lock (nvar)
    215  1.1  mrg             use omp_lib_kinds
    216  1.3  mrg             integer (4) :: omp_test_nest_lock
    217  1.5  mrg             integer (omp_nest_lock_kind), intent (inout) :: nvar
    218  1.1  mrg           end function omp_test_nest_lock
    219  1.1  mrg         end interface
    220  1.1  mrg 
    221  1.1  mrg         interface
    222  1.1  mrg           function omp_get_wtick ()
    223  1.1  mrg             double precision :: omp_get_wtick
    224  1.1  mrg           end function omp_get_wtick
    225  1.1  mrg         end interface
    226  1.1  mrg 
    227  1.1  mrg         interface
    228  1.1  mrg           function omp_get_wtime ()
    229  1.1  mrg             double precision :: omp_get_wtime
    230  1.1  mrg           end function omp_get_wtime
    231  1.1  mrg         end interface
    232  1.1  mrg 
    233  1.1  mrg         interface omp_set_schedule
    234  1.6  mrg           subroutine omp_set_schedule (kind, chunk_size)
    235  1.1  mrg             use omp_lib_kinds
    236  1.1  mrg             integer (omp_sched_kind), intent (in) :: kind
    237  1.6  mrg             integer (4), intent (in) :: chunk_size
    238  1.1  mrg           end subroutine omp_set_schedule
    239  1.6  mrg           subroutine omp_set_schedule_8 (kind, chunk_size)
    240  1.1  mrg             use omp_lib_kinds
    241  1.1  mrg             integer (omp_sched_kind), intent (in) :: kind
    242  1.6  mrg             integer (8), intent (in) :: chunk_size
    243  1.1  mrg           end subroutine omp_set_schedule_8
    244  1.1  mrg          end interface
    245  1.1  mrg 
    246  1.1  mrg         interface omp_get_schedule
    247  1.6  mrg           subroutine omp_get_schedule (kind, chunk_size)
    248  1.1  mrg             use omp_lib_kinds
    249  1.1  mrg             integer (omp_sched_kind), intent (out) :: kind
    250  1.6  mrg             integer (4), intent (out) :: chunk_size
    251  1.1  mrg           end subroutine omp_get_schedule
    252  1.6  mrg           subroutine omp_get_schedule_8 (kind, chunk_size)
    253  1.1  mrg             use omp_lib_kinds
    254  1.1  mrg             integer (omp_sched_kind), intent (out) :: kind
    255  1.6  mrg             integer (8), intent (out) :: chunk_size
    256  1.1  mrg           end subroutine omp_get_schedule_8
    257  1.1  mrg          end interface
    258  1.1  mrg 
    259  1.1  mrg         interface
    260  1.1  mrg           function omp_get_thread_limit ()
    261  1.3  mrg             integer (4) :: omp_get_thread_limit
    262  1.1  mrg           end function omp_get_thread_limit
    263  1.1  mrg         end interface
    264  1.1  mrg 
    265  1.1  mrg         interface omp_set_max_active_levels
    266  1.1  mrg           subroutine omp_set_max_active_levels (max_levels)
    267  1.1  mrg             integer (4), intent (in) :: max_levels
    268  1.1  mrg           end subroutine omp_set_max_active_levels
    269  1.1  mrg           subroutine omp_set_max_active_levels_8 (max_levels)
    270  1.1  mrg             integer (8), intent (in) :: max_levels
    271  1.1  mrg           end subroutine omp_set_max_active_levels_8
    272  1.1  mrg         end interface
    273  1.1  mrg 
    274  1.1  mrg         interface
    275  1.1  mrg           function omp_get_max_active_levels ()
    276  1.3  mrg             integer (4) :: omp_get_max_active_levels
    277  1.1  mrg           end function omp_get_max_active_levels
    278  1.1  mrg         end interface
    279  1.1  mrg 
    280  1.1  mrg         interface
    281  1.1  mrg           function omp_get_level ()
    282  1.3  mrg             integer (4) :: omp_get_level
    283  1.1  mrg           end function omp_get_level
    284  1.1  mrg         end interface
    285  1.1  mrg 
    286  1.1  mrg         interface omp_get_ancestor_thread_num
    287  1.1  mrg           function omp_get_ancestor_thread_num (level)
    288  1.1  mrg             integer (4), intent (in) :: level
    289  1.3  mrg             integer (4) :: omp_get_ancestor_thread_num
    290  1.1  mrg           end function omp_get_ancestor_thread_num
    291  1.1  mrg           function omp_get_ancestor_thread_num_8 (level)
    292  1.1  mrg             integer (8), intent (in) :: level
    293  1.3  mrg             integer (4) :: omp_get_ancestor_thread_num_8
    294  1.1  mrg           end function omp_get_ancestor_thread_num_8
    295  1.1  mrg         end interface
    296  1.1  mrg 
    297  1.1  mrg         interface omp_get_team_size
    298  1.1  mrg           function omp_get_team_size (level)
    299  1.1  mrg             integer (4), intent (in) :: level
    300  1.3  mrg             integer (4) :: omp_get_team_size
    301  1.1  mrg           end function omp_get_team_size
    302  1.1  mrg           function omp_get_team_size_8 (level)
    303  1.1  mrg             integer (8), intent (in) :: level
    304  1.3  mrg             integer (4) :: omp_get_team_size_8
    305  1.1  mrg           end function omp_get_team_size_8
    306  1.1  mrg         end interface
    307  1.1  mrg 
    308  1.1  mrg         interface
    309  1.1  mrg           function omp_get_active_level ()
    310  1.3  mrg             integer (4) :: omp_get_active_level
    311  1.1  mrg           end function omp_get_active_level
    312  1.1  mrg         end interface
    313  1.1  mrg 
    314  1.3  mrg         interface
    315  1.3  mrg           function omp_in_final ()
    316  1.3  mrg             logical (4) :: omp_in_final
    317  1.3  mrg           end function omp_in_final
    318  1.3  mrg         end interface
    319  1.3  mrg 
    320  1.5  mrg         interface
    321  1.5  mrg           function omp_get_cancellation ()
    322  1.5  mrg             logical (4) :: omp_get_cancellation
    323  1.5  mrg           end function omp_get_cancellation
    324  1.5  mrg         end interface
    325  1.5  mrg 
    326  1.5  mrg         interface
    327  1.5  mrg           function omp_get_proc_bind ()
    328  1.5  mrg             use omp_lib_kinds
    329  1.5  mrg             integer (omp_proc_bind_kind) :: omp_get_proc_bind
    330  1.5  mrg           end function omp_get_proc_bind
    331  1.5  mrg         end interface
    332  1.5  mrg 
    333  1.6  mrg         interface
    334  1.6  mrg           function omp_get_num_places ()
    335  1.6  mrg             integer (4) :: omp_get_num_places
    336  1.6  mrg           end function omp_get_num_places
    337  1.6  mrg         end interface
    338  1.6  mrg 
    339  1.6  mrg         interface omp_get_place_num_procs
    340  1.6  mrg           function omp_get_place_num_procs (place_num)
    341  1.6  mrg             integer (4), intent(in) :: place_num
    342  1.6  mrg             integer (4) :: omp_get_place_num_procs
    343  1.6  mrg           end function omp_get_place_num_procs
    344  1.6  mrg 
    345  1.6  mrg           function omp_get_place_num_procs_8 (place_num)
    346  1.6  mrg             integer (8), intent(in) :: place_num
    347  1.6  mrg             integer (4) :: omp_get_place_num_procs_8
    348  1.6  mrg           end function omp_get_place_num_procs_8
    349  1.6  mrg         end interface
    350  1.6  mrg 
    351  1.6  mrg         interface omp_get_place_proc_ids
    352  1.6  mrg           subroutine omp_get_place_proc_ids (place_num, ids)
    353  1.6  mrg             integer (4), intent(in) :: place_num
    354  1.6  mrg             integer (4), intent(out) :: ids(*)
    355  1.6  mrg           end subroutine omp_get_place_proc_ids
    356  1.6  mrg 
    357  1.6  mrg           subroutine omp_get_place_proc_ids_8 (place_num, ids)
    358  1.6  mrg             integer (8), intent(in) :: place_num
    359  1.6  mrg             integer (8), intent(out) :: ids(*)
    360  1.6  mrg           end subroutine omp_get_place_proc_ids_8
    361  1.6  mrg         end interface
    362  1.6  mrg 
    363  1.6  mrg         interface
    364  1.6  mrg           function omp_get_place_num ()
    365  1.6  mrg             integer (4) :: omp_get_place_num
    366  1.6  mrg           end function omp_get_place_num
    367  1.6  mrg         end interface
    368  1.6  mrg 
    369  1.6  mrg         interface
    370  1.6  mrg           function omp_get_partition_num_places ()
    371  1.6  mrg             integer (4) :: omp_get_partition_num_places
    372  1.6  mrg           end function omp_get_partition_num_places
    373  1.6  mrg         end interface
    374  1.6  mrg 
    375  1.6  mrg         interface omp_get_partition_place_nums
    376  1.6  mrg           subroutine omp_get_partition_place_nums (place_nums)
    377  1.6  mrg             integer (4), intent(out) :: place_nums(*)
    378  1.6  mrg           end subroutine omp_get_partition_place_nums
    379  1.6  mrg 
    380  1.6  mrg           subroutine omp_get_partition_place_nums_8 (place_nums)
    381  1.6  mrg             integer (8), intent(out) :: place_nums(*)
    382  1.6  mrg           end subroutine omp_get_partition_place_nums_8
    383  1.6  mrg         end interface
    384  1.6  mrg 
    385  1.5  mrg         interface omp_set_default_device
    386  1.5  mrg           subroutine omp_set_default_device (device_num)
    387  1.5  mrg             integer (4), intent (in) :: device_num
    388  1.5  mrg           end subroutine omp_set_default_device
    389  1.5  mrg           subroutine omp_set_default_device_8 (device_num)
    390  1.5  mrg             integer (8), intent (in) :: device_num
    391  1.5  mrg           end subroutine omp_set_default_device_8
    392  1.5  mrg         end interface
    393  1.5  mrg 
    394  1.5  mrg         interface
    395  1.5  mrg           function omp_get_default_device ()
    396  1.5  mrg             integer (4) :: omp_get_default_device
    397  1.5  mrg           end function omp_get_default_device
    398  1.5  mrg         end interface
    399  1.5  mrg 
    400  1.5  mrg         interface
    401  1.5  mrg           function omp_get_num_devices ()
    402  1.5  mrg             integer (4) :: omp_get_num_devices
    403  1.5  mrg           end function omp_get_num_devices
    404  1.5  mrg         end interface
    405  1.5  mrg 
    406  1.5  mrg         interface
    407  1.5  mrg           function omp_get_num_teams ()
    408  1.5  mrg             integer (4) :: omp_get_num_teams
    409  1.5  mrg           end function omp_get_num_teams
    410  1.5  mrg         end interface
    411  1.5  mrg 
    412  1.5  mrg         interface
    413  1.5  mrg           function omp_get_team_num ()
    414  1.5  mrg             integer (4) :: omp_get_team_num
    415  1.5  mrg           end function omp_get_team_num
    416  1.5  mrg         end interface
    417  1.5  mrg 
    418  1.5  mrg         interface
    419  1.5  mrg           function omp_is_initial_device ()
    420  1.5  mrg             logical (4) :: omp_is_initial_device
    421  1.5  mrg           end function omp_is_initial_device
    422  1.5  mrg         end interface
    423  1.5  mrg 
    424  1.6  mrg         interface
    425  1.6  mrg           function omp_get_initial_device ()
    426  1.6  mrg             integer (4) :: omp_get_initial_device
    427  1.6  mrg           end function omp_get_initial_device
    428  1.6  mrg         end interface
    429  1.6  mrg 
    430  1.6  mrg         interface
    431  1.6  mrg           function omp_get_max_task_priority ()
    432  1.6  mrg             integer (4) :: omp_get_max_task_priority
    433  1.6  mrg           end function omp_get_max_task_priority
    434  1.6  mrg         end interface
    435  1.6  mrg 
    436  1.1  mrg       end module omp_lib
    437