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