1*59599516SKenneth E. Jansen subroutine AsIRes (y, yc, x, xmudmi, 2*59599516SKenneth E. Jansen & shp, shgl, ien, mater, 3*59599516SKenneth E. Jansen & rmes, ac) 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. 9*59599516SKenneth E. Jansenc 10*59599516SKenneth E. Jansenc Zdenek Johan, Winter 1991. (Fortran 90) 11*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 12*59599516SKenneth E. Jansenc 13*59599516SKenneth E. Jansen use rlssave ! Use the resolved Leonard stresses at the nodes. 14*59599516SKenneth E. Jansen include "common.h" 15*59599516SKenneth E. Jansenc 16*59599516SKenneth E. Jansen dimension y(nshg,nflow), yc(nshg,ndofl), 17*59599516SKenneth E. Jansen & x(numnp,nsd), ac(nshg,nflow), 18*59599516SKenneth E. Jansen & shp(nshl,ngauss), 19*59599516SKenneth E. Jansen & shgl(nsd,nshl,ngauss), 20*59599516SKenneth E. Jansen & ien(npro,nshl), mater(npro), 21*59599516SKenneth E. Jansen & rmes(nshg,nflow) 22*59599516SKenneth E. Jansenc 23*59599516SKenneth E. Jansen dimension yl(npro,nshl,nflow), ycl(npro,nshl,ndofl), 24*59599516SKenneth E. Jansen & xl(npro,nenl,nsd), acl(npro,nshl,nflow), 25*59599516SKenneth E. Jansen & rml(npro,nshl,nflow), ql(npro,nshl,(nflow-1)*nsd) 26*59599516SKenneth E. Jansenc 27*59599516SKenneth E. Jansen dimension xmudmi(npro,ngauss) 28*59599516SKenneth E. Jansen dimension sgn(npro,nshl) 29*59599516SKenneth E. Jansen 30*59599516SKenneth E. Jansen dimension rlsl(npro,nshl,6) 31*59599516SKenneth E. Jansenc 32*59599516SKenneth E. Jansen real*8 rerrl(npro,nshl,6) 33*59599516SKenneth E. Jansenc 34*59599516SKenneth E. Jansenc 35*59599516SKenneth E. Jansenc.... create the matrix of mode signs for the hierarchic basis 36*59599516SKenneth E. Jansenc functions. 37*59599516SKenneth E. Jansenc 38*59599516SKenneth E. Jansenc this is done in hierarchic.f 39*59599516SKenneth E. Jansenc$$$ do i=1,nshape 40*59599516SKenneth E. Jansenc$$$ where ( ien(:,i) < 0 ) 41*59599516SKenneth E. Jansenc$$$ sgn(:,i) = -one 42*59599516SKenneth E. Jansenc$$$ elsewhere 43*59599516SKenneth E. Jansenc$$$ sgn(:,i) = one 44*59599516SKenneth E. Jansenc$$$ endwhere 45*59599516SKenneth E. Jansenc$$$ enddo 46*59599516SKenneth E. Jansenc 47*59599516SKenneth E. Jansen if (ipord .gt. 1) then 48*59599516SKenneth E. Jansen call getsgn(ien,sgn) 49*59599516SKenneth E. Jansen endif 50*59599516SKenneth E. Jansenc 51*59599516SKenneth E. Jansenc.... gather the variables 52*59599516SKenneth E. Jansenc 53*59599516SKenneth E. Jansen call localy(y, yl, ien, nflow, 'gather ') 54*59599516SKenneth E. Jansen call localx(x, xl, ien, nsd, 'gather ') 55*59599516SKenneth E. Jansenc 56*59599516SKenneth E. Jansen call localy(yc, ycl, ien, ndofl, 'gather ') 57*59599516SKenneth E. Jansen call localy(ac, acl, ien, nflow, 'gather ') 58*59599516SKenneth E. Jansen 59*59599516SKenneth E. Jansen 60*59599516SKenneth E. Jansen if( (iLES.gt.10).and.(iLES.lt.20)) then ! bardina 61*59599516SKenneth E. Jansen 62*59599516SKenneth E. Jansen call local (rls, rlsl, ien, 6, 'gather ') 63*59599516SKenneth E. Jansen else 64*59599516SKenneth E. Jansen rlsl = zero 65*59599516SKenneth E. Jansen endif 66*59599516SKenneth E. Jansen 67*59599516SKenneth E. Jansenc 68*59599516SKenneth E. Jansenc.... get the element residual 69*59599516SKenneth E. Jansenc 70*59599516SKenneth E. Jansen 71*59599516SKenneth E. Jansen rml = zero 72*59599516SKenneth E. Jansen 73*59599516SKenneth E. Jansen EGmassd= one ! just a dummy real since we don't have a LHS with MFI 74*59599516SKenneth E. Jansen if(ierrcalc.eq.1) rerrl = zero 75*59599516SKenneth E. Jansen ttim(31) = ttim(31) - secs(0.0) 76*59599516SKenneth E. Jansenc write(*,*) 'calling e3' 77*59599516SKenneth E. Jansen 78*59599516SKenneth E. Jansen call e3 (yl, ycl, acl, shp, 79*59599516SKenneth E. Jansen & shgl, xl, rml, rml, 80*59599516SKenneth E. Jansen & xmudmi, BDiagl, ql, sgn, rlsl, EGmassd, 81*59599516SKenneth E. Jansen & rerrl) 82*59599516SKenneth E. Jansen 83*59599516SKenneth E. Jansen ttim(31) = ttim(31) + secs(0.0) 84*59599516SKenneth E. Jansenc 85*59599516SKenneth E. Jansenc.... assemble the modified residual 86*59599516SKenneth E. Jansenc 87*59599516SKenneth E. Jansen if (iabres .eq. 1) rml = abs(rml) 88*59599516SKenneth E. Jansenc 89*59599516SKenneth E. Jansen call local (rmes, rml, ien, nflow, 'scatter ') 90*59599516SKenneth E. Jansenc 91*59599516SKenneth E. Jansenc.... end 92*59599516SKenneth E. Jansenc 93*59599516SKenneth E. Jansen return 94*59599516SKenneth E. Jansen end 95