Home | History | Annotate | Line # | Download | only in libgomp
openacc.f90 revision 1.1.1.8
      1      1.1  mrg !  OpenACC Runtime Library Definitions.
      2      1.1  mrg 
      3  1.1.1.8  mrg !  Copyright (C) 2014-2020 Free Software Foundation, Inc.
      4      1.1  mrg 
      5      1.1  mrg !  Contributed by Tobias Burnus <burnus@net-b.de>
      6      1.1  mrg !              and Mentor Embedded.
      7      1.1  mrg 
      8      1.1  mrg !  This file is part of the GNU Offloading and Multi Processing Library
      9      1.1  mrg !  (libgomp).
     10      1.1  mrg 
     11      1.1  mrg !  Libgomp is free software; you can redistribute it and/or modify it
     12      1.1  mrg !  under the terms of the GNU General Public License as published by
     13      1.1  mrg !  the Free Software Foundation; either version 3, or (at your option)
     14      1.1  mrg !  any later version.
     15      1.1  mrg 
     16      1.1  mrg !  Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
     17      1.1  mrg !  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     18      1.1  mrg !  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
     19      1.1  mrg !  more details.
     20      1.1  mrg 
     21      1.1  mrg !  Under Section 7 of GPL version 3, you are granted additional
     22      1.1  mrg !  permissions described in the GCC Runtime Library Exception, version
     23      1.1  mrg !  3.1, as published by the Free Software Foundation.
     24      1.1  mrg 
     25      1.1  mrg !  You should have received a copy of the GNU General Public License and
     26      1.1  mrg !  a copy of the GCC Runtime Library Exception along with this program;
     27      1.1  mrg !  see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
     28      1.1  mrg !  <http://www.gnu.org/licenses/>.
     29      1.1  mrg 
     30  1.1.1.8  mrg ! Keep in sync with config/accel/openacc.f90 and openacc_lib.h.
     31  1.1.1.8  mrg 
     32      1.1  mrg module openacc_kinds
     33      1.1  mrg   use iso_fortran_env, only: int32
     34      1.1  mrg   implicit none
     35      1.1  mrg 
     36  1.1.1.8  mrg   public
     37      1.1  mrg   private :: int32
     38      1.1  mrg 
     39  1.1.1.8  mrg   ! When adding items, also update 'public' setting in 'module openacc' below.
     40      1.1  mrg 
     41  1.1.1.8  mrg   integer, parameter :: acc_device_kind = int32
     42      1.1  mrg 
     43      1.1  mrg   ! Keep in sync with include/gomp-constants.h.
     44  1.1.1.8  mrg   integer (acc_device_kind), parameter :: acc_device_current = -1
     45      1.1  mrg   integer (acc_device_kind), parameter :: acc_device_none = 0
     46      1.1  mrg   integer (acc_device_kind), parameter :: acc_device_default = 1
     47      1.1  mrg   integer (acc_device_kind), parameter :: acc_device_host = 2
     48  1.1.1.2  mrg   ! integer (acc_device_kind), parameter :: acc_device_host_nonshm = 3 removed.
     49      1.1  mrg   integer (acc_device_kind), parameter :: acc_device_not_host = 4
     50      1.1  mrg   integer (acc_device_kind), parameter :: acc_device_nvidia = 5
     51  1.1.1.8  mrg   integer (acc_device_kind), parameter :: acc_device_radeon = 8
     52      1.1  mrg 
     53  1.1.1.8  mrg   integer, parameter :: acc_device_property_kind = int32
     54  1.1.1.8  mrg   ! OpenACC 2.6/2.7/3.0 used acc_device_property; in a spec update the
     55  1.1.1.8  mrg   ! missing '_kind' was added for consistency.  For backward compatibility, keep:
     56  1.1.1.8  mrg   integer, parameter :: acc_device_property = acc_device_property_kind
     57  1.1.1.8  mrg 
     58  1.1.1.8  mrg   ! Keep in sync with 'libgomp/libgomp-plugin.h:goacc_property'.
     59  1.1.1.8  mrg   integer (acc_device_property_kind), parameter :: acc_property_memory = 1
     60  1.1.1.8  mrg   integer (acc_device_property_kind), parameter :: acc_property_free_memory = 2
     61  1.1.1.8  mrg   integer (acc_device_property_kind), parameter :: acc_property_name = int(Z'10001')
     62  1.1.1.8  mrg   integer (acc_device_property_kind), parameter :: acc_property_vendor = int(Z'10002')
     63  1.1.1.8  mrg   integer (acc_device_property_kind), parameter :: acc_property_driver = int(Z'10003')
     64      1.1  mrg 
     65      1.1  mrg   integer, parameter :: acc_handle_kind = int32
     66      1.1  mrg 
     67      1.1  mrg   ! Keep in sync with include/gomp-constants.h.
     68      1.1  mrg   integer (acc_handle_kind), parameter :: acc_async_noval = -1
     69      1.1  mrg   integer (acc_handle_kind), parameter :: acc_async_sync = -2
     70  1.1.1.8  mrg end module openacc_kinds
     71      1.1  mrg 
     72      1.1  mrg module openacc_internal
     73      1.1  mrg   use openacc_kinds
     74      1.1  mrg   implicit none
     75      1.1  mrg 
     76      1.1  mrg   interface
     77  1.1.1.8  mrg     function acc_get_num_devices_h (devicetype)
     78      1.1  mrg       import
     79      1.1  mrg       integer acc_get_num_devices_h
     80  1.1.1.8  mrg       integer (acc_device_kind) devicetype
     81      1.1  mrg     end function
     82      1.1  mrg 
     83  1.1.1.8  mrg     subroutine acc_set_device_type_h (devicetype)
     84      1.1  mrg       import
     85  1.1.1.8  mrg       integer (acc_device_kind) devicetype
     86      1.1  mrg     end subroutine
     87      1.1  mrg 
     88      1.1  mrg     function acc_get_device_type_h ()
     89      1.1  mrg       import
     90      1.1  mrg       integer (acc_device_kind) acc_get_device_type_h
     91      1.1  mrg     end function
     92      1.1  mrg 
     93  1.1.1.8  mrg     subroutine acc_set_device_num_h (devicenum, devicetype)
     94      1.1  mrg       import
     95  1.1.1.8  mrg       integer devicenum
     96  1.1.1.8  mrg       integer (acc_device_kind) devicetype
     97      1.1  mrg     end subroutine
     98      1.1  mrg 
     99  1.1.1.8  mrg     function acc_get_device_num_h (devicetype)
    100      1.1  mrg       import
    101      1.1  mrg       integer acc_get_device_num_h
    102  1.1.1.8  mrg       integer (acc_device_kind) devicetype
    103  1.1.1.8  mrg     end function
    104  1.1.1.8  mrg 
    105  1.1.1.8  mrg     function acc_get_property_h (devicenum, devicetype, property)
    106  1.1.1.8  mrg       use iso_c_binding, only: c_size_t
    107  1.1.1.8  mrg       import
    108  1.1.1.8  mrg       implicit none (type, external)
    109  1.1.1.8  mrg       integer (c_size_t) :: acc_get_property_h
    110  1.1.1.8  mrg       integer, value :: devicenum
    111  1.1.1.8  mrg       integer (acc_device_kind), value :: devicetype
    112  1.1.1.8  mrg       integer (acc_device_property_kind), value :: property
    113      1.1  mrg     end function
    114      1.1  mrg 
    115  1.1.1.8  mrg     subroutine acc_get_property_string_h (devicenum, devicetype, property, string)
    116  1.1.1.8  mrg       import
    117  1.1.1.8  mrg       implicit none (type, external)
    118  1.1.1.8  mrg       integer, value :: devicenum
    119  1.1.1.8  mrg       integer (acc_device_kind), value :: devicetype
    120  1.1.1.8  mrg       integer (acc_device_property_kind), value :: property
    121  1.1.1.8  mrg       character (*) :: string
    122  1.1.1.8  mrg     end subroutine
    123  1.1.1.8  mrg 
    124  1.1.1.8  mrg     function acc_async_test_h (arg)
    125      1.1  mrg       logical acc_async_test_h
    126  1.1.1.8  mrg       integer arg
    127      1.1  mrg     end function
    128      1.1  mrg 
    129      1.1  mrg     function acc_async_test_all_h ()
    130      1.1  mrg       logical acc_async_test_all_h
    131      1.1  mrg     end function
    132      1.1  mrg 
    133  1.1.1.8  mrg     subroutine acc_wait_h (arg)
    134  1.1.1.8  mrg       integer arg
    135      1.1  mrg     end subroutine
    136      1.1  mrg 
    137  1.1.1.8  mrg     subroutine acc_wait_async_h (arg, async)
    138  1.1.1.8  mrg       integer arg, async
    139      1.1  mrg     end subroutine
    140      1.1  mrg 
    141      1.1  mrg     subroutine acc_wait_all_h ()
    142      1.1  mrg     end subroutine
    143      1.1  mrg 
    144  1.1.1.8  mrg     subroutine acc_wait_all_async_h (async)
    145  1.1.1.8  mrg       integer async
    146      1.1  mrg     end subroutine
    147      1.1  mrg 
    148  1.1.1.8  mrg     subroutine acc_init_h (devicetype)
    149      1.1  mrg       import
    150  1.1.1.8  mrg       integer (acc_device_kind) devicetype
    151      1.1  mrg     end subroutine
    152      1.1  mrg 
    153  1.1.1.8  mrg     subroutine acc_shutdown_h (devicetype)
    154      1.1  mrg       import
    155  1.1.1.8  mrg       integer (acc_device_kind) devicetype
    156      1.1  mrg     end subroutine
    157      1.1  mrg 
    158  1.1.1.8  mrg     function acc_on_device_h (devicetype)
    159      1.1  mrg       import
    160  1.1.1.8  mrg       integer (acc_device_kind) devicetype
    161      1.1  mrg       logical acc_on_device_h
    162      1.1  mrg     end function
    163      1.1  mrg 
    164      1.1  mrg     subroutine acc_copyin_32_h (a, len)
    165      1.1  mrg       use iso_c_binding, only: c_int32_t
    166      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    167      1.1  mrg       type (*), dimension (*) :: a
    168      1.1  mrg       integer (c_int32_t) len
    169      1.1  mrg     end subroutine
    170      1.1  mrg 
    171      1.1  mrg     subroutine acc_copyin_64_h (a, len)
    172      1.1  mrg       use iso_c_binding, only: c_int64_t
    173      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    174      1.1  mrg       type (*), dimension (*) :: a
    175      1.1  mrg       integer (c_int64_t) len
    176      1.1  mrg     end subroutine
    177      1.1  mrg 
    178      1.1  mrg     subroutine acc_copyin_array_h (a)
    179      1.1  mrg       type (*), dimension (..), contiguous :: a
    180      1.1  mrg     end subroutine
    181      1.1  mrg 
    182      1.1  mrg     subroutine acc_present_or_copyin_32_h (a, len)
    183      1.1  mrg       use iso_c_binding, only: c_int32_t
    184      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    185      1.1  mrg       type (*), dimension (*) :: a
    186      1.1  mrg       integer (c_int32_t) len
    187      1.1  mrg     end subroutine
    188      1.1  mrg 
    189      1.1  mrg     subroutine acc_present_or_copyin_64_h (a, len)
    190      1.1  mrg       use iso_c_binding, only: c_int64_t
    191      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    192      1.1  mrg       type (*), dimension (*) :: a
    193      1.1  mrg       integer (c_int64_t) len
    194      1.1  mrg     end subroutine
    195      1.1  mrg 
    196      1.1  mrg     subroutine acc_present_or_copyin_array_h (a)
    197      1.1  mrg       type (*), dimension (..), contiguous :: a
    198      1.1  mrg     end subroutine
    199      1.1  mrg 
    200      1.1  mrg     subroutine acc_create_32_h (a, len)
    201      1.1  mrg       use iso_c_binding, only: c_int32_t
    202      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    203      1.1  mrg       type (*), dimension (*) :: a
    204      1.1  mrg       integer (c_int32_t) len
    205      1.1  mrg     end subroutine
    206      1.1  mrg 
    207      1.1  mrg     subroutine acc_create_64_h (a, len)
    208      1.1  mrg       use iso_c_binding, only: c_int64_t
    209      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    210      1.1  mrg       type (*), dimension (*) :: a
    211      1.1  mrg       integer (c_int64_t) len
    212      1.1  mrg     end subroutine
    213      1.1  mrg 
    214      1.1  mrg     subroutine acc_create_array_h (a)
    215      1.1  mrg       type (*), dimension (..), contiguous :: a
    216      1.1  mrg     end subroutine
    217      1.1  mrg 
    218      1.1  mrg     subroutine acc_present_or_create_32_h (a, len)
    219      1.1  mrg       use iso_c_binding, only: c_int32_t
    220      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    221      1.1  mrg       type (*), dimension (*) :: a
    222      1.1  mrg       integer (c_int32_t) len
    223      1.1  mrg     end subroutine
    224      1.1  mrg 
    225      1.1  mrg     subroutine acc_present_or_create_64_h (a, len)
    226      1.1  mrg       use iso_c_binding, only: c_int64_t
    227      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    228      1.1  mrg       type (*), dimension (*) :: a
    229      1.1  mrg       integer (c_int64_t) len
    230      1.1  mrg     end subroutine
    231      1.1  mrg 
    232      1.1  mrg     subroutine acc_present_or_create_array_h (a)
    233      1.1  mrg       type (*), dimension (..), contiguous :: a
    234      1.1  mrg     end subroutine
    235      1.1  mrg 
    236      1.1  mrg     subroutine acc_copyout_32_h (a, len)
    237      1.1  mrg       use iso_c_binding, only: c_int32_t
    238      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    239      1.1  mrg       type (*), dimension (*) :: a
    240      1.1  mrg       integer (c_int32_t) len
    241      1.1  mrg     end subroutine
    242      1.1  mrg 
    243      1.1  mrg     subroutine acc_copyout_64_h (a, len)
    244      1.1  mrg       use iso_c_binding, only: c_int64_t
    245      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    246      1.1  mrg       type (*), dimension (*) :: a
    247      1.1  mrg       integer (c_int64_t) len
    248      1.1  mrg     end subroutine
    249      1.1  mrg 
    250      1.1  mrg     subroutine acc_copyout_array_h (a)
    251      1.1  mrg       type (*), dimension (..), contiguous :: a
    252      1.1  mrg     end subroutine
    253      1.1  mrg 
    254  1.1.1.7  mrg     subroutine acc_copyout_finalize_32_h (a, len)
    255  1.1.1.7  mrg       use iso_c_binding, only: c_int32_t
    256  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    257  1.1.1.7  mrg       type (*), dimension (*) :: a
    258  1.1.1.7  mrg       integer (c_int32_t) len
    259  1.1.1.7  mrg     end subroutine
    260  1.1.1.7  mrg 
    261  1.1.1.7  mrg     subroutine acc_copyout_finalize_64_h (a, len)
    262  1.1.1.7  mrg       use iso_c_binding, only: c_int64_t
    263  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    264  1.1.1.7  mrg       type (*), dimension (*) :: a
    265  1.1.1.7  mrg       integer (c_int64_t) len
    266  1.1.1.7  mrg     end subroutine
    267  1.1.1.7  mrg 
    268  1.1.1.7  mrg     subroutine acc_copyout_finalize_array_h (a)
    269  1.1.1.7  mrg       type (*), dimension (..), contiguous :: a
    270  1.1.1.7  mrg     end subroutine
    271  1.1.1.7  mrg 
    272      1.1  mrg     subroutine acc_delete_32_h (a, len)
    273      1.1  mrg       use iso_c_binding, only: c_int32_t
    274      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    275      1.1  mrg       type (*), dimension (*) :: a
    276      1.1  mrg       integer (c_int32_t) len
    277      1.1  mrg     end subroutine
    278      1.1  mrg 
    279      1.1  mrg     subroutine acc_delete_64_h (a, len)
    280      1.1  mrg       use iso_c_binding, only: c_int64_t
    281      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    282      1.1  mrg       type (*), dimension (*) :: a
    283      1.1  mrg       integer (c_int64_t) len
    284      1.1  mrg     end subroutine
    285      1.1  mrg 
    286      1.1  mrg     subroutine acc_delete_array_h (a)
    287      1.1  mrg       type (*), dimension (..), contiguous :: a
    288      1.1  mrg     end subroutine
    289      1.1  mrg 
    290  1.1.1.7  mrg     subroutine acc_delete_finalize_32_h (a, len)
    291  1.1.1.7  mrg       use iso_c_binding, only: c_int32_t
    292  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    293  1.1.1.7  mrg       type (*), dimension (*) :: a
    294  1.1.1.7  mrg       integer (c_int32_t) len
    295  1.1.1.7  mrg     end subroutine
    296  1.1.1.7  mrg 
    297  1.1.1.7  mrg     subroutine acc_delete_finalize_64_h (a, len)
    298  1.1.1.7  mrg       use iso_c_binding, only: c_int64_t
    299  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    300  1.1.1.7  mrg       type (*), dimension (*) :: a
    301  1.1.1.7  mrg       integer (c_int64_t) len
    302  1.1.1.7  mrg     end subroutine
    303  1.1.1.7  mrg 
    304  1.1.1.7  mrg     subroutine acc_delete_finalize_array_h (a)
    305  1.1.1.7  mrg       type (*), dimension (..), contiguous :: a
    306  1.1.1.7  mrg     end subroutine
    307  1.1.1.7  mrg 
    308      1.1  mrg     subroutine acc_update_device_32_h (a, len)
    309      1.1  mrg       use iso_c_binding, only: c_int32_t
    310      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    311      1.1  mrg       type (*), dimension (*) :: a
    312      1.1  mrg       integer (c_int32_t) len
    313      1.1  mrg     end subroutine
    314      1.1  mrg 
    315      1.1  mrg     subroutine acc_update_device_64_h (a, len)
    316      1.1  mrg       use iso_c_binding, only: c_int64_t
    317      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    318      1.1  mrg       type (*), dimension (*) :: a
    319      1.1  mrg       integer (c_int64_t) len
    320      1.1  mrg     end subroutine
    321      1.1  mrg 
    322      1.1  mrg     subroutine acc_update_device_array_h (a)
    323      1.1  mrg       type (*), dimension (..), contiguous :: a
    324      1.1  mrg     end subroutine
    325      1.1  mrg 
    326      1.1  mrg     subroutine acc_update_self_32_h (a, len)
    327      1.1  mrg       use iso_c_binding, only: c_int32_t
    328      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    329      1.1  mrg       type (*), dimension (*) :: a
    330      1.1  mrg       integer (c_int32_t) len
    331      1.1  mrg     end subroutine
    332      1.1  mrg 
    333      1.1  mrg     subroutine acc_update_self_64_h (a, len)
    334      1.1  mrg       use iso_c_binding, only: c_int64_t
    335      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    336      1.1  mrg       type (*), dimension (*) :: a
    337      1.1  mrg       integer (c_int64_t) len
    338      1.1  mrg     end subroutine
    339      1.1  mrg 
    340      1.1  mrg     subroutine acc_update_self_array_h (a)
    341      1.1  mrg       type (*), dimension (..), contiguous :: a
    342      1.1  mrg     end subroutine
    343      1.1  mrg 
    344      1.1  mrg     function acc_is_present_32_h (a, len)
    345      1.1  mrg       use iso_c_binding, only: c_int32_t
    346      1.1  mrg       logical acc_is_present_32_h
    347      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    348      1.1  mrg       type (*), dimension (*) :: a
    349      1.1  mrg       integer (c_int32_t) len
    350      1.1  mrg     end function
    351      1.1  mrg 
    352      1.1  mrg     function acc_is_present_64_h (a, len)
    353      1.1  mrg       use iso_c_binding, only: c_int64_t
    354      1.1  mrg       logical acc_is_present_64_h
    355      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    356      1.1  mrg       type (*), dimension (*) :: a
    357      1.1  mrg       integer (c_int64_t) len
    358      1.1  mrg     end function
    359      1.1  mrg 
    360      1.1  mrg     function acc_is_present_array_h (a)
    361      1.1  mrg       logical acc_is_present_array_h
    362      1.1  mrg       type (*), dimension (..), contiguous :: a
    363      1.1  mrg     end function
    364  1.1.1.7  mrg 
    365  1.1.1.7  mrg     subroutine acc_copyin_async_32_h (a, len, async)
    366  1.1.1.7  mrg       use iso_c_binding, only: c_int32_t
    367  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    368  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    369  1.1.1.7  mrg       type (*), dimension (*) :: a
    370  1.1.1.7  mrg       integer (c_int32_t) len
    371  1.1.1.7  mrg       integer (acc_handle_kind) async
    372  1.1.1.7  mrg     end subroutine
    373  1.1.1.7  mrg 
    374  1.1.1.7  mrg     subroutine acc_copyin_async_64_h (a, len, async)
    375  1.1.1.7  mrg       use iso_c_binding, only: c_int64_t
    376  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    377  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    378  1.1.1.7  mrg       type (*), dimension (*) :: a
    379  1.1.1.7  mrg       integer (c_int64_t) len
    380  1.1.1.7  mrg       integer (acc_handle_kind) async
    381  1.1.1.7  mrg     end subroutine
    382  1.1.1.7  mrg 
    383  1.1.1.7  mrg     subroutine acc_copyin_async_array_h (a, async)
    384  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    385  1.1.1.7  mrg       type (*), dimension (..), contiguous :: a
    386  1.1.1.7  mrg       integer (acc_handle_kind) async
    387  1.1.1.7  mrg     end subroutine
    388  1.1.1.7  mrg 
    389  1.1.1.7  mrg     subroutine acc_create_async_32_h (a, len, async)
    390  1.1.1.7  mrg       use iso_c_binding, only: c_int32_t
    391  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    392  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    393  1.1.1.7  mrg       type (*), dimension (*) :: a
    394  1.1.1.7  mrg       integer (c_int32_t) len
    395  1.1.1.7  mrg       integer (acc_handle_kind) async
    396  1.1.1.7  mrg     end subroutine
    397  1.1.1.7  mrg 
    398  1.1.1.7  mrg     subroutine acc_create_async_64_h (a, len, async)
    399  1.1.1.7  mrg       use iso_c_binding, only: c_int64_t
    400  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    401  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    402  1.1.1.7  mrg       type (*), dimension (*) :: a
    403  1.1.1.7  mrg       integer (c_int64_t) len
    404  1.1.1.7  mrg       integer (acc_handle_kind) async
    405  1.1.1.7  mrg     end subroutine
    406  1.1.1.7  mrg 
    407  1.1.1.7  mrg     subroutine acc_create_async_array_h (a, async)
    408  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    409  1.1.1.7  mrg       type (*), dimension (..), contiguous :: a
    410  1.1.1.7  mrg       integer (acc_handle_kind) async
    411  1.1.1.7  mrg     end subroutine
    412  1.1.1.7  mrg 
    413  1.1.1.7  mrg     subroutine acc_copyout_async_32_h (a, len, async)
    414  1.1.1.7  mrg       use iso_c_binding, only: c_int32_t
    415  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    416  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    417  1.1.1.7  mrg       type (*), dimension (*) :: a
    418  1.1.1.7  mrg       integer (c_int32_t) len
    419  1.1.1.7  mrg       integer (acc_handle_kind) async
    420  1.1.1.7  mrg     end subroutine
    421  1.1.1.7  mrg 
    422  1.1.1.7  mrg     subroutine acc_copyout_async_64_h (a, len, async)
    423  1.1.1.7  mrg       use iso_c_binding, only: c_int64_t
    424  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    425  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    426  1.1.1.7  mrg       type (*), dimension (*) :: a
    427  1.1.1.7  mrg       integer (c_int64_t) len
    428  1.1.1.7  mrg       integer (acc_handle_kind) async
    429  1.1.1.7  mrg     end subroutine
    430  1.1.1.7  mrg 
    431  1.1.1.7  mrg     subroutine acc_copyout_async_array_h (a, async)
    432  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    433  1.1.1.7  mrg       type (*), dimension (..), contiguous :: a
    434  1.1.1.7  mrg       integer (acc_handle_kind) async
    435  1.1.1.7  mrg     end subroutine
    436  1.1.1.7  mrg 
    437  1.1.1.7  mrg     subroutine acc_delete_async_32_h (a, len, async)
    438  1.1.1.7  mrg       use iso_c_binding, only: c_int32_t
    439  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    440  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    441  1.1.1.7  mrg       type (*), dimension (*) :: a
    442  1.1.1.7  mrg       integer (c_int32_t) len
    443  1.1.1.7  mrg       integer (acc_handle_kind) async
    444  1.1.1.7  mrg     end subroutine
    445  1.1.1.7  mrg 
    446  1.1.1.7  mrg     subroutine acc_delete_async_64_h (a, len, async)
    447  1.1.1.7  mrg       use iso_c_binding, only: c_int64_t
    448  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    449  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    450  1.1.1.7  mrg       type (*), dimension (*) :: a
    451  1.1.1.7  mrg       integer (c_int64_t) len
    452  1.1.1.7  mrg       integer (acc_handle_kind) async
    453  1.1.1.7  mrg     end subroutine
    454  1.1.1.7  mrg 
    455  1.1.1.7  mrg     subroutine acc_delete_async_array_h (a, async)
    456  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    457  1.1.1.7  mrg       type (*), dimension (..), contiguous :: a
    458  1.1.1.7  mrg       integer (acc_handle_kind) async
    459  1.1.1.7  mrg     end subroutine
    460  1.1.1.7  mrg 
    461  1.1.1.7  mrg     subroutine acc_update_device_async_32_h (a, len, async)
    462  1.1.1.7  mrg       use iso_c_binding, only: c_int32_t
    463  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    464  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    465  1.1.1.7  mrg       type (*), dimension (*) :: a
    466  1.1.1.7  mrg       integer (c_int32_t) len
    467  1.1.1.7  mrg       integer (acc_handle_kind) async
    468  1.1.1.7  mrg     end subroutine
    469  1.1.1.7  mrg 
    470  1.1.1.7  mrg     subroutine acc_update_device_async_64_h (a, len, async)
    471  1.1.1.7  mrg       use iso_c_binding, only: c_int64_t
    472  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    473  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    474  1.1.1.7  mrg       type (*), dimension (*) :: a
    475  1.1.1.7  mrg       integer (c_int64_t) len
    476  1.1.1.7  mrg       integer (acc_handle_kind) async
    477  1.1.1.7  mrg     end subroutine
    478  1.1.1.7  mrg 
    479  1.1.1.7  mrg     subroutine acc_update_device_async_array_h (a, async)
    480  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    481  1.1.1.7  mrg       type (*), dimension (..), contiguous :: a
    482  1.1.1.7  mrg       integer (acc_handle_kind) async
    483  1.1.1.7  mrg     end subroutine
    484  1.1.1.7  mrg 
    485  1.1.1.7  mrg     subroutine acc_update_self_async_32_h (a, len, async)
    486  1.1.1.7  mrg       use iso_c_binding, only: c_int32_t
    487  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    488  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    489  1.1.1.7  mrg       type (*), dimension (*) :: a
    490  1.1.1.7  mrg       integer (c_int32_t) len
    491  1.1.1.7  mrg       integer (acc_handle_kind) async
    492  1.1.1.7  mrg     end subroutine
    493  1.1.1.7  mrg 
    494  1.1.1.7  mrg     subroutine acc_update_self_async_64_h (a, len, async)
    495  1.1.1.7  mrg       use iso_c_binding, only: c_int64_t
    496  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    497  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    498  1.1.1.7  mrg       type (*), dimension (*) :: a
    499  1.1.1.7  mrg       integer (c_int64_t) len
    500  1.1.1.7  mrg       integer (acc_handle_kind) async
    501  1.1.1.7  mrg     end subroutine
    502  1.1.1.7  mrg 
    503  1.1.1.7  mrg     subroutine acc_update_self_async_array_h (a, async)
    504  1.1.1.7  mrg       use openacc_kinds, only: acc_handle_kind
    505  1.1.1.7  mrg       type (*), dimension (..), contiguous :: a
    506  1.1.1.7  mrg       integer (acc_handle_kind) async
    507  1.1.1.7  mrg     end subroutine
    508      1.1  mrg   end interface
    509      1.1  mrg 
    510      1.1  mrg   interface
    511  1.1.1.8  mrg     function acc_get_num_devices_l (devicetype) &
    512      1.1  mrg         bind (C, name = "acc_get_num_devices")
    513      1.1  mrg       use iso_c_binding, only: c_int
    514      1.1  mrg       integer (c_int) :: acc_get_num_devices_l
    515  1.1.1.8  mrg       integer (c_int), value :: devicetype
    516      1.1  mrg     end function
    517      1.1  mrg 
    518  1.1.1.8  mrg     subroutine acc_set_device_type_l (devicetype) &
    519      1.1  mrg         bind (C, name = "acc_set_device_type")
    520      1.1  mrg       use iso_c_binding, only: c_int
    521  1.1.1.8  mrg       integer (c_int), value :: devicetype
    522      1.1  mrg     end subroutine
    523      1.1  mrg 
    524      1.1  mrg     function acc_get_device_type_l () &
    525      1.1  mrg         bind (C, name = "acc_get_device_type")
    526      1.1  mrg       use iso_c_binding, only: c_int
    527      1.1  mrg       integer (c_int) :: acc_get_device_type_l
    528      1.1  mrg     end function
    529      1.1  mrg 
    530  1.1.1.8  mrg     subroutine acc_set_device_num_l (devicenum, devicetype) &
    531      1.1  mrg         bind (C, name = "acc_set_device_num")
    532      1.1  mrg       use iso_c_binding, only: c_int
    533  1.1.1.8  mrg       integer (c_int), value :: devicenum, devicetype
    534      1.1  mrg     end subroutine
    535      1.1  mrg 
    536  1.1.1.8  mrg     function acc_get_device_num_l (devicetype) &
    537      1.1  mrg         bind (C, name = "acc_get_device_num")
    538      1.1  mrg       use iso_c_binding, only: c_int
    539      1.1  mrg       integer (c_int) :: acc_get_device_num_l
    540  1.1.1.8  mrg       integer (c_int), value :: devicetype
    541  1.1.1.8  mrg     end function
    542  1.1.1.8  mrg 
    543  1.1.1.8  mrg     function acc_get_property_l (devicenum, devicetype, property) &
    544  1.1.1.8  mrg         bind (C, name = "acc_get_property")
    545  1.1.1.8  mrg       use iso_c_binding, only: c_int, c_size_t
    546  1.1.1.8  mrg       implicit none (type, external)
    547  1.1.1.8  mrg       integer (c_size_t) :: acc_get_property_l
    548  1.1.1.8  mrg       integer (c_int), value :: devicenum
    549  1.1.1.8  mrg       integer (c_int), value :: devicetype
    550  1.1.1.8  mrg       integer (c_int), value :: property
    551  1.1.1.8  mrg     end function
    552  1.1.1.8  mrg 
    553  1.1.1.8  mrg     function acc_get_property_string_l (devicenum, devicetype, property) &
    554  1.1.1.8  mrg         bind (C, name = "acc_get_property_string")
    555  1.1.1.8  mrg       use iso_c_binding, only: c_int, c_ptr
    556  1.1.1.8  mrg       implicit none (type, external)
    557  1.1.1.8  mrg       type (c_ptr) :: acc_get_property_string_l
    558  1.1.1.8  mrg       integer (c_int), value :: devicenum
    559  1.1.1.8  mrg       integer (c_int), value :: devicetype
    560  1.1.1.8  mrg       integer (c_int), value :: property
    561      1.1  mrg     end function
    562      1.1  mrg 
    563      1.1  mrg     function acc_async_test_l (a) &
    564      1.1  mrg         bind (C, name = "acc_async_test")
    565      1.1  mrg       use iso_c_binding, only: c_int
    566      1.1  mrg       integer (c_int) :: acc_async_test_l
    567      1.1  mrg       integer (c_int), value :: a
    568      1.1  mrg     end function
    569      1.1  mrg 
    570      1.1  mrg     function acc_async_test_all_l () &
    571      1.1  mrg         bind (C, name = "acc_async_test_all")
    572      1.1  mrg       use iso_c_binding, only: c_int
    573      1.1  mrg       integer (c_int) :: acc_async_test_all_l
    574      1.1  mrg     end function
    575      1.1  mrg 
    576      1.1  mrg     subroutine acc_wait_l (a) &
    577      1.1  mrg         bind (C, name = "acc_wait")
    578      1.1  mrg       use iso_c_binding, only: c_int
    579      1.1  mrg       integer (c_int), value :: a
    580      1.1  mrg     end subroutine
    581      1.1  mrg 
    582  1.1.1.8  mrg     subroutine acc_wait_async_l (arg, async) &
    583      1.1  mrg         bind (C, name = "acc_wait_async")
    584      1.1  mrg       use iso_c_binding, only: c_int
    585  1.1.1.8  mrg       integer (c_int), value :: arg, async
    586      1.1  mrg     end subroutine
    587      1.1  mrg 
    588      1.1  mrg     subroutine acc_wait_all_l () &
    589      1.1  mrg         bind (C, name = "acc_wait_all")
    590      1.1  mrg       use iso_c_binding, only: c_int
    591      1.1  mrg     end subroutine
    592      1.1  mrg 
    593  1.1.1.8  mrg     subroutine acc_wait_all_async_l (async) &
    594      1.1  mrg         bind (C, name = "acc_wait_all_async")
    595      1.1  mrg       use iso_c_binding, only: c_int
    596  1.1.1.8  mrg       integer (c_int), value :: async
    597      1.1  mrg     end subroutine
    598      1.1  mrg 
    599  1.1.1.8  mrg     subroutine acc_init_l (devicetype) &
    600      1.1  mrg         bind (C, name = "acc_init")
    601      1.1  mrg       use iso_c_binding, only: c_int
    602  1.1.1.8  mrg       integer (c_int), value :: devicetype
    603      1.1  mrg     end subroutine
    604      1.1  mrg 
    605  1.1.1.8  mrg     subroutine acc_shutdown_l (devicetype) &
    606      1.1  mrg         bind (C, name = "acc_shutdown")
    607      1.1  mrg       use iso_c_binding, only: c_int
    608  1.1.1.8  mrg       integer (c_int), value :: devicetype
    609      1.1  mrg     end subroutine
    610      1.1  mrg 
    611  1.1.1.8  mrg     function acc_on_device_l (devicetype) &
    612      1.1  mrg         bind (C, name = "acc_on_device")
    613      1.1  mrg       use iso_c_binding, only: c_int
    614      1.1  mrg       integer (c_int) :: acc_on_device_l
    615  1.1.1.8  mrg       integer (c_int), value :: devicetype
    616      1.1  mrg     end function
    617      1.1  mrg 
    618      1.1  mrg     subroutine acc_copyin_l (a, len) &
    619      1.1  mrg         bind (C, name = "acc_copyin")
    620      1.1  mrg       use iso_c_binding, only: c_size_t
    621      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    622      1.1  mrg       type (*), dimension (*) :: a
    623      1.1  mrg       integer (c_size_t), value :: len
    624      1.1  mrg     end subroutine
    625      1.1  mrg 
    626      1.1  mrg     subroutine acc_present_or_copyin_l (a, len) &
    627      1.1  mrg         bind (C, name = "acc_present_or_copyin")
    628      1.1  mrg       use iso_c_binding, only: c_size_t
    629      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    630      1.1  mrg       type (*), dimension (*) :: a
    631      1.1  mrg       integer (c_size_t), value :: len
    632      1.1  mrg     end subroutine
    633      1.1  mrg 
    634      1.1  mrg     subroutine acc_create_l (a, len) &
    635      1.1  mrg         bind (C, name = "acc_create")
    636      1.1  mrg       use iso_c_binding, only: c_size_t
    637      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    638      1.1  mrg       type (*), dimension (*) :: a
    639      1.1  mrg       integer (c_size_t), value :: len
    640      1.1  mrg     end subroutine
    641      1.1  mrg 
    642      1.1  mrg     subroutine acc_present_or_create_l (a, len) &
    643      1.1  mrg         bind (C, name = "acc_present_or_create")
    644      1.1  mrg       use iso_c_binding, only: c_size_t
    645      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    646      1.1  mrg       type (*), dimension (*) :: a
    647      1.1  mrg       integer (c_size_t), value :: len
    648      1.1  mrg     end subroutine
    649      1.1  mrg 
    650      1.1  mrg     subroutine acc_copyout_l (a, len) &
    651      1.1  mrg         bind (C, name = "acc_copyout")
    652      1.1  mrg       use iso_c_binding, only: c_size_t
    653      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    654      1.1  mrg       type (*), dimension (*) :: a
    655      1.1  mrg       integer (c_size_t), value :: len
    656      1.1  mrg     end subroutine
    657      1.1  mrg 
    658  1.1.1.7  mrg     subroutine acc_copyout_finalize_l (a, len) &
    659  1.1.1.7  mrg         bind (C, name = "acc_copyout_finalize")
    660  1.1.1.7  mrg       use iso_c_binding, only: c_size_t
    661  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    662  1.1.1.7  mrg       type (*), dimension (*) :: a
    663  1.1.1.7  mrg       integer (c_size_t), value :: len
    664  1.1.1.7  mrg     end subroutine
    665  1.1.1.7  mrg 
    666      1.1  mrg     subroutine acc_delete_l (a, len) &
    667      1.1  mrg         bind (C, name = "acc_delete")
    668      1.1  mrg       use iso_c_binding, only: c_size_t
    669      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    670      1.1  mrg       type (*), dimension (*) :: a
    671      1.1  mrg       integer (c_size_t), value :: len
    672      1.1  mrg     end subroutine
    673      1.1  mrg 
    674  1.1.1.7  mrg     subroutine acc_delete_finalize_l (a, len) &
    675  1.1.1.7  mrg         bind (C, name = "acc_delete_finalize")
    676  1.1.1.7  mrg       use iso_c_binding, only: c_size_t
    677  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    678  1.1.1.7  mrg       type (*), dimension (*) :: a
    679  1.1.1.7  mrg       integer (c_size_t), value :: len
    680  1.1.1.7  mrg     end subroutine
    681  1.1.1.7  mrg 
    682      1.1  mrg     subroutine acc_update_device_l (a, len) &
    683      1.1  mrg         bind (C, name = "acc_update_device")
    684      1.1  mrg       use iso_c_binding, only: c_size_t
    685      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    686      1.1  mrg       type (*), dimension (*) :: a
    687      1.1  mrg       integer (c_size_t), value :: len
    688      1.1  mrg     end subroutine
    689      1.1  mrg 
    690      1.1  mrg     subroutine acc_update_self_l (a, len) &
    691      1.1  mrg         bind (C, name = "acc_update_self")
    692      1.1  mrg       use iso_c_binding, only: c_size_t
    693      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    694      1.1  mrg       type (*), dimension (*) :: a
    695      1.1  mrg       integer (c_size_t), value :: len
    696      1.1  mrg     end subroutine
    697      1.1  mrg 
    698      1.1  mrg     function acc_is_present_l (a, len) &
    699      1.1  mrg         bind (C, name = "acc_is_present")
    700      1.1  mrg       use iso_c_binding, only: c_int32_t, c_size_t
    701      1.1  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    702      1.1  mrg       integer (c_int32_t) :: acc_is_present_l
    703      1.1  mrg       type (*), dimension (*) :: a
    704      1.1  mrg       integer (c_size_t), value :: len
    705      1.1  mrg     end function
    706  1.1.1.7  mrg 
    707  1.1.1.7  mrg     subroutine acc_copyin_async_l (a, len, async) &
    708  1.1.1.7  mrg         bind (C, name = "acc_copyin_async")
    709  1.1.1.7  mrg       use iso_c_binding, only: c_size_t, c_int
    710  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    711  1.1.1.7  mrg       type (*), dimension (*) :: a
    712  1.1.1.7  mrg       integer (c_size_t), value :: len
    713  1.1.1.7  mrg       integer (c_int), value :: async
    714  1.1.1.7  mrg     end subroutine
    715  1.1.1.7  mrg 
    716  1.1.1.7  mrg     subroutine acc_create_async_l (a, len, async) &
    717  1.1.1.7  mrg         bind (C, name = "acc_create_async")
    718  1.1.1.7  mrg       use iso_c_binding, only: c_size_t, c_int
    719  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    720  1.1.1.7  mrg       type (*), dimension (*) :: a
    721  1.1.1.7  mrg       integer (c_size_t), value :: len
    722  1.1.1.7  mrg       integer (c_int), value :: async
    723  1.1.1.7  mrg     end subroutine
    724  1.1.1.7  mrg 
    725  1.1.1.7  mrg     subroutine acc_copyout_async_l (a, len, async) &
    726  1.1.1.7  mrg         bind (C, name = "acc_copyout_async")
    727  1.1.1.7  mrg       use iso_c_binding, only: c_size_t, c_int
    728  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    729  1.1.1.7  mrg       type (*), dimension (*) :: a
    730  1.1.1.7  mrg       integer (c_size_t), value :: len
    731  1.1.1.7  mrg       integer (c_int), value :: async
    732  1.1.1.7  mrg     end subroutine
    733  1.1.1.7  mrg 
    734  1.1.1.7  mrg     subroutine acc_delete_async_l (a, len, async) &
    735  1.1.1.7  mrg         bind (C, name = "acc_delete_async")
    736  1.1.1.7  mrg       use iso_c_binding, only: c_size_t, c_int
    737  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    738  1.1.1.7  mrg       type (*), dimension (*) :: a
    739  1.1.1.7  mrg       integer (c_size_t), value :: len
    740  1.1.1.7  mrg       integer (c_int), value :: async
    741  1.1.1.7  mrg     end subroutine
    742  1.1.1.7  mrg 
    743  1.1.1.7  mrg     subroutine acc_update_device_async_l (a, len, async) &
    744  1.1.1.7  mrg         bind (C, name = "acc_update_device_async")
    745  1.1.1.7  mrg       use iso_c_binding, only: c_size_t, c_int
    746  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    747  1.1.1.7  mrg       type (*), dimension (*) :: a
    748  1.1.1.7  mrg       integer (c_size_t), value :: len
    749  1.1.1.7  mrg       integer (c_int), value :: async
    750  1.1.1.7  mrg     end subroutine
    751  1.1.1.7  mrg 
    752  1.1.1.7  mrg     subroutine acc_update_self_async_l (a, len, async) &
    753  1.1.1.7  mrg         bind (C, name = "acc_update_self_async")
    754  1.1.1.7  mrg       use iso_c_binding, only: c_size_t, c_int
    755  1.1.1.7  mrg       !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
    756  1.1.1.7  mrg       type (*), dimension (*) :: a
    757  1.1.1.7  mrg       integer (c_size_t), value :: len
    758  1.1.1.7  mrg       integer (c_int), value :: async
    759  1.1.1.7  mrg     end subroutine
    760      1.1  mrg   end interface
    761  1.1.1.8  mrg end module openacc_internal
    762      1.1  mrg 
    763      1.1  mrg module openacc
    764      1.1  mrg   use openacc_kinds
    765      1.1  mrg   use openacc_internal
    766      1.1  mrg   implicit none
    767      1.1  mrg 
    768  1.1.1.8  mrg   private
    769  1.1.1.8  mrg 
    770  1.1.1.8  mrg   ! From openacc_kinds
    771  1.1.1.8  mrg   public :: acc_device_kind
    772  1.1.1.8  mrg   public :: acc_device_none, acc_device_default, acc_device_host
    773  1.1.1.8  mrg   public :: acc_device_not_host, acc_device_nvidia, acc_device_radeon
    774  1.1.1.8  mrg 
    775  1.1.1.8  mrg   public :: acc_device_property_kind, acc_device_property
    776  1.1.1.8  mrg   public :: acc_property_memory, acc_property_free_memory
    777  1.1.1.8  mrg   public :: acc_property_name, acc_property_vendor, acc_property_driver
    778  1.1.1.8  mrg 
    779  1.1.1.8  mrg   public :: acc_handle_kind
    780  1.1.1.8  mrg   public :: acc_async_noval, acc_async_sync
    781  1.1.1.8  mrg 
    782      1.1  mrg   public :: openacc_version
    783      1.1  mrg 
    784      1.1  mrg   public :: acc_get_num_devices, acc_set_device_type, acc_get_device_type
    785  1.1.1.8  mrg   public :: acc_set_device_num, acc_get_device_num
    786  1.1.1.8  mrg   public :: acc_get_property, acc_get_property_string
    787  1.1.1.8  mrg   public :: acc_async_test, acc_async_test_all
    788  1.1.1.6  mrg   public :: acc_wait, acc_async_wait, acc_wait_async
    789  1.1.1.6  mrg   public :: acc_wait_all, acc_async_wait_all, acc_wait_all_async
    790  1.1.1.6  mrg   public :: acc_init, acc_shutdown, acc_on_device
    791      1.1  mrg   public :: acc_copyin, acc_present_or_copyin, acc_pcopyin, acc_create
    792      1.1  mrg   public :: acc_present_or_create, acc_pcreate, acc_copyout, acc_delete
    793      1.1  mrg   public :: acc_update_device, acc_update_self, acc_is_present
    794  1.1.1.7  mrg   public :: acc_copyin_async, acc_create_async, acc_copyout_async
    795  1.1.1.7  mrg   public :: acc_delete_async, acc_update_device_async, acc_update_self_async
    796  1.1.1.8  mrg   public :: acc_copyout_finalize, acc_delete_finalize
    797      1.1  mrg 
    798  1.1.1.8  mrg   integer, parameter :: openacc_version = 201711
    799      1.1  mrg 
    800      1.1  mrg   interface acc_get_num_devices
    801      1.1  mrg     procedure :: acc_get_num_devices_h
    802      1.1  mrg   end interface
    803      1.1  mrg 
    804      1.1  mrg   interface acc_set_device_type
    805      1.1  mrg     procedure :: acc_set_device_type_h
    806      1.1  mrg   end interface
    807      1.1  mrg 
    808      1.1  mrg   interface acc_get_device_type
    809      1.1  mrg     procedure :: acc_get_device_type_h
    810      1.1  mrg   end interface
    811      1.1  mrg 
    812      1.1  mrg   interface acc_set_device_num
    813      1.1  mrg     procedure :: acc_set_device_num_h
    814      1.1  mrg   end interface
    815      1.1  mrg 
    816      1.1  mrg   interface acc_get_device_num
    817      1.1  mrg     procedure :: acc_get_device_num_h
    818      1.1  mrg   end interface
    819      1.1  mrg 
    820  1.1.1.8  mrg   interface acc_get_property
    821  1.1.1.8  mrg     procedure :: acc_get_property_h
    822  1.1.1.8  mrg   end interface
    823  1.1.1.8  mrg 
    824  1.1.1.8  mrg   interface acc_get_property_string
    825  1.1.1.8  mrg     procedure :: acc_get_property_string_h
    826  1.1.1.8  mrg   end interface
    827  1.1.1.8  mrg 
    828      1.1  mrg   interface acc_async_test
    829      1.1  mrg     procedure :: acc_async_test_h
    830      1.1  mrg   end interface
    831      1.1  mrg 
    832      1.1  mrg   interface acc_async_test_all
    833      1.1  mrg     procedure :: acc_async_test_all_h
    834      1.1  mrg   end interface
    835      1.1  mrg 
    836      1.1  mrg   interface acc_wait
    837      1.1  mrg     procedure :: acc_wait_h
    838      1.1  mrg   end interface
    839      1.1  mrg 
    840  1.1.1.6  mrg   ! acc_async_wait is an OpenACC 1.0 compatibility name for acc_wait.
    841  1.1.1.6  mrg   interface acc_async_wait
    842  1.1.1.6  mrg     procedure :: acc_wait_h
    843  1.1.1.6  mrg   end interface
    844  1.1.1.6  mrg 
    845      1.1  mrg   interface acc_wait_async
    846      1.1  mrg     procedure :: acc_wait_async_h
    847      1.1  mrg   end interface
    848      1.1  mrg 
    849      1.1  mrg   interface acc_wait_all
    850      1.1  mrg     procedure :: acc_wait_all_h
    851      1.1  mrg   end interface
    852      1.1  mrg 
    853  1.1.1.6  mrg   ! acc_async_wait_all is an OpenACC 1.0 compatibility name for acc_wait_all.
    854  1.1.1.6  mrg   interface acc_async_wait_all
    855  1.1.1.6  mrg     procedure :: acc_wait_all_h
    856  1.1.1.6  mrg   end interface
    857  1.1.1.6  mrg 
    858      1.1  mrg   interface acc_wait_all_async
    859      1.1  mrg     procedure :: acc_wait_all_async_h
    860      1.1  mrg   end interface
    861      1.1  mrg 
    862      1.1  mrg   interface acc_init
    863      1.1  mrg     procedure :: acc_init_h
    864      1.1  mrg   end interface
    865      1.1  mrg 
    866      1.1  mrg   interface acc_shutdown
    867      1.1  mrg     procedure :: acc_shutdown_h
    868      1.1  mrg   end interface
    869      1.1  mrg 
    870      1.1  mrg   interface acc_on_device
    871      1.1  mrg     procedure :: acc_on_device_h
    872      1.1  mrg   end interface
    873      1.1  mrg 
    874      1.1  mrg   ! acc_malloc: Only available in C/C++
    875      1.1  mrg   ! acc_free: Only available in C/C++
    876      1.1  mrg 
    877      1.1  mrg   ! As vendor extension, the following code supports both 32bit and 64bit
    878      1.1  mrg   ! arguments for "size"; the OpenACC standard only permits default-kind
    879      1.1  mrg   ! integers, which are of kind 4 (i.e. 32 bits).
    880      1.1  mrg   ! Additionally, the two-argument version also takes arrays as argument.
    881      1.1  mrg   ! and the one argument version also scalars. Note that the code assumes
    882      1.1  mrg   ! that the arrays are contiguous.
    883      1.1  mrg 
    884      1.1  mrg   interface acc_copyin
    885      1.1  mrg     procedure :: acc_copyin_32_h
    886      1.1  mrg     procedure :: acc_copyin_64_h
    887      1.1  mrg     procedure :: acc_copyin_array_h
    888      1.1  mrg   end interface
    889      1.1  mrg 
    890      1.1  mrg   interface acc_present_or_copyin
    891      1.1  mrg     procedure :: acc_present_or_copyin_32_h
    892      1.1  mrg     procedure :: acc_present_or_copyin_64_h
    893      1.1  mrg     procedure :: acc_present_or_copyin_array_h
    894      1.1  mrg   end interface
    895      1.1  mrg 
    896      1.1  mrg   interface acc_pcopyin
    897      1.1  mrg     procedure :: acc_present_or_copyin_32_h
    898      1.1  mrg     procedure :: acc_present_or_copyin_64_h
    899      1.1  mrg     procedure :: acc_present_or_copyin_array_h
    900      1.1  mrg   end interface
    901      1.1  mrg 
    902      1.1  mrg   interface acc_create
    903      1.1  mrg     procedure :: acc_create_32_h
    904      1.1  mrg     procedure :: acc_create_64_h
    905      1.1  mrg     procedure :: acc_create_array_h
    906      1.1  mrg   end interface
    907      1.1  mrg 
    908      1.1  mrg   interface acc_present_or_create
    909      1.1  mrg     procedure :: acc_present_or_create_32_h
    910      1.1  mrg     procedure :: acc_present_or_create_64_h
    911      1.1  mrg     procedure :: acc_present_or_create_array_h
    912      1.1  mrg   end interface
    913      1.1  mrg 
    914      1.1  mrg   interface acc_pcreate
    915      1.1  mrg     procedure :: acc_present_or_create_32_h
    916      1.1  mrg     procedure :: acc_present_or_create_64_h
    917      1.1  mrg     procedure :: acc_present_or_create_array_h
    918      1.1  mrg   end interface
    919      1.1  mrg 
    920      1.1  mrg   interface acc_copyout
    921      1.1  mrg     procedure :: acc_copyout_32_h
    922      1.1  mrg     procedure :: acc_copyout_64_h
    923      1.1  mrg     procedure :: acc_copyout_array_h
    924      1.1  mrg   end interface
    925      1.1  mrg 
    926  1.1.1.7  mrg   interface acc_copyout_finalize
    927  1.1.1.7  mrg     procedure :: acc_copyout_finalize_32_h
    928  1.1.1.7  mrg     procedure :: acc_copyout_finalize_64_h
    929  1.1.1.7  mrg     procedure :: acc_copyout_finalize_array_h
    930  1.1.1.7  mrg   end interface
    931  1.1.1.7  mrg 
    932      1.1  mrg   interface acc_delete
    933      1.1  mrg     procedure :: acc_delete_32_h
    934      1.1  mrg     procedure :: acc_delete_64_h
    935      1.1  mrg     procedure :: acc_delete_array_h
    936      1.1  mrg   end interface
    937      1.1  mrg 
    938  1.1.1.7  mrg   interface acc_delete_finalize
    939  1.1.1.7  mrg     procedure :: acc_delete_finalize_32_h
    940  1.1.1.7  mrg     procedure :: acc_delete_finalize_64_h
    941  1.1.1.7  mrg     procedure :: acc_delete_finalize_array_h
    942  1.1.1.7  mrg   end interface
    943  1.1.1.7  mrg 
    944      1.1  mrg   interface acc_update_device
    945      1.1  mrg     procedure :: acc_update_device_32_h
    946      1.1  mrg     procedure :: acc_update_device_64_h
    947      1.1  mrg     procedure :: acc_update_device_array_h
    948      1.1  mrg   end interface
    949      1.1  mrg 
    950      1.1  mrg   interface acc_update_self
    951      1.1  mrg     procedure :: acc_update_self_32_h
    952      1.1  mrg     procedure :: acc_update_self_64_h
    953      1.1  mrg     procedure :: acc_update_self_array_h
    954      1.1  mrg   end interface
    955      1.1  mrg 
    956      1.1  mrg   ! acc_map_data: Only available in C/C++
    957      1.1  mrg   ! acc_unmap_data: Only available in C/C++
    958      1.1  mrg   ! acc_deviceptr: Only available in C/C++
    959      1.1  mrg   ! acc_hostptr: Only available in C/C++
    960      1.1  mrg 
    961      1.1  mrg   interface acc_is_present
    962      1.1  mrg     procedure :: acc_is_present_32_h
    963      1.1  mrg     procedure :: acc_is_present_64_h
    964      1.1  mrg     procedure :: acc_is_present_array_h
    965      1.1  mrg   end interface
    966      1.1  mrg 
    967      1.1  mrg   ! acc_memcpy_to_device: Only available in C/C++
    968      1.1  mrg   ! acc_memcpy_from_device: Only available in C/C++
    969      1.1  mrg 
    970  1.1.1.7  mrg   interface acc_copyin_async
    971  1.1.1.7  mrg     procedure :: acc_copyin_async_32_h
    972  1.1.1.7  mrg     procedure :: acc_copyin_async_64_h
    973  1.1.1.7  mrg     procedure :: acc_copyin_async_array_h
    974  1.1.1.7  mrg   end interface
    975  1.1.1.7  mrg 
    976  1.1.1.7  mrg   interface acc_create_async
    977  1.1.1.7  mrg     procedure :: acc_create_async_32_h
    978  1.1.1.7  mrg     procedure :: acc_create_async_64_h
    979  1.1.1.7  mrg     procedure :: acc_create_async_array_h
    980  1.1.1.7  mrg   end interface
    981  1.1.1.7  mrg 
    982  1.1.1.7  mrg   interface acc_copyout_async
    983  1.1.1.7  mrg     procedure :: acc_copyout_async_32_h
    984  1.1.1.7  mrg     procedure :: acc_copyout_async_64_h
    985  1.1.1.7  mrg     procedure :: acc_copyout_async_array_h
    986  1.1.1.7  mrg   end interface
    987  1.1.1.7  mrg 
    988  1.1.1.7  mrg   interface acc_delete_async
    989  1.1.1.7  mrg     procedure :: acc_delete_async_32_h
    990  1.1.1.7  mrg     procedure :: acc_delete_async_64_h
    991  1.1.1.7  mrg     procedure :: acc_delete_async_array_h
    992  1.1.1.7  mrg   end interface
    993  1.1.1.7  mrg 
    994  1.1.1.7  mrg   interface acc_update_device_async
    995  1.1.1.7  mrg     procedure :: acc_update_device_async_32_h
    996  1.1.1.7  mrg     procedure :: acc_update_device_async_64_h
    997  1.1.1.7  mrg     procedure :: acc_update_device_async_array_h
    998  1.1.1.7  mrg   end interface
    999  1.1.1.7  mrg 
   1000  1.1.1.7  mrg   interface acc_update_self_async
   1001  1.1.1.7  mrg     procedure :: acc_update_self_async_32_h
   1002  1.1.1.7  mrg     procedure :: acc_update_self_async_64_h
   1003  1.1.1.7  mrg     procedure :: acc_update_self_async_array_h
   1004  1.1.1.7  mrg   end interface
   1005  1.1.1.7  mrg 
   1006  1.1.1.8  mrg end module openacc
   1007      1.1  mrg 
   1008  1.1.1.8  mrg function acc_get_num_devices_h (devicetype)
   1009      1.1  mrg   use openacc_internal, only: acc_get_num_devices_l
   1010      1.1  mrg   use openacc_kinds
   1011      1.1  mrg   integer acc_get_num_devices_h
   1012  1.1.1.8  mrg   integer (acc_device_kind) devicetype
   1013  1.1.1.8  mrg   acc_get_num_devices_h = acc_get_num_devices_l (devicetype)
   1014      1.1  mrg end function
   1015      1.1  mrg 
   1016  1.1.1.8  mrg subroutine acc_set_device_type_h (devicetype)
   1017      1.1  mrg   use openacc_internal, only: acc_set_device_type_l
   1018      1.1  mrg   use openacc_kinds
   1019  1.1.1.8  mrg   integer (acc_device_kind) devicetype
   1020  1.1.1.8  mrg   call acc_set_device_type_l (devicetype)
   1021      1.1  mrg end subroutine
   1022      1.1  mrg 
   1023      1.1  mrg function acc_get_device_type_h ()
   1024      1.1  mrg   use openacc_internal, only: acc_get_device_type_l
   1025      1.1  mrg   use openacc_kinds
   1026      1.1  mrg   integer (acc_device_kind) acc_get_device_type_h
   1027      1.1  mrg   acc_get_device_type_h = acc_get_device_type_l ()
   1028      1.1  mrg end function
   1029      1.1  mrg 
   1030  1.1.1.8  mrg subroutine acc_set_device_num_h (devicenum, devicetype)
   1031      1.1  mrg   use openacc_internal, only: acc_set_device_num_l
   1032      1.1  mrg   use openacc_kinds
   1033  1.1.1.8  mrg   integer devicenum
   1034  1.1.1.8  mrg   integer (acc_device_kind) devicetype
   1035  1.1.1.8  mrg   call acc_set_device_num_l (devicenum, devicetype)
   1036      1.1  mrg end subroutine
   1037      1.1  mrg 
   1038  1.1.1.8  mrg function acc_get_device_num_h (devicetype)
   1039      1.1  mrg   use openacc_internal, only: acc_get_device_num_l
   1040      1.1  mrg   use openacc_kinds
   1041      1.1  mrg   integer acc_get_device_num_h
   1042  1.1.1.8  mrg   integer (acc_device_kind) devicetype
   1043  1.1.1.8  mrg   acc_get_device_num_h = acc_get_device_num_l (devicetype)
   1044  1.1.1.8  mrg end function
   1045  1.1.1.8  mrg 
   1046  1.1.1.8  mrg function acc_get_property_h (devicenum, devicetype, property)
   1047  1.1.1.8  mrg   use iso_c_binding, only: c_size_t
   1048  1.1.1.8  mrg   use openacc_internal, only: acc_get_property_l
   1049  1.1.1.8  mrg   use openacc_kinds
   1050  1.1.1.8  mrg   implicit none (type, external)
   1051  1.1.1.8  mrg   integer (c_size_t) :: acc_get_property_h
   1052  1.1.1.8  mrg   integer, value :: devicenum
   1053  1.1.1.8  mrg   integer (acc_device_kind), value :: devicetype
   1054  1.1.1.8  mrg   integer (acc_device_property_kind), value :: property
   1055  1.1.1.8  mrg   acc_get_property_h = acc_get_property_l (devicenum, devicetype, property)
   1056      1.1  mrg end function
   1057      1.1  mrg 
   1058  1.1.1.8  mrg subroutine acc_get_property_string_h (devicenum, devicetype, property, string)
   1059  1.1.1.8  mrg   use iso_c_binding, only: c_char, c_size_t, c_ptr, c_f_pointer, c_associated
   1060  1.1.1.8  mrg   use openacc_internal, only: acc_get_property_string_l
   1061  1.1.1.8  mrg   use openacc_kinds
   1062  1.1.1.8  mrg   implicit none (type, external)
   1063  1.1.1.8  mrg   integer, value :: devicenum
   1064  1.1.1.8  mrg   integer (acc_device_kind), value :: devicetype
   1065  1.1.1.8  mrg   integer (acc_device_property_kind), value :: property
   1066  1.1.1.8  mrg   character (*) :: string
   1067  1.1.1.8  mrg 
   1068  1.1.1.8  mrg   type (c_ptr) :: cptr
   1069  1.1.1.8  mrg   integer(c_size_t) :: clen, slen, i
   1070  1.1.1.8  mrg   character (kind=c_char, len=1), pointer, contiguous :: sptr (:)
   1071  1.1.1.8  mrg 
   1072  1.1.1.8  mrg   interface
   1073  1.1.1.8  mrg      function strlen (s) bind (C, name = "strlen")
   1074  1.1.1.8  mrg        use iso_c_binding, only: c_ptr, c_size_t
   1075  1.1.1.8  mrg        type (c_ptr), intent(in), value :: s
   1076  1.1.1.8  mrg        integer (c_size_t) :: strlen
   1077  1.1.1.8  mrg      end function strlen
   1078  1.1.1.8  mrg   end interface
   1079  1.1.1.8  mrg 
   1080  1.1.1.8  mrg   cptr = acc_get_property_string_l (devicenum, devicetype, property)
   1081  1.1.1.8  mrg   string = ""
   1082  1.1.1.8  mrg   if (.not. c_associated (cptr)) then
   1083  1.1.1.8  mrg      return
   1084  1.1.1.8  mrg   end if
   1085  1.1.1.8  mrg 
   1086  1.1.1.8  mrg   clen = strlen (cptr)
   1087  1.1.1.8  mrg   call c_f_pointer (cptr, sptr, [clen])
   1088  1.1.1.8  mrg 
   1089  1.1.1.8  mrg   slen = min (clen, len (string, kind=c_size_t))
   1090  1.1.1.8  mrg   do i = 1, slen
   1091  1.1.1.8  mrg     string (i:i) = sptr (i)
   1092  1.1.1.8  mrg   end do
   1093  1.1.1.8  mrg end subroutine
   1094  1.1.1.8  mrg 
   1095  1.1.1.8  mrg function acc_async_test_h (arg)
   1096      1.1  mrg   use openacc_internal, only: acc_async_test_l
   1097      1.1  mrg   logical acc_async_test_h
   1098  1.1.1.8  mrg   integer arg
   1099  1.1.1.8  mrg   acc_async_test_h = acc_async_test_l (arg) /= 0
   1100      1.1  mrg end function
   1101      1.1  mrg 
   1102      1.1  mrg function acc_async_test_all_h ()
   1103      1.1  mrg   use openacc_internal, only: acc_async_test_all_l
   1104      1.1  mrg   logical acc_async_test_all_h
   1105  1.1.1.8  mrg   acc_async_test_all_h = acc_async_test_all_l () /= 0
   1106      1.1  mrg end function
   1107      1.1  mrg 
   1108  1.1.1.8  mrg subroutine acc_wait_h (arg)
   1109      1.1  mrg   use openacc_internal, only: acc_wait_l
   1110  1.1.1.8  mrg   integer arg
   1111  1.1.1.8  mrg   call acc_wait_l (arg)
   1112      1.1  mrg end subroutine
   1113      1.1  mrg 
   1114  1.1.1.8  mrg subroutine acc_wait_async_h (arg, async)
   1115      1.1  mrg   use openacc_internal, only: acc_wait_async_l
   1116  1.1.1.8  mrg   integer arg, async
   1117  1.1.1.8  mrg   call acc_wait_async_l (arg, async)
   1118      1.1  mrg end subroutine
   1119      1.1  mrg 
   1120      1.1  mrg subroutine acc_wait_all_h ()
   1121      1.1  mrg   use openacc_internal, only: acc_wait_all_l
   1122      1.1  mrg   call acc_wait_all_l ()
   1123      1.1  mrg end subroutine
   1124      1.1  mrg 
   1125  1.1.1.8  mrg subroutine acc_wait_all_async_h (async)
   1126      1.1  mrg   use openacc_internal, only: acc_wait_all_async_l
   1127  1.1.1.8  mrg   integer async
   1128  1.1.1.8  mrg   call acc_wait_all_async_l (async)
   1129      1.1  mrg end subroutine
   1130      1.1  mrg 
   1131  1.1.1.8  mrg subroutine acc_init_h (devicetype)
   1132      1.1  mrg   use openacc_internal, only: acc_init_l
   1133      1.1  mrg   use openacc_kinds
   1134  1.1.1.8  mrg   integer (acc_device_kind) devicetype
   1135  1.1.1.8  mrg   call acc_init_l (devicetype)
   1136      1.1  mrg end subroutine
   1137      1.1  mrg 
   1138  1.1.1.8  mrg subroutine acc_shutdown_h (devicetype)
   1139      1.1  mrg   use openacc_internal, only: acc_shutdown_l
   1140      1.1  mrg   use openacc_kinds
   1141  1.1.1.8  mrg   integer (acc_device_kind) devicetype
   1142  1.1.1.8  mrg   call acc_shutdown_l (devicetype)
   1143      1.1  mrg end subroutine
   1144      1.1  mrg 
   1145  1.1.1.8  mrg function acc_on_device_h (devicetype)
   1146      1.1  mrg   use openacc_internal, only: acc_on_device_l
   1147      1.1  mrg   use openacc_kinds
   1148  1.1.1.8  mrg   integer (acc_device_kind) devicetype
   1149      1.1  mrg   logical acc_on_device_h
   1150  1.1.1.8  mrg   acc_on_device_h = acc_on_device_l (devicetype) /= 0
   1151      1.1  mrg end function
   1152      1.1  mrg 
   1153      1.1  mrg subroutine acc_copyin_32_h (a, len)
   1154      1.1  mrg   use iso_c_binding, only: c_int32_t, c_size_t
   1155      1.1  mrg   use openacc_internal, only: acc_copyin_l
   1156      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1157      1.1  mrg   type (*), dimension (*) :: a
   1158      1.1  mrg   integer (c_int32_t) len
   1159      1.1  mrg   call acc_copyin_l (a, int (len, kind = c_size_t))
   1160      1.1  mrg end subroutine
   1161      1.1  mrg 
   1162      1.1  mrg subroutine acc_copyin_64_h (a, len)
   1163      1.1  mrg   use iso_c_binding, only: c_int64_t, c_size_t
   1164      1.1  mrg   use openacc_internal, only: acc_copyin_l
   1165      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1166      1.1  mrg   type (*), dimension (*) :: a
   1167      1.1  mrg   integer (c_int64_t) len
   1168      1.1  mrg   call acc_copyin_l (a, int (len, kind = c_size_t))
   1169      1.1  mrg end subroutine
   1170      1.1  mrg 
   1171      1.1  mrg subroutine acc_copyin_array_h (a)
   1172      1.1  mrg   use openacc_internal, only: acc_copyin_l
   1173      1.1  mrg   type (*), dimension (..), contiguous :: a
   1174      1.1  mrg   call acc_copyin_l (a, sizeof (a))
   1175      1.1  mrg end subroutine
   1176      1.1  mrg 
   1177      1.1  mrg subroutine acc_present_or_copyin_32_h (a, len)
   1178      1.1  mrg   use iso_c_binding, only: c_int32_t, c_size_t
   1179      1.1  mrg   use openacc_internal, only: acc_present_or_copyin_l
   1180      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1181      1.1  mrg   type (*), dimension (*) :: a
   1182      1.1  mrg   integer (c_int32_t) len
   1183      1.1  mrg   call acc_present_or_copyin_l (a, int (len, kind = c_size_t))
   1184      1.1  mrg end subroutine
   1185      1.1  mrg 
   1186      1.1  mrg subroutine acc_present_or_copyin_64_h (a, len)
   1187      1.1  mrg   use iso_c_binding, only: c_int64_t, c_size_t
   1188      1.1  mrg   use openacc_internal, only: acc_present_or_copyin_l
   1189      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1190      1.1  mrg   type (*), dimension (*) :: a
   1191      1.1  mrg   integer (c_int64_t) len
   1192      1.1  mrg   call acc_present_or_copyin_l (a, int (len, kind = c_size_t))
   1193      1.1  mrg end subroutine
   1194      1.1  mrg 
   1195      1.1  mrg subroutine acc_present_or_copyin_array_h (a)
   1196      1.1  mrg   use openacc_internal, only: acc_present_or_copyin_l
   1197      1.1  mrg   type (*), dimension (..), contiguous :: a
   1198      1.1  mrg   call acc_present_or_copyin_l (a, sizeof (a))
   1199      1.1  mrg end subroutine
   1200      1.1  mrg 
   1201      1.1  mrg subroutine acc_create_32_h (a, len)
   1202      1.1  mrg   use iso_c_binding, only: c_int32_t, c_size_t
   1203      1.1  mrg   use openacc_internal, only: acc_create_l
   1204      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1205      1.1  mrg   type (*), dimension (*) :: a
   1206      1.1  mrg   integer (c_int32_t) len
   1207      1.1  mrg   call acc_create_l (a, int (len, kind = c_size_t))
   1208      1.1  mrg end subroutine
   1209      1.1  mrg 
   1210      1.1  mrg subroutine acc_create_64_h (a, len)
   1211      1.1  mrg   use iso_c_binding, only: c_int64_t, c_size_t
   1212      1.1  mrg   use openacc_internal, only: acc_create_l
   1213      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1214      1.1  mrg   type (*), dimension (*) :: a
   1215      1.1  mrg   integer (c_int64_t) len
   1216      1.1  mrg   call acc_create_l (a, int (len, kind = c_size_t))
   1217      1.1  mrg end subroutine
   1218      1.1  mrg 
   1219      1.1  mrg subroutine acc_create_array_h (a)
   1220      1.1  mrg   use openacc_internal, only: acc_create_l
   1221      1.1  mrg   type (*), dimension (..), contiguous :: a
   1222      1.1  mrg   call acc_create_l (a, sizeof (a))
   1223      1.1  mrg end subroutine
   1224      1.1  mrg 
   1225      1.1  mrg subroutine acc_present_or_create_32_h (a, len)
   1226      1.1  mrg   use iso_c_binding, only: c_int32_t, c_size_t
   1227      1.1  mrg   use openacc_internal, only: acc_present_or_create_l
   1228      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1229      1.1  mrg   type (*), dimension (*) :: a
   1230      1.1  mrg   integer (c_int32_t) len
   1231      1.1  mrg   call acc_present_or_create_l (a, int (len, kind = c_size_t))
   1232      1.1  mrg end subroutine
   1233      1.1  mrg 
   1234      1.1  mrg subroutine acc_present_or_create_64_h (a, len)
   1235      1.1  mrg   use iso_c_binding, only: c_int64_t, c_size_t
   1236      1.1  mrg   use openacc_internal, only: acc_present_or_create_l
   1237      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1238      1.1  mrg   type (*), dimension (*) :: a
   1239      1.1  mrg   integer (c_int64_t) len
   1240      1.1  mrg   call acc_present_or_create_l (a, int (len, kind = c_size_t))
   1241      1.1  mrg end subroutine
   1242      1.1  mrg 
   1243      1.1  mrg subroutine acc_present_or_create_array_h (a)
   1244      1.1  mrg   use openacc_internal, only: acc_present_or_create_l
   1245      1.1  mrg   type (*), dimension (..), contiguous :: a
   1246      1.1  mrg   call acc_present_or_create_l (a, sizeof (a))
   1247      1.1  mrg end subroutine
   1248      1.1  mrg 
   1249      1.1  mrg subroutine acc_copyout_32_h (a, len)
   1250      1.1  mrg   use iso_c_binding, only: c_int32_t, c_size_t
   1251      1.1  mrg   use openacc_internal, only: acc_copyout_l
   1252      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1253      1.1  mrg   type (*), dimension (*) :: a
   1254      1.1  mrg   integer (c_int32_t) len
   1255      1.1  mrg   call acc_copyout_l (a, int (len, kind = c_size_t))
   1256      1.1  mrg end subroutine
   1257      1.1  mrg 
   1258      1.1  mrg subroutine acc_copyout_64_h (a, len)
   1259      1.1  mrg   use iso_c_binding, only: c_int64_t, c_size_t
   1260      1.1  mrg   use openacc_internal, only: acc_copyout_l
   1261      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1262      1.1  mrg   type (*), dimension (*) :: a
   1263      1.1  mrg   integer (c_int64_t) len
   1264      1.1  mrg   call acc_copyout_l (a, int (len, kind = c_size_t))
   1265      1.1  mrg end subroutine
   1266      1.1  mrg 
   1267      1.1  mrg subroutine acc_copyout_array_h (a)
   1268      1.1  mrg   use openacc_internal, only: acc_copyout_l
   1269      1.1  mrg   type (*), dimension (..), contiguous :: a
   1270      1.1  mrg   call acc_copyout_l (a, sizeof (a))
   1271      1.1  mrg end subroutine
   1272      1.1  mrg 
   1273  1.1.1.7  mrg subroutine acc_copyout_finalize_32_h (a, len)
   1274  1.1.1.7  mrg   use iso_c_binding, only: c_int32_t, c_size_t
   1275  1.1.1.7  mrg   use openacc_internal, only: acc_copyout_finalize_l
   1276  1.1.1.7  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1277  1.1.1.7  mrg   type (*), dimension (*) :: a
   1278  1.1.1.7  mrg   integer (c_int32_t) len
   1279  1.1.1.7  mrg   call acc_copyout_finalize_l (a, int (len, kind = c_size_t))
   1280  1.1.1.7  mrg end subroutine
   1281  1.1.1.7  mrg 
   1282  1.1.1.7  mrg subroutine acc_copyout_finalize_64_h (a, len)
   1283  1.1.1.7  mrg   use iso_c_binding, only: c_int64_t, c_size_t
   1284  1.1.1.7  mrg   use openacc_internal, only: acc_copyout_finalize_l
   1285  1.1.1.7  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1286  1.1.1.7  mrg   type (*), dimension (*) :: a
   1287  1.1.1.7  mrg   integer (c_int64_t) len
   1288  1.1.1.7  mrg   call acc_copyout_finalize_l (a, int (len, kind = c_size_t))
   1289  1.1.1.7  mrg end subroutine
   1290  1.1.1.7  mrg 
   1291  1.1.1.7  mrg subroutine acc_copyout_finalize_array_h (a)
   1292  1.1.1.7  mrg   use openacc_internal, only: acc_copyout_finalize_l
   1293  1.1.1.7  mrg   type (*), dimension (..), contiguous :: a
   1294  1.1.1.7  mrg   call acc_copyout_finalize_l (a, sizeof (a))
   1295  1.1.1.7  mrg end subroutine
   1296  1.1.1.7  mrg 
   1297      1.1  mrg subroutine acc_delete_32_h (a, len)
   1298      1.1  mrg   use iso_c_binding, only: c_int32_t, c_size_t
   1299      1.1  mrg   use openacc_internal, only: acc_delete_l
   1300      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1301      1.1  mrg   type (*), dimension (*) :: a
   1302      1.1  mrg   integer (c_int32_t) len
   1303      1.1  mrg   call acc_delete_l (a, int (len, kind = c_size_t))
   1304      1.1  mrg end subroutine
   1305      1.1  mrg 
   1306      1.1  mrg subroutine acc_delete_64_h (a, len)
   1307      1.1  mrg   use iso_c_binding, only: c_int64_t, c_size_t
   1308      1.1  mrg   use openacc_internal, only: acc_delete_l
   1309      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1310      1.1  mrg   type (*), dimension (*) :: a
   1311      1.1  mrg   integer (c_int64_t) len
   1312      1.1  mrg   call acc_delete_l (a, int (len, kind = c_size_t))
   1313      1.1  mrg end subroutine
   1314      1.1  mrg 
   1315      1.1  mrg subroutine acc_delete_array_h (a)
   1316      1.1  mrg   use openacc_internal, only: acc_delete_l
   1317      1.1  mrg   type (*), dimension (..), contiguous :: a
   1318      1.1  mrg   call acc_delete_l (a, sizeof (a))
   1319      1.1  mrg end subroutine
   1320      1.1  mrg 
   1321  1.1.1.7  mrg subroutine acc_delete_finalize_32_h (a, len)
   1322  1.1.1.7  mrg   use iso_c_binding, only: c_int32_t, c_size_t
   1323  1.1.1.7  mrg   use openacc_internal, only: acc_delete_finalize_l
   1324  1.1.1.7  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1325  1.1.1.7  mrg   type (*), dimension (*) :: a
   1326  1.1.1.7  mrg   integer (c_int32_t) len
   1327  1.1.1.7  mrg   call acc_delete_finalize_l (a, int (len, kind = c_size_t))
   1328  1.1.1.7  mrg end subroutine
   1329  1.1.1.7  mrg 
   1330  1.1.1.7  mrg subroutine acc_delete_finalize_64_h (a, len)
   1331  1.1.1.7  mrg   use iso_c_binding, only: c_int64_t, c_size_t
   1332  1.1.1.7  mrg   use openacc_internal, only: acc_delete_finalize_l
   1333  1.1.1.7  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1334  1.1.1.7  mrg   type (*), dimension (*) :: a
   1335  1.1.1.7  mrg   integer (c_int64_t) len
   1336  1.1.1.7  mrg   call acc_delete_finalize_l (a, int (len, kind = c_size_t))
   1337  1.1.1.7  mrg end subroutine
   1338  1.1.1.7  mrg 
   1339  1.1.1.7  mrg subroutine acc_delete_finalize_array_h (a)
   1340  1.1.1.7  mrg   use openacc_internal, only: acc_delete_finalize_l
   1341  1.1.1.7  mrg   type (*), dimension (..), contiguous :: a
   1342  1.1.1.7  mrg   call acc_delete_finalize_l (a, sizeof (a))
   1343  1.1.1.7  mrg end subroutine
   1344  1.1.1.7  mrg 
   1345      1.1  mrg subroutine acc_update_device_32_h (a, len)
   1346      1.1  mrg   use iso_c_binding, only: c_int32_t, c_size_t
   1347      1.1  mrg   use openacc_internal, only: acc_update_device_l
   1348      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1349      1.1  mrg   type (*), dimension (*) :: a
   1350      1.1  mrg   integer (c_int32_t) len
   1351      1.1  mrg   call acc_update_device_l (a, int (len, kind = c_size_t))
   1352      1.1  mrg end subroutine
   1353      1.1  mrg 
   1354      1.1  mrg subroutine acc_update_device_64_h (a, len)
   1355      1.1  mrg   use iso_c_binding, only: c_int64_t, c_size_t
   1356      1.1  mrg   use openacc_internal, only: acc_update_device_l
   1357      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1358      1.1  mrg   type (*), dimension (*) :: a
   1359      1.1  mrg   integer (c_int64_t) len
   1360      1.1  mrg   call acc_update_device_l (a, int (len, kind = c_size_t))
   1361      1.1  mrg end subroutine
   1362      1.1  mrg 
   1363      1.1  mrg subroutine acc_update_device_array_h (a)
   1364      1.1  mrg   use openacc_internal, only: acc_update_device_l
   1365      1.1  mrg   type (*), dimension (..), contiguous :: a
   1366      1.1  mrg   call acc_update_device_l (a, sizeof (a))
   1367      1.1  mrg end subroutine
   1368      1.1  mrg 
   1369      1.1  mrg subroutine acc_update_self_32_h (a, len)
   1370      1.1  mrg   use iso_c_binding, only: c_int32_t, c_size_t
   1371      1.1  mrg   use openacc_internal, only: acc_update_self_l
   1372      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1373      1.1  mrg   type (*), dimension (*) :: a
   1374      1.1  mrg   integer (c_int32_t) len
   1375      1.1  mrg   call acc_update_self_l (a, int (len, kind = c_size_t))
   1376      1.1  mrg end subroutine
   1377      1.1  mrg 
   1378      1.1  mrg subroutine acc_update_self_64_h (a, len)
   1379      1.1  mrg   use iso_c_binding, only: c_int64_t, c_size_t
   1380      1.1  mrg   use openacc_internal, only: acc_update_self_l
   1381      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1382      1.1  mrg   type (*), dimension (*) :: a
   1383      1.1  mrg   integer (c_int64_t) len
   1384      1.1  mrg   call acc_update_self_l (a, int (len, kind = c_size_t))
   1385      1.1  mrg end subroutine
   1386      1.1  mrg 
   1387      1.1  mrg subroutine acc_update_self_array_h (a)
   1388      1.1  mrg   use openacc_internal, only: acc_update_self_l
   1389      1.1  mrg   type (*), dimension (..), contiguous :: a
   1390      1.1  mrg   call acc_update_self_l (a, sizeof (a))
   1391      1.1  mrg end subroutine
   1392      1.1  mrg 
   1393      1.1  mrg function acc_is_present_32_h (a, len)
   1394      1.1  mrg   use iso_c_binding, only: c_int32_t, c_size_t
   1395      1.1  mrg   use openacc_internal, only: acc_is_present_l
   1396      1.1  mrg   logical acc_is_present_32_h
   1397      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1398      1.1  mrg   type (*), dimension (*) :: a
   1399      1.1  mrg   integer (c_int32_t) len
   1400  1.1.1.8  mrg   acc_is_present_32_h = acc_is_present_l (a, int (len, kind = c_size_t)) /= 0
   1401      1.1  mrg end function
   1402      1.1  mrg 
   1403      1.1  mrg function acc_is_present_64_h (a, len)
   1404      1.1  mrg   use iso_c_binding, only: c_int64_t, c_size_t
   1405      1.1  mrg   use openacc_internal, only: acc_is_present_l
   1406      1.1  mrg   logical acc_is_present_64_h
   1407      1.1  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1408      1.1  mrg   type (*), dimension (*) :: a
   1409      1.1  mrg   integer (c_int64_t) len
   1410  1.1.1.8  mrg   acc_is_present_64_h = acc_is_present_l (a, int (len, kind = c_size_t)) /= 0
   1411      1.1  mrg end function
   1412      1.1  mrg 
   1413      1.1  mrg function acc_is_present_array_h (a)
   1414      1.1  mrg   use openacc_internal, only: acc_is_present_l
   1415      1.1  mrg   logical acc_is_present_array_h
   1416      1.1  mrg   type (*), dimension (..), contiguous :: a
   1417  1.1.1.8  mrg   acc_is_present_array_h = acc_is_present_l (a, sizeof (a)) /= 0
   1418      1.1  mrg end function
   1419  1.1.1.7  mrg 
   1420  1.1.1.7  mrg subroutine acc_copyin_async_32_h (a, len, async)
   1421  1.1.1.7  mrg   use iso_c_binding, only: c_int32_t, c_size_t, c_int
   1422  1.1.1.7  mrg   use openacc_internal, only: acc_copyin_async_l
   1423  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1424  1.1.1.7  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1425  1.1.1.7  mrg   type (*), dimension (*) :: a
   1426  1.1.1.7  mrg   integer (c_int32_t) len
   1427  1.1.1.7  mrg   integer (acc_handle_kind) async
   1428  1.1.1.7  mrg   call acc_copyin_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
   1429  1.1.1.7  mrg end subroutine
   1430  1.1.1.7  mrg 
   1431  1.1.1.7  mrg subroutine acc_copyin_async_64_h (a, len, async)
   1432  1.1.1.7  mrg   use iso_c_binding, only: c_int64_t, c_size_t, c_int
   1433  1.1.1.7  mrg   use openacc_internal, only: acc_copyin_async_l
   1434  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1435  1.1.1.7  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1436  1.1.1.7  mrg   type (*), dimension (*) :: a
   1437  1.1.1.7  mrg   integer (c_int64_t) len
   1438  1.1.1.7  mrg   integer (acc_handle_kind) async
   1439  1.1.1.7  mrg   call acc_copyin_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
   1440  1.1.1.7  mrg end subroutine
   1441  1.1.1.7  mrg 
   1442  1.1.1.7  mrg subroutine acc_copyin_async_array_h (a, async)
   1443  1.1.1.7  mrg   use iso_c_binding, only: c_int
   1444  1.1.1.7  mrg   use openacc_internal, only: acc_copyin_async_l
   1445  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1446  1.1.1.7  mrg   type (*), dimension (..), contiguous :: a
   1447  1.1.1.7  mrg   integer (acc_handle_kind) async
   1448  1.1.1.7  mrg   call acc_copyin_async_l (a, sizeof (a), int (async, kind = c_int))
   1449  1.1.1.7  mrg end subroutine
   1450  1.1.1.7  mrg 
   1451  1.1.1.7  mrg subroutine acc_create_async_32_h (a, len, async)
   1452  1.1.1.7  mrg   use iso_c_binding, only: c_int32_t, c_size_t, c_int
   1453  1.1.1.7  mrg   use openacc_internal, only: acc_create_async_l
   1454  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1455  1.1.1.7  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1456  1.1.1.7  mrg   type (*), dimension (*) :: a
   1457  1.1.1.7  mrg   integer (c_int32_t) len
   1458  1.1.1.7  mrg   integer (acc_handle_kind) async
   1459  1.1.1.7  mrg   call acc_create_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
   1460  1.1.1.7  mrg end subroutine
   1461  1.1.1.7  mrg 
   1462  1.1.1.7  mrg subroutine acc_create_async_64_h (a, len, async)
   1463  1.1.1.7  mrg   use iso_c_binding, only: c_int64_t, c_size_t, c_int
   1464  1.1.1.7  mrg   use openacc_internal, only: acc_create_async_l
   1465  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1466  1.1.1.7  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1467  1.1.1.7  mrg   type (*), dimension (*) :: a
   1468  1.1.1.7  mrg   integer (c_int64_t) len
   1469  1.1.1.7  mrg   integer (acc_handle_kind) async
   1470  1.1.1.7  mrg   call acc_create_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
   1471  1.1.1.7  mrg end subroutine
   1472  1.1.1.7  mrg 
   1473  1.1.1.7  mrg subroutine acc_create_async_array_h (a, async)
   1474  1.1.1.7  mrg   use iso_c_binding, only: c_int
   1475  1.1.1.7  mrg   use openacc_internal, only: acc_create_async_l
   1476  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1477  1.1.1.7  mrg   type (*), dimension (..), contiguous :: a
   1478  1.1.1.7  mrg   integer (acc_handle_kind) async
   1479  1.1.1.7  mrg   call acc_create_async_l (a, sizeof (a), int (async, kind = c_int))
   1480  1.1.1.7  mrg end subroutine
   1481  1.1.1.7  mrg 
   1482  1.1.1.7  mrg subroutine acc_copyout_async_32_h (a, len, async)
   1483  1.1.1.7  mrg   use iso_c_binding, only: c_int32_t, c_size_t, c_int
   1484  1.1.1.7  mrg   use openacc_internal, only: acc_copyout_async_l
   1485  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1486  1.1.1.7  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1487  1.1.1.7  mrg   type (*), dimension (*) :: a
   1488  1.1.1.7  mrg   integer (c_int32_t) len
   1489  1.1.1.7  mrg   integer (acc_handle_kind) async
   1490  1.1.1.7  mrg   call acc_copyout_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
   1491  1.1.1.7  mrg end subroutine
   1492  1.1.1.7  mrg 
   1493  1.1.1.7  mrg subroutine acc_copyout_async_64_h (a, len, async)
   1494  1.1.1.7  mrg   use iso_c_binding, only: c_int64_t, c_size_t, c_int
   1495  1.1.1.7  mrg   use openacc_internal, only: acc_copyout_async_l
   1496  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1497  1.1.1.7  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1498  1.1.1.7  mrg   type (*), dimension (*) :: a
   1499  1.1.1.7  mrg   integer (c_int64_t) len
   1500  1.1.1.7  mrg   integer (acc_handle_kind) async
   1501  1.1.1.7  mrg   call acc_copyout_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
   1502  1.1.1.7  mrg end subroutine
   1503  1.1.1.7  mrg 
   1504  1.1.1.7  mrg subroutine acc_copyout_async_array_h (a, async)
   1505  1.1.1.7  mrg   use iso_c_binding, only: c_int
   1506  1.1.1.7  mrg   use openacc_internal, only: acc_copyout_async_l
   1507  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1508  1.1.1.7  mrg   type (*), dimension (..), contiguous :: a
   1509  1.1.1.7  mrg   integer (acc_handle_kind) async
   1510  1.1.1.7  mrg   call acc_copyout_async_l (a, sizeof (a), int (async, kind = c_int))
   1511  1.1.1.7  mrg end subroutine
   1512  1.1.1.7  mrg 
   1513  1.1.1.7  mrg subroutine acc_delete_async_32_h (a, len, async)
   1514  1.1.1.7  mrg   use iso_c_binding, only: c_int32_t, c_size_t, c_int
   1515  1.1.1.7  mrg   use openacc_internal, only: acc_delete_async_l
   1516  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1517  1.1.1.7  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1518  1.1.1.7  mrg   type (*), dimension (*) :: a
   1519  1.1.1.7  mrg   integer (c_int32_t) len
   1520  1.1.1.7  mrg   integer (acc_handle_kind) async
   1521  1.1.1.7  mrg   call acc_delete_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
   1522  1.1.1.7  mrg end subroutine
   1523  1.1.1.7  mrg 
   1524  1.1.1.7  mrg subroutine acc_delete_async_64_h (a, len, async)
   1525  1.1.1.7  mrg   use iso_c_binding, only: c_int64_t, c_size_t, c_int
   1526  1.1.1.7  mrg   use openacc_internal, only: acc_delete_async_l
   1527  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1528  1.1.1.7  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1529  1.1.1.7  mrg   type (*), dimension (*) :: a
   1530  1.1.1.7  mrg   integer (c_int64_t) len
   1531  1.1.1.7  mrg   integer (acc_handle_kind) async
   1532  1.1.1.7  mrg   call acc_delete_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
   1533  1.1.1.7  mrg end subroutine
   1534  1.1.1.7  mrg 
   1535  1.1.1.7  mrg subroutine acc_delete_async_array_h (a, async)
   1536  1.1.1.7  mrg   use iso_c_binding, only: c_int
   1537  1.1.1.7  mrg   use openacc_internal, only: acc_delete_async_l
   1538  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1539  1.1.1.7  mrg   type (*), dimension (..), contiguous :: a
   1540  1.1.1.7  mrg   integer (acc_handle_kind) async
   1541  1.1.1.7  mrg   call acc_delete_async_l (a, sizeof (a), int (async, kind = c_int))
   1542  1.1.1.7  mrg end subroutine
   1543  1.1.1.7  mrg 
   1544  1.1.1.7  mrg subroutine acc_update_device_async_32_h (a, len, async)
   1545  1.1.1.7  mrg   use iso_c_binding, only: c_int32_t, c_size_t, c_int
   1546  1.1.1.7  mrg   use openacc_internal, only: acc_update_device_async_l
   1547  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1548  1.1.1.7  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1549  1.1.1.7  mrg   type (*), dimension (*) :: a
   1550  1.1.1.7  mrg   integer (c_int32_t) len
   1551  1.1.1.7  mrg   integer (acc_handle_kind) async
   1552  1.1.1.7  mrg   call acc_update_device_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
   1553  1.1.1.7  mrg end subroutine
   1554  1.1.1.7  mrg 
   1555  1.1.1.7  mrg subroutine acc_update_device_async_64_h (a, len, async)
   1556  1.1.1.7  mrg   use iso_c_binding, only: c_int64_t, c_size_t, c_int
   1557  1.1.1.7  mrg   use openacc_internal, only: acc_update_device_async_l
   1558  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1559  1.1.1.7  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1560  1.1.1.7  mrg   type (*), dimension (*) :: a
   1561  1.1.1.7  mrg   integer (c_int64_t) len
   1562  1.1.1.7  mrg   integer (acc_handle_kind) async
   1563  1.1.1.7  mrg   call acc_update_device_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
   1564  1.1.1.7  mrg end subroutine
   1565  1.1.1.7  mrg 
   1566  1.1.1.7  mrg subroutine acc_update_device_async_array_h (a, async)
   1567  1.1.1.7  mrg   use iso_c_binding, only: c_int
   1568  1.1.1.7  mrg   use openacc_internal, only: acc_update_device_async_l
   1569  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1570  1.1.1.7  mrg   type (*), dimension (..), contiguous :: a
   1571  1.1.1.7  mrg   integer (acc_handle_kind) async
   1572  1.1.1.7  mrg   call acc_update_device_async_l (a, sizeof (a), int (async, kind = c_int))
   1573  1.1.1.7  mrg end subroutine
   1574  1.1.1.7  mrg 
   1575  1.1.1.7  mrg subroutine acc_update_self_async_32_h (a, len, async)
   1576  1.1.1.7  mrg   use iso_c_binding, only: c_int32_t, c_size_t, c_int
   1577  1.1.1.7  mrg   use openacc_internal, only: acc_update_self_async_l
   1578  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1579  1.1.1.7  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1580  1.1.1.7  mrg   type (*), dimension (*) :: a
   1581  1.1.1.7  mrg   integer (c_int32_t) len
   1582  1.1.1.7  mrg   integer (acc_handle_kind) async
   1583  1.1.1.7  mrg   call acc_update_self_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
   1584  1.1.1.7  mrg end subroutine
   1585  1.1.1.7  mrg 
   1586  1.1.1.7  mrg subroutine acc_update_self_async_64_h (a, len, async)
   1587  1.1.1.7  mrg   use iso_c_binding, only: c_int64_t, c_size_t, c_int
   1588  1.1.1.7  mrg   use openacc_internal, only: acc_update_self_async_l
   1589  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1590  1.1.1.7  mrg   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   1591  1.1.1.7  mrg   type (*), dimension (*) :: a
   1592  1.1.1.7  mrg   integer (c_int64_t) len
   1593  1.1.1.7  mrg   integer (acc_handle_kind) async
   1594  1.1.1.7  mrg   call acc_update_self_async_l (a, int (len, kind = c_size_t), int (async, kind = c_int))
   1595  1.1.1.7  mrg end subroutine
   1596  1.1.1.7  mrg 
   1597  1.1.1.7  mrg subroutine acc_update_self_async_array_h (a, async)
   1598  1.1.1.7  mrg   use iso_c_binding, only: c_int
   1599  1.1.1.7  mrg   use openacc_internal, only: acc_update_self_async_l
   1600  1.1.1.7  mrg   use openacc_kinds, only: acc_handle_kind
   1601  1.1.1.7  mrg   type (*), dimension (..), contiguous :: a
   1602  1.1.1.7  mrg   integer (acc_handle_kind) async
   1603  1.1.1.7  mrg   call acc_update_self_async_l (a, sizeof (a), int (async, kind = c_int))
   1604  1.1.1.7  mrg end subroutine
   1605