xref: /libCEED/tests/t103-vector-f.f90 (revision 3446d1b5ce8d1a4e72ebab9baee4f1efd0361227)
1!-----------------------------------------------------------------------
2      program test
3      implicit none
4      include 'ceedf.h'
5
6      integer ceed,err
7      integer x,y,i,n
8      integer*8 aoffset,xoffset,yoffset
9      real*8 a(10)
10      real*8 xx(10)
11      real*8 yy(10)
12      real*8 diff
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      call ceedvectorcreate(ceed,n,x,err)
21      call ceedvectorcreate(ceed,n,y,err)
22
23      do i=1,10
24        a(i)=10+i
25      enddo
26
27      aoffset=0
28      call ceedvectorsetarray(x,ceed_mem_host,ceed_use_pointer,a,aoffset,err)
29
30      call ceedvectorgetarray(x,ceed_mem_host,xx,xoffset,err)
31      call ceedvectorsetarray(y,ceed_mem_host,ceed_copy_values,xx,xoffset,err)
32      call ceedvectorrestorearray(x,xx,xoffset,err)
33
34      call ceedvectorgetarrayread(y,ceed_mem_host,yy,yoffset,err)
35
36      do i=1,10
37        diff=yy(i+yoffset)-10-i
38        if (abs(diff)>1.0D-15) then
39! LCOV_EXCL_START
40          write(*,*) 'Error reading array y(',i,')=',yy(i+yoffset)
41! LCOV_EXCL_STOP
42        endif
43      enddo
44
45      call ceedvectorrestorearrayread(y,yy,yoffset,err)
46      call ceedvectordestroy(x,err)
47      call ceedvectordestroy(y,err)
48      call ceeddestroy(ceed,err)
49
50      end
51!-----------------------------------------------------------------------
52