Home | History | Annotate | Line # | Download | only in libgomp
omp_lib.f90.in revision 1.12
      1  1.12  mrg !  Copyright (C) 2005-2022 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.12  mrg         use iso_c_binding, only: c_int, c_intptr_t
     28   1.1  mrg         implicit none
     29  1.12  mrg         private :: c_int, c_intptr_t
     30   1.1  mrg         integer, parameter :: omp_lock_kind = @OMP_LOCK_KIND@
     31   1.1  mrg         integer, parameter :: omp_nest_lock_kind = @OMP_NEST_LOCK_KIND@
     32   1.1  mrg         integer, parameter :: omp_sched_kind = 4
     33   1.5  mrg         integer, parameter :: omp_proc_bind_kind = 4
     34  1.12  mrg         integer, parameter :: omp_sync_hint_kind = 4
     35  1.12  mrg         integer, parameter :: omp_lock_hint_kind = omp_sync_hint_kind
     36  1.10  mrg         integer, parameter :: omp_pause_resource_kind = 4
     37  1.12  mrg         integer, parameter :: omp_allocator_handle_kind = c_intptr_t
     38  1.12  mrg         integer, parameter :: omp_alloctrait_key_kind = c_int
     39  1.12  mrg         integer, parameter :: omp_alloctrait_val_kind = c_intptr_t
     40  1.12  mrg         integer, parameter :: omp_memspace_handle_kind = c_intptr_t
     41  1.12  mrg         integer, parameter :: omp_depend_kind = @OMP_DEPEND_KIND@
     42  1.12  mrg         integer, parameter :: omp_event_handle_kind = c_intptr_t
     43   1.5  mrg         integer (omp_sched_kind), parameter :: omp_sched_static = 1
     44   1.5  mrg         integer (omp_sched_kind), parameter :: omp_sched_dynamic = 2
     45   1.5  mrg         integer (omp_sched_kind), parameter :: omp_sched_guided = 3
     46   1.5  mrg         integer (omp_sched_kind), parameter :: omp_sched_auto = 4
     47   1.6  mrg         integer (omp_proc_bind_kind), &
     48   1.6  mrg                  parameter :: omp_proc_bind_false = 0
     49   1.6  mrg         integer (omp_proc_bind_kind), &
     50   1.6  mrg                  parameter :: omp_proc_bind_true = 1
     51   1.6  mrg         integer (omp_proc_bind_kind), &
     52  1.12  mrg                  parameter :: omp_proc_bind_primary = 2
     53  1.12  mrg         integer (omp_proc_bind_kind), &
     54   1.6  mrg                  parameter :: omp_proc_bind_master = 2
     55   1.6  mrg         integer (omp_proc_bind_kind), &
     56   1.6  mrg                  parameter :: omp_proc_bind_close = 3
     57   1.6  mrg         integer (omp_proc_bind_kind), &
     58   1.6  mrg                  parameter :: omp_proc_bind_spread = 4
     59   1.6  mrg         integer (omp_lock_hint_kind), &
     60  1.12  mrg                  parameter :: omp_sync_hint_none = 0
     61  1.12  mrg         integer (omp_lock_hint_kind), &
     62  1.12  mrg                  parameter :: omp_lock_hint_none = omp_sync_hint_none
     63  1.12  mrg         integer (omp_lock_hint_kind), &
     64  1.12  mrg                  parameter :: omp_sync_hint_uncontended = 1
     65  1.12  mrg         integer (omp_lock_hint_kind), &
     66  1.12  mrg                  parameter :: omp_lock_hint_uncontended &
     67  1.12  mrg                  = omp_sync_hint_uncontended
     68  1.12  mrg         integer (omp_lock_hint_kind), &
     69  1.12  mrg                  parameter :: omp_sync_hint_contended = 2
     70  1.12  mrg         integer (omp_lock_hint_kind), &
     71  1.12  mrg                  parameter :: omp_lock_hint_contended &
     72  1.12  mrg                  = omp_sync_hint_contended
     73   1.6  mrg         integer (omp_lock_hint_kind), &
     74  1.12  mrg                  parameter :: omp_sync_hint_nonspeculative = 4
     75   1.6  mrg         integer (omp_lock_hint_kind), &
     76  1.12  mrg                  parameter :: omp_lock_hint_nonspeculative &
     77  1.12  mrg                  = omp_sync_hint_nonspeculative
     78   1.6  mrg         integer (omp_lock_hint_kind), &
     79  1.12  mrg                  parameter :: omp_sync_hint_speculative = 8
     80   1.6  mrg         integer (omp_lock_hint_kind), &
     81  1.12  mrg                  parameter :: omp_lock_hint_speculative &
     82  1.12  mrg                  = omp_sync_hint_speculative
     83  1.10  mrg         integer (kind=omp_pause_resource_kind), &
     84  1.10  mrg                  parameter :: omp_pause_soft = 1
     85  1.10  mrg         integer (kind=omp_pause_resource_kind), &
     86  1.10  mrg                  parameter :: omp_pause_hard = 2
     87  1.12  mrg         integer (kind=omp_alloctrait_key_kind), &
     88  1.12  mrg                  parameter :: omp_atk_sync_hint = 1
     89  1.12  mrg         integer (kind=omp_alloctrait_key_kind), &
     90  1.12  mrg                  parameter :: omp_atk_alignment = 2
     91  1.12  mrg         integer (kind=omp_alloctrait_key_kind), &
     92  1.12  mrg                  parameter :: omp_atk_access = 3
     93  1.12  mrg         integer (kind=omp_alloctrait_key_kind), &
     94  1.12  mrg                  parameter :: omp_atk_pool_size = 4
     95  1.12  mrg         integer (kind=omp_alloctrait_key_kind), &
     96  1.12  mrg                  parameter :: omp_atk_fallback = 5
     97  1.12  mrg         integer (kind=omp_alloctrait_key_kind), &
     98  1.12  mrg                  parameter :: omp_atk_fb_data = 6
     99  1.12  mrg         integer (kind=omp_alloctrait_key_kind), &
    100  1.12  mrg                  parameter :: omp_atk_pinned = 7
    101  1.12  mrg         integer (kind=omp_alloctrait_key_kind), &
    102  1.12  mrg                  parameter :: omp_atk_partition = 8
    103  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    104  1.12  mrg                  parameter :: omp_atv_default = -1
    105  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    106  1.12  mrg                  parameter :: omp_atv_false = 0
    107  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    108  1.12  mrg                  parameter :: omp_atv_true = 1
    109  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    110  1.12  mrg                  parameter :: omp_atv_contended = 3
    111  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    112  1.12  mrg                  parameter :: omp_atv_uncontended = 4
    113  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    114  1.12  mrg                  parameter :: omp_atv_serialized = 5
    115  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    116  1.12  mrg                  parameter :: omp_atv_sequential = omp_atv_serialized
    117  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    118  1.12  mrg                  parameter :: omp_atv_private = 6
    119  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    120  1.12  mrg                  parameter :: omp_atv_all = 7
    121  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    122  1.12  mrg                  parameter :: omp_atv_thread = 8
    123  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    124  1.12  mrg                  parameter :: omp_atv_pteam = 9
    125  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    126  1.12  mrg                  parameter :: omp_atv_cgroup = 10
    127  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    128  1.12  mrg                  parameter :: omp_atv_default_mem_fb = 11
    129  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    130  1.12  mrg                  parameter :: omp_atv_null_fb = 12
    131  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    132  1.12  mrg                  parameter :: omp_atv_abort_fb = 13
    133  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    134  1.12  mrg                  parameter :: omp_atv_allocator_fb = 14
    135  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    136  1.12  mrg                  parameter :: omp_atv_environment = 15
    137  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    138  1.12  mrg                  parameter :: omp_atv_nearest = 16
    139  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    140  1.12  mrg                  parameter :: omp_atv_blocked = 17
    141  1.12  mrg         integer (kind=omp_alloctrait_val_kind), &
    142  1.12  mrg                  parameter :: omp_atv_interleaved = 18
    143  1.12  mrg         integer (kind=omp_allocator_handle_kind), &
    144  1.12  mrg                  parameter :: omp_null_allocator = 0
    145  1.12  mrg         integer (kind=omp_allocator_handle_kind), &
    146  1.12  mrg                  parameter :: omp_default_mem_alloc = 1
    147  1.12  mrg         integer (kind=omp_allocator_handle_kind), &
    148  1.12  mrg                  parameter :: omp_large_cap_mem_alloc = 2
    149  1.12  mrg         integer (kind=omp_allocator_handle_kind), &
    150  1.12  mrg                  parameter :: omp_const_mem_alloc = 3
    151  1.12  mrg         integer (kind=omp_allocator_handle_kind), &
    152  1.12  mrg                  parameter :: omp_high_bw_mem_alloc = 4
    153  1.12  mrg         integer (kind=omp_allocator_handle_kind), &
    154  1.12  mrg                  parameter :: omp_low_lat_mem_alloc = 5
    155  1.12  mrg         integer (kind=omp_allocator_handle_kind), &
    156  1.12  mrg                  parameter :: omp_cgroup_mem_alloc = 6
    157  1.12  mrg         integer (kind=omp_allocator_handle_kind), &
    158  1.12  mrg                  parameter :: omp_pteam_mem_alloc = 7
    159  1.12  mrg         integer (kind=omp_allocator_handle_kind), &
    160  1.12  mrg                  parameter :: omp_thread_mem_alloc = 8
    161  1.12  mrg         integer (omp_memspace_handle_kind), &
    162  1.12  mrg                  parameter :: omp_default_mem_space = 0
    163  1.12  mrg         integer (omp_memspace_handle_kind), &
    164  1.12  mrg                  parameter :: omp_large_cap_mem_space = 1
    165  1.12  mrg         integer (omp_memspace_handle_kind), &
    166  1.12  mrg                  parameter :: omp_const_mem_space = 2
    167  1.12  mrg         integer (omp_memspace_handle_kind), &
    168  1.12  mrg                  parameter :: omp_high_bw_mem_space = 3
    169  1.12  mrg         integer (omp_memspace_handle_kind), &
    170  1.12  mrg                  parameter :: omp_low_lat_mem_space = 4
    171  1.12  mrg 
    172  1.12  mrg         type omp_alloctrait
    173  1.12  mrg           integer (kind=omp_alloctrait_key_kind) key
    174  1.12  mrg           integer (kind=omp_alloctrait_val_kind) value
    175  1.12  mrg         end type omp_alloctrait
    176   1.1  mrg       end module
    177   1.1  mrg 
    178   1.1  mrg       module omp_lib
    179   1.1  mrg         use omp_lib_kinds
    180   1.1  mrg         implicit none
    181   1.8  mrg         integer, parameter :: openmp_version = 201511
    182   1.1  mrg 
    183   1.1  mrg         interface
    184   1.5  mrg           subroutine omp_init_lock (svar)
    185   1.1  mrg             use omp_lib_kinds
    186   1.5  mrg             integer (omp_lock_kind), intent (out) :: svar
    187   1.1  mrg           end subroutine omp_init_lock
    188   1.1  mrg         end interface
    189   1.1  mrg 
    190   1.1  mrg         interface
    191   1.6  mrg           subroutine omp_init_lock_with_hint (svar, hint)
    192   1.6  mrg             use omp_lib_kinds
    193   1.6  mrg             integer (omp_lock_kind), intent (out) :: svar
    194   1.6  mrg             integer (omp_lock_hint_kind), intent (in) :: hint
    195   1.6  mrg           end subroutine omp_init_lock_with_hint
    196   1.6  mrg         end interface
    197   1.6  mrg 
    198   1.6  mrg         interface
    199   1.5  mrg           subroutine omp_init_nest_lock (nvar)
    200   1.1  mrg             use omp_lib_kinds
    201   1.5  mrg             integer (omp_nest_lock_kind), intent (out) :: nvar
    202   1.1  mrg           end subroutine omp_init_nest_lock
    203   1.1  mrg         end interface
    204   1.1  mrg 
    205   1.1  mrg         interface
    206   1.6  mrg           subroutine omp_init_nest_lock_with_hint (nvar, hint)
    207   1.6  mrg             use omp_lib_kinds
    208   1.6  mrg             integer (omp_nest_lock_kind), intent (out) :: nvar
    209   1.6  mrg             integer (omp_lock_hint_kind), intent (in) :: hint
    210   1.6  mrg           end subroutine omp_init_nest_lock_with_hint
    211   1.6  mrg         end interface
    212   1.6  mrg 
    213   1.6  mrg         interface
    214   1.5  mrg           subroutine omp_destroy_lock (svar)
    215   1.1  mrg             use omp_lib_kinds
    216   1.5  mrg             integer (omp_lock_kind), intent (inout) :: svar
    217   1.1  mrg           end subroutine omp_destroy_lock
    218   1.1  mrg         end interface
    219   1.1  mrg 
    220   1.1  mrg         interface
    221   1.5  mrg           subroutine omp_destroy_nest_lock (nvar)
    222   1.1  mrg             use omp_lib_kinds
    223   1.5  mrg             integer (omp_nest_lock_kind), intent (inout) :: nvar
    224   1.1  mrg           end subroutine omp_destroy_nest_lock
    225   1.1  mrg         end interface
    226   1.1  mrg 
    227   1.1  mrg         interface
    228   1.5  mrg           subroutine omp_set_lock (svar)
    229   1.1  mrg             use omp_lib_kinds
    230   1.5  mrg             integer (omp_lock_kind), intent (inout) :: svar
    231   1.1  mrg           end subroutine omp_set_lock
    232   1.1  mrg         end interface
    233   1.1  mrg 
    234   1.1  mrg         interface
    235   1.5  mrg           subroutine omp_set_nest_lock (nvar)
    236   1.1  mrg             use omp_lib_kinds
    237   1.5  mrg             integer (omp_nest_lock_kind), intent (inout) :: nvar
    238   1.1  mrg           end subroutine omp_set_nest_lock
    239   1.1  mrg         end interface
    240   1.1  mrg 
    241   1.1  mrg         interface
    242   1.5  mrg           subroutine omp_unset_lock (svar)
    243   1.1  mrg             use omp_lib_kinds
    244   1.5  mrg             integer (omp_lock_kind), intent (inout) :: svar
    245   1.1  mrg           end subroutine omp_unset_lock
    246   1.1  mrg         end interface
    247   1.1  mrg 
    248   1.1  mrg         interface
    249   1.5  mrg           subroutine omp_unset_nest_lock (nvar)
    250   1.1  mrg             use omp_lib_kinds
    251   1.5  mrg             integer (omp_nest_lock_kind), intent (inout) :: nvar
    252   1.1  mrg           end subroutine omp_unset_nest_lock
    253   1.1  mrg         end interface
    254   1.1  mrg 
    255   1.1  mrg         interface omp_set_dynamic
    256   1.5  mrg           subroutine omp_set_dynamic (dynamic_threads)
    257   1.5  mrg             logical (4), intent (in) :: dynamic_threads
    258   1.1  mrg           end subroutine omp_set_dynamic
    259   1.5  mrg           subroutine omp_set_dynamic_8 (dynamic_threads)
    260   1.5  mrg             logical (8), intent (in) :: dynamic_threads
    261   1.1  mrg           end subroutine omp_set_dynamic_8
    262   1.1  mrg         end interface
    263   1.1  mrg 
    264   1.1  mrg         interface omp_set_nested
    265   1.5  mrg           subroutine omp_set_nested (nested)
    266   1.5  mrg             logical (4), intent (in) :: nested
    267   1.1  mrg           end subroutine omp_set_nested
    268   1.5  mrg           subroutine omp_set_nested_8 (nested)
    269   1.5  mrg             logical (8), intent (in) :: nested
    270   1.1  mrg           end subroutine omp_set_nested_8
    271   1.1  mrg         end interface
    272   1.1  mrg 
    273   1.1  mrg         interface omp_set_num_threads
    274   1.5  mrg           subroutine omp_set_num_threads (num_threads)
    275   1.5  mrg             integer (4), intent (in) :: num_threads
    276   1.1  mrg           end subroutine omp_set_num_threads
    277   1.5  mrg           subroutine omp_set_num_threads_8 (num_threads)
    278   1.5  mrg             integer (8), intent (in) :: num_threads
    279   1.1  mrg           end subroutine omp_set_num_threads_8
    280   1.1  mrg         end interface
    281   1.1  mrg 
    282   1.1  mrg         interface
    283   1.1  mrg           function omp_get_dynamic ()
    284   1.3  mrg             logical (4) :: omp_get_dynamic
    285   1.1  mrg           end function omp_get_dynamic
    286   1.1  mrg         end interface
    287   1.1  mrg 
    288   1.1  mrg         interface
    289   1.1  mrg           function omp_get_nested ()
    290   1.3  mrg             logical (4) :: omp_get_nested
    291   1.1  mrg           end function omp_get_nested
    292   1.1  mrg         end interface
    293   1.1  mrg 
    294   1.1  mrg         interface
    295   1.1  mrg           function omp_in_parallel ()
    296   1.3  mrg             logical (4) :: omp_in_parallel
    297   1.1  mrg           end function omp_in_parallel
    298   1.1  mrg         end interface
    299   1.1  mrg 
    300   1.1  mrg         interface
    301   1.5  mrg           function omp_test_lock (svar)
    302   1.1  mrg             use omp_lib_kinds
    303   1.3  mrg             logical (4) :: omp_test_lock
    304   1.5  mrg             integer (omp_lock_kind), intent (inout) :: svar
    305   1.1  mrg           end function omp_test_lock
    306   1.1  mrg         end interface
    307   1.1  mrg 
    308   1.1  mrg         interface
    309   1.1  mrg           function omp_get_max_threads ()
    310   1.3  mrg             integer (4) :: omp_get_max_threads
    311   1.1  mrg           end function omp_get_max_threads
    312   1.1  mrg         end interface
    313   1.1  mrg 
    314   1.1  mrg         interface
    315   1.1  mrg           function omp_get_num_procs ()
    316   1.3  mrg             integer (4) :: omp_get_num_procs
    317   1.1  mrg           end function omp_get_num_procs
    318   1.1  mrg         end interface
    319   1.1  mrg 
    320   1.1  mrg         interface
    321   1.1  mrg           function omp_get_num_threads ()
    322   1.3  mrg             integer (4) :: omp_get_num_threads
    323   1.1  mrg           end function omp_get_num_threads
    324   1.1  mrg         end interface
    325   1.1  mrg 
    326   1.1  mrg         interface
    327   1.1  mrg           function omp_get_thread_num ()
    328   1.3  mrg             integer (4) :: omp_get_thread_num
    329   1.1  mrg           end function omp_get_thread_num
    330   1.1  mrg         end interface
    331   1.1  mrg 
    332   1.1  mrg         interface
    333   1.5  mrg           function omp_test_nest_lock (nvar)
    334   1.1  mrg             use omp_lib_kinds
    335   1.3  mrg             integer (4) :: omp_test_nest_lock
    336   1.5  mrg             integer (omp_nest_lock_kind), intent (inout) :: nvar
    337   1.1  mrg           end function omp_test_nest_lock
    338   1.1  mrg         end interface
    339   1.1  mrg 
    340   1.1  mrg         interface
    341   1.1  mrg           function omp_get_wtick ()
    342   1.1  mrg             double precision :: omp_get_wtick
    343   1.1  mrg           end function omp_get_wtick
    344   1.1  mrg         end interface
    345   1.1  mrg 
    346   1.1  mrg         interface
    347   1.1  mrg           function omp_get_wtime ()
    348   1.1  mrg             double precision :: omp_get_wtime
    349   1.1  mrg           end function omp_get_wtime
    350   1.1  mrg         end interface
    351   1.1  mrg 
    352   1.1  mrg         interface omp_set_schedule
    353   1.6  mrg           subroutine omp_set_schedule (kind, chunk_size)
    354   1.1  mrg             use omp_lib_kinds
    355   1.1  mrg             integer (omp_sched_kind), intent (in) :: kind
    356   1.6  mrg             integer (4), intent (in) :: chunk_size
    357   1.1  mrg           end subroutine omp_set_schedule
    358   1.6  mrg           subroutine omp_set_schedule_8 (kind, chunk_size)
    359   1.1  mrg             use omp_lib_kinds
    360   1.1  mrg             integer (omp_sched_kind), intent (in) :: kind
    361   1.6  mrg             integer (8), intent (in) :: chunk_size
    362   1.1  mrg           end subroutine omp_set_schedule_8
    363   1.1  mrg          end interface
    364   1.1  mrg 
    365   1.1  mrg         interface omp_get_schedule
    366   1.6  mrg           subroutine omp_get_schedule (kind, chunk_size)
    367   1.1  mrg             use omp_lib_kinds
    368   1.1  mrg             integer (omp_sched_kind), intent (out) :: kind
    369   1.6  mrg             integer (4), intent (out) :: chunk_size
    370   1.1  mrg           end subroutine omp_get_schedule
    371   1.6  mrg           subroutine omp_get_schedule_8 (kind, chunk_size)
    372   1.1  mrg             use omp_lib_kinds
    373   1.1  mrg             integer (omp_sched_kind), intent (out) :: kind
    374   1.6  mrg             integer (8), intent (out) :: chunk_size
    375   1.1  mrg           end subroutine omp_get_schedule_8
    376   1.1  mrg          end interface
    377   1.1  mrg 
    378   1.1  mrg         interface
    379   1.1  mrg           function omp_get_thread_limit ()
    380   1.3  mrg             integer (4) :: omp_get_thread_limit
    381   1.1  mrg           end function omp_get_thread_limit
    382   1.1  mrg         end interface
    383   1.1  mrg 
    384   1.1  mrg         interface omp_set_max_active_levels
    385   1.1  mrg           subroutine omp_set_max_active_levels (max_levels)
    386   1.1  mrg             integer (4), intent (in) :: max_levels
    387   1.1  mrg           end subroutine omp_set_max_active_levels
    388   1.1  mrg           subroutine omp_set_max_active_levels_8 (max_levels)
    389   1.1  mrg             integer (8), intent (in) :: max_levels
    390   1.1  mrg           end subroutine omp_set_max_active_levels_8
    391   1.1  mrg         end interface
    392   1.1  mrg 
    393   1.1  mrg         interface
    394   1.1  mrg           function omp_get_max_active_levels ()
    395   1.3  mrg             integer (4) :: omp_get_max_active_levels
    396   1.1  mrg           end function omp_get_max_active_levels
    397   1.1  mrg         end interface
    398   1.1  mrg 
    399   1.1  mrg         interface
    400  1.12  mrg           function omp_get_supported_active_levels ()
    401  1.12  mrg             integer (4) :: omp_get_supported_active_levels
    402  1.12  mrg           end function omp_get_supported_active_levels
    403  1.12  mrg         end interface
    404  1.12  mrg 
    405  1.12  mrg         interface
    406   1.1  mrg           function omp_get_level ()
    407   1.3  mrg             integer (4) :: omp_get_level
    408   1.1  mrg           end function omp_get_level
    409   1.1  mrg         end interface
    410   1.1  mrg 
    411   1.1  mrg         interface omp_get_ancestor_thread_num
    412   1.1  mrg           function omp_get_ancestor_thread_num (level)
    413   1.1  mrg             integer (4), intent (in) :: level
    414   1.3  mrg             integer (4) :: omp_get_ancestor_thread_num
    415   1.1  mrg           end function omp_get_ancestor_thread_num
    416   1.1  mrg           function omp_get_ancestor_thread_num_8 (level)
    417   1.1  mrg             integer (8), intent (in) :: level
    418   1.3  mrg             integer (4) :: omp_get_ancestor_thread_num_8
    419   1.1  mrg           end function omp_get_ancestor_thread_num_8
    420   1.1  mrg         end interface
    421   1.1  mrg 
    422   1.1  mrg         interface omp_get_team_size
    423   1.1  mrg           function omp_get_team_size (level)
    424   1.1  mrg             integer (4), intent (in) :: level
    425   1.3  mrg             integer (4) :: omp_get_team_size
    426   1.1  mrg           end function omp_get_team_size
    427   1.1  mrg           function omp_get_team_size_8 (level)
    428   1.1  mrg             integer (8), intent (in) :: level
    429   1.3  mrg             integer (4) :: omp_get_team_size_8
    430   1.1  mrg           end function omp_get_team_size_8
    431   1.1  mrg         end interface
    432   1.1  mrg 
    433   1.1  mrg         interface
    434   1.1  mrg           function omp_get_active_level ()
    435   1.3  mrg             integer (4) :: omp_get_active_level
    436   1.1  mrg           end function omp_get_active_level
    437   1.1  mrg         end interface
    438   1.1  mrg 
    439   1.3  mrg         interface
    440   1.3  mrg           function omp_in_final ()
    441   1.3  mrg             logical (4) :: omp_in_final
    442   1.3  mrg           end function omp_in_final
    443   1.3  mrg         end interface
    444   1.3  mrg 
    445   1.5  mrg         interface
    446   1.5  mrg           function omp_get_cancellation ()
    447   1.5  mrg             logical (4) :: omp_get_cancellation
    448   1.5  mrg           end function omp_get_cancellation
    449   1.5  mrg         end interface
    450   1.5  mrg 
    451   1.5  mrg         interface
    452   1.5  mrg           function omp_get_proc_bind ()
    453   1.5  mrg             use omp_lib_kinds
    454   1.5  mrg             integer (omp_proc_bind_kind) :: omp_get_proc_bind
    455   1.5  mrg           end function omp_get_proc_bind
    456   1.5  mrg         end interface
    457   1.5  mrg 
    458   1.6  mrg         interface
    459   1.6  mrg           function omp_get_num_places ()
    460   1.6  mrg             integer (4) :: omp_get_num_places
    461   1.6  mrg           end function omp_get_num_places
    462   1.6  mrg         end interface
    463   1.6  mrg 
    464   1.6  mrg         interface omp_get_place_num_procs
    465   1.6  mrg           function omp_get_place_num_procs (place_num)
    466   1.6  mrg             integer (4), intent(in) :: place_num
    467   1.6  mrg             integer (4) :: omp_get_place_num_procs
    468   1.6  mrg           end function omp_get_place_num_procs
    469   1.6  mrg 
    470   1.6  mrg           function omp_get_place_num_procs_8 (place_num)
    471   1.6  mrg             integer (8), intent(in) :: place_num
    472   1.6  mrg             integer (4) :: omp_get_place_num_procs_8
    473   1.6  mrg           end function omp_get_place_num_procs_8
    474   1.6  mrg         end interface
    475   1.6  mrg 
    476   1.6  mrg         interface omp_get_place_proc_ids
    477   1.6  mrg           subroutine omp_get_place_proc_ids (place_num, ids)
    478   1.6  mrg             integer (4), intent(in) :: place_num
    479   1.6  mrg             integer (4), intent(out) :: ids(*)
    480   1.6  mrg           end subroutine omp_get_place_proc_ids
    481   1.6  mrg 
    482   1.6  mrg           subroutine omp_get_place_proc_ids_8 (place_num, ids)
    483   1.6  mrg             integer (8), intent(in) :: place_num
    484   1.6  mrg             integer (8), intent(out) :: ids(*)
    485   1.6  mrg           end subroutine omp_get_place_proc_ids_8
    486   1.6  mrg         end interface
    487   1.6  mrg 
    488   1.6  mrg         interface
    489   1.6  mrg           function omp_get_place_num ()
    490   1.6  mrg             integer (4) :: omp_get_place_num
    491   1.6  mrg           end function omp_get_place_num
    492   1.6  mrg         end interface
    493   1.6  mrg 
    494   1.6  mrg         interface
    495   1.6  mrg           function omp_get_partition_num_places ()
    496   1.6  mrg             integer (4) :: omp_get_partition_num_places
    497   1.6  mrg           end function omp_get_partition_num_places
    498   1.6  mrg         end interface
    499   1.6  mrg 
    500   1.6  mrg         interface omp_get_partition_place_nums
    501   1.6  mrg           subroutine omp_get_partition_place_nums (place_nums)
    502   1.6  mrg             integer (4), intent(out) :: place_nums(*)
    503   1.6  mrg           end subroutine omp_get_partition_place_nums
    504   1.6  mrg 
    505   1.6  mrg           subroutine omp_get_partition_place_nums_8 (place_nums)
    506   1.6  mrg             integer (8), intent(out) :: place_nums(*)
    507   1.6  mrg           end subroutine omp_get_partition_place_nums_8
    508   1.6  mrg         end interface
    509   1.6  mrg 
    510   1.5  mrg         interface omp_set_default_device
    511   1.5  mrg           subroutine omp_set_default_device (device_num)
    512   1.5  mrg             integer (4), intent (in) :: device_num
    513   1.5  mrg           end subroutine omp_set_default_device
    514   1.5  mrg           subroutine omp_set_default_device_8 (device_num)
    515   1.5  mrg             integer (8), intent (in) :: device_num
    516   1.5  mrg           end subroutine omp_set_default_device_8
    517   1.5  mrg         end interface
    518   1.5  mrg 
    519   1.5  mrg         interface
    520   1.5  mrg           function omp_get_default_device ()
    521   1.5  mrg             integer (4) :: omp_get_default_device
    522   1.5  mrg           end function omp_get_default_device
    523   1.5  mrg         end interface
    524   1.5  mrg 
    525   1.5  mrg         interface
    526   1.5  mrg           function omp_get_num_devices ()
    527   1.5  mrg             integer (4) :: omp_get_num_devices
    528   1.5  mrg           end function omp_get_num_devices
    529   1.5  mrg         end interface
    530   1.5  mrg 
    531   1.5  mrg         interface
    532   1.5  mrg           function omp_get_num_teams ()
    533   1.5  mrg             integer (4) :: omp_get_num_teams
    534   1.5  mrg           end function omp_get_num_teams
    535   1.5  mrg         end interface
    536   1.5  mrg 
    537   1.5  mrg         interface
    538   1.5  mrg           function omp_get_team_num ()
    539   1.5  mrg             integer (4) :: omp_get_team_num
    540   1.5  mrg           end function omp_get_team_num
    541   1.5  mrg         end interface
    542   1.5  mrg 
    543   1.5  mrg         interface
    544   1.5  mrg           function omp_is_initial_device ()
    545   1.5  mrg             logical (4) :: omp_is_initial_device
    546   1.5  mrg           end function omp_is_initial_device
    547   1.5  mrg         end interface
    548   1.5  mrg 
    549   1.6  mrg         interface
    550   1.6  mrg           function omp_get_initial_device ()
    551   1.6  mrg             integer (4) :: omp_get_initial_device
    552   1.6  mrg           end function omp_get_initial_device
    553   1.6  mrg         end interface
    554   1.6  mrg 
    555   1.6  mrg         interface
    556  1.12  mrg           function omp_get_device_num ()
    557  1.12  mrg             integer (4) :: omp_get_device_num
    558  1.12  mrg           end function omp_get_device_num
    559  1.12  mrg         end interface
    560  1.12  mrg 
    561  1.12  mrg         interface
    562   1.6  mrg           function omp_get_max_task_priority ()
    563   1.6  mrg             integer (4) :: omp_get_max_task_priority
    564   1.6  mrg           end function omp_get_max_task_priority
    565   1.6  mrg         end interface
    566   1.6  mrg 
    567  1.12  mrg         interface omp_set_num_teams
    568  1.12  mrg           subroutine omp_set_num_teams (num_teams)
    569  1.12  mrg             integer (4), intent (in) :: num_teams
    570  1.12  mrg           end subroutine omp_set_num_teams
    571  1.12  mrg           subroutine omp_set_num_teams_8 (num_teams)
    572  1.12  mrg             integer (8), intent (in) :: num_teams
    573  1.12  mrg           end subroutine omp_set_num_teams_8
    574  1.12  mrg         end interface
    575  1.12  mrg 
    576  1.12  mrg         interface
    577  1.12  mrg           function omp_get_max_teams ()
    578  1.12  mrg             integer (4) :: omp_get_max_teams
    579  1.12  mrg           end function omp_get_max_teams
    580  1.12  mrg         end interface
    581  1.12  mrg 
    582  1.12  mrg         interface omp_set_teams_thread_limit
    583  1.12  mrg           subroutine omp_set_teams_thread_limit (thread_limit)
    584  1.12  mrg             integer (4), intent (in) :: thread_limit
    585  1.12  mrg           end subroutine omp_set_teams_thread_limit
    586  1.12  mrg           subroutine omp_set_teams_thread_limit_8 (thread_limit)
    587  1.12  mrg             integer (8), intent (in) :: thread_limit
    588  1.12  mrg           end subroutine omp_set_teams_thread_limit_8
    589  1.12  mrg         end interface
    590  1.12  mrg 
    591  1.12  mrg         interface
    592  1.12  mrg           function omp_get_teams_thread_limit ()
    593  1.12  mrg             integer (4) :: omp_get_teams_thread_limit
    594  1.12  mrg           end function omp_get_teams_thread_limit
    595  1.12  mrg         end interface
    596  1.12  mrg 
    597  1.12  mrg         interface
    598  1.12  mrg           subroutine omp_fulfill_event (event)
    599  1.12  mrg             use omp_lib_kinds
    600  1.12  mrg             integer (kind=omp_event_handle_kind), &
    601  1.12  mrg               value, intent(in) :: event
    602  1.12  mrg           end subroutine omp_fulfill_event
    603  1.12  mrg         end interface
    604  1.12  mrg 
    605  1.10  mrg         interface
    606  1.10  mrg           subroutine omp_set_affinity_format (format)
    607  1.10  mrg             character(len=*), intent(in) :: format
    608  1.10  mrg           end subroutine omp_set_affinity_format
    609  1.10  mrg         end interface
    610  1.10  mrg 
    611  1.10  mrg         interface
    612  1.10  mrg           function omp_get_affinity_format (buffer)
    613  1.10  mrg             integer (4) :: omp_get_affinity_format
    614  1.10  mrg             character(len=*), intent(out) :: buffer
    615  1.10  mrg           end function omp_get_affinity_format
    616  1.10  mrg         end interface
    617  1.10  mrg 
    618  1.10  mrg         interface
    619  1.10  mrg           subroutine omp_display_affinity (format)
    620  1.10  mrg             character(len=*), intent(in) :: format
    621  1.10  mrg           end subroutine omp_display_affinity
    622  1.10  mrg         end interface
    623  1.10  mrg 
    624  1.10  mrg         interface
    625  1.10  mrg           function omp_capture_affinity (buffer, format)
    626  1.10  mrg             integer (4) :: omp_capture_affinity
    627  1.10  mrg             character(len=*), intent(out) :: buffer
    628  1.10  mrg             character(len=*), intent(in) :: format
    629  1.10  mrg           end function omp_capture_affinity
    630  1.10  mrg         end interface
    631  1.10  mrg 
    632  1.10  mrg         interface
    633  1.10  mrg           function omp_pause_resource (kind, device_num)
    634  1.10  mrg             use omp_lib_kinds
    635  1.10  mrg             integer (4) :: omp_pause_resource
    636  1.10  mrg             integer (kind=omp_pause_resource_kind), &
    637  1.10  mrg               intent(in) :: kind
    638  1.10  mrg             integer (4) :: device_num
    639  1.10  mrg           end function
    640  1.10  mrg         end interface
    641  1.10  mrg 
    642  1.10  mrg         interface
    643  1.10  mrg           function omp_pause_resource_all (kind)
    644  1.10  mrg             use omp_lib_kinds
    645  1.10  mrg             integer (4) :: omp_pause_resource_all
    646  1.10  mrg             integer (kind=omp_pause_resource_kind), &
    647  1.10  mrg               intent(in) :: kind
    648  1.10  mrg           end function
    649  1.10  mrg         end interface
    650  1.10  mrg 
    651  1.12  mrg         interface omp_init_allocator
    652  1.12  mrg           function omp_init_allocator (memspace, ntraits, traits)
    653  1.12  mrg             use omp_lib_kinds
    654  1.12  mrg             integer (kind=omp_allocator_handle_kind) omp_init_allocator
    655  1.12  mrg             integer (kind=omp_memspace_handle_kind), &
    656  1.12  mrg               intent(in) :: memspace
    657  1.12  mrg             integer (4), intent(in) :: ntraits
    658  1.12  mrg             type (omp_alloctrait), intent(in) :: traits(*)
    659  1.12  mrg           end function
    660  1.12  mrg           function omp_init_allocator_8 (memspace, ntraits, traits)
    661  1.12  mrg             use omp_lib_kinds
    662  1.12  mrg             integer (kind=omp_allocator_handle_kind) omp_init_allocator_8
    663  1.12  mrg             integer (kind=omp_memspace_handle_kind), &
    664  1.12  mrg               intent(in) :: memspace
    665  1.12  mrg             integer (8), intent(in) :: ntraits
    666  1.12  mrg             type (omp_alloctrait), intent(in) :: traits(*)
    667  1.12  mrg           end function
    668  1.12  mrg         end interface
    669  1.12  mrg 
    670  1.12  mrg         interface
    671  1.12  mrg           subroutine omp_destroy_allocator (allocator)
    672  1.12  mrg             use omp_lib_kinds
    673  1.12  mrg             integer (kind=omp_allocator_handle_kind), &
    674  1.12  mrg               intent(in) :: allocator
    675  1.12  mrg           end subroutine
    676  1.12  mrg         end interface
    677  1.12  mrg 
    678  1.12  mrg         interface
    679  1.12  mrg           subroutine omp_set_default_allocator (allocator)
    680  1.12  mrg             use omp_lib_kinds
    681  1.12  mrg             integer (kind=omp_allocator_handle_kind), &
    682  1.12  mrg               intent(in) :: allocator
    683  1.12  mrg           end subroutine
    684  1.12  mrg         end interface
    685  1.12  mrg 
    686  1.12  mrg         interface
    687  1.12  mrg           function omp_get_default_allocator ()
    688  1.12  mrg             use omp_lib_kinds
    689  1.12  mrg             integer (kind=omp_allocator_handle_kind) &
    690  1.12  mrg                omp_get_default_allocator
    691  1.12  mrg           end function
    692  1.12  mrg         end interface
    693  1.12  mrg 
    694  1.12  mrg         interface omp_display_env
    695  1.12  mrg           subroutine omp_display_env (verbose)
    696  1.12  mrg             logical (4),intent (in) :: verbose
    697  1.12  mrg           end subroutine omp_display_env
    698  1.12  mrg           subroutine omp_display_env_8 (verbose)
    699  1.12  mrg             logical (8),intent (in) :: verbose
    700  1.12  mrg           end subroutine omp_display_env_8
    701  1.12  mrg         end interface
    702  1.12  mrg 
    703  1.12  mrg         interface
    704  1.12  mrg           function omp_alloc (size, allocator) bind(c)
    705  1.12  mrg             use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
    706  1.12  mrg             import :: omp_allocator_handle_kind
    707  1.12  mrg             type(c_ptr) :: omp_alloc
    708  1.12  mrg             integer(c_size_t), value :: size
    709  1.12  mrg             integer(omp_allocator_handle_kind), value :: allocator
    710  1.12  mrg           end function omp_alloc
    711  1.12  mrg         end interface
    712  1.12  mrg 
    713  1.12  mrg         interface
    714  1.12  mrg           function omp_aligned_alloc (alignment, size, allocator) bind(c)
    715  1.12  mrg             use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
    716  1.12  mrg             import :: omp_allocator_handle_kind
    717  1.12  mrg             type(c_ptr) :: omp_aligned_alloc
    718  1.12  mrg             integer(c_size_t), value :: alignment, size
    719  1.12  mrg             integer(omp_allocator_handle_kind), value :: allocator
    720  1.12  mrg           end function omp_aligned_alloc
    721  1.12  mrg         end interface
    722  1.12  mrg 
    723  1.12  mrg         interface
    724  1.12  mrg           subroutine omp_free(ptr, allocator) bind(c)
    725  1.12  mrg             use, intrinsic :: iso_c_binding, only : c_ptr
    726  1.12  mrg             import :: omp_allocator_handle_kind
    727  1.12  mrg             type(c_ptr), value :: ptr
    728  1.12  mrg             integer(omp_allocator_handle_kind), value :: allocator
    729  1.12  mrg           end subroutine omp_free
    730  1.12  mrg         end interface
    731  1.12  mrg 
    732  1.12  mrg         interface
    733  1.12  mrg           function omp_calloc (nmemb, size, allocator) bind(c)
    734  1.12  mrg             use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
    735  1.12  mrg             import :: omp_allocator_handle_kind
    736  1.12  mrg             type(c_ptr) :: omp_calloc
    737  1.12  mrg             integer(c_size_t), value :: nmemb, size
    738  1.12  mrg             integer(omp_allocator_handle_kind), value :: allocator
    739  1.12  mrg           end function omp_calloc
    740  1.12  mrg         end interface
    741  1.12  mrg 
    742  1.12  mrg         interface
    743  1.12  mrg           function omp_aligned_calloc (alignment, nmemb, size, allocator) bind(c)
    744  1.12  mrg             use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
    745  1.12  mrg             import :: omp_allocator_handle_kind
    746  1.12  mrg             type(c_ptr) :: omp_aligned_calloc
    747  1.12  mrg             integer(c_size_t), value :: alignment, nmemb, size
    748  1.12  mrg             integer(omp_allocator_handle_kind), value :: allocator
    749  1.12  mrg           end function omp_aligned_calloc
    750  1.12  mrg         end interface
    751  1.12  mrg 
    752  1.12  mrg         interface
    753  1.12  mrg           function omp_realloc (ptr, size, allocator, free_allocator) bind(c)
    754  1.12  mrg             use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
    755  1.12  mrg             import :: omp_allocator_handle_kind
    756  1.12  mrg             type(c_ptr) :: omp_realloc
    757  1.12  mrg             type(c_ptr), value :: ptr
    758  1.12  mrg             integer(c_size_t), value :: size
    759  1.12  mrg             integer(omp_allocator_handle_kind), value :: allocator, free_allocator
    760  1.12  mrg           end function omp_realloc
    761  1.12  mrg         end interface
    762  1.12  mrg 
    763  1.12  mrg         interface
    764  1.12  mrg           function omp_target_alloc (size, device_num) bind(c)
    765  1.12  mrg             use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
    766  1.12  mrg             type(c_ptr) :: omp_target_alloc
    767  1.12  mrg             integer(c_size_t), value :: size
    768  1.12  mrg             integer(c_int), value :: device_num
    769  1.12  mrg           end function omp_target_alloc
    770  1.12  mrg         end interface
    771  1.12  mrg 
    772  1.12  mrg         interface
    773  1.12  mrg           subroutine omp_target_free (device_ptr, device_num) bind(c)
    774  1.12  mrg             use, intrinsic :: iso_c_binding, only : c_ptr, c_int
    775  1.12  mrg             type(c_ptr), value :: device_ptr
    776  1.12  mrg             integer(c_int), value :: device_num
    777  1.12  mrg           end subroutine omp_target_free
    778  1.12  mrg         end interface
    779  1.12  mrg 
    780  1.12  mrg         interface
    781  1.12  mrg           function omp_target_is_present (ptr, device_num) bind(c)
    782  1.12  mrg             use, intrinsic :: iso_c_binding, only : c_ptr, c_int
    783  1.12  mrg             integer(c_int) :: omp_target_is_present
    784  1.12  mrg             type(c_ptr), value :: ptr
    785  1.12  mrg             integer(c_int), value :: device_num
    786  1.12  mrg           end function omp_target_is_present
    787  1.12  mrg         end interface
    788  1.12  mrg 
    789  1.12  mrg         interface
    790  1.12  mrg           function omp_target_memcpy (dst, src, length, dst_offset, &
    791  1.12  mrg                                       src_offset, dst_device_num, &
    792  1.12  mrg                                       src_device_num) bind(c)
    793  1.12  mrg             use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
    794  1.12  mrg             integer(c_int) :: omp_target_memcpy
    795  1.12  mrg             type(c_ptr), value :: dst, src
    796  1.12  mrg             integer(c_size_t), value :: length, dst_offset, src_offset
    797  1.12  mrg             integer(c_int), value :: dst_device_num, src_device_num
    798  1.12  mrg           end function omp_target_memcpy
    799  1.12  mrg         end interface
    800  1.12  mrg 
    801  1.12  mrg         interface
    802  1.12  mrg           function omp_target_memcpy_rect (dst,src,element_size, num_dims, &
    803  1.12  mrg                                            volume, dst_offsets, src_offsets, &
    804  1.12  mrg                                            dst_dimensions, src_dimensions, &
    805  1.12  mrg                                            dst_device_num, src_device_num) &
    806  1.12  mrg               bind(c)
    807  1.12  mrg             use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
    808  1.12  mrg             integer(c_int) :: omp_target_memcpy_rect
    809  1.12  mrg             type(c_ptr), value :: dst, src
    810  1.12  mrg             integer(c_size_t), value :: element_size
    811  1.12  mrg             integer(c_int), value :: num_dims, dst_device_num, src_device_num
    812  1.12  mrg             integer(c_size_t), intent(in) :: volume(*), dst_offsets(*),  &
    813  1.12  mrg                                              src_offsets(*), dst_dimensions(*), &
    814  1.12  mrg                                              src_dimensions(*)
    815  1.12  mrg           end function omp_target_memcpy_rect
    816  1.12  mrg         end interface
    817  1.12  mrg 
    818  1.12  mrg         interface
    819  1.12  mrg           function omp_target_associate_ptr (host_ptr, device_ptr, size, &
    820  1.12  mrg                                              device_offset, device_num) bind(c)
    821  1.12  mrg             use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
    822  1.12  mrg             integer(c_int) :: omp_target_associate_ptr
    823  1.12  mrg             type(c_ptr), value :: host_ptr, device_ptr
    824  1.12  mrg             integer(c_size_t), value :: size, device_offset
    825  1.12  mrg             integer(c_int), value :: device_num
    826  1.12  mrg           end function omp_target_associate_ptr
    827  1.12  mrg         end interface
    828  1.12  mrg 
    829  1.12  mrg         interface
    830  1.12  mrg           function omp_target_disassociate_ptr (ptr, device_num) bind(c)
    831  1.12  mrg             use, intrinsic :: iso_c_binding, only : c_ptr, c_int
    832  1.12  mrg             integer(c_int) :: omp_target_disassociate_ptr
    833  1.12  mrg             type(c_ptr), value :: ptr
    834  1.12  mrg             integer(c_int), value :: device_num
    835  1.12  mrg           end function omp_target_disassociate_ptr
    836  1.12  mrg         end interface
    837  1.12  mrg 
    838  1.12  mrg #if _OPENMP >= 201811
    839  1.12  mrg !GCC$ ATTRIBUTES DEPRECATED :: omp_get_nested, omp_set_nested
    840  1.12  mrg #endif
    841  1.12  mrg 
    842  1.12  mrg #if _OPENMP >= 202011
    843  1.12  mrg !GCC$ ATTRIBUTES DEPRECATED :: omp_proc_bind_master, omp_atv_sequential
    844  1.12  mrg #endif
    845  1.12  mrg 
    846   1.1  mrg       end module omp_lib
    847