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