1*59599516SKenneth E. Jansen subroutine e3qGradV (yl, shp, shgl, 2*59599516SKenneth E. Jansen & xl, ql, 3*59599516SKenneth E. Jansen & sgn ) 4*59599516SKenneth E. Jansenc 5*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 6*59599516SKenneth E. Jansenc 7*59599516SKenneth E. Jansenc This routine computes the element contribution to the 8*59599516SKenneth E. Jansenc diffusive flux vector and the lumped mass matrix. 9*59599516SKenneth E. Jansenc 10*59599516SKenneth E. Jansenc input: 11*59599516SKenneth E. Jansenc yl (npro,nshl,ndof) : Y variables 12*59599516SKenneth E. Jansenc shp (nen,ngauss) : element shape-functions 13*59599516SKenneth E. Jansenc shgl (nsd,nen,ngauss) : element local-grad-shape-functions 14*59599516SKenneth E. Jansenc xl (npro,nshl,nsd) : nodal coordinates at current step 15*59599516SKenneth E. Jansenc 16*59599516SKenneth E. Jansenc output: 17*59599516SKenneth E. Jansenc ql (npro,nshl,nsd*nsd) : element RHS diffusion residual 18*59599516SKenneth E. Jansenc 19*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 20*59599516SKenneth E. Jansenc 21*59599516SKenneth E. Jansen include "common.h" 22*59599516SKenneth E. Jansenc 23*59599516SKenneth E. Jansen dimension yl(npro,nshl,ndof), 24*59599516SKenneth E. Jansen & shp(nshl,ngauss), shgl(nsd,nshl,ngauss), 25*59599516SKenneth E. Jansen & xl(npro,nenl,nsd), 26*59599516SKenneth E. Jansen & ql(npro,nshl,nsdsq) 27*59599516SKenneth E. Jansenc 28*59599516SKenneth E. Jansenc local arrays 29*59599516SKenneth E. Jansenc 30*59599516SKenneth E. Jansen dimension g1yi(npro,nflow), g2yi(npro,nflow), 31*59599516SKenneth E. Jansen & g3yi(npro,nflow), shg(npro,nshl,nsd), 32*59599516SKenneth E. Jansen & dxidx(npro,nsd,nsd), WdetJ(npro) 33*59599516SKenneth E. Jansenc 34*59599516SKenneth E. Jansenc 35*59599516SKenneth E. Jansen dimension sgn(npro,nshl), shape(npro,nshl), 36*59599516SKenneth E. Jansen & shdrv(npro,nsd,nshl) 37*59599516SKenneth E. Jansen 38*59599516SKenneth E. Jansenc 39*59599516SKenneth E. Jansenc.... loop through the integration points 40*59599516SKenneth E. Jansenc 41*59599516SKenneth E. Jansen 42*59599516SKenneth E. Jansen do intp = 1, ngauss 43*59599516SKenneth E. Jansen if (Qwt(lcsyst,intp) .eq. zero) cycle ! precaution 44*59599516SKenneth E. Jansenc 45*59599516SKenneth E. Jansen call getshp(shp, shgl, sgn, 46*59599516SKenneth E. Jansen & shape, shdrv) 47*59599516SKenneth E. Jansen 48*59599516SKenneth E. Jansenc 49*59599516SKenneth E. Jansenc 50*59599516SKenneth E. Jansenc.... calculate the integration variables necessary for the 51*59599516SKenneth E. Jansenc formation of q 52*59599516SKenneth E. Jansenc 53*59599516SKenneth E. Jansen 54*59599516SKenneth E. Jansen call e3qvar (yl, shdrv, 55*59599516SKenneth E. Jansen & xl, g1yi, 56*59599516SKenneth E. Jansen & g2yi, g3yi, shg, 57*59599516SKenneth E. Jansen & dxidx, WdetJ ) 58*59599516SKenneth E. Jansenc 59*59599516SKenneth E. Jansenc 60*59599516SKenneth E. Jansenc each element node 61*59599516SKenneth E. Jansenc 62*59599516SKenneth E. Jansen do i=1,nshl 63*59599516SKenneth E. Jansen ql(:,i,1 ) = ql(:,i,1 )+ shape(:,i)*WdetJ*g1yi(:,2 ) ! du/dx 64*59599516SKenneth E. Jansen ql(:,i,2 ) = ql(:,i,2 )+ shape(:,i)*WdetJ*g2yi(:,2 ) ! du/dy 65*59599516SKenneth E. Jansen ql(:,i,3 ) = ql(:,i,3 )+ shape(:,i)*WdetJ*g3yi(:,2 ) ! du/dz 66*59599516SKenneth E. Jansen 67*59599516SKenneth E. Jansen ql(:,i,4 ) = ql(:,i,4 )+ shape(:,i)*WdetJ*g1yi(:,3 ) ! dv/dx 68*59599516SKenneth E. Jansen ql(:,i,5 ) = ql(:,i,5 )+ shape(:,i)*WdetJ*g2yi(:,3 ) ! dv/dy 69*59599516SKenneth E. Jansen ql(:,i,6 ) = ql(:,i,6 )+ shape(:,i)*WdetJ*g3yi(:,3 ) ! dv/dz 70*59599516SKenneth E. Jansen 71*59599516SKenneth E. Jansen ql(:,i,7 ) = ql(:,i,7 )+ shape(:,i)*WdetJ*g1yi(:,4 ) ! dw/dx 72*59599516SKenneth E. Jansen ql(:,i,8 ) = ql(:,i,8 )+ shape(:,i)*WdetJ*g2yi(:,4 ) ! dw/dy 73*59599516SKenneth E. Jansen ql(:,i,9 ) = ql(:,i,9 )+ shape(:,i)*WdetJ*g3yi(:,4 ) ! dw/dz 74*59599516SKenneth E. Jansen 75*59599516SKenneth E. Jansen enddo 76*59599516SKenneth E. Jansenc 77*59599516SKenneth E. Jansenc 78*59599516SKenneth E. Jansenc.... end of the loop over integration points 79*59599516SKenneth E. Jansenc 80*59599516SKenneth E. Jansen enddo 81*59599516SKenneth E. Jansen 82*59599516SKenneth E. Jansen 83*59599516SKenneth E. Jansenc 84*59599516SKenneth E. Jansenc.... return 85*59599516SKenneth E. Jansenc 86*59599516SKenneth E. Jansen return 87*59599516SKenneth E. Jansen end 88