1!----------------------------------------------------------------------- 2 program test 3 implicit none 4 include 'ceedf.h' 5 6 integer ceed,err 7 integer x,y,i,n 8 real*8 a(10) 9 real*8 b(10) 10 real*8 c(10) 11 real*8 diff 12 integer*8 aoffset,boffset,coffset 13 character arg*32 14 15 call getarg(1,arg) 16 17 call ceedinit(trim(arg)//char(0),ceed,err) 18 19 n=10 20 21 call ceedvectorcreate(ceed,n,x,err) 22 call ceedvectorcreate(ceed,n,y,err) 23 24 do i=1,10 25 a(i)=9+i 26 enddo 27 aoffset=0 28 call ceedvectorsetarray(x,ceed_mem_host,ceed_use_pointer,a,aoffset,err) 29 30 do i=1,10 31 b(i)=0 32 enddo 33 boffset=0 34 call ceedvectorsetarray(y,ceed_mem_host,ceed_use_pointer,b,boffset,err) 35 36 call ceedvectorgetarrayread(x,ceed_mem_device,c,coffset,err) 37 call ceedvectorsetarray(y,ceed_mem_device,ceed_copy_values,c,coffset,err) 38 call ceedvectorrestorearrayread(x,c,coffset,err) 39 40 call ceedvectorsyncarray(y,ceed_mem_host,err) 41 do i=1,10 42 diff = b(i+boffset)-(9+i) 43 if (abs(diff)>1.0D-15) then 44! LCOV_EXCL_START 45 write(*,*) 'Error reading array b(',i,') = ',b(i+boffset),' != ',9+i 46! LCOV_EXCL_STOP 47 endif 48 enddo 49 50 call ceedvectordestroy(x,err) 51 call ceedvectordestroy(y,err) 52 call ceeddestroy(ceed,err) 53 54 end 55!----------------------------------------------------------------------- 56