1*59599516SKenneth E. Jansen subroutine AsIFlx (y, ac, x, xmudmi, shp, 2*59599516SKenneth E. Jansen & shgl, ien, mater, flxres) 3*59599516SKenneth E. Jansenc 4*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 5*59599516SKenneth E. Jansenc 6*59599516SKenneth E. Jansenc This routine computes and assembles the data corresponding to the 7*59599516SKenneth E. Jansenc interior elements. 8*59599516SKenneth E. Jansenc 9*59599516SKenneth E. Jansenc Zdenek Johan, Winter 1991. (Fortran 90) 10*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 11*59599516SKenneth E. Jansenc 12*59599516SKenneth E. Jansen use rlssave 13*59599516SKenneth E. Jansen include "common.h" 14*59599516SKenneth E. Jansenc 15*59599516SKenneth E. Jansen dimension y(nshg,ndof), ac(nshg,ndof), 16*59599516SKenneth E. Jansen & x(numnp,nsd), 17*59599516SKenneth E. Jansen & shp(MAXTOP,maxsh,MAXQPT), 18*59599516SKenneth E. Jansen & shgl(MAXTOP,nsd,maxsh,MAXQPT), 19*59599516SKenneth E. Jansen & ien(npro,nshl), 20*59599516SKenneth E. Jansen & mater(npro), flxres(numnp,nflow) 21*59599516SKenneth E. Jansenc 22*59599516SKenneth E. Jansen dimension ycl(npro,nshl,ndof), acl(npro,nshl,ndof), 23*59599516SKenneth E. Jansen & xl(npro,nenl,nsd), 24*59599516SKenneth E. Jansen & rl(npro,nshl,nflow), BDiagl(npro,nshl,nflow,nflow) 25*59599516SKenneth E. Jansenc 26*59599516SKenneth E. Jansen dimension ql(npro,nshl,(nflow-1)*nsd) 27*59599516SKenneth E. Jansenc 28*59599516SKenneth E. Jansen dimension xmudmi(npro,ngauss) 29*59599516SKenneth E. Jansen dimension sgn(npro,nshl) 30*59599516SKenneth E. Jansen dimension EGmass(npro,nedof,nedof), rml(npro,nshl,nflow) 31*59599516SKenneth E. Jansen 32*59599516SKenneth E. Jansen dimension rlsl(npro,nshl,6) 33*59599516SKenneth E. Jansenc 34*59599516SKenneth E. Jansenc.... create the matrix of mode signs for the hierarchic basis 35*59599516SKenneth E. Jansenc functions. 36*59599516SKenneth E. Jansenc 37*59599516SKenneth E. Jansen if (ipord .gt. 1) then 38*59599516SKenneth E. Jansen call getsgn(ien,sgn) 39*59599516SKenneth E. Jansen endif 40*59599516SKenneth E. Jansenc 41*59599516SKenneth E. Jansenc.... gather the variables 42*59599516SKenneth E. Jansenc 43*59599516SKenneth E. Jansen call localy(y, ycl, ien, ndof, 'gather ') 44*59599516SKenneth E. Jansen call localy(ac, acl, ien, ndof, 'gather ') 45*59599516SKenneth E. Jansen call localx(x, xl, ien, nsd, 'gather ') 46*59599516SKenneth E. Jansen 47*59599516SKenneth E. Jansen if( (iLES.gt.10).and.(iLES.lt.20)) then ! bardina 48*59599516SKenneth E. Jansen call local (rls, rlsl, ien, 6, 'gather ') 49*59599516SKenneth E. Jansen else 50*59599516SKenneth E. Jansen rlsl = zero 51*59599516SKenneth E. Jansen endif 52*59599516SKenneth E. Jansenc 53*59599516SKenneth E. Jansenc 54*59599516SKenneth E. Jansenc.... get the element residual 55*59599516SKenneth E. Jansenc 56*59599516SKenneth E. Jansen rl = zero 57*59599516SKenneth E. Jansen 58*59599516SKenneth E. Jansen ql = zero !only used now in elmmfg 59*59599516SKenneth E. Jansen 60*59599516SKenneth E. Jansen EGmassd= one ! just a dummy real since we don't have a LHS with MFI 61*59599516SKenneth E. Jansen 62*59599516SKenneth E. Jansen if (nsd .eq. 3) then 63*59599516SKenneth E. Jansen call e3 (ycl, ycl, acl, shp(lcsyst,1:nshl,:), 64*59599516SKenneth E. Jansen & shgl(lcsyst,:,1:nshl,:), xl, rl, rml, 65*59599516SKenneth E. Jansen & xmudmi, BDiagl, ql, sgn, rlsl, EGmassd) 66*59599516SKenneth E. Jansen endif 67*59599516SKenneth E. Jansenc 68*59599516SKenneth E. Jansenc.... assemble the residual 69*59599516SKenneth E. Jansenc 70*59599516SKenneth E. Jansen call local (flxres, rl, ien, nflow, 'scatter ') 71*59599516SKenneth E. Jansenc 72*59599516SKenneth E. Jansenc.... end 73*59599516SKenneth E. Jansenc 74*59599516SKenneth E. Jansen return 75*59599516SKenneth E. Jansen end 76