C VLHJ1     SOURCE    CHAT      05/01/13    04:07:48     5004
      SUBROUTINE VLHJ1(RHO,UX,UY,P,RHOET,GAM,CNX,CNY,CTX,CTY,
     &                  DFRO,DFRUN,DFRUT,DFRET)
C************************************************************************
C
C PROJET            :  CASTEM 2000
C
C NOM               :  VLHJ1
C
C DESCRIPTION       :  Calcul du Jacobien du flux numerique VLH
C                      Contribution de l'onde de gauche à droite
C                      Voir VLHJ0
C
C LANGAGE           :  FORTRAN 77
C
C AUTEUR            :  A. BECCANTINI DRN/DMT/SEMT/LTMF
C
C************************************************************************
C
C APPELES           :  MPFUNT
C
C************************************************************************
C
C**** Entrées:
C
C     RHO      =  densité
C
C     UX, UY   =  vitesse
C
C     P        =  pression
C
C     RHOET    =  rho * (ein + ecin)
C
C     GAM      =  le "gamma"
C
C     CNX, CNY =  normale à la face
C
C     CTX, CTY =  tangente à la face
C
C
C**** Sorties:
C
C     DFRO(4)  = derivés partielles de F_RHO+ par raport a RHO, UX,
C                UY, P
C
C     DFRUN(4) = derivés partielles de F_RHOUN+ par raport a RHO, UX,
C                UY, P
C
C     DFRUT(4) = derivés partielles de F_RHOUT+ par raport a RHO, UX,
C                UY, P
C
C     DFRET(4) = derivés partielles de F_RHOET+ par raport a RHO,
C                UX, UY, P
C
C************************************************************************
C
C HISTORIQUE (Anomalies et modifications éventuelles)
C
C HISTORIQUE :  Créé le 04.09.00
C
C************************************************************************
C
C N.B.: Toutes les variables sont declarées explicitement
C
C
      IMPLICIT INTEGER(I-N)
      REAL*8 RHO,UX,UY,P,RHOET,GAM,CNX,CNY,CTX,CTY
     &      ,DFRO(4),DFRUN(4),DFRUT(4),DFRET(4)
     &      ,UN,UT,CSON2,CSON,HT
     &      ,MACH,MNUM,DERMNU,PNUM,DERPNU
     &      ,CELL, FRHO
C
      UN = UX * CNX + UY * CNY
      UT = UX * CTX + UY * CTY
      CSON2 = GAM * P / RHO
      CSON = SQRT(CSON2)
      MACH = UN / CSON
      HT = (RHOET + P) / RHO
      CALL MPFUNT(MACH,MNUM,DERMNU,PNUM,DERPNU)
C
      FRHO = MNUM * RHO * CSON
C
      DFRO(1) = ((DERMNU * UN) + (MNUM * CSON))  / 2.0D0
      DFRO(2) = DERMNU * RHO * CNX
      DFRO(3) = DERMNU * RHO * CNY
      DFRO(4) = (MNUM - DERMNU * MACH) * RHO * CSON / (2.0D0 * P)
C
      DFRUN(1) = (DFRO(1) * UN) + (DERPNU * MACH * P / (2.0D0 * RHO))
      CELL = (MNUM * RHO * CSON) + (DERPNU  * P / CSON)
      DFRUN(2) = (DFRO(2) * UN) + (CELL * CNX)
      DFRUN(3) = (DFRO(3) * UN) + (CELL * CNY)
      DFRUN(4) = (DFRO(4) * UN) - (0.5D0 * MACH * DERPNU) + PNUM
C
      DFRUT(1) = DFRO(1) * UT
      DFRUT(2) = (DFRO(2) * UT)  + (FRHO * CTX)
      DFRUT(3) = (DFRO(3) * UT)  + (FRHO * CTY)
      DFRUT(4) = DFRO(4) * UT
C
      CELL = CSON2 / (GAM - 1.0D0)
      DFRET(1) = (DFRO(1) * HT) - (FRHO * CELL / RHO)
      DFRET(2) = (DFRO(2) * HT)  + (FRHO * UX)
      DFRET(3) = (DFRO(3) * HT)  + (FRHO * UY)
      DFRET(4) = (DFRO(4) * HT) + (FRHO * CELL / P)
C
      RETURN
      END



