1 : C FRUSAN SOURCE CHAT 05/01/13 00:09:15 5004 2 : SUBROUTINE FRUSAN(NESP, 3 : & GAMG,ROG,PG,UNG,UTG, 4 : & GAMD,ROD,PD,UND,UTD, 5 : & YG,YD,FLU, 6 : & CELLT) 7 : C 8 : C 9 : C PROJET : CASTEM 2000 10 : C 11 : C NOM : FRUSAN 12 : C 13 : C DESCRIPTION : Formulation Volumes Finis pour les Equations 14 : C d'Euler Multi-Especes relatives à un melange 15 : C de gaz parfaits. 16 : C 17 : C Calcul du flux aux interfaces avec la methode 18 : C de Rusanov 19 : C 20 : C LANGUAGE : FORTRAN 77 21 : C 22 : C AUTEUR : A. BECCANTINI SFME/LTMF 23 : C 24 : C************************************************************************ 25 : C 26 : C APPELES : 27 : C 28 : C************************************************************************ 29 : C 30 : C**** Entrées: 31 : C 32 : C NESP = nombre d'especes considérées dans les Equations 33 : C d'Euler 34 : C 35 : C GAMG, GAMD = les "gamma" du gaz (gauche et droite) 36 : C 37 : C ROG, ROD = les densités 38 : C 39 : C PG, PD = les pressions 40 : C 41 : C UNG, UND = vitesses normales 42 : C 43 : C UTG, UTD = vitesses tangentielles 44 : C 45 : C**** Sorties: 46 : C 47 : C FLU = table du flux a l'interface dans le repaire 48 : C (n,t), i.e. 49 : C (rho*un, rho*un*un + p, rho*un*ut, rho*un*ht, 50 : C rho*un*y1, ...) 51 : C 52 : C CELLT = condition de stabilité, i.e. 53 : C 54 : C dT/diamax < cellt 55 : C 56 : C************************************************************************ 57 : C 58 : C HISTORIQUE (Anomalies et modifications éventuelles) 59 : C 60 : C HISTORIQUE : Créé le 08.02.00 61 : C 62 : C 21.02.00 transport de scalaires passifs 63 : C 64 : C************************************************************************ 65 : C 66 : C N.B.: Toutes les variables sont DECLAREES 67 : C 68 : C 69 : IMPLICIT INTEGER(I-N) 70 : INTEGER NESP,I1 71 : REAL*8 GAMG,ROG,PG,UNG,UTG 72 : & ,GAMD,ROD,PD,UND,UTD 73 : & ,YG(*),YD(*) 74 : & ,FLU(*),CELLT, FLUM 75 : & ,CSON, SIGMA, RETG, RETD 76 : C 77 : CSON = (0.5D0 * (GAMG + GAMD)) * ((PG + PD) / (ROG + ROD)) 78 : SIGMA = 0.5D0*(ABS(UNG) + ABS(UND)) + (CSON ** 0.5D0) 79 : CELLT=1.0D0/SIGMA 80 : C 81 : FLU(1) = 0.5D0 * ((ROG * UNG) + (ROD * UND) + 82 : & (SIGMA *(ROG - ROD))) 83 : FLU(2) = 0.5D0 * ((ROG * UNG * UNG) + (ROD * UND * UND) + 84 : & (PG + PD) + (SIGMA * ((ROG * UNG ) - (ROD * UND)))) 85 : FLU(3) = 0.5D0 * ((ROG * UNG * UTG) + (ROD * UND * UTD) + 86 : & (SIGMA * ((ROG * UTG ) - (ROD * UTD)))) 87 : RETG = ((1.0D0 / (GAMG - 1.0D0)) * PG ) + 88 : & (0.5D0 * ROG * ((UNG * UNG) + (UTG * UTG))) 89 : RETD = ((1.0D0 / (GAMD - 1.0D0)) * PD ) + 90 : & (0.5D0 * ROD * ((UND * UND) + (UTD * UTD))) 91 : FLU(4) = 0.5D0 * ((UNG * (RETG + PG)) + (UND * (RETD + PD)) + 92 : & (SIGMA * (RETG - RETD))) 93 : C 94 : FLUM = FLU(1) 95 : IF(FLUM .GT. 0)THEN 96 : DO I1 = 1, NESP, 1 97 : FLU(4+I1)=FLUM * YG(I1) 98 : ENDDO 99 : ELSE 100 : DO I1 = 1, NESP, 1 101 : FLU(4+I1)=FLUM * YD(I1) 102 : ENDDO 103 : ENDIF 104 : C 105 : RETURN 106 : END 107 : 108 : 109 : 110 : 111 : 112 : 113 : 114 : 115 :
© Cast3M 2003 - All rights reserved.
Disclaimer