xref: /libCEED/tests/t106-vector-f.f90 (revision 7f1dc7b91d4f5ca67db10df8f4f0b60afe166f53)
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