!/* clang-format off */
!
!     Copyright (c) 2017-2018, NVIDIA CORPORATION.  All rights reserved.
!
! NVIDIA CORPORATION and its licensors retain all intellectual property
! and proprietary rights in and to this software, related documentation
! and any modifications thereto.  Any use, reproduction, disclosure or
! distribution of this software and related documentation without an express
! license agreement from NVIDIA CORPORATION is strictly prohibited.
!

!          THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT
!   WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT
!   NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR
!   FITNESS FOR A PARTICULAR PURPOSE.
!
! accel_lib.h
!

      integer accel_version
      parameter ( accel_version = 201003 )
      integer acc_device_none
      parameter ( acc_device_none = 0 )
      integer acc_device_default
      parameter ( acc_device_default = 1 )
      integer acc_device_host
      parameter ( acc_device_host = 2 )
      integer acc_device_not_host
      parameter ( acc_device_not_host = 3 )
      integer acc_device_nvidia
      parameter ( acc_device_nvidia = 4 )
      integer acc_device_opencl
      parameter ( acc_device_opencl = 9 )
      integer acc_device_current
      parameter ( acc_device_current = 10 )
      integer acc_property_memory
      parameter ( acc_property_memory = 1 )
      integer acc_property_free_memory
      parameter ( acc_property_free_memory = 2 )
      integer acc_property_name
      parameter ( acc_property_name = 3 )
      integer acc_property_vendor
      parameter ( acc_property_vendor = 4 )
      integer acc_property_driver
      parameter ( acc_property_driver = 5 )
      integer acc_async_sync
      parameter ( acc_async_sync = -1 )
      integer acc_async_noval
      parameter ( acc_async_noval = -4 )

      external acc_get_num_devices
      integer acc_get_num_devices
      external acc_set_host_only
      external acc_set_device_type
      external acc_get_device_type
      integer acc_get_device_type
      external acc_set_device
      external acc_get_device
      integer acc_get_device
      external acc_set_device_num
      external acc_get_device_num
      integer acc_get_device_num
      external acc_get_property
      integer(8) acc_get_property
      external acc_get_property_string
      external acc_async_test
      logical acc_async_test
      external acc_async_test_all
      logical acc_async_test_all
      external acc_async_wait
      external acc_async_wait_all
      external acc_init
      external acc_shutdown
      external acc_on_device
      logical acc_on_device
      external acc_sync
      external acc_regions
      integer acc_regions
      external acc_kernels
      integer acc_kernels
      external acc_allocs
      integer acc_allocs
      external acc_frees
      integer acc_frees
      external acc_copyins
      integer acc_copyins
      external acc_copyouts
      integer acc_copyouts
      external acc_bytesalloc
      integer(8) acc_bytesalloc
      external acc_bytesin
      integer(8) acc_bytesin
      external acc_bytesout
      integer(8) acc_bytesout
      external acc_get_memory
      integer(8) acc_get_memory
      external acc_get_free_memory
      integer(8) acc_get_free_memory
      external acc_active
      integer(4) acc_active
      external acc_total_time
      integer(8) acc_total_time
      external acc_exec_time
      integer(8) acc_exec_time
      external acc_enable_time
      external acc_disable_time
      external acc_present_dump
      external acc_present_dump_all
      external acc_set_num_cores
      external acc_get_num_cores
