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