1 : C FSPVLH SOURCE CHAT 05/01/13 00:10:28 5004 2 : SUBROUTINE FSPVLH(NESP,NSCA,GAMG,ROG,MG,AG,UTG,HTG,Y,S,FLUX) 3 : C************************************************************************ 4 : C 5 : C PROJET : CASTEM 2000 6 : C 7 : C NOM : FSPVLH 8 : C 9 : C DESCRIPTION : Voir FLUVLH 10 : C 11 : C Onde de Gauche à Droite 12 : C 13 : C LANGUAGE : 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 NSCA = nombre de scalaires passifs a transporter 28 : C 29 : C GAMG = le "gamma" (à gauche) 30 : C 31 : C ROG = la densité 32 : C 33 : C MG = nombre de Mach (normale) 34 : C 35 : C AG = vitesse du son 36 : C 37 : C UTG = vitesse tangentielle 38 : C 39 : C Y = table des fractiones massiques 40 : C 41 : C S = table des scalaires passifs 42 : C 43 : C**** Sorties: 44 : C 45 : C FLUX = table du flux "gauche -> droite" a 46 : C l'interface 47 : C 48 : C************************************************************************ 49 : C 50 : C HISTORIQUE (Anomalies et modifications éventuelles) 51 : C 52 : C HISTORIQUE : Créé le 21.02.00 pour le transport de scalaires passifs 53 : C 54 : C************************************************************************ 55 : C 56 : C N.B.: Toutes les variables sont declarées explicitement 57 : C 58 : C 59 : C 60 : IMPLICIT INTEGER(I-N) 61 : INTEGER I1, NESP, NSCA 62 : REAL*8 GAMG,ROG,MG,AG,UTG,HTG 63 : & ,GM1G,MPLUS, CELL, CELLM 64 : & ,Y(*),FLUX(*),S(*) 65 : C 66 : 67 : C**** N.B. : 68 : C 69 : C FLUX(2) = MPLUS * AG * ROG * UNG + PPLUS * PG 70 : C 71 : C PG = ROG * AG * AG / GAMG 72 : C 73 : C ABS(MG) < 1 -> PPLUS = MPLUS * (2 - MG) 74 : C 75 : C ABS(MG) > 1 -> PPLUS = MPLUS / MG 76 : C 77 : 78 : C 79 : GM1G = GAMG - 1.0D0 80 : IF(ABS(MG) .LE. 1.0D0)THEN 81 : MPLUS = 0.5D0 * (MG + 1.0D0) 82 : MPLUS = MPLUS * MPLUS 83 : CELL = (GM1G * MG+2.0D0)*AG/GAMG 84 : ELSE 85 : MPLUS = 0.5D0 * (MG + ABS(MG)) 86 : CELL = (MG + 1.0D0/GAMG/MG)*AG 87 : ENDIF 88 : CELLM = MPLUS * AG * ROG 89 : C 90 : FLUX(1) = CELLM 91 : FLUX(2) = CELLM * CELL 92 : FLUX(3) = CELLM * UTG 93 : FLUX(4) = CELLM * HTG 94 : C 95 : C**** N.B. NESP = 0 -> no boucle 96 : C 97 : DO I1 = 1, NESP, 1 98 : FLUX(4+I1) = CELLM * Y(I1) 99 : ENDDO 100 : C 101 : C**** N.B. NSCA = 0 -> no boucle 102 : C 103 : DO I1 = 1, NSCA, 1 104 : FLUX(4+I1+NESP) = CELLM * S(I1) 105 : ENDDO 106 : C 107 : RETURN 108 : END 109 : 110 : 111 : 112 :
© Cast3M 2003 - All rights reserved.
Disclaimer