1 : C DERL SOURCE BECC 11/05/26 21:15:20 6981 2 : SUBROUTINE DERL( 3 : & PC, GAM, 4 : & P, RHO_L, P_L, U_L, 5 : & DER, 6 : & LOGDEB, LOGAN) 7 : * 8 : ************************************************************************* 9 : * 10 : * project : CAST3M, EUROPLEXUS... 11 : * 12 : * name : derl 13 : * 14 : * description : euler equations for a mixture of stiffened gases 15 : * flux in the non-reactive case. 16 : * 17 : * left entropy-respecing curve. 18 : * derivative of w with respect to p 19 : * 20 : * language : fortran 77 21 : * 22 : * author : a. beccantini den/dm2s/sfme/ltmf 23 : * 24 : ************************************************************************* 25 : * 25 : * called by : 26 : * 27 : * 28 : ************************************************************************* 29 : * 30 : ***** input 31 : * 32 : * pc, gam = properties of the gas 33 : * 34 : * p = pressure in the right side of the left 35 : * entropy respecing curve 36 : * 37 : * rho_l, p_l, u_l 38 : * = density, pressure, velocity on the left 39 : * 40 : * logdeb = debugging ? 41 : * 42 : ***** output 43 : * 44 : * der = derivative 45 : * 46 : * logan = anomaly ? 47 : * 48 : ************************************************************************* 49 : * 50 : * 12/11/2009 created 51 : * 25/05/2011 evolution in CAST3M 52 : * 53 : ************************************************************************* 54 : * 55 : * n.b.: all variables are declared 56 : * 57 : C IMPLICIT NONE 58 : IMPLICIT INTEGER(I-N) 59 : REAL*8 60 : & PC, GAM, 61 : & P, RHO_L, P_L, U_L, 62 : & DER, CSON_L, VAR, DER2 63 : * 64 : LOGICAL LOGDEB, LOGAN 65 : * 66 : IF (P .LE. (-1.0D0 * PC)) THEN 67 : C 68 : C******* Stop 69 : C 70 : WRITE(*,*) 'P = ', P 71 : WRITE(*,*) 'PC = ', PC 72 : LOGAN = .TRUE. 73 : WRITE(*,*) 'SUBROUTINE DERL' 74 : WRITE(*,*) 'ANOMALY DETECTED.' 75 : GOTO 9999 76 : ENDIF 77 : IF (P .LE. P_L) THEN 78 : C 79 : C******* Rarefaction 80 : C 81 : cson_L = gam * (P_L + PC) / RHO_L 82 : cson_L = SQRT (cson_L) 83 : var = P + PC 84 : var = var / (P_L + PC) 85 : var = var ** ((GAM - 1.0D0) / (2.0D0 * GAM)) 86 : DER = ((-1.0D0 * cson_L / GAM) * (var / (P + PC))) 87 : ELSE 88 : var = RHO_L * (GAM + 1.0D0) * (P + PC) 89 : var = var + (RHO_L * (GAM - 1.0D0) * (P_L + PC)) 90 : DER = SQRT (2.0D0 / var) 91 : DER2 = 0.5D0 * SQRT (2.0D0) * (var**(-1.5D0)) * RHO_L * 92 : & (gam + 1.0D0) 93 : DER2 = DER2 * (P - P_L) 94 : DER = DER2 - DER 95 : ENDIF 96 : * 97 : IF (LOGAN) THEN 98 : WRITE(*,*) 'SUBROUTINE FSTERL.F' 99 : WRITE(*,*) 'ANOMALY DETECTED.' 100 : GOTO 9999 101 : ENDIF 102 : * 103 : 9999 RETURN 104 : END 105 :
© Cast3M 2003 - All rights reserved.
Disclaimer