xref: /phasta/phSolver/compressible/e3massr.f (revision 595995161822a203c8467e0e4a253d7bd7d6df32)
1*59599516SKenneth E. Jansen        subroutine e3massr (aci,    dui,  ri,
2*59599516SKenneth E. Jansen     &                      rmi,    A0)
3*59599516SKenneth E. Jansenc
4*59599516SKenneth E. Jansenc----------------------------------------------------------------------
5*59599516SKenneth E. Jansenc
6*59599516SKenneth E. Jansenc This routine calculates the contribution of the jump condition
7*59599516SKenneth E. Jansenc and the time flux to RHS and LHS.
8*59599516SKenneth E. Jansenc
9*59599516SKenneth E. Jansenc input:
10*59599516SKenneth E. Jansenc  aci     (npro,nflow)           : Y variable acceleration
11*59599516SKenneth E. Jansenc  dui     (npro,nflow)           : dU variables at previous step
12*59599516SKenneth E. Jansenc  A0      (npro,nflow,nflow)      : weighted Jacobian
13*59599516SKenneth E. Jansenc
14*59599516SKenneth E. Jansenc output:
15*59599516SKenneth E. Jansenc  ri     (npro,nflow*(nsd+1))   : partial residual
16*59599516SKenneth E. Jansenc  rmi    (npro,nflow*(nsd+1))   : partial modified residual
17*59599516SKenneth E. Jansenc
18*59599516SKenneth E. Jansenc
19*59599516SKenneth E. Jansenc
20*59599516SKenneth E. Jansenc Zdenek Johan, Summer 1990. (Modified from e2jump.f)
21*59599516SKenneth E. Jansenc Zdenek Johan, Winter 1991. (Fortran 90)
22*59599516SKenneth E. Jansenc Kenneth Jansen, Winter 1997 Prim Variables
23*59599516SKenneth E. Jansenc----------------------------------------------------------------------
24*59599516SKenneth E. Jansenc
25*59599516SKenneth E. Jansen        include "common.h"
26*59599516SKenneth E. Jansenc
27*59599516SKenneth E. Jansen        dimension aci(npro,nflow),            dui(npro,nflow),
28*59599516SKenneth E. Jansen     &            ri(npro,nflow*(nsd+1)),
29*59599516SKenneth E. Jansen     &            rmi(npro,nflow*(nsd+1)),    A0(npro,nflow,nflow)
30*59599516SKenneth E. Jansenc
31*59599516SKenneth E. Jansenc
32*59599516SKenneth E. Jansenc.... add contribution of U at previous step
33*59599516SKenneth E. Jansenc
34*59599516SKenneth E. Jansen       if(ires.eq.1 .or. ires .eq. 3) then
35*59599516SKenneth E. Jansen
36*59599516SKenneth E. Jansen        ri(:,16) = ri(:,16)
37*59599516SKenneth E. Jansen     &           + A0(:,1,1)*aci(:,1)
38*59599516SKenneth E. Jansenc    &           + A0(:,1,2)*aci(:,2)
39*59599516SKenneth E. Jansenc    &           + A0(:,1,3)*aci(:,3)
40*59599516SKenneth E. Jansenc    &           + A0(:,1,4)*aci(:,4)
41*59599516SKenneth E. Jansen     &           + A0(:,1,5)*aci(:,5)
42*59599516SKenneth E. Jansenc
43*59599516SKenneth E. Jansen        ri(:,17) = ri(:,17)
44*59599516SKenneth E. Jansen     &           + A0(:,2,1)*aci(:,1)
45*59599516SKenneth E. Jansen     &           + A0(:,2,2)*aci(:,2)
46*59599516SKenneth E. Jansenc    &           + A0(:,2,3)*aci(:,3)
47*59599516SKenneth E. Jansenc    &           + A0(:,2,4)*aci(:,4)
48*59599516SKenneth E. Jansen     &           + A0(:,2,5)*aci(:,5)
49*59599516SKenneth E. Jansenc
50*59599516SKenneth E. Jansen        ri(:,18) = ri(:,18)
51*59599516SKenneth E. Jansen     &           + A0(:,3,1)*aci(:,1)
52*59599516SKenneth E. Jansenc    &           + A0(:,3,2)*aci(:,2)
53*59599516SKenneth E. Jansen     &           + A0(:,3,3)*aci(:,3)
54*59599516SKenneth E. Jansenc    &           + A0(:,3,4)*aci(:,4)
55*59599516SKenneth E. Jansen     &           + A0(:,3,5)*aci(:,5)
56*59599516SKenneth E. Jansenc
57*59599516SKenneth E. Jansen        ri(:,19) = ri(:,19)
58*59599516SKenneth E. Jansen     &           + A0(:,4,1)*aci(:,1)
59*59599516SKenneth E. Jansenc    &           + A0(:,4,2)*aci(:,2)
60*59599516SKenneth E. Jansenc    &           + A0(:,4,3)*aci(:,3)
61*59599516SKenneth E. Jansen     &           + A0(:,4,4)*aci(:,4)
62*59599516SKenneth E. Jansen     &           + A0(:,4,5)*aci(:,5)
63*59599516SKenneth E. Jansenc
64*59599516SKenneth E. Jansen        ri(:,20) = ri(:,20)
65*59599516SKenneth E. Jansen     &           + A0(:,5,1)*aci(:,1)
66*59599516SKenneth E. Jansen     &           + A0(:,5,2)*aci(:,2)
67*59599516SKenneth E. Jansen     &           + A0(:,5,3)*aci(:,3)
68*59599516SKenneth E. Jansen     &           + A0(:,5,4)*aci(:,4)
69*59599516SKenneth E. Jansen     &           + A0(:,5,5)*aci(:,5)
70*59599516SKenneth E. Jansenc
71*59599516SKenneth E. Jansen
72*59599516SKenneth E. Jansen         endif
73*59599516SKenneth E. Jansen         if(ires.ne.1) then
74*59599516SKenneth E. Jansenc
75*59599516SKenneth E. Jansenc the modified residual
76*59599516SKenneth E. Jansenc
77*59599516SKenneth E. Jansen            fct1=almi/gami/alfi*dtgl
78*59599516SKenneth E. Jansen
79*59599516SKenneth E. Jansen            rmi(:,16) = rmi(:,16) + fct1*dui(:,1)
80*59599516SKenneth E. Jansen            rmi(:,17) = rmi(:,17) + fct1*dui(:,2)
81*59599516SKenneth E. Jansen            rmi(:,18) = rmi(:,18) + fct1*dui(:,3)
82*59599516SKenneth E. Jansen            rmi(:,19) = rmi(:,19) + fct1*dui(:,4)
83*59599516SKenneth E. Jansen            rmi(:,20) = rmi(:,20) + fct1*dui(:,5)
84*59599516SKenneth E. Jansen
85*59599516SKenneth E. Jansen         endif
86*59599516SKenneth E. Jansen
87*59599516SKenneth E. Jansenc
88*59599516SKenneth E. Jansenc.... return
89*59599516SKenneth E. Jansenc
90*59599516SKenneth E. Jansen        return
91*59599516SKenneth E. Jansen        end
92*59599516SKenneth E. Jansenc
93*59599516SKenneth E. Jansenc
94*59599516SKenneth E. Jansenc
95*59599516SKenneth E. Jansen        subroutine e3massrSclr (acti,   rti,     A0t)
96*59599516SKenneth E. Jansenc
97*59599516SKenneth E. Jansenc----------------------------------------------------------------------
98*59599516SKenneth E. Jansenc
99*59599516SKenneth E. Jansenc This routine calculates the contribution of the jump condition
100*59599516SKenneth E. Jansenc and the time flux to RHS and LHS.
101*59599516SKenneth E. Jansenc
102*59599516SKenneth E. Jansenc input:
103*59599516SKenneth E. Jansenc  acti     (npro)           : scalar variable acceleration
104*59599516SKenneth E. Jansenc  A0t      (npro)           : weighted Jacobian
105*59599516SKenneth E. Jansenc
106*59599516SKenneth E. Jansenc output:
107*59599516SKenneth E. Jansenc  rti     (npro,nsd+1)   : partial residual
108*59599516SKenneth E. Jansenc
109*59599516SKenneth E. Jansenc
110*59599516SKenneth E. Jansenc
111*59599516SKenneth E. Jansenc Zdenek Johan, Summer 1990. (Modified from e2jump.f)
112*59599516SKenneth E. Jansenc Zdenek Johan, Winter 1991. (Fortran 90)
113*59599516SKenneth E. Jansenc Kenneth Jansen, Winter 1997 Prim Variables
114*59599516SKenneth E. Jansenc----------------------------------------------------------------------
115*59599516SKenneth E. Jansenc
116*59599516SKenneth E. Jansen        include "common.h"
117*59599516SKenneth E. Jansenc
118*59599516SKenneth E. Jansen        dimension acti(npro),
119*59599516SKenneth E. Jansen     &            rti(npro,nsd+1),
120*59599516SKenneth E. Jansen     &            rmti(npro,nsd+1),    A0t(npro)
121*59599516SKenneth E. Jansenc
122*59599516SKenneth E. Jansenc
123*59599516SKenneth E. Jansenc.... add contribution of U at previous step
124*59599516SKenneth E. Jansenc
125*59599516SKenneth E. Jansen       if(ires.eq.1 .or. ires .eq. 3) then
126*59599516SKenneth E. Jansen
127*59599516SKenneth E. Jansen        rti(:,4) = rti(:,4) + A0t(:)*acti(:)
128*59599516SKenneth E. Jansen
129*59599516SKenneth E. Jansen         endif
130*59599516SKenneth E. Jansen
131*59599516SKenneth E. Jansen
132*59599516SKenneth E. Jansenc         if(ires.ne.1) then
133*59599516SKenneth E. Jansenc
134*59599516SKenneth E. Jansenc the modified residual
135*59599516SKenneth E. Jansenc
136*59599516SKenneth E. Jansenc            fct1=almi/gami/alfi*dtgl
137*59599516SKenneth E. Jansenc
138*59599516SKenneth E. Jansenc            rmi(:,4) = rmi(:,4) + fct1*duti(:)
139*59599516SKenneth E. Jansenc
140*59599516SKenneth E. Jansenc         endif
141*59599516SKenneth E. Jansen
142*59599516SKenneth E. Jansenc
143*59599516SKenneth E. Jansenc.... return
144*59599516SKenneth E. Jansenc
145*59599516SKenneth E. Jansen        return
146*59599516SKenneth E. Jansen        end
147*59599516SKenneth E. Jansen
148