C FLUVLH    SOURCE    CHAT      05/01/13    00:05:03     5004
      SUBROUTINE FLUVLH(NESP,
     &                  GAMG,ROG,PG,UNG,UTG,
     &                  GAMD,ROD,PD,UND,UTD,
     &                  YG,YD,FLU1,FLU2,
     &                  CELLT)
C************************************************************************
C
C PROJET            :  CASTEM 2000
C
C NOM               :  FLUVLH
C
C DESCRIPTION       :  Formulation Volumes Finis  pour les Equations
C                      d'Euler Multi-Especes relatives à un melange
C                      de gaz ideals.
C
C                      Calcul du flux aux interfaces avec la methode
C                      "Flux Vector Splitting" de van Leer - Hanel.
C
C                      (voir:
C                       1)  BECCANTINI, PAILLERE,
C                           "Upwind Flux Splitting Schemes..."
C                           RAPPORT DMT 97//268
C                       2)  B. VAN LEER
C                           "Flux Vector Splittings for the 1990's"
C                           1990. Invited Lecture, NASA Lewis Research
C                           Center
C                       3)  B. VAN LEER
C                           "Flux Vector Splitting for the Euler
C                            Equations"
C                            Report ICASE No. 82-30, 1982  )
C
C LANGUAGE          :  FORTRAN 77
C
C AUTEUR            :  A. BECCANTINI DRN/DMT/SEMT/TTMF
C
C************************************************************************
C
C APPELES
C
C FLUVLH ------ FLPVLH
C    |
C     --------- FLMVLH
C
C
C************************************************************************
C
C**** Entrées:
C
C     NESP            =  nombre d'especes considérées dans les Equations
C                        d'Euler
C
C     GAMG, GAMD      =  les "gamma" du gaz (gauche et droite)
C
C     ROG, ROD        =  les densités
C
C     PG, PD          =  les pressions
C
C     UNG, UND        =  vitesses normales
C
C     UTG, UTD        =  vitesses tangentielles
C
C     YG, YD          =  tables des fractiones massiques
C
C**** Sorties:
C
C     FLU1            =  table du flux a l'interface dans le repaire
C                        (n,t), i.e.
C                        (rho*un, rho*un*un + p, rho*un*ut, rho*un*ht,
C                         rho*un*y1, ...)
C
C     FLU2            =  table de travail, utilizé ici mais definie
C                        avant
C
C     CELLT           =  condition de stabilité, i.e.
C
C                        dT/diamax < cellt
C
C************************************************************************
C
C HISTORIQUE (Anomalies et modifications éventuelles)
C
C HISTORIQUE :  Créé le 6.1.98
C
C************************************************************************
C
C N.B.: Toutes les variables sont DECLAREES
C
C
      IMPLICIT INTEGER(I-N)
      INTEGER NESP, I1
      REAL*8  GAMG,ROG,PG
     &       ,GAMD,ROD,PD
     &       ,GM1G,AG2,AG,UNG,UTG,MG,HTG
     &       ,GM1D,AD2,AD,UND,UTD,MD,HTD
     &       ,CELLT,CELLT0,AMG,AMD
     &       ,YG(*),YD(*),FLU1(*),FLU2(*)
C
C
C**** YG, YD, FLU1, FLU2 déjà definis avant
C
C     Dans le cas Euler monoespece, on doit
C     avoir  :
C     YG(1) = YD(1) = 0.0D0
C
C
C**** Onde de "gauche" a "droite"
C
C     AG  = vitesse du son
C     MG  = nombre de Mach normal
C     HTG = enthalpie totale
C
      GM1G = GAMG - 1.0D0
      AG2 = GAMG * PG/ ROG
      AG = SQRT(AG2)
      MG = UNG / AG
      AMG = ABS(MG)
      HTG = AG2 /GM1G + 0.5D0 * (UNG*UNG + UTG*UTG)
      CELLT = (2.0D0*GAMG + (AMG*(3.0D0-GAMG)))/(GAMG+3.0D0)
     &        /((AMG+1.0D0)*AG)
C
      CALL FLPVLH(NESP,GAMG,ROG,MG,AG,UTG,HTG,YG,FLU1)
C
C**** Onde de "droite" a "gauche".
C
C     AD  = vitesse du son
C     MD  = nombre de Mach normal
C     HTD = enthalpie totale
C
C
C
      GM1D = GAMD - 1.0D0
      AD2 = GAMD * PD/ ROD
      AD = SQRT(AD2)
      MD = UND / AD
      AMD = ABS(MD)
      HTD = AD2 / GM1D + 0.5D0 * (UND*UND + UTD*UTD)
      CELLT0 = (2.0D0*GAMD + (AMD*(3.0D0-GAMD)))/(GAMD+3.0D0)
     &        /((AMD+1.0D0)*AD)
      CELLT = MIN(CELLT,CELLT0)
C
      CALL FLMVLH(NESP,GAMD,ROD,MD,AD,UTD,HTD,YD,FLU2)
C
C
      DO I1 = 1, NESP+4
         FLU1(I1) = FLU1(I1) + FLU2(I1)
      ENDDO
C
C
      RETURN
      END




