C FSMVL2    SOURCE    CHAT      05/01/13    00:10:19     5004
      SUBROUTINE FSMVL2(NESP,NSCA,GAMD,ROD,MD,AD,UTD,UVD,HTD,Y,S,FLUX)
C************************************************************************
C
C PROJET            :  CASTEM 2000
C
C NOM               :  FSMVL2
C
C DESCRIPTION       :  Voir FVLHT2
C
C                      Onde de Droite à Gauche
C
C LANGUAGE          :  FORTRAN 77
C
C AUTEUR            :  A. BECCANTINI DRN/DMT/SEMT/TTMF
C
C************************************************************************
C
C APPELES           :  AUCUN
C
C************************************************************************
C
C**** Entrées:
C
C     NESP     =  nombre d'especes in FRAMAS
C
C     NSCA            =  nombre de scalaires passifs a transporter
C
C     GAMD     =  le "gamma" (à droite)
C
C     ROD      =  la densité
C
C     MD       =  nombre de Mach (normale)
C
C     AD       =  vitesse du son
C
C     UTD      =  vitesse tangentielle
C
C     Y        =  table des fractiones massiques
C
C     S        =  table des scalaires passifs
C
C**** Sorties:
C
C     FLUX     =  table du flux "droite -> gauche" à
C                 l'interface
C
C************************************************************************
C
C HISTORIQUE (Anomalies et modifications éventuelles)
C
C HISTORIQUE :  Créé le 21.02.00
C
C************************************************************************
C
C N.B.: Toutes les variables sont declarées explicitement
C
CC
      IMPLICIT INTEGER(I-N)
      INTEGER I1, NESP, NSCA
      REAL*8 GAMD,ROD,MD,AD,UTD,UVD,HTD
     &       ,GM1D,MMINUS, CELL, CELLM
     &       ,Y(*),FLUX(*),S(*)
C
C**** N.B. :
C
C     FLUX(2) = MMINUS * AD * ROD * UND + PMINUS * PD
C
C     PD = ROD * AD * AD / GAMD
C
C     ABS(MD) < 1  ->  PMINUS = - MMINUS * (2 + MD)
C
C     ABS(MD) > 1  ->  PMINUS = - MMINUS / MD
C
      GM1D = GAMD - 1.0D0
      IF(ABS(MD) .LE. 1.0D0)THEN
         MMINUS = 0.5D0 * (MD - 1.0D0)
         MMINUS = -1.0D0 * MMINUS * MMINUS
         CELL = (GM1D * MD - 2.0D0)*AD/GAMD
      ELSE
         MMINUS = 0.5D0 * (MD - ABS(MD))
         CELL = (MD + 1.0D0/GAMD/MD)*AD
      ENDIF
C
      CELLM = MMINUS * AD * ROD
      FLUX(1) = CELLM
      FLUX(2) = CELLM * CELL
      FLUX(3) = CELLM * UTD
      FLUX(4) = CELLM * UVD
      FLUX(5) = CELLM * HTD
C
C**** N.B. NESP = 0  -> no boucle
C
      DO I1 = 1, NESP
         FLUX(5+I1) = CELLM * Y(I1)
      ENDDO
C
C**** N.B. NSCA = 0  -> no boucle
C
      DO I1 = 1, NSCA, 1
         FLUX(5+I1+NESP) = CELLM * S(I1)
      ENDDO
C
      RETURN
      END




