1 : C FSTSHL SOURCE BECC 11/05/26 21:15:31 6981 2 : SUBROUTINE FSTSHL( 3 : & PC, GAM, 4 : & P, RHO_L, P_L, U_L, 5 : & U, RHO, D, 6 : & LOGDEB, LOGAN) 7 : * 8 : ************************************************************************* 9 : * 10 : * project : CAST3M, EUROPLEXUS... 11 : * 12 : * name : fstshl 13 : * 14 : * description : euler equations for a mixture of stiffened gases 15 : * flux in the non-reactive case. 16 : * 17 : * left shock curve as function of p 18 : * 19 : * language : fortran 77 20 : * 21 : * author : a. beccantini den/dm2s/sfme/ltmf 22 : * 23 : ************************************************************************* 24 : * 24 : * called by : 25 : * 26 : * 27 : ************************************************************************* 28 : * 29 : ***** input 30 : * 31 : * pc, gam = properties of the gas 32 : * 33 : * p = pressure in the right side of the left 34 : * rarefaction 35 : * 36 : * rho_l, p_l, u_l 37 : * = density, pressure, velocity on the left 38 : * 39 : * logdeb = debugging ? 40 : * 41 : ***** output 42 : * 43 : * u, rho = velocity and density in the right side of the 44 : * left rarefaction 45 : * 46 : * d = shock speed 47 : * 48 : * logan = anomaly ? 49 : * 50 : ************************************************************************* 51 : * 52 : * 26/11/2009 created 53 : * 25/05/2011 evolution in CAST3M 54 : * 55 : ************************************************************************* 56 : * 57 : * n.b.: all variables are declared 58 : * 59 : C IMPLICIT NONE 60 : IMPLICIT INTEGER(I-N) 61 : REAL*8 62 : & PC, GAM, 63 : & P, RHO_L, P_L, U_L, 64 : & U, D 65 : * 66 : REAL*8 BETAL, ALPHAL, QL, COEF, NUME, DENO, RHO 67 : * 68 : LOGICAL LOGDEB, LOGAN 69 : * 70 : IF (LOGDEB ) THEN 71 : IF (GAM .LE. 1.0D0) THEN 72 : WRITE(*,*) 'GAM =', GAM 73 : LOGAN = .TRUE. 74 : GOTO 9999 75 : ENDIF 76 : IF ((P .LE. 0.0D0) .OR.(P_L .LE. 0.0D0) .OR. 77 : & (PC .LE. 0.0D0)) THEN 78 : WRITE(*,*) 'P = ', P, ' P_L = ', P_L, ' PC = ', PC 79 : LOGAN = .TRUE. 80 : WRITE(*,*) 'SUBROUTINE FSTSHL.F' 81 : WRITE(*,*) 'ANOMALY DETECTED.' 82 : GOTO 9999 83 : ENDIF 84 : IF ((RHO_L .LE. 0.0D0)) THEN 85 : WRITE(*,*) 'RHO_L = ', RHO_L 86 : LOGAN = .TRUE. 87 : WRITE(*,*) 'SUBROUTINE FSTSHL.F' 88 : WRITE(*,*) 'ANOMALY DETECTED.' 89 : GOTO 9999 90 : ENDIF 91 : ENDIF 92 : * 93 : ***** computation of rho 94 : * 95 : COEF = GAM - 1.0D0 96 : COEF = COEF / (GAM + 1.0D0) 97 : NUME = ((P + PC)/ (P_L + PC)) + COEF 98 : DENO = ((((P + PC)/ (P_L + PC))) * COEF) + 1.0D0 99 : RHO = ((NUME / DENO) * RHO_L) 100 : * 101 : ***** computation of u 102 : * 103 : BETAL = (PC + P_L) * (GAM - 1.0D0) / (GAM + 1.0D0) 104 : ALPHAL = 2.0D0 / ((GAM + 1.0D0) * RHO_L) 105 : QL = (P + PC + BETAL) / ALPHAL 106 : QL = QL ** 0.5D0 107 : U = U_L - ((P - P_L) / QL) 108 : * 109 : **** computation of d 110 : * 111 : * write(*,*) 'correggimi... imprecisa' 112 : * d = (rho * u) - (rho_l * u_l) 113 : * d = d / (rho - rho_l) 114 : * write(*,*) 115 : * write(*,*) d 116 : * 117 : D = U_L - (QL / RHO_L) 118 : * write(*,*) d 119 : * write(*,*) 120 : * 121 : 9999 RETURN 122 : END 123 :
© Cast3M 2003 - All rights reserved.
Disclaimer