xref: /phasta/phSolver/compressible/asires.f (revision 595995161822a203c8467e0e4a253d7bd7d6df32)
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