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