!-----------------------------------------------------------------------
      program test
      implicit none
      include 'ceed/fortran.h'

      integer ceed,err
      integer x,y,i,n
      real*8 a(10)
      real*8 b(10)
      real*8 c(10)
      real*8 diff
      integer*8 aoffset,boffset,coffset
      character arg*32

      call getarg(1,arg)

      call ceedinit(trim(arg)//char(0),ceed,err)

      n=10

      call ceedvectorcreate(ceed,n,x,err)
      call ceedvectorcreate(ceed,n,y,err)

      do i=1,10
        a(i)=9+i
      enddo

      aoffset=0
      call ceedvectorsetarray(x,ceed_mem_host,ceed_use_pointer,a,aoffset,err)
      call ceedvectorgetarrayread(x,ceed_mem_device,b,boffset,err)
      call ceedvectorsetarray(y,ceed_mem_device,ceed_copy_values,b,boffset,err)
      call ceedvectorrestorearrayread(x,b,boffset,err)
      call ceedvectorgetarrayread(y,ceed_mem_host,c,coffset,err)
      do i=1,10
        diff = c(i+coffset)-(9+i)
        if (abs(diff)>1.0D-15) then
! LCOV_EXCL_START
          write(*,*) 'Error reading array c(',i,') = ',c(i+coffset),' != ',9+i
! LCOV_EXCL_STOP
        endif
      enddo
      call ceedvectorrestorearrayread(y,c,coffset,err)

      call ceedvectordestroy(x,err)
      call ceedvectordestroy(y,err)
      call ceeddestroy(ceed,err)

      end
!-----------------------------------------------------------------------
