1*59599516SKenneth E. Jansen subroutine AsIq (y, x, shp, 2*59599516SKenneth E. Jansen & shgl, ien, xmudmi, 3*59599516SKenneth E. Jansen & qres, rmass ) 4*59599516SKenneth E. Jansenc 5*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 6*59599516SKenneth E. Jansenc 7*59599516SKenneth E. Jansenc This routine computes and assembles the data corresponding to the 8*59599516SKenneth E. Jansenc interior elements for the global reconstruction of the diffusive 9*59599516SKenneth E. Jansenc flux vector. 10*59599516SKenneth E. Jansenc 11*59599516SKenneth E. Jansenc input: 12*59599516SKenneth E. Jansenc y (nshg,ndof) : Y variables 13*59599516SKenneth E. Jansenc x (numnp,nsd) : nodal coordinates 14*59599516SKenneth E. Jansenc shp (nshape,ngauss) : element shape-functions 15*59599516SKenneth E. Jansenc shgl (nsd,nshape,ngauss) : element local shape-function gradients 16*59599516SKenneth E. Jansenc ien (npro) : nodal connectivity array 17*59599516SKenneth E. Jansenc 18*59599516SKenneth E. Jansenc output: 19*59599516SKenneth E. Jansenc qres (nshg,nflow-1,nsd) : residual vector for diffusive flux 20*59599516SKenneth E. Jansenc rmass (nshg) : lumped mass matrix 21*59599516SKenneth E. Jansenc 22*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 23*59599516SKenneth E. Jansenc 24*59599516SKenneth E. Jansen include "common.h" 25*59599516SKenneth E. Jansenc 26*59599516SKenneth E. Jansen dimension y(nshg,ndof), x(numnp,nsd), 27*59599516SKenneth E. Jansen & shp(nshl,ngauss), 28*59599516SKenneth E. Jansen & shgl(nsd,nshl,ngauss), 29*59599516SKenneth E. Jansen & ien(npro,nshl), 30*59599516SKenneth E. Jansen & qres(nshg,idflx), rmass(nshg) 31*59599516SKenneth E. Jansenc 32*59599516SKenneth E. Jansenc.... element level declarations 33*59599516SKenneth E. Jansenc 34*59599516SKenneth E. Jansen dimension ycl(npro,nshl,ndof), xl(npro,nenl,nsd), 35*59599516SKenneth E. Jansen & ql(npro,nshl,idflx), rmassl(npro,nshl), 36*59599516SKenneth E. Jansen & xmudmi(npro,ngauss) 37*59599516SKenneth E. Jansenc 38*59599516SKenneth E. Jansen dimension sgn(npro,nshape) 39*59599516SKenneth E. Jansenc 40*59599516SKenneth E. Jansenc.... create the matrix of mode signs for the hierarchic basis 41*59599516SKenneth E. Jansenc functions. 42*59599516SKenneth E. Jansenc 43*59599516SKenneth E. Jansen if (ipord .gt. 1) then 44*59599516SKenneth E. Jansen call getsgn(ien,sgn) 45*59599516SKenneth E. Jansen endif 46*59599516SKenneth E. Jansenc 47*59599516SKenneth E. Jansenc.... gather the variables 48*59599516SKenneth E. Jansenc 49*59599516SKenneth E. Jansen 50*59599516SKenneth E. Jansen call localy(y, ycl, ien, ndof, 'gather ') 51*59599516SKenneth E. Jansen call localx(x, xl, ien, nsd, 'gather ') 52*59599516SKenneth E. Jansenc 53*59599516SKenneth E. Jansenc.... get the element residuals 54*59599516SKenneth E. Jansenc 55*59599516SKenneth E. Jansen ql = zero 56*59599516SKenneth E. Jansen rmassl = zero 57*59599516SKenneth E. Jansen 58*59599516SKenneth E. Jansen call e3q (ycl, shp, shgl, 59*59599516SKenneth E. Jansen & xl, ql, rmassl, 60*59599516SKenneth E. Jansen & xmudmi, sgn ) 61*59599516SKenneth E. Jansen 62*59599516SKenneth E. Jansenc 63*59599516SKenneth E. Jansenc.... assemble the diffusive flux residual 64*59599516SKenneth E. Jansenc 65*59599516SKenneth E. Jansen call local (qres, ql, ien, idflx,'scatter ') 66*59599516SKenneth E. Jansen call local (rmass, rmassl, ien, 1, 'scatter ') 67*59599516SKenneth E. Jansenc 68*59599516SKenneth E. Jansenc.... end 69*59599516SKenneth E. Jansenc 70*59599516SKenneth E. Jansen return 71*59599516SKenneth E. Jansen end 72