xref: /libCEED/tests/t119-vector-f.f90 (revision 874019bc89a44b0eae6b48d78442abcb0851055b)
1!-----------------------------------------------------------------------
2      program test
3      implicit none
4      include 'ceed/fortran.h'
5
6      integer ceed,err
7      integer i,x,n
8      integer*8 aoffset,boffset
9      real*8 a(10)
10      real*8 b(10)
11      real*8 diff
12      character arg*32
13
14      call getarg(1,arg)
15
16      call ceedinit(trim(arg)//char(0),ceed,err)
17
18      n=10
19
20      call ceedvectorcreate(ceed,n,x,err)
21
22      do i=1,10
23        a(i)=10+i
24      enddo
25
26      aoffset=0
27      call ceedvectorsetarray(x,ceed_mem_host,ceed_use_pointer,a,aoffset,err)
28      call ceedvectorreciprocal(x,err)
29
30      call ceedvectorgetarrayread(x,ceed_mem_host,b,boffset,err)
31      do i=1,10
32        diff=1./(real(10+i,8))-b(i+boffset)
33        if (abs(diff)>1.0D-15) then
34! LCOV_EXCL_START
35          write(*,*) 'Error reading array b(',i,')=',b(i+boffset),diff
36! LCOV_EXCL_STOP
37        endif
38      enddo
39
40      call ceedvectorrestorearrayread(x,b,boffset,err)
41      call ceedvectordestroy(x,err)
42      call ceeddestroy(ceed,err)
43
44      end
45!-----------------------------------------------------------------------
46