152d6035fSJeremy L Thompson!----------------------------------------------------------------------- 252d6035fSJeremy L Thompson! 352d6035fSJeremy L Thompson! Header with common subroutine 452d6035fSJeremy L Thompson! 5*52bfb9bbSJeremy L Thompson include 't320-basis-f.h' 652d6035fSJeremy L Thompson!----------------------------------------------------------------------- 752d6035fSJeremy L Thompson subroutine setup(ctx,q,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,& 852d6035fSJeremy L Thompson& u15,u16,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,ierr) 952d6035fSJeremy L Thompson real*8 ctx 1052d6035fSJeremy L Thompson real*8 u1(1) 1152d6035fSJeremy L Thompson real*8 u2(1) 1252d6035fSJeremy L Thompson real*8 v1(1) 1352d6035fSJeremy L Thompson integer q,ierr 1452d6035fSJeremy L Thompson 1552d6035fSJeremy L Thompson do i=1,q 1652d6035fSJeremy L Thompson v1(i)=u1(i)*(u2(i+q*0)*u2(i+q*3)-u2(i+q*1)*u2(i+q*2)) 1752d6035fSJeremy L Thompson enddo 1852d6035fSJeremy L Thompson 1952d6035fSJeremy L Thompson ierr=0 2052d6035fSJeremy L Thompson end 2152d6035fSJeremy L Thompson!----------------------------------------------------------------------- 2252d6035fSJeremy L Thompson subroutine mass(ctx,q,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,& 2352d6035fSJeremy L Thompson& u15,u16,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,ierr) 2452d6035fSJeremy L Thompson real*8 ctx 2552d6035fSJeremy L Thompson real*8 u1(1) 2652d6035fSJeremy L Thompson real*8 u2(1) 2752d6035fSJeremy L Thompson real*8 v1(1) 2852d6035fSJeremy L Thompson integer q,ierr 2952d6035fSJeremy L Thompson 3052d6035fSJeremy L Thompson do i=1,q 3152d6035fSJeremy L Thompson v1(i)=u2(i)*u1(i) 3252d6035fSJeremy L Thompson enddo 3352d6035fSJeremy L Thompson 3452d6035fSJeremy L Thompson ierr=0 3552d6035fSJeremy L Thompson end 3652d6035fSJeremy L Thompson!----------------------------------------------------------------------- 3752d6035fSJeremy L Thompson program test 3852d6035fSJeremy L Thompson 3952d6035fSJeremy L Thompson include 'ceedf.h' 4052d6035fSJeremy L Thompson 4152d6035fSJeremy L Thompson integer ceed,err,i,j,k 4252d6035fSJeremy L Thompson integer erestrictxtet,erestrictutet,erestrictxitet,erestrictuitet,& 4352d6035fSJeremy L Thompson& erestrictxhex,erestrictuhex,erestrictxihex,erestrictuihex 4452d6035fSJeremy L Thompson integer bxtet,butet,bxhex,buhex 4552d6035fSJeremy L Thompson integer qf_setuptet,qf_masstet,qf_setuphex,qf_masshex 4652d6035fSJeremy L Thompson integer op_setuptet,op_masstet,op_setuphex,op_masshex,op_setup,op_mass 4752d6035fSJeremy L Thompson integer qdatatet,qdatahex,x,u,v 4852d6035fSJeremy L Thompson integer nelemtet,nelemhex,ptet,phex,qtet,qhex,d 4952d6035fSJeremy L Thompson integer row,col,offset 5052d6035fSJeremy L Thompson parameter(nelemtet=6) 5152d6035fSJeremy L Thompson parameter(ptet=6) 5252d6035fSJeremy L Thompson parameter(qtet=4) 5352d6035fSJeremy L Thompson parameter(nelemhex=6) 5452d6035fSJeremy L Thompson parameter(phex=3) 5552d6035fSJeremy L Thompson parameter(qhex=4) 5652d6035fSJeremy L Thompson parameter(d=2) 5752d6035fSJeremy L Thompson integer ndofs,nqptstet,nqptshex,nqpts,nx,ny,nxtet,nytet,nxhex 5852d6035fSJeremy L Thompson parameter(nx=3) 5952d6035fSJeremy L Thompson parameter(ny=3) 6052d6035fSJeremy L Thompson parameter(nxtet=3) 6152d6035fSJeremy L Thompson parameter(nytet=1) 6252d6035fSJeremy L Thompson parameter(nxhex=3) 6352d6035fSJeremy L Thompson parameter(ndofs=(nx*2+1)*(ny*2+1)) 6452d6035fSJeremy L Thompson parameter(nqptstet=nelemtet*qtet) 6552d6035fSJeremy L Thompson parameter(nqptshex=nelemhex*qhex*qhex) 6652d6035fSJeremy L Thompson parameter(nqpts=nqptstet+nqptshex) 6752d6035fSJeremy L Thompson integer indxtet(nelemtet*ptet),indxhex(nelemhex*phex*phex) 6852d6035fSJeremy L Thompson real*8 arrx(d*ndofs) 69c8b9fe72Sjeremylt integer*8 voffset,xoffset 7052d6035fSJeremy L Thompson 7152d6035fSJeremy L Thompson real*8 qref(d*qtet) 7252d6035fSJeremy L Thompson real*8 qweight(qtet) 7352d6035fSJeremy L Thompson real*8 interp(ptet*qtet) 7452d6035fSJeremy L Thompson real*8 grad(d*ptet*qtet) 7552d6035fSJeremy L Thompson 7652d6035fSJeremy L Thompson real*8 hv(ndofs) 7752d6035fSJeremy L Thompson real*8 total 7852d6035fSJeremy L Thompson 7952d6035fSJeremy L Thompson character arg*32 8052d6035fSJeremy L Thompson 8152d6035fSJeremy L Thompson external setup,mass 8252d6035fSJeremy L Thompson 8352d6035fSJeremy L Thompson call getarg(1,arg) 8452d6035fSJeremy L Thompson 8552d6035fSJeremy L Thompson call ceedinit(trim(arg)//char(0),ceed,err) 8652d6035fSJeremy L Thompson 8752d6035fSJeremy L Thompson! DoF Coordinates 8852d6035fSJeremy L Thompson do i=0,ny*2 8952d6035fSJeremy L Thompson do j=0,nx*2 9052d6035fSJeremy L Thompson arrx(i+j*(ny*2+1)+0*ndofs+1)=1.d0*i/(2*ny) 9152d6035fSJeremy L Thompson arrx(i+j*(ny*2+1)+1*ndofs+1)=1.d0*j/(2*nx) 9252d6035fSJeremy L Thompson enddo 9352d6035fSJeremy L Thompson enddo 9452d6035fSJeremy L Thompson 9552d6035fSJeremy L Thompson call ceedvectorcreate(ceed,d*ndofs,x,err) 96c8b9fe72Sjeremylt xoffset=0 97c8b9fe72Sjeremylt call ceedvectorsetarray(x,ceed_mem_host,ceed_use_pointer,arrx,xoffset,err) 9852d6035fSJeremy L Thompson 9952d6035fSJeremy L Thompson! Qdata Vectors 10052d6035fSJeremy L Thompson call ceedvectorcreate(ceed,nqptstet,qdatatet,err) 10152d6035fSJeremy L Thompson call ceedvectorcreate(ceed,nqptshex,qdatahex,err) 10252d6035fSJeremy L Thompson 10352d6035fSJeremy L Thompson! Tet Elements 10452d6035fSJeremy L Thompson do i=0,2 10552d6035fSJeremy L Thompson col=mod(i,nx) 10652d6035fSJeremy L Thompson row=i/nx 10752d6035fSJeremy L Thompson offset=col*2+row*(nx*2+1)*2 10852d6035fSJeremy L Thompson 10952d6035fSJeremy L Thompson indxtet(i*2*ptet+1)=2+offset 11052d6035fSJeremy L Thompson indxtet(i*2*ptet+2)=9+offset 11152d6035fSJeremy L Thompson indxtet(i*2*ptet+3)=16+offset 11252d6035fSJeremy L Thompson indxtet(i*2*ptet+4)=1+offset 11352d6035fSJeremy L Thompson indxtet(i*2*ptet+5)=8+offset 11452d6035fSJeremy L Thompson indxtet(i*2*ptet+6)=0+offset 11552d6035fSJeremy L Thompson 11652d6035fSJeremy L Thompson indxtet(i*2*ptet+7)=14+offset 11752d6035fSJeremy L Thompson indxtet(i*2*ptet+8)=7+offset 11852d6035fSJeremy L Thompson indxtet(i*2*ptet+9)=0+offset 11952d6035fSJeremy L Thompson indxtet(i*2*ptet+10)=15+offset 12052d6035fSJeremy L Thompson indxtet(i*2*ptet+11)=8+offset 12152d6035fSJeremy L Thompson indxtet(i*2*ptet+12)=16+offset 12252d6035fSJeremy L Thompson enddo 12352d6035fSJeremy L Thompson 12452d6035fSJeremy L Thompson! -- Restrictions 12552d6035fSJeremy L Thompson call ceedelemrestrictioncreate(ceed,nelemtet,ptet,ndofs,d,ceed_mem_host,& 12652d6035fSJeremy L Thompson & ceed_use_pointer,indxtet,erestrictxtet,err) 12752d6035fSJeremy L Thompson call ceedelemrestrictioncreateidentity(ceed,nelemtet,ptet,nelemtet*ptet,& 12852d6035fSJeremy L Thompson & d,erestrictxitet,err) 12952d6035fSJeremy L Thompson 13052d6035fSJeremy L Thompson call ceedelemrestrictioncreate(ceed,nelemtet,ptet,ndofs,1,ceed_mem_host,& 13152d6035fSJeremy L Thompson & ceed_use_pointer,indxtet,erestrictutet,err) 13252d6035fSJeremy L Thompson call ceedelemrestrictioncreateidentity(ceed,nelemtet,qtet,nqptstet,1,& 13352d6035fSJeremy L Thompson & erestrictuitet,err) 13452d6035fSJeremy L Thompson 13552d6035fSJeremy L Thompson! -- Bases 13652d6035fSJeremy L Thompson call buildmats(qref,qweight,interp,grad) 13752d6035fSJeremy L Thompson call ceedbasiscreateh1(ceed,ceed_triangle,d,ptet,qtet,interp,grad,qref,& 13852d6035fSJeremy L Thompson & qweight,bxtet,err) 13952d6035fSJeremy L Thompson call buildmats(qref,qweight,interp,grad) 14052d6035fSJeremy L Thompson call ceedbasiscreateh1(ceed,ceed_triangle,1,ptet,qtet,interp,grad,qref,& 14152d6035fSJeremy L Thompson & qweight,butet,err) 14252d6035fSJeremy L Thompson 14352d6035fSJeremy L Thompson! -- QFunctions 14452d6035fSJeremy L Thompson call ceedqfunctioncreateinterior(ceed,1,setup,& 14552d6035fSJeremy L Thompson &__FILE__& 14652d6035fSJeremy L Thompson &//':setup'//char(0),qf_setuptet,err) 14752d6035fSJeremy L Thompson call ceedqfunctionaddinput(qf_setuptet,'_weight',1,ceed_eval_weight,err) 1484d537eeaSYohann call ceedqfunctionaddinput(qf_setuptet,'dx',d*d,ceed_eval_grad,err) 14952d6035fSJeremy L Thompson call ceedqfunctionaddoutput(qf_setuptet,'rho',1,ceed_eval_none,err) 15052d6035fSJeremy L Thompson 15152d6035fSJeremy L Thompson call ceedqfunctioncreateinterior(ceed,1,mass,& 15252d6035fSJeremy L Thompson &__FILE__& 15352d6035fSJeremy L Thompson &//':mass'//char(0),qf_masstet,err) 15452d6035fSJeremy L Thompson call ceedqfunctionaddinput(qf_masstet,'rho',1,ceed_eval_none,err) 15552d6035fSJeremy L Thompson call ceedqfunctionaddinput(qf_masstet,'u',1,ceed_eval_interp,err) 15652d6035fSJeremy L Thompson call ceedqfunctionaddoutput(qf_masstet,'v',1,ceed_eval_interp,err) 15752d6035fSJeremy L Thompson 15852d6035fSJeremy L Thompson! -- Operators 15952d6035fSJeremy L Thompson! ---- Setup Tet 16052d6035fSJeremy L Thompson call ceedoperatorcreate(ceed,qf_setuptet,ceed_null,ceed_null,op_setuptet,& 16152d6035fSJeremy L Thompson & err) 16252d6035fSJeremy L Thompson call ceedoperatorsetfield(op_setuptet,'_weight',erestrictxitet,& 16352d6035fSJeremy L Thompson & ceed_notranspose,bxtet,ceed_vector_none,err) 16452d6035fSJeremy L Thompson call ceedoperatorsetfield(op_setuptet,'dx',erestrictxtet,& 16552d6035fSJeremy L Thompson & ceed_notranspose,bxtet,ceed_vector_active,err) 16652d6035fSJeremy L Thompson call ceedoperatorsetfield(op_setuptet,'rho',erestrictuitet,& 16752d6035fSJeremy L Thompson & ceed_notranspose,ceed_basis_collocated,qdatatet,err) 16852d6035fSJeremy L Thompson! ---- Mass Tet 16952d6035fSJeremy L Thompson call ceedoperatorcreate(ceed,qf_masstet,ceed_null,ceed_null,op_masstet,& 17052d6035fSJeremy L Thompson & err) 17152d6035fSJeremy L Thompson call ceedoperatorsetfield(op_masstet,'rho',erestrictuitet,& 17252d6035fSJeremy L Thompson & ceed_notranspose,ceed_basis_collocated,qdatatet,err) 17352d6035fSJeremy L Thompson call ceedoperatorsetfield(op_masstet,'u',erestrictutet,& 17452d6035fSJeremy L Thompson & ceed_notranspose,butet,ceed_vector_active,err) 17552d6035fSJeremy L Thompson call ceedoperatorsetfield(op_masstet,'v',erestrictutet,& 17652d6035fSJeremy L Thompson & ceed_notranspose,butet,ceed_vector_active,err) 17752d6035fSJeremy L Thompson 17852d6035fSJeremy L Thompson! Hex Elements 17952d6035fSJeremy L Thompson do i=0,nelemhex-1 18052d6035fSJeremy L Thompson col=mod(i,nx) 18152d6035fSJeremy L Thompson row=i/nx 18252d6035fSJeremy L Thompson offset=(nxtet*2+1)*(nytet*2)*(1+row)+col*2 18352d6035fSJeremy L Thompson do j=0,phex-1 18452d6035fSJeremy L Thompson do k=0,phex-1 18552d6035fSJeremy L Thompson indxhex(phex*(phex*i+k)+j+1)=offset+k*(nxhex*2+1)+j 18652d6035fSJeremy L Thompson enddo 18752d6035fSJeremy L Thompson enddo 18852d6035fSJeremy L Thompson enddo 18952d6035fSJeremy L Thompson 19052d6035fSJeremy L Thompson! -- Restrictions 19152d6035fSJeremy L Thompson call ceedelemrestrictioncreate(ceed,nelemhex,phex*phex,ndofs,d,& 19252d6035fSJeremy L Thompson & ceed_mem_host,ceed_use_pointer,indxhex,erestrictxhex,err) 19352d6035fSJeremy L Thompson call ceedelemrestrictioncreateidentity(ceed,nelemhex,phex*phex,& 19452d6035fSJeremy L Thompson & nelemhex*phex*phex,d,erestrictxihex,err) 19552d6035fSJeremy L Thompson 19652d6035fSJeremy L Thompson call ceedelemrestrictioncreate(ceed,nelemhex,phex*phex,ndofs,1,& 19752d6035fSJeremy L Thompson & ceed_mem_host,ceed_use_pointer,indxhex,erestrictuhex,err) 19852d6035fSJeremy L Thompson call ceedelemrestrictioncreateidentity(ceed,nelemhex,qhex*qhex,nqptshex,& 19952d6035fSJeremy L Thompson & 1,erestrictuihex,err) 20052d6035fSJeremy L Thompson 20152d6035fSJeremy L Thompson! -- Bases 20252d6035fSJeremy L Thompson call ceedbasiscreatetensorh1lagrange(ceed,d,d,phex,qhex,ceed_gauss,& 20352d6035fSJeremy L Thompson & bxhex,err) 20452d6035fSJeremy L Thompson call ceedbasiscreatetensorh1lagrange(ceed,d,1,phex,qhex,ceed_gauss,& 20552d6035fSJeremy L Thompson & buhex,err) 20652d6035fSJeremy L Thompson 20752d6035fSJeremy L Thompson! -- QFunctions 20852d6035fSJeremy L Thompson call ceedqfunctioncreateinterior(ceed,1,setup,& 20952d6035fSJeremy L Thompson &__FILE__& 21052d6035fSJeremy L Thompson &//':setup'//char(0),qf_setuphex,err) 21152d6035fSJeremy L Thompson call ceedqfunctionaddinput(qf_setuphex,'_weight',1,ceed_eval_weight,err) 2124d537eeaSYohann call ceedqfunctionaddinput(qf_setuphex,'dx',d*d,ceed_eval_grad,err) 21352d6035fSJeremy L Thompson call ceedqfunctionaddoutput(qf_setuphex,'rho',1,ceed_eval_none,err) 21452d6035fSJeremy L Thompson 21552d6035fSJeremy L Thompson call ceedqfunctioncreateinterior(ceed,1,mass,& 21652d6035fSJeremy L Thompson &__FILE__& 21752d6035fSJeremy L Thompson &//':mass'//char(0),qf_masshex,err) 21852d6035fSJeremy L Thompson call ceedqfunctionaddinput(qf_masshex,'rho',1,ceed_eval_none,err) 21952d6035fSJeremy L Thompson call ceedqfunctionaddinput(qf_masshex,'u',1,ceed_eval_interp,err) 22052d6035fSJeremy L Thompson call ceedqfunctionaddoutput(qf_masshex,'v',1,ceed_eval_interp,err) 22152d6035fSJeremy L Thompson 22252d6035fSJeremy L Thompson! -- Operators 22352d6035fSJeremy L Thompson! ---- Setup Hex 22452d6035fSJeremy L Thompson call ceedoperatorcreate(ceed,qf_setuphex,ceed_null,ceed_null,op_setuphex,& 22552d6035fSJeremy L Thompson & err) 22652d6035fSJeremy L Thompson call ceedoperatorsetfield(op_setuphex,'_weight',erestrictxihex,& 22752d6035fSJeremy L Thompson & ceed_notranspose,bxhex,ceed_vector_none,err) 22852d6035fSJeremy L Thompson call ceedoperatorsetfield(op_setuphex,'dx',erestrictxhex,& 22952d6035fSJeremy L Thompson & ceed_notranspose,bxhex,ceed_vector_active,err) 23052d6035fSJeremy L Thompson call ceedoperatorsetfield(op_setuphex,'rho',erestrictuihex,& 23152d6035fSJeremy L Thompson & ceed_notranspose,ceed_basis_collocated,qdatahex,err) 23252d6035fSJeremy L Thompson! ---- Mass Hex 23352d6035fSJeremy L Thompson call ceedoperatorcreate(ceed,qf_masshex,ceed_null,ceed_null,op_masshex,& 23452d6035fSJeremy L Thompson & err) 23552d6035fSJeremy L Thompson call ceedoperatorsetfield(op_masshex,'rho',erestrictuihex,& 23652d6035fSJeremy L Thompson & ceed_notranspose,ceed_basis_collocated,qdatahex,err) 23752d6035fSJeremy L Thompson call ceedoperatorsetfield(op_masshex,'u',erestrictuhex,& 23852d6035fSJeremy L Thompson & ceed_notranspose,buhex,ceed_vector_active,err) 23952d6035fSJeremy L Thompson call ceedoperatorsetfield(op_masshex,'v',erestrictuhex,& 24052d6035fSJeremy L Thompson & ceed_notranspose,buhex,ceed_vector_active,err) 24152d6035fSJeremy L Thompson 24252d6035fSJeremy L Thompson! Composite Operators 24352d6035fSJeremy L Thompson call ceedcompositeoperatorcreate(ceed,op_setup,err) 24452d6035fSJeremy L Thompson call ceedcompositeoperatoraddsub(op_setup,op_setuptet,err) 24552d6035fSJeremy L Thompson call ceedcompositeoperatoraddsub(op_setup,op_setuphex,err) 24652d6035fSJeremy L Thompson 24752d6035fSJeremy L Thompson call ceedcompositeoperatorcreate(ceed,op_mass,err) 24852d6035fSJeremy L Thompson call ceedcompositeoperatoraddsub(op_mass,op_masstet,err) 24952d6035fSJeremy L Thompson call ceedcompositeoperatoraddsub(op_mass,op_masshex,err) 25052d6035fSJeremy L Thompson 25152d6035fSJeremy L Thompson! Apply Setup Operator 25252d6035fSJeremy L Thompson call ceedoperatorapply(op_setup,x,ceed_null,ceed_request_immediate,err) 25352d6035fSJeremy L Thompson 25452d6035fSJeremy L Thompson! Apply Mass Operator 25552d6035fSJeremy L Thompson call ceedvectorcreate(ceed,ndofs,u,err) 25652d6035fSJeremy L Thompson call ceedvectorsetvalue(u,1.d0,err) 25752d6035fSJeremy L Thompson call ceedvectorcreate(ceed,ndofs,v,err) 25852d6035fSJeremy L Thompson 25952d6035fSJeremy L Thompson call ceedoperatorapply(op_mass,u,v,ceed_request_immediate,err) 26052d6035fSJeremy L Thompson 26152d6035fSJeremy L Thompson! Check Output 26252d6035fSJeremy L Thompson call ceedvectorgetarrayread(v,ceed_mem_host,hv,voffset,err) 26352d6035fSJeremy L Thompson total=0. 26452d6035fSJeremy L Thompson do i=1,ndofs 26552d6035fSJeremy L Thompson total=total+hv(voffset+i) 26652d6035fSJeremy L Thompson enddo 26752d6035fSJeremy L Thompson if (abs(total-1.)>1.0d-10) then 268a2546046Sjeremylt! LCOV_EXCL_START 26952d6035fSJeremy L Thompson write(*,*) 'Computed Area: ',total,' != True Area: 1.0' 270de996c55Sjeremylt! LCOV_EXCL_STOP 27152d6035fSJeremy L Thompson endif 27252d6035fSJeremy L Thompson call ceedvectorrestorearrayread(v,hv,voffset,err) 27352d6035fSJeremy L Thompson 27452d6035fSJeremy L Thompson! Cleanup 27552d6035fSJeremy L Thompson call ceedqfunctiondestroy(qf_setuptet,err) 27652d6035fSJeremy L Thompson call ceedqfunctiondestroy(qf_masstet,err) 27752d6035fSJeremy L Thompson call ceedoperatordestroy(op_setuptet,err) 27852d6035fSJeremy L Thompson call ceedoperatordestroy(op_masstet,err) 27952d6035fSJeremy L Thompson call ceedqfunctiondestroy(qf_setuphex,err) 28052d6035fSJeremy L Thompson call ceedqfunctiondestroy(qf_masshex,err) 28152d6035fSJeremy L Thompson call ceedoperatordestroy(op_setuphex,err) 28252d6035fSJeremy L Thompson call ceedoperatordestroy(op_masshex,err) 28352d6035fSJeremy L Thompson call ceedoperatordestroy(op_setup,err) 28452d6035fSJeremy L Thompson call ceedoperatordestroy(op_mass,err) 28552d6035fSJeremy L Thompson call ceedelemrestrictiondestroy(erestrictutet,err) 28652d6035fSJeremy L Thompson call ceedelemrestrictiondestroy(erestrictxtet,err) 28752d6035fSJeremy L Thompson call ceedelemrestrictiondestroy(erestrictuitet,err) 28852d6035fSJeremy L Thompson call ceedelemrestrictiondestroy(erestrictxitet,err) 28952d6035fSJeremy L Thompson call ceedelemrestrictiondestroy(erestrictuhex,err) 29052d6035fSJeremy L Thompson call ceedelemrestrictiondestroy(erestrictxhex,err) 29152d6035fSJeremy L Thompson call ceedelemrestrictiondestroy(erestrictuihex,err) 29252d6035fSJeremy L Thompson call ceedelemrestrictiondestroy(erestrictxihex,err) 29352d6035fSJeremy L Thompson call ceedbasisdestroy(butet,err) 29452d6035fSJeremy L Thompson call ceedbasisdestroy(bxtet,err) 29552d6035fSJeremy L Thompson call ceedbasisdestroy(buhex,err) 29652d6035fSJeremy L Thompson call ceedbasisdestroy(bxhex,err) 29752d6035fSJeremy L Thompson call ceedvectordestroy(x,err) 29852d6035fSJeremy L Thompson call ceedvectordestroy(u,err) 29952d6035fSJeremy L Thompson call ceedvectordestroy(v,err) 30052d6035fSJeremy L Thompson call ceedvectordestroy(qdatatet,err) 30152d6035fSJeremy L Thompson call ceedvectordestroy(qdatahex,err) 30252d6035fSJeremy L Thompson call ceeddestroy(ceed,err) 30352d6035fSJeremy L Thompson end 30452d6035fSJeremy L Thompson!----------------------------------------------------------------------- 305