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