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 28 aoffset=0 29 call ceedvectorsetarray(x,ceed_mem_host,ceed_use_pointer,a,aoffset,err) 30 call ceedvectorgetarrayread(x,ceed_mem_device,b,boffset,err) 31 call ceedvectorsetarray(y,ceed_mem_device,ceed_copy_values,b,boffset,err) 32 call ceedvectorrestorearrayread(x,b,boffset,err) 33 call ceedvectorgetarrayread(y,ceed_mem_host,c,coffset,err) 34 do i=1,10 35 diff = c(i+coffset)-(9+i) 36 if (abs(diff)>1.0D-15) then 37! LCOV_EXCL_START 38 write(*,*) 'Error reading array c(',i,') = ',c(i+coffset),' != ',9+i 39! LCOV_EXCL_STOP 40 endif 41 enddo 42 call ceedvectorrestorearrayread(y,c,coffset,err) 43 44 call ceedvectordestroy(x,err) 45 call ceedvectordestroy(y,err) 46 call ceeddestroy(ceed,err) 47 48 end 49!----------------------------------------------------------------------- 50