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