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