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