code: public static int cuSurfRefSetArray(CUsurfref hSurfRef, CUarray hArray, int Flags )
      {
          return checkResult(cuSurfRefSetArrayNative(hSurfRef, hArray, Flags));
      }
docs: Sets the CUDA array for a surface reference.
  
  <pre>
  CUresult cuSurfRefSetArray (
  CUsurfref hSurfRef,
  CUarray hArray,
  unsigned int  Flags )
  </pre>
  <div>
  <p>Sets the CUDA array for a surface
  reference.  Sets the CUDA array <tt>hArray</tt> to be read and written
  by the surface reference <tt>hSurfRef</tt>. Any previous CUDA array
  state associated with the surface reference is superseded by this
  function. <tt>Flags</tt> must be set to 0. The CUDA_ARRAY3D_SURFACE_LDST
  flag must have been set for the CUDA array. Any CUDA array previously
  bound to <tt>hSurfRef</tt> is unbound.
  </p>
  </div>
  
  @param hSurfRef Surface reference handle
  @param hArray CUDA array handle
  @param Flags set to 0
  
  @return CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED,
  CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE
  
  @see JCudaDriver#cuModuleGetSurfRef
  @see JCudaDriver#cuSurfRefGetArray