13 COMMON /cprint/ ifprint
17 COMMON /scrns/ ta(lx1,ly1,lz1,lelt)
18 $ ,tb(lx1,ly1,lz1,lelt)
19 COMMON /scrvh/ h1(lx1,ly1,lz1,lelt)
20 $ ,h2(lx1,ly1,lz1,lelt)
24 if (ifdgfld(ifield))
then
31 napproxt(1,ifld1) = laxtt
44 IF (ifield.EQ.2.AND.nid.EQ.0)
45 $
WRITE (6,*)
' Temperature/Passive scalar solution'
51 if(ifield.eq.2)
write(name4t,
'(A4)')
'TEMP'
57 if (ifaxis.and.ifaziv.and.ifield.eq.2) isd = 2
63 if (iftran) intype = -1
67 call bcdirsc (t(1,1,1,1,ifield-1))
68 call axhelm (ta,t(1,1,1,1,ifield-1),h1,h2,imesh,isd)
69 call sub3 (tb,bq(1,1,1,1,ifield-1),ta,n)
73 if(iftmsh(ifield))
then
74 call hsolve (name4t,ta,tb,h1,h2
75 $ ,tmask(1,1,1,1,ifield-1)
76 $ ,tmult(1,1,1,1,ifield-1)
77 $ ,imesh,tolht(ifield),nmxt(ifield-1),1
78 $ ,approxt(1,0,ifld1),napproxt(1,ifld1),bintm1)
80 call hsolve (name4t,ta,tb,h1,h2
81 $ ,tmask(1,1,1,1,ifield-1)
82 $ ,tmult(1,1,1,1,ifield-1)
83 $ ,imesh,tolht(ifield),nmxt(ifield-1),1
84 $ ,approxt(1,0,ifld1),napproxt(1,ifld1),binvm1)
87 call add2 (t(1,1,1,1,ifield-1),ta,n)
94 call sub2 (t(1,1,1,1,ifield-1),ta,n)
116 n = lx1*ly1*lz1*nelfld(ifield)
118 if (.not.ifcvfld(ifield)) time = time-dt
120 if (nio.eq.0.and.loglevel.gt.2)
121 $
write(6,*)
'makeuq', ifield, time
122 call setqvol(bq(1,1,1,1,ifield-1))
123 call col2 (bq(1,1,1,1,ifield-1) ,bm1,n)
125 if (.not.ifcvfld(ifield)) time = time+dt
140 real bql(lx1*ly1*lz1,lelt)
189 real bql(lx1,ly1,lz1,lelt)
195 if (optlevel.le.2)
call nekasgn (i,j,k,iel)
197 call userq (i,j,k,ielg)
198 bql(i,j,k,iel) = qvol
216 common /scruz/ ta(lx1*ly1*lz1*lelt)
221 call convop (ta,t(1,1,1,1,ifield-1))
223 bq(i,1,1,1,ifield-1) = bq(i,1,1,1,ifield-1)
224 $ - bm1(i,1,1,1)*ta(i)*vtrans(i,1,1,1,ifield)
245 ta=ab1*vgradt1(i,1,1,1,ifield-1)+ab2*vgradt2(i,1,1,1,ifield-1)
246 vgradt2(i,1,1,1,ifield-1)=vgradt1(i,1,1,1,ifield-1)
247 vgradt1(i,1,1,1,ifield-1)=bq(i,1,1,1,ifield-1)
248 bq(i,1,1,1,ifield-1)=bq(i,1,1,1,ifield-1)*ab0+ta
263 parameter(lt=lx1*ly1*lz1*lelt)
264 common /scrns/ tb(lt),h2(lt)
271 h2(i)=const*vtrans(i,1,1,1,ifield)
272 tb(i)=bd(2)*bm1(i,1,1,1)*t(i,1,1,1,ifield-1)
278 ta=bm1lag(i,1,1,1,ilag-1)*tlag(i,1,1,1,ilag-1,ifield-1)
279 tb(i)=tb(i)+ta*bd(ilag+1)
283 ta=bm1(i,1,1,1)*tlag(i,1,1,1,ilag-1,ifield-1)
284 tb(i)=tb(i)+ta*bd(ilag+1)
289 call addcol3 (bq(1,1,1,1,ifield-1),tb,h2,n)
299 n = lx1*ly1*lz1*nelfld(ifield)
301 do ilag=nbdinp-1,2,-1
302 call copy (tlag(1,1,1,1,ilag ,ifield-1),
303 $ tlag(1,1,1,1,ilag-1,ifield-1),n)
306 call copy (tlag(1,1,1,1,1,ifield-1),t(1,1,1,1,ifield-1),n)
314 real x(lx1,ly1,lz1,lelt)
321 if (idum.lt.0)
return
324 mtot = lx1*ly1*lz1*nelv
325 if (lx1.gt.8.or.nelv.gt.16)
return
337 write(6,116) txt10,k,ie,xmin,xmax,istep,time
341 if (lx1.eq.2)
write(6,102) ((x(i,j,k,e+l),i=1,lx1),e=1,1)
342 if (lx1.eq.3)
write(6,103) ((x(i,j,k,e+l),i=1,lx1),e=1,1)
343 if (lx1.eq.4)
write(6,104) ((x(i,j,k,e+l),i=1,lx1),e=1,1)
344 if (lx1.eq.5)
write(6,105) ((x(i,j,k,e+l),i=1,lx1),e=1,1)
345 if (lx1.eq.6)
write(6,106) ((x(i,j,k,e+l),i=1,lx1),e=1,1)
346 if (lx1.eq.7)
write(6,107) ((x(i,j,k,e+l),i=1,lx1),e=1,1)
347 if (lx1.eq.8)
write(6,118) ((x(i,j,k,e+l),i=1,lx1),e=1,1)
352 102
FORMAT(4(2f9.5,2x))
353 103
FORMAT(4(3f9.5,2x))
354 104
FORMAT(4(4f7.3,2x))
355 105
FORMAT(5f9.5,10x,5f9.5)
356 106
FORMAT(6f9.5,5x,6f9.5)
357 107
FORMAT(7f8.4,5x,7f8.4)
358 108
FORMAT(8f8.4,4x,8f8.4)
361 116
FORMAT( /,5x,
' ^ ',/,
364 $ 5x,
' +----> ',
'Plane = ',i2,
'/',i2,2x,2e12.4,/,
365 $ 5x,
' X ',
'Step =',i9,f15.5)
368 if (ichk.eq.1.and.idum.gt.0)
call checkit(idum)
383 common /cprint/ ifprint
387 common /scrns/ ta(lx1,ly1,lz1,lelt)
388 $ ,tb(lx1,ly1,lz1,lelt)
389 common /scrvh/ h1(lx1,ly1,lz1,lelt)
390 $ ,h2(lx1,ly1,lz1,lelt)
405 if (nio.eq.0)
write (6,*) istep,ifield,
' explicit step'
411 if (ifaxis.and.ifmhd) isd = 2
414 if (iftran) intype = -1
415 call sethlm (h1,h2,intype)
422 call add2 (bq(1,1,1,1,ifield-1),tb,n)
424 call dssum (bq(1,1,1,1,ifield-1),lx1,ly1,lz1)
425 call dssum (h2,lx1,ly1,lz1)
427 call invcol3 (t(1,1,1,1,ifield-1),bq(1,1,1,1,ifield-1),h2,n)
429 call bcdirsc (t(1,1,1,1,ifield-1))
448 common /scruz/ ta(lx1,ly1,lz1,lelt)
449 $ ,h2(lx1,ly1,lz1,lelt)
455 if (iftran) intype = -1
458 if (ifaxis.and.ifmhd) isd = 2
464 call axhelm (ta,t(1,1,1,1,ifield-1),vdiff(1,1,1,1,ifield)
466 call sub2 (bq(1,1,1,1,ifield-1),ta,n)
484 call dsset(lx1,ly1,lz1)
488 do e=1,nelfld(ifield)
494 jskip1 = skpdat(3,pf)
497 jskip2 = skpdat(6,pf)
505 etalph(i,f,e) = eta*(a/bm1(j1,j2,1,e))
512 call fgslib_gs_op (dg_hndlx,etalph,1,1,0)
520 parameter(lx=lx1*ly1*lz1)
521 real msk1(lx1,ly1,lz1),mult(lx1,ly1,lz1,1)
524 parameter(lf=lx1*lz1*2*ldim*lelt)
525 common /scrdg/uf(lx1*lz1,2*ldim,lelt)
532 call fgslib_gs_op (dg_hndlx,uf,1,1,0)
538 if (uf(1,f,e).gt.1.1) fw(f,e)=0.5
549 common /ivrtx/ vertex((2**ldim)*lelt)
550 common /ctmp1/ qs(lx1*ly1*lz1*lelt)
558 if (ifdgfld(ifield)) ifany=.true.
563 call setup_dg_gs(dg_hndlx,lx1,ly1,lz1,nelt,nelgt,vertex)
585 common /ctmp0/ qs(lx1*ly1*lz1*lelt)
591 if (ifield.eq.ifld_last)
return
606 common /cprint/ ifprint
607 logical ifprint,ifconv
609 parameter(lt=lx1*ly1*lz1*lelt)
610 common /scrns/ ta(lt),tb(lt)
611 common /scrvh/ h1(lt),h2(lt)
627 if (ifprint.and.nio.eq.0)
628 $
write (6,*)
' Temperature/Passive scalar solution',ifield
631 write(name4t,1) if1-1
633 if (ifield.eq.2)
write(name4t,
'(A4)')
'TEMP'
636 if (ifaxis.and.ifaziv.and.ifield.eq.2) isd = 2
640 if (iftran) intype = -1
641 call sethlm (h1,h2,intype)
647 call bcdirsc ( t(1,1,1,1,ifield-1))
649 call hxdg_surfa (tb,t(1,1,1,1,ifield-1),h1,h2)
650 call add2 (tb,bq(1,1,1,1,ifield-1),n)
652 call hmholtz_dg(name4t,t(1,1,1,1,ifield-1),tb,h1,h2
653 $ ,tmask(1,1,1,1,ifield-1)
654 $ ,tolht(ifield),nmxt(ifield-1))
subroutine bcneusc(S, ITYPE)
subroutine nekasgn(ix, iy, iz, e)
real *8 function dnekclock()
subroutine fwght(msk1, mult)
subroutine dg_setup2(mask)
subroutine outfldrq(x, txt10, ichk)
subroutine cdscal_expl(igeom)
subroutine cdscal_dg(igeom)
subroutine nekuq(bql, iel)
subroutine set_eta_alpha2
subroutine dsset(nx, ny, nz)
subroutine setup_dg_gs(dgh, nx, ny, nz, nel, melg, vertex)
subroutine conv_bdry_dg_weak(du, u)
subroutine dssum(u, nx, ny, nz)
subroutine hxdg_surfa(au, u, h1, h2)
subroutine axhelm(au, u, helm1, helm2, imesh, isd)
subroutine hmholtz_dg(name, u, rhs, h1, h2, mask, tol, maxit)
subroutine geom_reset(icall)
subroutine invers2(a, b, n)
subroutine addcol3(a, b, c, n)
subroutine sub3(a, b, c, n)
subroutine cmult(a, const, n)
subroutine invcol3(a, b, c, n)
subroutine convop(conv, fi)
subroutine hsolve(name, u, r, h1, h2, vmk, vml, imsh, tol, maxit, isd, approx, napprox, bi)
subroutine cvgnlps(ifconv)
subroutine sethlm(h1, h2, intloc)