xref: /phasta/phSolver/compressible/e3mtrx.f (revision 712d3df0b59ebebaaeaea358162c8d2c043c6e08)
159599516SKenneth E. Jansen        subroutine e3mtrx (rho,    pres,   T,
259599516SKenneth E. Jansen     &                     ei,     h,	   alfap,
359599516SKenneth E. Jansen     &                     betaT,  cp,     rk,
459599516SKenneth E. Jansen     &                     u1,     u2,   u3,
559599516SKenneth E. Jansen     &                     A0,     A1,
659599516SKenneth E. Jansen     &                     A2,     A3,
759599516SKenneth E. Jansen     &                     e2p,    e3p,    e4p,
859599516SKenneth E. Jansen     &                     drdp,   drdT,   A0DC,
959599516SKenneth E. Jansen     &                     A0inv,  dVdY)
1059599516SKenneth E. Jansenc
1159599516SKenneth E. Jansenc----------------------------------------------------------------------
1259599516SKenneth E. Jansenc
1359599516SKenneth E. Jansenc This routine sets up the necessary matrices at the integration point.
1459599516SKenneth E. Jansenc
1559599516SKenneth E. Jansenc input:
1659599516SKenneth E. Jansenc  rho   (npro)         : density
1759599516SKenneth E. Jansenc  pres  (npro)         : pressure
1859599516SKenneth E. Jansenc  T     (npro)         : temperature
1959599516SKenneth E. Jansenc  ei    (npro)         : internal energy
2059599516SKenneth E. Jansenc  h     (npro)         : enthalpy
2159599516SKenneth E. Jansenc  alfap (npro)         : expansivity
2259599516SKenneth E. Jansenc  betaT (npro)         : isothermal compressibility
2359599516SKenneth E. Jansenc  cp    (npro)         : specific heat at constant pressure
2459599516SKenneth E. Jansenc  c     (npro)         : speed of sound
2559599516SKenneth E. Jansenc  rk    (npro)         : kinetic energy
2659599516SKenneth E. Jansenc  u1    (npro)         : x1-velocity component
2759599516SKenneth E. Jansenc  u2    (npro)         : x2-velocity component
2859599516SKenneth E. Jansenc  u3    (npro)         : x3-velocity component
2959599516SKenneth E. Jansenc
3059599516SKenneth E. Jansenc output:
3159599516SKenneth E. Jansenc  A0    (npro,nflow,nflow)  : A0 matrix
3259599516SKenneth E. Jansenc  A1   (npro,nflow,nflow)  : A_1 matrix
3359599516SKenneth E. Jansenc  A2   (npro,nflow,nflow)  : A_2 matrix
3459599516SKenneth E. Jansenc  A3   (npro,nflow,nflow)  : A_3 matrix
3559599516SKenneth E. Jansenc
3659599516SKenneth E. Jansenc Note: the definition of the matrices can be found in
3759599516SKenneth E. Jansenc       thesis by Hauke.
3859599516SKenneth E. Jansenc
3959599516SKenneth E. Jansenc Zdenek Johan, Summer 1990.  (Modified from e2mtrx.f)
4059599516SKenneth E. Jansenc Zdenek Johan, Winter 1991.  (Fortran 90)
4159599516SKenneth E. Jansenc Kenneth Jansen, Winter 1997 Primitive Variables
4259599516SKenneth E. Jansenc----------------------------------------------------------------------
4359599516SKenneth E. Jansenc
4459599516SKenneth E. Jansen        include "common.h"
4559599516SKenneth E. Jansenc
4659599516SKenneth E. Jansenc
4759599516SKenneth E. Jansenc  passed arrays
4859599516SKenneth E. Jansenc
4959599516SKenneth E. Jansen        dimension rho(npro),                 pres(npro),
5059599516SKenneth E. Jansen     &            T(npro),                   ei(npro),
5159599516SKenneth E. Jansen     &            h(npro),                   alfap(npro),
5259599516SKenneth E. Jansen     &            betaT(npro),
5359599516SKenneth E. Jansen     &            cp(npro),
5459599516SKenneth E. Jansen     &            rk(npro),
5559599516SKenneth E. Jansen     &            u1(npro),                 u2(npro),
5659599516SKenneth E. Jansen     &            u3(npro),                 fact1(npro),
5759599516SKenneth E. Jansen     &            A0(npro,nflow,nflow),     dVdY(npro,15),
5859599516SKenneth E. Jansen     &            A1(npro,nflow,nflow),     A2(npro,nflow,nflow),
5959599516SKenneth E. Jansen     &            A3(npro,nflow,nflow),     A0DC(npro,4),
6059599516SKenneth E. Jansen     &            A0inv(npro,15),           d(npro),
6159599516SKenneth E. Jansen     &            fact2(npro),               s1(npro),
6259599516SKenneth E. Jansen     &            e1bar(npro),              e2bar(npro),
6359599516SKenneth E. Jansen     &            e3bar(npro),              e4bar(npro),
6459599516SKenneth E. Jansen     &            e5bar(npro),              c1bar(npro),
6559599516SKenneth E. Jansen     &            c2bar(npro),              cv(npro),
6659599516SKenneth E. Jansen     &            c3bar(npro),              u12(npro),
6759599516SKenneth E. Jansen     &            u31(npro),                u23(npro)
6859599516SKenneth E. Jansenc
6959599516SKenneth E. Jansenc  local work arrays that are passed shared space
7059599516SKenneth E. Jansenc
7159599516SKenneth E. Jansen        dimension e2p(npro),
7259599516SKenneth E. Jansen     &            e3p(npro),                 e4p(npro),
7359599516SKenneth E. Jansen     &            drdp(npro),                drdT(npro)
7459599516SKenneth E. Jansen
7559599516SKenneth E. Jansen	ttim(21) = ttim(21) - secs(0.0)
7659599516SKenneth E. Jansenc
7759599516SKenneth E. Jansenc.... initialize
7859599516SKenneth E. Jansenc
7959599516SKenneth E. Jansen        A0 = zero
8059599516SKenneth E. Jansen        A1 = zero
8159599516SKenneth E. Jansen        A2 = zero
8259599516SKenneth E. Jansen        A3 = zero
8359599516SKenneth E. Jansenc
8459599516SKenneth E. Jansenc.... set up the constants
8559599516SKenneth E. Jansenc
8659599516SKenneth E. Jansenc
8759599516SKenneth E. Jansen        drdp = rho * betaT
8859599516SKenneth E. Jansen        drdT = -rho * alfap
8959599516SKenneth E. Jansen        A0(:,5,1) = drdp * (h + rk)  - alfap * T    ! e1p
9059599516SKenneth E. Jansenc        A0(:,5,1) = drdp * (ei + rk) + betaT * pres - alfap * T    ! e1p
9159599516SKenneth E. Jansen          e2p  = A0(:,5,1) + one
9259599516SKenneth E. Jansen          e3p  = rho * ( h + rk)
9359599516SKenneth E. Jansen          e4p  = drdT * (h + rk) + rho * cp
9459599516SKenneth E. Jansenc
9559599516SKenneth E. Jansenc
9659599516SKenneth E. Jansenc.... Calculate A0
9759599516SKenneth E. Jansenc
9859599516SKenneth E. Jansen        A0(:,1,1) = drdp
9959599516SKenneth E. Jansenc       A0(:,1,2) = zero
10059599516SKenneth E. Jansenc       A0(:,1,3) = zero
10159599516SKenneth E. Jansenc       A0(:,1,4) = zero
10259599516SKenneth E. Jansen        A0(:,1,5) = drdT
10359599516SKenneth E. Jansenc
10459599516SKenneth E. Jansen        A0(:,2,1) = drdp * u1
10559599516SKenneth E. Jansen        A0(:,2,2) = rho
10659599516SKenneth E. Jansenc       A0(:,2,3) = zero
10759599516SKenneth E. Jansenc       A0(:,2,4) = zero
10859599516SKenneth E. Jansen        A0(:,2,5) = drdT * u1
10959599516SKenneth E. Jansenc
11059599516SKenneth E. Jansen        A0(:,3,1) = drdp * u2
11159599516SKenneth E. Jansenc       A0(:,3,2) = zero
11259599516SKenneth E. Jansen        A0(:,3,3) = rho
11359599516SKenneth E. Jansenc       A0(:,3,4) = zero
11459599516SKenneth E. Jansen        A0(:,3,5) = drdT * u2
11559599516SKenneth E. Jansenc
11659599516SKenneth E. Jansen        A0(:,4,1) = drdp * u3
11759599516SKenneth E. Jansenc       A0(:,4,2) = zero
11859599516SKenneth E. Jansenc       A0(:,4,3) = zero
11959599516SKenneth E. Jansen        A0(:,4,4) = rho
12059599516SKenneth E. Jansen        A0(:,4,5) = drdT * u3
12159599516SKenneth E. Jansenc
12259599516SKenneth E. Jansencovered above       A0(:,5,1) = drdp * u1
12359599516SKenneth E. Jansen        A0(:,5,2) = rho * u1
12459599516SKenneth E. Jansen        A0(:,5,3) = rho * u2
12559599516SKenneth E. Jansen        A0(:,5,4) = rho * u3
12659599516SKenneth E. Jansen        A0(:,5,5) = e4p
12759599516SKenneth E. Jansenc
128*f4d0b58bSKenneth E. Jansen   !      flops = flops + 67*npro
12959599516SKenneth E. Jansenc
13059599516SKenneth E. Jansenc.... Calculate A-tilde-1, A-tilde-2 and A-tilde-3
13159599516SKenneth E. Jansenc
13259599516SKenneth E. Jansen        A1(:,1,1) = drdp * u1
13359599516SKenneth E. Jansen        A1(:,1,2) = rho
13459599516SKenneth E. Jansenc       A1(:,1,3) = zero
13559599516SKenneth E. Jansenc       A1(:,1,4) = zero
13659599516SKenneth E. Jansen        A1(:,1,5) = drdT * u1
13759599516SKenneth E. Jansenc
13859599516SKenneth E. Jansen        A1(:,2,1) = drdp * u1 * u1 +1
13959599516SKenneth E. Jansen        A1(:,2,2) = two *rho  * u1
14059599516SKenneth E. Jansenc       A1(:,2,3) = zero
14159599516SKenneth E. Jansenc       A1(:,2,4) = zero
14259599516SKenneth E. Jansen        A1(:,2,5) = drdT * u1 * u1
14359599516SKenneth E. Jansenc
14459599516SKenneth E. Jansen        A1(:,3,1) = drdp * u1 * u2
14559599516SKenneth E. Jansen        A1(:,3,2) = rho  * u2
14659599516SKenneth E. Jansen        A1(:,3,3) = rho  * u1
14759599516SKenneth E. Jansenc       A1(:,3,4) = zero
14859599516SKenneth E. Jansen        A1(:,3,5) = drdT * u1 * u2
14959599516SKenneth E. Jansenc
15059599516SKenneth E. Jansen        A1(:,4,1) = drdp * u1 * u3
15159599516SKenneth E. Jansen        A1(:,4,2) = rho  * u3
15259599516SKenneth E. Jansenc       A1(:,4,3) = zero
15359599516SKenneth E. Jansen        A1(:,4,4) = rho  * u1
15459599516SKenneth E. Jansen        A1(:,4,5) = drdT * u1 * u3
15559599516SKenneth E. Jansenc
15659599516SKenneth E. Jansen        A1(:,5,1) = u1 * e2p
15759599516SKenneth E. Jansen        A1(:,5,2) = e3p + rho * u1 * u1
15859599516SKenneth E. Jansen        A1(:,5,3) = rho * u1 * u2
15959599516SKenneth E. Jansen        A1(:,5,4) = rho * u1 * u3
16059599516SKenneth E. Jansen        A1(:,5,5) = u1 * e4p
16159599516SKenneth E. Jansenc
162*f4d0b58bSKenneth E. Jansen   !      flops = flops + 35*npro
16359599516SKenneth E. Jansenc
16459599516SKenneth E. Jansen        A2(:,1,1) = drdp * u2
16559599516SKenneth E. Jansenc       A2(:,1,2) = zero
16659599516SKenneth E. Jansen        A2(:,1,3) = rho
16759599516SKenneth E. Jansenc       A2(:,1,4) = zero
16859599516SKenneth E. Jansen        A2(:,1,5) = drdT * u2
16959599516SKenneth E. Jansenc
17059599516SKenneth E. Jansen        A2(:,2,1) = drdp * u1 * u2
17159599516SKenneth E. Jansen        A2(:,2,2) = rho  * u2
17259599516SKenneth E. Jansen        A2(:,2,3) = rho  * u1
17359599516SKenneth E. Jansenc       A2(:,2,4) = zero
17459599516SKenneth E. Jansen        A2(:,2,5) = drdT * u1 * u2
17559599516SKenneth E. Jansenc
17659599516SKenneth E. Jansen        A2(:,3,1) = drdp * u2 * u2 +1
17759599516SKenneth E. Jansenc       A2(:,3,2) = zero
17859599516SKenneth E. Jansen        A2(:,3,3) = two * rho  * u2
17959599516SKenneth E. Jansenc       A2(:,3,4) = zero
18059599516SKenneth E. Jansen        A2(:,3,5) = drdT * u2 * u2
18159599516SKenneth E. Jansenc
18259599516SKenneth E. Jansen        A2(:,4,1) = drdp * u2 * u3
18359599516SKenneth E. Jansenc       A2(:,4,2) = zero
18459599516SKenneth E. Jansen        A2(:,4,3) = rho  * u3
18559599516SKenneth E. Jansen        A2(:,4,4) = rho  * u2
18659599516SKenneth E. Jansen        A2(:,4,5) = drdT * u2 * u3
18759599516SKenneth E. Jansenc
18859599516SKenneth E. Jansen        A2(:,5,1) = u2 * e2p
18959599516SKenneth E. Jansen        A2(:,5,2) = rho * u1 * u2
19059599516SKenneth E. Jansen        A2(:,5,3) = e3p + rho * u2 * u2
19159599516SKenneth E. Jansen        A2(:,5,4) = rho * u2 * u3
19259599516SKenneth E. Jansen        A2(:,5,5) = u2 * e4p
19359599516SKenneth E. Jansenc
194*f4d0b58bSKenneth E. Jansen   !      flops = flops + 35*npro
19559599516SKenneth E. Jansenc
19659599516SKenneth E. Jansen        A3(:,1,1) = drdp * u3
19759599516SKenneth E. Jansenc       A3(:,1,2) = zero
19859599516SKenneth E. Jansenc       A3(:,1,3) = zero
19959599516SKenneth E. Jansen        A3(:,1,4) = rho
20059599516SKenneth E. Jansen        A3(:,1,5) = drdT * u3
20159599516SKenneth E. Jansenc
20259599516SKenneth E. Jansen        A3(:,2,1) = drdp * u1 * u3
20359599516SKenneth E. Jansen        A3(:,2,2) = rho  * u3
20459599516SKenneth E. Jansenc       A3(:,2,3) = zero
20559599516SKenneth E. Jansen        A3(:,2,4) = rho  * u1
20659599516SKenneth E. Jansen        A3(:,2,5) = drdT * u1 * u3
20759599516SKenneth E. Jansenc
20859599516SKenneth E. Jansen        A3(:,3,1) = drdp * u3 * u2
20959599516SKenneth E. Jansenc       A3(:,3,2) = zero
21059599516SKenneth E. Jansen        A3(:,3,3) = rho  * u3
21159599516SKenneth E. Jansen        A3(:,3,4) = rho  * u2
21259599516SKenneth E. Jansen        A3(:,3,5) = drdT * u3 * u2
21359599516SKenneth E. Jansenc
21459599516SKenneth E. Jansen        A3(:,4,1) = drdp * u3 * u3 +1
21559599516SKenneth E. Jansenc       A3(:,4,2) = zero
21659599516SKenneth E. Jansenc       A3(:,4,3) = zero
21759599516SKenneth E. Jansen        A3(:,4,4) = two *rho  * u3
21859599516SKenneth E. Jansen        A3(:,4,5) = drdT * u3 * u3
21959599516SKenneth E. Jansenc
22059599516SKenneth E. Jansen        A3(:,5,1) = u3 * e2p
22159599516SKenneth E. Jansen        A3(:,5,2) = rho * u1 * u3
22259599516SKenneth E. Jansen        A3(:,5,3) = rho * u2 * u3
22359599516SKenneth E. Jansen        A3(:,5,4) = e3p + rho * u3 * u3
22459599516SKenneth E. Jansen        A3(:,5,5) = u3 * e4p
22559599516SKenneth E. Jansenc
226*f4d0b58bSKenneth E. Jansen   !      flops = flops + 35*npro
22759599516SKenneth E. Jansen	ttim(21) = ttim(21) + secs(0.0)
22859599516SKenneth E. Jansen
22959599516SKenneth E. Jansenc
23059599516SKenneth E. Jansenc.... return
23159599516SKenneth E. Jansenc
23259599516SKenneth E. Jansen      if (idc .ne. 0) then
23359599516SKenneth E. Jansenc.... for Discountinuity Capturing Term
23459599516SKenneth E. Jansenc
23559599516SKenneth E. Jansenc.... calculation of A0^DC matrix
23659599516SKenneth E. Jansenc
23759599516SKenneth E. Jansenc.... Ref P-163 of the handout
23859599516SKenneth E. Jansenc
23959599516SKenneth E. Jansen       s1 = one/(rho**2 * betaT * T)
24059599516SKenneth E. Jansen       cv = cp - (alfap**2 * T/rho/betaT)
24159599516SKenneth E. Jansen       A0DC(:,1) = (rho * betaT)**2*s1
24259599516SKenneth E. Jansen       A0DC(:,2) = -rho*alfap*rho*betaT*s1
24359599516SKenneth E. Jansen       A0DC(:,3) = rho/T
24459599516SKenneth E. Jansen       A0DC(:,4) = (-rho*alfap)**2 * s1 + (rho*cv/T**2)
24559599516SKenneth E. Jansenc
24659599516SKenneth E. Jansenc.... calculation of A0^tilda^inverse matrix
24759599516SKenneth E. Jansenc.... ref P-169 of the hand out
24859599516SKenneth E. Jansenc
24959599516SKenneth E. Jansen       fact1 = one/(rho*cv*T**2)
25059599516SKenneth E. Jansen       d = alfap*T/rho/betaT
25159599516SKenneth E. Jansen       e1bar = h - rk
25259599516SKenneth E. Jansen       e2bar = e1bar - d
25359599516SKenneth E. Jansen       e3bar = e2bar - cv * T
25459599516SKenneth E. Jansen       e4bar = e2bar - 2* cv * T
25559599516SKenneth E. Jansen       e5bar = e1bar**2 - 2*e1bar*d + 2*rk*cv*T + cp*T/rho/betaT
25659599516SKenneth E. Jansen       c1bar = u1**2 + cv * T
25759599516SKenneth E. Jansen       c2bar = u2**2 + cv * T
25859599516SKenneth E. Jansen       c3bar = u3**2 + cv * T
25959599516SKenneth E. Jansen       u12 = u1 * u2
26059599516SKenneth E. Jansen       u31 = u3 * u1
26159599516SKenneth E. Jansen       u23 = u2 * u3
26259599516SKenneth E. Jansen       A0inv( :,1) = e5bar*fact1
26359599516SKenneth E. Jansen       A0inv( :,2) = c1bar*fact1
26459599516SKenneth E. Jansen       A0inv( :,3) = c2bar*fact1
26559599516SKenneth E. Jansen       A0inv( :,4) = c3bar*fact1
26659599516SKenneth E. Jansen       A0inv( :,5) = 1*fact1
26759599516SKenneth E. Jansen       A0inv( :,6) = u1*e3bar*fact1
26859599516SKenneth E. Jansen       A0inv( :,7) = u2*e3bar*fact1
26959599516SKenneth E. Jansen       A0inv( :,8) = u3*e3bar*fact1
27059599516SKenneth E. Jansen       A0inv( :,9) = -e2bar*fact1
27159599516SKenneth E. Jansen       A0inv(:,10) = u12*fact1
27259599516SKenneth E. Jansen       A0inv(:,11) = u31*fact1
27359599516SKenneth E. Jansen       A0inv(:,12) = -u1*fact1
27459599516SKenneth E. Jansen       A0inv(:,13) = u23*fact1
27559599516SKenneth E. Jansen       A0inv(:,14) = -u2*fact1
27659599516SKenneth E. Jansen       A0inv(:,15) = -u3*fact1
27759599516SKenneth E. Jansenc
27859599516SKenneth E. Jansenc.....calculation of dV/dY (derivative of entropy variables w.r.to primitive
27959599516SKenneth E. Jansenc
28059599516SKenneth E. Jansen      fact1 = 1/T
28159599516SKenneth E. Jansen      fact2 = fact1/T
28259599516SKenneth E. Jansen      dVdY( :,1) = fact1/rho
28359599516SKenneth E. Jansen      dVdY( :,2) = -fact1*u1
28459599516SKenneth E. Jansen      dVdY( :,3) =  fact1
28559599516SKenneth E. Jansen      dVdY( :,4) =  -fact1*u2
28659599516SKenneth E. Jansen      dVdY( :,5) =  zero
28759599516SKenneth E. Jansen      dVdY( :,6) =  fact1
28859599516SKenneth E. Jansen      dVdY( :,7) =  -fact1*u3
28959599516SKenneth E. Jansen      dVdY( :,8) =  zero
29059599516SKenneth E. Jansen      dVdY( :,9) =  zero
29159599516SKenneth E. Jansen      dVdY(:,10) =  fact1
29259599516SKenneth E. Jansen      dVdY(:,11) =  -(h-rk)*fact2
29359599516SKenneth E. Jansen      dVdY(:,12) =  -fact2*u1
29459599516SKenneth E. Jansen      dVdY(:,13) =  -fact2*u2
29559599516SKenneth E. Jansen      dVdY(:,14) =  -fact2*u3
29659599516SKenneth E. Jansen      dVdY(:,15) =   fact2
29759599516SKenneth E. Jansen
29859599516SKenneth E. Jansen      endif  !end of idc.ne.0
29959599516SKenneth E. Jansen
30059599516SKenneth E. Jansen        return
30159599516SKenneth E. Jansen        end
30259599516SKenneth E. Jansenc
30359599516SKenneth E. Jansenc
30459599516SKenneth E. Jansen        subroutine e3mtrxSclr (rho,
30559599516SKenneth E. Jansen     &                         u1,     u2,   u3,
30659599516SKenneth E. Jansen     &                         A0t,    A1t,
30759599516SKenneth E. Jansen     &                         A2t,    A3t  )
30859599516SKenneth E. Jansenc
30959599516SKenneth E. Jansenc----------------------------------------------------------------------
31059599516SKenneth E. Jansenc
31159599516SKenneth E. Jansenc This routine sets up the necessary matrices at the integration point.
31259599516SKenneth E. Jansenc
31359599516SKenneth E. Jansenc input:
31459599516SKenneth E. Jansenc  rho   (npro)         : density
31559599516SKenneth E. Jansenc  u1    (npro)         : x1-velocity component
31659599516SKenneth E. Jansenc  u2    (npro)         : x2-velocity component
31759599516SKenneth E. Jansenc  u3    (npro)         : x3-velocity component
31859599516SKenneth E. Jansenc
31959599516SKenneth E. Jansenc output:
32059599516SKenneth E. Jansenc  A0t    (npro) : A_0 "matrix"
32159599516SKenneth E. Jansenc  A1t   (npro)  : A_1 "matrix"
32259599516SKenneth E. Jansenc  A2t   (npro)  : A_2 "matrix"
32359599516SKenneth E. Jansenc  A3t   (npro)  : A_3 "matrix"
32459599516SKenneth E. Jansenc
32559599516SKenneth E. Jansenc Note: the definition of the matrices can be found in
32659599516SKenneth E. Jansenc       thesis by Hauke.
32759599516SKenneth E. Jansenc
32859599516SKenneth E. Jansenc Zdenek Johan, Summer 1990.  (Modified from e2mtrx.f)
32959599516SKenneth E. Jansenc Zdenek Johan, Winter 1991.  (Fortran 90)
33059599516SKenneth E. Jansenc Kenneth Jansen, Winter 1997 Primitive Variables
33159599516SKenneth E. Jansenc----------------------------------------------------------------------
33259599516SKenneth E. Jansenc
33359599516SKenneth E. Jansen        include "common.h"
33459599516SKenneth E. Jansenc
33559599516SKenneth E. Jansenc
33659599516SKenneth E. Jansenc  passed arrays
33759599516SKenneth E. Jansenc
33859599516SKenneth E. Jansen        dimension rho(npro),
33959599516SKenneth E. Jansen     &            u1(npro),        u2(npro),
34059599516SKenneth E. Jansen     &            u3(npro),
34159599516SKenneth E. Jansen     &            A0t(npro),
34259599516SKenneth E. Jansen     &            A1t(npro),       A2t(npro),
34359599516SKenneth E. Jansen     &            A3t(npro)
34459599516SKenneth E. Jansenc
34559599516SKenneth E. Jansen        if (iconvsclr.eq.2) then  !convective form
34659599516SKenneth E. Jansen           A0t(:) = one
34759599516SKenneth E. Jansen           A1t(:) = u1(:)
34859599516SKenneth E. Jansen           A2t(:) = u2(:)
34959599516SKenneth E. Jansen           A3t(:) = u3(:)
35059599516SKenneth E. Jansen        else                    !conservative form
35159599516SKenneth E. Jansen           A0t(:) = rho(:)
35259599516SKenneth E. Jansen           A1t(:) = rho(:)*u1(:)
35359599516SKenneth E. Jansen           A2t(:) = rho(:)*u2(:)
35459599516SKenneth E. Jansen           A3t(:) = rho(:)*u3(:)
35559599516SKenneth E. Jansen        endif
35659599516SKenneth E. Jansen
35759599516SKenneth E. Jansenc
35859599516SKenneth E. Jansenc.... return
35959599516SKenneth E. Jansenc
36059599516SKenneth E. Jansen        return
36159599516SKenneth E. Jansen        end
36259599516SKenneth E. Jansen
36359599516SKenneth E. Jansen
364