1547d9b97Sjeremylt!----------------------------------------------------------------------- 2547d9b97Sjeremylt program test 31f9a83abSJed Brown implicit none 4*ec3da8bcSJed Brown include 'ceed/fortran.h' 5547d9b97Sjeremylt 6547d9b97Sjeremylt integer ceed,err 71f9a83abSJed Brown integer x,i,n 8547d9b97Sjeremylt real*8 a(10) 9547d9b97Sjeremylt real*8 norm,diff 10547d9b97Sjeremylt integer*8 aoffset 11547d9b97Sjeremylt character arg*32 12547d9b97Sjeremylt 13547d9b97Sjeremylt call getarg(1,arg) 14547d9b97Sjeremylt 15547d9b97Sjeremylt call ceedinit(trim(arg)//char(0),ceed,err) 16547d9b97Sjeremylt 17547d9b97Sjeremylt n=10 18547d9b97Sjeremylt 19547d9b97Sjeremylt call ceedvectorcreate(ceed,n,x,err) 20547d9b97Sjeremylt 21547d9b97Sjeremylt do i=1,10 22547d9b97Sjeremylt if (mod(i,2) == 0) then 23547d9b97Sjeremylt a(i)=i-1 24547d9b97Sjeremylt else 25547d9b97Sjeremylt a(i)=-(i-1) 26547d9b97Sjeremylt endif 27547d9b97Sjeremylt enddo 28547d9b97Sjeremylt aoffset=0 29547d9b97Sjeremylt call ceedvectorsetarray(x,ceed_mem_host,ceed_use_pointer,a,aoffset,err) 30547d9b97Sjeremylt 31547d9b97Sjeremylt call ceedvectornorm(x,ceed_norm_1,norm,err) 32547d9b97Sjeremylt diff = norm - 45. 33547d9b97Sjeremylt if (abs(diff)>1.0D-14) then 34547d9b97Sjeremylt! LCOV_EXCL_START 35547d9b97Sjeremylt write(*,*) 'Error L1 norm ',norm,' != 45.' 36547d9b97Sjeremylt! LCOV_EXCL_STOP 37547d9b97Sjeremylt endif 38547d9b97Sjeremylt 39547d9b97Sjeremylt call ceedvectornorm(x,ceed_norm_2,norm,err) 40547d9b97Sjeremylt diff = norm - sqrt(285.) 41547d9b97Sjeremylt if (abs(diff)>1.0D-6) then 42547d9b97Sjeremylt! LCOV_EXCL_START 43547d9b97Sjeremylt write(*,*) 'Error L2 norm ',norm,' != sqrt(285.)' 44547d9b97Sjeremylt! LCOV_EXCL_STOP 45547d9b97Sjeremylt endif 46547d9b97Sjeremylt 47547d9b97Sjeremylt call ceedvectornorm(x,ceed_norm_max,norm,err) 48547d9b97Sjeremylt diff = norm - 9. 49547d9b97Sjeremylt if (abs(diff)>1.0D-14) then 50547d9b97Sjeremylt! LCOV_EXCL_START 51547d9b97Sjeremylt write(*,*) 'Error Max norm ',norm,' != 9.' 52547d9b97Sjeremylt! LCOV_EXCL_STOP 53547d9b97Sjeremylt endif 54547d9b97Sjeremylt 55547d9b97Sjeremylt call ceedvectordestroy(x,err) 56547d9b97Sjeremylt call ceeddestroy(ceed,err) 57547d9b97Sjeremylt 58547d9b97Sjeremylt end 59547d9b97Sjeremylt!----------------------------------------------------------------------- 60