acc_copyin (GNU libgomp)

### 6.18 `acc_copyin` – Allocate device memory and copy host memory to it. ¶

Description

  In C/C++, this function allocates len bytes of device memory and maps it to the specified host address in a. The device address of the newly allocated device memory is returned.

  In Fortran, two (2) forms are supported. In the first form, a specifies a contiguous array section. The second form a specifies a variable or array element and len specifies the length in bytes.

C/C++:

  Prototype: | `void *acc_copyin(h_void *a, size_t len);`
  Prototype: | `void *acc_copyin_async(h_void *a, size_t len, int async);`

Fortran:

  Interface: | `subroutine acc_copyin(a)`
  | `type(*), dimension(..) :: a`
  Interface: | `subroutine acc_copyin(a, len)`
  | `type(*), dimension(..) :: a`
  | `integer len`
  Interface: | `subroutine acc_copyin_async(a, async)`
  | `type(*), dimension(..) :: a`
  | `integer(acc_handle_kind) :: async`
  Interface: | `subroutine acc_copyin_async(a, len, async)`
  | `type(*), dimension(..) :: a`
  | `integer len`
  | `integer(acc_handle_kind) :: async`

Reference:

  OpenACC specification v2.6, section 3.2.20.