1 : C FLUMVL SOURCE CHAT 05/01/13 00:04:31 5004 2 : SUBROUTINE FLUMVL(NESP,GAMD,ROD,MD,AD,UTD,HTD,Y,FLUX) 3 : C************************************************************************ 4 : C 5 : C PROJET : CASTEM 2000 6 : C 7 : C NOM : FLUMVL 8 : C 9 : C DESCRIPTION : Voir FLUXVL 10 : C 11 : C Onde de Droite à Gauche 12 : C 13 : C LANGAGE : FORTRAN 77 14 : C 15 : C AUTEUR : A. BECCANTINI DRN/DMT/SEMT/TTMF 16 : C 17 : C************************************************************************ 18 : C 19 : C APPELES : AUCUN 20 : C 21 : C************************************************************************ 22 : C 23 : C**** Entrées: 24 : C 25 : C NESP = nombre d'especes in FRAMAS 26 : C 27 : C GAMD = le "gamma" (à droite) 28 : C 29 : C ROD = la densité 30 : C 31 : C MD = nombre de Mach (normale) 32 : C 33 : C AD = vitesse du son 34 : C 35 : C UTD = vitesse tangentielle 36 : C 37 : C Y = table des fractiones massiques 38 : C 39 : C**** Sorties: 40 : C 41 : C FLUX = table du flux "droite -> gauche" à 42 : C l'interface 43 : C 44 : C************************************************************************ 45 : C 46 : C HISTORIQUE (Anomalies et modifications éventuelles) 47 : C 48 : C HISTORIQUE : Créé le 6.1.98 49 : C 50 : C************************************************************************ 51 : C 52 : C N.B.: Toutes les variables sont declarées explicitement 53 : C 54 : C 55 : IMPLICIT INTEGER(I-N) 56 : INTEGER I1, NESP 57 : REAL*8 GAMD,ROD,MD,AD,UTD,HTD 58 : & ,GM1D,MMINUS, CELL, CELLM 59 : & ,Y(*),FLUX(*),CELL1,CELLH 60 : C 61 : C**** N.B. : 62 : C 63 : C FLUX(2) = MMINUS * AD * ROD * UND + PMINUS * PD 64 : C 65 : C PD = ROD * AD * AD / GAMD 66 : C 67 : C ABS(MD) < 1 -> PMINUS = - MMINUS * (2 + MD) 68 : C 69 : C ABS(MD) > 1 -> PMINUS = - MMINUS / MD 70 : C 71 : GM1D = GAMD - 1.0D0 72 : IF(ABS(MD) .LE. 1.0D0)THEN 73 : MMINUS = 0.5D0 * (MD - 1.0D0) 74 : MMINUS = -1.0D0 * MMINUS * MMINUS 75 : CELL = (GM1D * MD - 2.0D0)*AD/GAMD 76 : CELL1 = GM1D*MD-2.0D0 77 : CELLH = AD * AD * CELL1 * CELL1 / (GAMD * GAMD - 1.0D0) 78 : CELLH = 0.5D0 * (UTD * UTD + CELLH) 79 : ELSE 80 : MMINUS = 0.5D0 * (MD - ABS(MD)) 81 : CELL = (MD + 1.0D0/GAMD/MD)*AD 82 : CELLH = HTD 83 : ENDIF 84 : C 85 : CELLM = MMINUS * AD * ROD 86 : FLUX(1) = CELLM 87 : FLUX(2) = CELLM * CELL 88 : FLUX(3) = CELLM * UTD 89 : FLUX(4) = CELLM * CELLH 90 : C 91 : C**** N.B. NESP = 0 -> no boucle 92 : C 93 : DO I1 = 1, NESP 94 : FLUX(4+I1) = CELLM * Y(I1) 95 : ENDDO 96 : C 97 : RETURN 98 : END 99 : 100 : 101 :
© Cast3M 2003 - All rights reserved.
Disclaimer