xref: /libCEED/tests/t108-vector-f.f90 (revision c04a41a732cea3148b46ee2e65fa9c6567e2e3ca)
1!-----------------------------------------------------------------------
2      program test
3      implicit none
4      include 'ceedf.h'
5
6      integer ceed,err
7      integer x,i,n
8      real*8 a(10)
9      real*8 norm,diff
10      integer*8 aoffset
11      character arg*32
12
13      call getarg(1,arg)
14
15      call ceedinit(trim(arg)//char(0),ceed,err)
16
17      n=10
18
19      call ceedvectorcreate(ceed,n,x,err)
20
21      do i=1,10
22        if (mod(i,2) == 0) then
23          a(i)=i-1
24        else
25          a(i)=-(i-1)
26        endif
27      enddo
28      aoffset=0
29      call ceedvectorsetarray(x,ceed_mem_host,ceed_use_pointer,a,aoffset,err)
30
31      call ceedvectornorm(x,ceed_norm_1,norm,err)
32      diff = norm - 45.
33      if (abs(diff)>1.0D-14) then
34! LCOV_EXCL_START
35        write(*,*) 'Error L1 norm ',norm,' != 45.'
36! LCOV_EXCL_STOP
37      endif
38
39      call ceedvectornorm(x,ceed_norm_2,norm,err)
40      diff = norm - sqrt(285.)
41      if (abs(diff)>1.0D-6) then
42! LCOV_EXCL_START
43        write(*,*) 'Error L2 norm ',norm,' != sqrt(285.)'
44! LCOV_EXCL_STOP
45      endif
46
47      call ceedvectornorm(x,ceed_norm_max,norm,err)
48      diff = norm - 9.
49      if (abs(diff)>1.0D-14) then
50! LCOV_EXCL_START
51        write(*,*) 'Error Max norm ',norm,' != 9.'
52! LCOV_EXCL_STOP
53      endif
54
55      call ceedvectordestroy(x,err)
56      call ceeddestroy(ceed,err)
57
58      end
59!-----------------------------------------------------------------------
60