110d565efSmrg ! OpenACC Runtime Library Definitions. -*- mode: fortran -*- 210d565efSmrg 3*ec02198aSmrg ! Copyright (C) 2014-2020 Free Software Foundation, Inc. 410d565efSmrg 510d565efSmrg ! Contributed by Tobias Burnus <burnus@net-b.de> 610d565efSmrg ! and Mentor Embedded. 710d565efSmrg 810d565efSmrg ! This file is part of the GNU Offloading and Multi Processing Library 910d565efSmrg ! (libgomp). 1010d565efSmrg 1110d565efSmrg ! Libgomp is free software; you can redistribute it and/or modify it 1210d565efSmrg ! under the terms of the GNU General Public License as published by 1310d565efSmrg ! the Free Software Foundation; either version 3, or (at your option) 1410d565efSmrg ! any later version. 1510d565efSmrg 1610d565efSmrg ! Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY 1710d565efSmrg ! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 1810d565efSmrg ! FOR A PARTICULAR PURPOSE. See the GNU General Public License for 1910d565efSmrg ! more details. 2010d565efSmrg 2110d565efSmrg ! Under Section 7 of GPL version 3, you are granted additional 2210d565efSmrg ! permissions described in the GCC Runtime Library Exception, version 2310d565efSmrg ! 3.1, as published by the Free Software Foundation. 2410d565efSmrg 2510d565efSmrg ! You should have received a copy of the GNU General Public License and 2610d565efSmrg ! a copy of the GCC Runtime Library Exception along with this program; 2710d565efSmrg ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 2810d565efSmrg ! <http://www.gnu.org/licenses/>. 2910d565efSmrg 3010d565efSmrg ! NOTE: Due to the use of dimension (..), the code only works when compiled 3110d565efSmrg ! with -std=f2008ts/gnu/legacy but not with other standard settings. 3210d565efSmrg ! Alternatively, the user can use the module version, which permits 3310d565efSmrg ! compilation with -std=f95. 3410d565efSmrg 35*ec02198aSmrg ! Keep in sync with openacc.f90 and config/accel/openacc.f90. 36*ec02198aSmrg 3710d565efSmrg integer, parameter :: acc_device_kind = 4 3810d565efSmrg 3910d565efSmrg ! Keep in sync with include/gomp-constants.h. 40*ec02198aSmrg integer (acc_device_kind), parameter :: acc_device_current = -1 4110d565efSmrg integer (acc_device_kind), parameter :: acc_device_none = 0 4210d565efSmrg integer (acc_device_kind), parameter :: acc_device_default = 1 4310d565efSmrg integer (acc_device_kind), parameter :: acc_device_host = 2 4410d565efSmrg ! integer (acc_device_kind), parameter :: acc_device_host_nonshm = 3 4510d565efSmrg ! removed. 4610d565efSmrg integer (acc_device_kind), parameter :: acc_device_not_host = 4 4710d565efSmrg integer (acc_device_kind), parameter :: acc_device_nvidia = 5 48*ec02198aSmrg integer (acc_device_kind), parameter :: acc_device_radeon = 8 49*ec02198aSmrg 50*ec02198aSmrg integer, parameter :: acc_device_property_kind = 4 51*ec02198aSmrg ! OpenACC 2.6/2.7/3.0 used acc_device_property; in a spec update the 52*ec02198aSmrg ! missing '_kind' was added for consistency. For backward compatibility, keep: 53*ec02198aSmrg integer, parameter :: acc_device_property & 54*ec02198aSmrg & = acc_device_property_kind 55*ec02198aSmrg 56*ec02198aSmrg integer (acc_device_property_kind), parameter :: & 57*ec02198aSmrg & acc_property_memory = 1 58*ec02198aSmrg integer (acc_device_property_kind), parameter :: & 59*ec02198aSmrg & acc_property_free_memory = 2 60*ec02198aSmrg integer (acc_device_property_kind), parameter :: & 61*ec02198aSmrg & acc_property_name = int(Z'10001') 62*ec02198aSmrg integer (acc_device_property_kind), parameter :: & 63*ec02198aSmrg & acc_property_vendor = int(Z'10002') 64*ec02198aSmrg integer (acc_device_property_kind), parameter :: & 65*ec02198aSmrg & acc_property_driver = int(Z'10003') 6610d565efSmrg 6710d565efSmrg integer, parameter :: acc_handle_kind = 4 6810d565efSmrg 6910d565efSmrg ! Keep in sync with include/gomp-constants.h. 7010d565efSmrg integer (acc_handle_kind), parameter :: acc_async_noval = -1 7110d565efSmrg integer (acc_handle_kind), parameter :: acc_async_sync = -2 7210d565efSmrg 73*ec02198aSmrg integer, parameter :: openacc_version = 201711 7410d565efSmrg 7510d565efSmrg interface acc_get_num_devices 76*ec02198aSmrg function acc_get_num_devices_h (devicetype) 7710d565efSmrg import acc_device_kind 7810d565efSmrg integer acc_get_num_devices_h 79*ec02198aSmrg integer (acc_device_kind) devicetype 8010d565efSmrg end function 8110d565efSmrg end interface 8210d565efSmrg 8310d565efSmrg interface acc_set_device_type 84*ec02198aSmrg subroutine acc_set_device_type_h (devicetype) 8510d565efSmrg import acc_device_kind 86*ec02198aSmrg integer (acc_device_kind) devicetype 8710d565efSmrg end subroutine 8810d565efSmrg end interface 8910d565efSmrg 9010d565efSmrg interface acc_get_device_type 9110d565efSmrg function acc_get_device_type_h () 9210d565efSmrg import acc_device_kind 9310d565efSmrg integer (acc_device_kind) acc_get_device_type_h 9410d565efSmrg end function 9510d565efSmrg end interface 9610d565efSmrg 9710d565efSmrg interface acc_set_device_num 98*ec02198aSmrg subroutine acc_set_device_num_h (devicenum, devicetype) 9910d565efSmrg import acc_device_kind 100*ec02198aSmrg integer devicenum 101*ec02198aSmrg integer (acc_device_kind) devicetype 10210d565efSmrg end subroutine 10310d565efSmrg end interface 10410d565efSmrg 10510d565efSmrg interface acc_get_device_num 106*ec02198aSmrg function acc_get_device_num_h (devicetype) 10710d565efSmrg import acc_device_kind 10810d565efSmrg integer acc_get_device_num_h 109*ec02198aSmrg integer (acc_device_kind) devicetype 11010d565efSmrg end function 11110d565efSmrg end interface 11210d565efSmrg 113*ec02198aSmrg interface acc_get_property 114*ec02198aSmrg function acc_get_property_h (devicenum, devicetype, & 115*ec02198aSmrg & property) 116*ec02198aSmrg use iso_c_binding, only: c_size_t 117*ec02198aSmrg import acc_device_kind, acc_device_property_kind 118*ec02198aSmrg implicit none (type, external) 119*ec02198aSmrg integer (c_size_t) :: acc_get_property_h 120*ec02198aSmrg integer, value :: devicenum 121*ec02198aSmrg integer (acc_device_kind), value :: devicetype 122*ec02198aSmrg integer (acc_device_property_kind), value :: property 123*ec02198aSmrg end function 124*ec02198aSmrg end interface 125*ec02198aSmrg 126*ec02198aSmrg interface acc_get_property_string 127*ec02198aSmrg subroutine acc_get_property_string_h (devicenum, devicetype, & 128*ec02198aSmrg & property, string) 129*ec02198aSmrg import acc_device_kind, acc_device_property_kind 130*ec02198aSmrg implicit none (type, external) 131*ec02198aSmrg integer, value :: devicenum 132*ec02198aSmrg integer (acc_device_kind), value :: devicetype 133*ec02198aSmrg integer (acc_device_property_kind), value :: property 134*ec02198aSmrg character (*) :: string 135*ec02198aSmrg end subroutine 136*ec02198aSmrg end interface 137*ec02198aSmrg 13810d565efSmrg interface acc_async_test 139*ec02198aSmrg function acc_async_test_h (arg) 14010d565efSmrg logical acc_async_test_h 141*ec02198aSmrg integer arg 14210d565efSmrg end function 14310d565efSmrg end interface 14410d565efSmrg 14510d565efSmrg interface acc_async_test_all 14610d565efSmrg function acc_async_test_all_h () 14710d565efSmrg logical acc_async_test_all_h 14810d565efSmrg end function 14910d565efSmrg end interface 15010d565efSmrg 15110d565efSmrg interface acc_wait 152*ec02198aSmrg subroutine acc_wait_h (arg) 153*ec02198aSmrg integer arg 15410d565efSmrg end subroutine 15510d565efSmrg end interface 15610d565efSmrg 157c7a68eb7Smrg ! acc_async_wait is an OpenACC 1.0 compatibility name for acc_wait. 158c7a68eb7Smrg interface acc_async_wait 159c7a68eb7Smrg procedure :: acc_wait_h 160c7a68eb7Smrg end interface 161c7a68eb7Smrg 16210d565efSmrg interface acc_wait_async 163*ec02198aSmrg subroutine acc_wait_async_h (arg, async) 164*ec02198aSmrg integer arg, async 16510d565efSmrg end subroutine 16610d565efSmrg end interface 16710d565efSmrg 16810d565efSmrg interface acc_wait_all 16910d565efSmrg subroutine acc_wait_all_h () 17010d565efSmrg end subroutine 17110d565efSmrg end interface 17210d565efSmrg 173c7a68eb7Smrg ! acc_async_wait_all is an OpenACC 1.0 compatibility name for 174c7a68eb7Smrg ! acc_wait_all. 175c7a68eb7Smrg interface acc_async_wait_all 176c7a68eb7Smrg procedure :: acc_wait_all_h 177c7a68eb7Smrg end interface 178c7a68eb7Smrg 17910d565efSmrg interface acc_wait_all_async 180*ec02198aSmrg subroutine acc_wait_all_async_h (async) 181*ec02198aSmrg integer async 18210d565efSmrg end subroutine 18310d565efSmrg end interface 18410d565efSmrg 18510d565efSmrg interface acc_init 18610d565efSmrg subroutine acc_init_h (devicetype) 18710d565efSmrg import acc_device_kind 18810d565efSmrg integer (acc_device_kind) devicetype 18910d565efSmrg end subroutine 19010d565efSmrg end interface 19110d565efSmrg 19210d565efSmrg interface acc_shutdown 19310d565efSmrg subroutine acc_shutdown_h (devicetype) 19410d565efSmrg import acc_device_kind 19510d565efSmrg integer (acc_device_kind) devicetype 19610d565efSmrg end subroutine 19710d565efSmrg end interface 19810d565efSmrg 19910d565efSmrg interface acc_on_device 20010d565efSmrg function acc_on_device_h (devicetype) 20110d565efSmrg import acc_device_kind 20210d565efSmrg logical acc_on_device_h 20310d565efSmrg integer (acc_device_kind) devicetype 20410d565efSmrg end function 20510d565efSmrg end interface 20610d565efSmrg 20710d565efSmrg ! acc_malloc: Only available in C/C++ 20810d565efSmrg ! acc_free: Only available in C/C++ 20910d565efSmrg 21010d565efSmrg interface acc_copyin 21110d565efSmrg subroutine acc_copyin_32_h (a, len) 21210d565efSmrg use iso_c_binding, only: c_int32_t 21310d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 21410d565efSmrg type (*), dimension (*) :: a 21510d565efSmrg integer (c_int32_t) len 21610d565efSmrg end subroutine 21710d565efSmrg 21810d565efSmrg subroutine acc_copyin_64_h (a, len) 21910d565efSmrg use iso_c_binding, only: c_int64_t 22010d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 22110d565efSmrg type (*), dimension (*) :: a 22210d565efSmrg integer (c_int64_t) len 22310d565efSmrg end subroutine 22410d565efSmrg 22510d565efSmrg subroutine acc_copyin_array_h (a) 22610d565efSmrg type (*), dimension (..), contiguous :: a 22710d565efSmrg end subroutine 22810d565efSmrg end interface 22910d565efSmrg 23010d565efSmrg interface acc_present_or_copyin 23110d565efSmrg subroutine acc_present_or_copyin_32_h (a, len) 23210d565efSmrg use iso_c_binding, only: c_int32_t 23310d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 23410d565efSmrg type (*), dimension (*) :: a 23510d565efSmrg integer (c_int32_t) len 23610d565efSmrg end subroutine 23710d565efSmrg 23810d565efSmrg subroutine acc_present_or_copyin_64_h (a, len) 23910d565efSmrg use iso_c_binding, only: c_int64_t 24010d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 24110d565efSmrg type (*), dimension (*) :: a 24210d565efSmrg integer (c_int64_t) len 24310d565efSmrg end subroutine 24410d565efSmrg 24510d565efSmrg subroutine acc_present_or_copyin_array_h (a) 24610d565efSmrg type (*), dimension (..), contiguous :: a 24710d565efSmrg end subroutine 24810d565efSmrg end interface 24910d565efSmrg 25010d565efSmrg interface acc_pcopyin 251c7a68eb7Smrg procedure :: acc_present_or_copyin_32_h 252c7a68eb7Smrg procedure :: acc_present_or_copyin_64_h 253c7a68eb7Smrg procedure :: acc_present_or_copyin_array_h 25410d565efSmrg end interface 25510d565efSmrg 25610d565efSmrg interface acc_create 25710d565efSmrg subroutine acc_create_32_h (a, len) 25810d565efSmrg use iso_c_binding, only: c_int32_t 25910d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 26010d565efSmrg type (*), dimension (*) :: a 26110d565efSmrg integer (c_int32_t) len 26210d565efSmrg end subroutine 26310d565efSmrg 26410d565efSmrg subroutine acc_create_64_h (a, len) 26510d565efSmrg use iso_c_binding, only: c_int64_t 26610d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 26710d565efSmrg type (*), dimension (*) :: a 26810d565efSmrg integer (c_int64_t) len 26910d565efSmrg end subroutine 27010d565efSmrg 27110d565efSmrg subroutine acc_create_array_h (a) 27210d565efSmrg type (*), dimension (..), contiguous :: a 27310d565efSmrg end subroutine 27410d565efSmrg end interface 27510d565efSmrg 27610d565efSmrg interface acc_present_or_create 27710d565efSmrg subroutine acc_present_or_create_32_h (a, len) 27810d565efSmrg use iso_c_binding, only: c_int32_t 27910d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 28010d565efSmrg type (*), dimension (*) :: a 28110d565efSmrg integer (c_int32_t) len 28210d565efSmrg end subroutine 28310d565efSmrg 28410d565efSmrg subroutine acc_present_or_create_64_h (a, len) 28510d565efSmrg use iso_c_binding, only: c_int64_t 28610d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 28710d565efSmrg type (*), dimension (*) :: a 28810d565efSmrg integer (c_int64_t) len 28910d565efSmrg end subroutine 29010d565efSmrg 29110d565efSmrg subroutine acc_present_or_create_array_h (a) 29210d565efSmrg type (*), dimension (..), contiguous :: a 29310d565efSmrg end subroutine 29410d565efSmrg end interface 29510d565efSmrg 29610d565efSmrg interface acc_pcreate 297c7a68eb7Smrg procedure :: acc_present_or_create_32_h 298c7a68eb7Smrg procedure :: acc_present_or_create_64_h 299c7a68eb7Smrg procedure :: acc_present_or_create_array_h 30010d565efSmrg end interface 30110d565efSmrg 30210d565efSmrg interface acc_copyout 30310d565efSmrg subroutine acc_copyout_32_h (a, len) 30410d565efSmrg use iso_c_binding, only: c_int32_t 30510d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 30610d565efSmrg type (*), dimension (*) :: a 30710d565efSmrg integer (c_int32_t) len 30810d565efSmrg end subroutine 30910d565efSmrg 31010d565efSmrg subroutine acc_copyout_64_h (a, len) 31110d565efSmrg use iso_c_binding, only: c_int64_t 31210d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 31310d565efSmrg type (*), dimension (*) :: a 31410d565efSmrg integer (c_int64_t) len 31510d565efSmrg end subroutine 31610d565efSmrg 31710d565efSmrg subroutine acc_copyout_array_h (a) 31810d565efSmrg type (*), dimension (..), contiguous :: a 31910d565efSmrg end subroutine 32010d565efSmrg end interface 32110d565efSmrg 3220fc04c29Smrg interface acc_copyout_finalize 3230fc04c29Smrg subroutine acc_copyout_finalize_32_h (a, len) 3240fc04c29Smrg use iso_c_binding, only: c_int32_t 3250fc04c29Smrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 3260fc04c29Smrg type (*), dimension (*) :: a 3270fc04c29Smrg integer (c_int32_t) len 3280fc04c29Smrg end subroutine 3290fc04c29Smrg 3300fc04c29Smrg subroutine acc_copyout_finalize_64_h (a, len) 3310fc04c29Smrg use iso_c_binding, only: c_int64_t 3320fc04c29Smrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 3330fc04c29Smrg type (*), dimension (*) :: a 3340fc04c29Smrg integer (c_int64_t) len 3350fc04c29Smrg end subroutine 3360fc04c29Smrg 3370fc04c29Smrg subroutine acc_copyout_finalize_array_h (a) 3380fc04c29Smrg type (*), dimension (..), contiguous :: a 3390fc04c29Smrg end subroutine 3400fc04c29Smrg end interface 3410fc04c29Smrg 34210d565efSmrg interface acc_delete 34310d565efSmrg subroutine acc_delete_32_h (a, len) 34410d565efSmrg use iso_c_binding, only: c_int32_t 34510d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 34610d565efSmrg type (*), dimension (*) :: a 34710d565efSmrg integer (c_int32_t) len 34810d565efSmrg end subroutine 34910d565efSmrg 35010d565efSmrg subroutine acc_delete_64_h (a, len) 35110d565efSmrg use iso_c_binding, only: c_int64_t 35210d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 35310d565efSmrg type (*), dimension (*) :: a 35410d565efSmrg integer (c_int64_t) len 35510d565efSmrg end subroutine 35610d565efSmrg 35710d565efSmrg subroutine acc_delete_array_h (a) 35810d565efSmrg type (*), dimension (..), contiguous :: a 35910d565efSmrg end subroutine 36010d565efSmrg end interface 36110d565efSmrg 3620fc04c29Smrg interface acc_delete_finalize 3630fc04c29Smrg subroutine acc_delete_finalize_32_h (a, len) 3640fc04c29Smrg use iso_c_binding, only: c_int32_t 3650fc04c29Smrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 3660fc04c29Smrg type (*), dimension (*) :: a 3670fc04c29Smrg integer (c_int32_t) len 3680fc04c29Smrg end subroutine 3690fc04c29Smrg 3700fc04c29Smrg subroutine acc_delete_finalize_64_h (a, len) 3710fc04c29Smrg use iso_c_binding, only: c_int64_t 3720fc04c29Smrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 3730fc04c29Smrg type (*), dimension (*) :: a 3740fc04c29Smrg integer (c_int64_t) len 3750fc04c29Smrg end subroutine 3760fc04c29Smrg 3770fc04c29Smrg subroutine acc_delete_finalize_array_h (a) 3780fc04c29Smrg type (*), dimension (..), contiguous :: a 3790fc04c29Smrg end subroutine 3800fc04c29Smrg end interface 3810fc04c29Smrg 38210d565efSmrg interface acc_update_device 38310d565efSmrg subroutine acc_update_device_32_h (a, len) 38410d565efSmrg use iso_c_binding, only: c_int32_t 38510d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 38610d565efSmrg type (*), dimension (*) :: a 38710d565efSmrg integer (c_int32_t) len 38810d565efSmrg end subroutine 38910d565efSmrg 39010d565efSmrg subroutine acc_update_device_64_h (a, len) 39110d565efSmrg use iso_c_binding, only: c_int64_t 39210d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 39310d565efSmrg type (*), dimension (*) :: a 39410d565efSmrg integer (c_int64_t) len 39510d565efSmrg end subroutine 39610d565efSmrg 39710d565efSmrg subroutine acc_update_device_array_h (a) 39810d565efSmrg type (*), dimension (..), contiguous :: a 39910d565efSmrg end subroutine 40010d565efSmrg end interface 40110d565efSmrg 40210d565efSmrg interface acc_update_self 40310d565efSmrg subroutine acc_update_self_32_h (a, len) 40410d565efSmrg use iso_c_binding, only: c_int32_t 40510d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 40610d565efSmrg type (*), dimension (*) :: a 40710d565efSmrg integer (c_int32_t) len 40810d565efSmrg end subroutine 40910d565efSmrg 41010d565efSmrg subroutine acc_update_self_64_h (a, len) 41110d565efSmrg use iso_c_binding, only: c_int64_t 41210d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 41310d565efSmrg type (*), dimension (*) :: a 41410d565efSmrg integer (c_int64_t) len 41510d565efSmrg end subroutine 41610d565efSmrg 41710d565efSmrg subroutine acc_update_self_array_h (a) 41810d565efSmrg type (*), dimension (..), contiguous :: a 41910d565efSmrg end subroutine 42010d565efSmrg end interface 42110d565efSmrg 42210d565efSmrg ! acc_map_data: Only available in C/C++ 42310d565efSmrg ! acc_unmap_data: Only available in C/C++ 42410d565efSmrg ! acc_deviceptr: Only available in C/C++ 425c7a68eb7Smrg ! acc_hostptr: Only available in C/C++ 42610d565efSmrg 42710d565efSmrg interface acc_is_present 42810d565efSmrg function acc_is_present_32_h (a, len) 42910d565efSmrg use iso_c_binding, only: c_int32_t 43010d565efSmrg logical acc_is_present_32_h 43110d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 43210d565efSmrg type (*), dimension (*) :: a 43310d565efSmrg integer (c_int32_t) len 43410d565efSmrg end function 43510d565efSmrg 43610d565efSmrg function acc_is_present_64_h (a, len) 43710d565efSmrg use iso_c_binding, only: c_int64_t 43810d565efSmrg logical acc_is_present_64_h 43910d565efSmrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 44010d565efSmrg type (*), dimension (*) :: a 44110d565efSmrg integer (c_int64_t) len 44210d565efSmrg end function 44310d565efSmrg 44410d565efSmrg function acc_is_present_array_h (a) 44510d565efSmrg logical acc_is_present_array_h 44610d565efSmrg type (*), dimension (..), contiguous :: a 44710d565efSmrg end function 44810d565efSmrg end interface 44910d565efSmrg 45010d565efSmrg ! acc_memcpy_to_device: Only available in C/C++ 45110d565efSmrg ! acc_memcpy_from_device: Only available in C/C++ 4520fc04c29Smrg 4530fc04c29Smrg interface acc_copyin_async 4540fc04c29Smrg subroutine acc_copyin_async_32_h (a, len, async) 4550fc04c29Smrg use iso_c_binding, only: c_int32_t 4560fc04c29Smrg import acc_handle_kind 4570fc04c29Smrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 4580fc04c29Smrg type (*), dimension (*) :: a 4590fc04c29Smrg integer (c_int32_t) len 4600fc04c29Smrg integer (acc_handle_kind) async 4610fc04c29Smrg end subroutine 4620fc04c29Smrg 4630fc04c29Smrg subroutine acc_copyin_async_64_h (a, len, async) 4640fc04c29Smrg use iso_c_binding, only: c_int64_t 4650fc04c29Smrg import acc_handle_kind 4660fc04c29Smrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 4670fc04c29Smrg type (*), dimension (*) :: a 4680fc04c29Smrg integer (c_int64_t) len 4690fc04c29Smrg integer (acc_handle_kind) async 4700fc04c29Smrg end subroutine 4710fc04c29Smrg 4720fc04c29Smrg subroutine acc_copyin_async_array_h (a, async_) 4730fc04c29Smrg import acc_handle_kind 4740fc04c29Smrg type (*), dimension (..), contiguous :: a 4750fc04c29Smrg integer (acc_handle_kind) async_ 4760fc04c29Smrg end subroutine 4770fc04c29Smrg end interface 4780fc04c29Smrg 4790fc04c29Smrg interface acc_create_async 4800fc04c29Smrg subroutine acc_create_async_32_h (a, len, async) 4810fc04c29Smrg use iso_c_binding, only: c_int32_t 4820fc04c29Smrg import acc_handle_kind 4830fc04c29Smrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 4840fc04c29Smrg type (*), dimension (*) :: a 4850fc04c29Smrg integer (c_int32_t) len 4860fc04c29Smrg integer (acc_handle_kind) async 4870fc04c29Smrg end subroutine 4880fc04c29Smrg 4890fc04c29Smrg subroutine acc_create_async_64_h (a, len, async) 4900fc04c29Smrg use iso_c_binding, only: c_int64_t 4910fc04c29Smrg import acc_handle_kind 4920fc04c29Smrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 4930fc04c29Smrg type (*), dimension (*) :: a 4940fc04c29Smrg integer (c_int64_t) len 4950fc04c29Smrg integer (acc_handle_kind) async 4960fc04c29Smrg end subroutine 4970fc04c29Smrg 4980fc04c29Smrg subroutine acc_create_async_array_h (a, async_) 4990fc04c29Smrg import acc_handle_kind 5000fc04c29Smrg type (*), dimension (..), contiguous :: a 5010fc04c29Smrg integer (acc_handle_kind) async_ 5020fc04c29Smrg end subroutine 5030fc04c29Smrg end interface 5040fc04c29Smrg 5050fc04c29Smrg interface acc_copyout_async 5060fc04c29Smrg subroutine acc_copyout_async_32_h (a, len, async) 5070fc04c29Smrg use iso_c_binding, only: c_int32_t 5080fc04c29Smrg import acc_handle_kind 5090fc04c29Smrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 5100fc04c29Smrg type (*), dimension (*) :: a 5110fc04c29Smrg integer (c_int32_t) len 5120fc04c29Smrg integer (acc_handle_kind) async 5130fc04c29Smrg end subroutine 5140fc04c29Smrg 5150fc04c29Smrg subroutine acc_copyout_async_64_h (a, len, async) 5160fc04c29Smrg use iso_c_binding, only: c_int64_t 5170fc04c29Smrg import acc_handle_kind 5180fc04c29Smrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 5190fc04c29Smrg type (*), dimension (*) :: a 5200fc04c29Smrg integer (c_int64_t) len 5210fc04c29Smrg integer (acc_handle_kind) async 5220fc04c29Smrg end subroutine 5230fc04c29Smrg 5240fc04c29Smrg subroutine acc_copyout_async_array_h (a, async_) 5250fc04c29Smrg import acc_handle_kind 5260fc04c29Smrg type (*), dimension (..), contiguous :: a 5270fc04c29Smrg integer (acc_handle_kind) async_ 5280fc04c29Smrg end subroutine 5290fc04c29Smrg end interface 5300fc04c29Smrg 5310fc04c29Smrg interface acc_delete_async 5320fc04c29Smrg subroutine acc_delete_async_32_h (a, len, async) 5330fc04c29Smrg use iso_c_binding, only: c_int32_t 5340fc04c29Smrg import acc_handle_kind 5350fc04c29Smrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 5360fc04c29Smrg type (*), dimension (*) :: a 5370fc04c29Smrg integer (c_int32_t) len 5380fc04c29Smrg integer (acc_handle_kind) async 5390fc04c29Smrg end subroutine 5400fc04c29Smrg 5410fc04c29Smrg subroutine acc_delete_async_64_h (a, len, async) 5420fc04c29Smrg use iso_c_binding, only: c_int64_t 5430fc04c29Smrg import acc_handle_kind 5440fc04c29Smrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 5450fc04c29Smrg type (*), dimension (*) :: a 5460fc04c29Smrg integer (c_int64_t) len 5470fc04c29Smrg integer (acc_handle_kind) async 5480fc04c29Smrg end subroutine 5490fc04c29Smrg 5500fc04c29Smrg subroutine acc_delete_async_array_h (a, async_) 5510fc04c29Smrg import acc_handle_kind 5520fc04c29Smrg type (*), dimension (..), contiguous :: a 5530fc04c29Smrg integer (acc_handle_kind) async_ 5540fc04c29Smrg end subroutine 5550fc04c29Smrg end interface 5560fc04c29Smrg 5570fc04c29Smrg interface acc_update_device_async 5580fc04c29Smrg subroutine acc_update_device_async_32_h (a, len, async) 5590fc04c29Smrg use iso_c_binding, only: c_int32_t 5600fc04c29Smrg import acc_handle_kind 5610fc04c29Smrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 5620fc04c29Smrg type (*), dimension (*) :: a 5630fc04c29Smrg integer (c_int32_t) len 5640fc04c29Smrg integer (acc_handle_kind) async 5650fc04c29Smrg end subroutine 5660fc04c29Smrg 5670fc04c29Smrg subroutine acc_update_device_async_64_h (a, len, async) 5680fc04c29Smrg use iso_c_binding, only: c_int64_t 5690fc04c29Smrg import acc_handle_kind 5700fc04c29Smrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 5710fc04c29Smrg type (*), dimension (*) :: a 5720fc04c29Smrg integer (c_int64_t) len 5730fc04c29Smrg integer (acc_handle_kind) async 5740fc04c29Smrg end subroutine 5750fc04c29Smrg 5760fc04c29Smrg subroutine acc_update_device_async_array_h (a, async_) 5770fc04c29Smrg import acc_handle_kind 5780fc04c29Smrg type (*), dimension (..), contiguous :: a 5790fc04c29Smrg integer (acc_handle_kind) async_ 5800fc04c29Smrg end subroutine 5810fc04c29Smrg end interface 5820fc04c29Smrg 5830fc04c29Smrg interface acc_update_self_async 5840fc04c29Smrg subroutine acc_update_self_async_32_h (a, len, async) 5850fc04c29Smrg use iso_c_binding, only: c_int32_t 5860fc04c29Smrg import acc_handle_kind 5870fc04c29Smrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 5880fc04c29Smrg type (*), dimension (*) :: a 5890fc04c29Smrg integer (c_int32_t) len 5900fc04c29Smrg integer (acc_handle_kind) async 5910fc04c29Smrg end subroutine 5920fc04c29Smrg 5930fc04c29Smrg subroutine acc_update_self_async_64_h (a, len, async) 5940fc04c29Smrg use iso_c_binding, only: c_int64_t 5950fc04c29Smrg import acc_handle_kind 5960fc04c29Smrg !GCC$ ATTRIBUTES NO_ARG_CHECK :: a 5970fc04c29Smrg type (*), dimension (*) :: a 5980fc04c29Smrg integer (c_int64_t) len 5990fc04c29Smrg integer (acc_handle_kind) async 6000fc04c29Smrg end subroutine 6010fc04c29Smrg 6020fc04c29Smrg subroutine acc_update_self_async_array_h (a, async_) 6030fc04c29Smrg import acc_handle_kind 6040fc04c29Smrg type (*), dimension (..), contiguous :: a 6050fc04c29Smrg integer (acc_handle_kind) async_ 6060fc04c29Smrg end subroutine 6070fc04c29Smrg end interface 608