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