xref: /libCEED/tests/t101-vector-f.f90 (revision c04a41a732cea3148b46ee2e65fa9c6567e2e3ca)
1!-----------------------------------------------------------------------
2      program test
3      implicit none
4      include 'ceedf.h'
5
6      integer ceed,err
7      integer i,x,n
8      real*8 a(10)
9      real*8 b(10)
10      real*8 diff
11      real*8 val
12      integer*8 aoffset,boffset
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      val=3.0
21
22      call ceedvectorcreate(ceed,n,x,err)
23
24      do i=1,10
25        a(i)=10+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_host,b,boffset,err)
31
32      do i=1,10
33        diff=b(boffset+i)-10-i
34        if (abs(diff)>1.0D-15) then
35! LCOV_EXCL_START
36          write(*,*) 'Error reading array b(',i,')=',b(boffset+i)
37! LCOV_EXCL_STOP
38        endif
39      enddo
40
41      call ceedvectorrestorearrayread(x,b,boffset,err)
42
43      call ceedvectorsetvalue(x,val,err)
44      call ceedvectorgetarrayread(x,ceed_mem_host,b,boffset,err)
45
46      do i=1,10
47        diff=b(boffset+i)-val
48        if (abs(diff)>1.0D-15) then
49! LCOV_EXCL_START
50          write(*,*) 'Error reading array b(',i,')=',b(boffset+i)
51! LCOV_EXCL_STOP
52        endif
53      enddo
54
55      call ceedvectorrestorearrayread(x,b,boffset,err)
56
57      call ceedvectordestroy(x,err)
58      call ceeddestroy(ceed,err)
59
60      end
61!-----------------------------------------------------------------------
62