xref: /libCEED/tests/t101-vector-f.f90 (revision 874019bc89a44b0eae6b48d78442abcb0851055b)
10436c2adSjeremylt!-----------------------------------------------------------------------
20436c2adSjeremylt      program test
31f9a83abSJed Brown      implicit none
4*ec3da8bcSJed Brown      include 'ceed/fortran.h'
50436c2adSjeremylt
60436c2adSjeremylt      integer ceed,err
71f9a83abSJed Brown      integer i,x,n
80436c2adSjeremylt      real*8 a(10)
90436c2adSjeremylt      real*8 b(10)
100436c2adSjeremylt      real*8 diff
110436c2adSjeremylt      real*8 val
120436c2adSjeremylt      integer*8 aoffset,boffset
130436c2adSjeremylt      character arg*32
140436c2adSjeremylt
150436c2adSjeremylt      call getarg(1,arg)
160436c2adSjeremylt
170436c2adSjeremylt      call ceedinit(trim(arg)//char(0),ceed,err)
180436c2adSjeremylt
190436c2adSjeremylt      n=10
200436c2adSjeremylt      val=3.0
210436c2adSjeremylt
220436c2adSjeremylt      call ceedvectorcreate(ceed,n,x,err)
230436c2adSjeremylt
240436c2adSjeremylt      do i=1,10
250436c2adSjeremylt        a(i)=10+i
260436c2adSjeremylt      enddo
270436c2adSjeremylt
280436c2adSjeremylt      aoffset=0
290436c2adSjeremylt      call ceedvectorsetarray(x,ceed_mem_host,ceed_use_pointer,a,aoffset,err)
300436c2adSjeremylt      call ceedvectorgetarrayread(x,ceed_mem_host,b,boffset,err)
310436c2adSjeremylt
320436c2adSjeremylt      do i=1,10
330436c2adSjeremylt        diff=b(boffset+i)-10-i
340436c2adSjeremylt        if (abs(diff)>1.0D-15) then
350436c2adSjeremylt! LCOV_EXCL_START
360436c2adSjeremylt          write(*,*) 'Error reading array b(',i,')=',b(boffset+i)
370436c2adSjeremylt! LCOV_EXCL_STOP
380436c2adSjeremylt        endif
390436c2adSjeremylt      enddo
400436c2adSjeremylt
410436c2adSjeremylt      call ceedvectorrestorearrayread(x,b,boffset,err)
420436c2adSjeremylt
430436c2adSjeremylt      call ceedvectorsetvalue(x,val,err)
440436c2adSjeremylt      call ceedvectorgetarrayread(x,ceed_mem_host,b,boffset,err)
450436c2adSjeremylt
460436c2adSjeremylt      do i=1,10
470436c2adSjeremylt        diff=b(boffset+i)-val
480436c2adSjeremylt        if (abs(diff)>1.0D-15) then
490436c2adSjeremylt! LCOV_EXCL_START
500436c2adSjeremylt          write(*,*) 'Error reading array b(',i,')=',b(boffset+i)
510436c2adSjeremylt! LCOV_EXCL_STOP
520436c2adSjeremylt        endif
530436c2adSjeremylt      enddo
540436c2adSjeremylt
550436c2adSjeremylt      call ceedvectorrestorearrayread(x,b,boffset,err)
560436c2adSjeremylt
570436c2adSjeremylt      call ceedvectordestroy(x,err)
580436c2adSjeremylt      call ceeddestroy(ceed,err)
590436c2adSjeremylt
600436c2adSjeremylt      end
610436c2adSjeremylt!-----------------------------------------------------------------------
62