C VLHJ4     SOURCE    CHAT      05/01/13    04:07:57     5004
      SUBROUTINE VLHJ4(RHO,UX,UY,UZ,P,RHOET,GAM,CNX,CNY,CNZ,
     &     CT1X,CT1Y,CT1Z,CT2X,CT2Y,CT2Z,
     &     DFROC,DFRUNC,DFRU1C,DFRU2C,DFRETC)
C************************************************************************
C
C PROJET            :  CASTEM 2000
C
C NOM               :  VLHJ4
C
C DESCRIPTION       :  Calcul du Jacobien du flux numerique VLH
C                      Contribution de l'onde de gauche à droite
C                      Cas 3D monoespece
C
C LANGAGE           :  FORTRAN 77
C
C AUTEUR            :  A. BECCANTINI SFME/LTMF
C
C************************************************************************
C
C APPELES           :  VLHJ5
C
C************************************************************************
C
C**** Entrées:
C
C     RHO             =  densité
C
C     UX, UY, UZ      =  vitesse
C
C     P               =  pression
C
C     RHOET           =  rho * (ein + ecin)
C
C     GAM             =  le "gamma"
C
C     CNX,  CNY,  CNZ =  normale à la face
C
C     CT1X, CT1Y, CT1Z
C     CT2X, CT2Y, CT2Z=  tangentes à la face (T1,T2)
C
C**** Sorties:
C
C     DFROC(5) = derivés partielles de F_RHO+ par raport a RHO, RHOUX,
C                RHOUY, RHOUZ, RHOET
C
C     DFRUNC(5)= derivés partielles de F_RHOUN+ par raport a RHO, RHOUX,
C                RHOUY, RHOUZ, RHOET
C
C     DFRU1C(5)= derivés partielles de F_RHOUT1+ par raport a RHO, RHOUX,
C                 RHOUY, RHOUZ, RHOET (tangente T1)
C
C     DFRU2C(5)= derivés partielles de F_RHOUT2+ par raport a RHO, RHOUX,
C                 RHOUY, RHOUZ, RHOET (tangente T2)
C
C     DFRETC(5)= derivés partielles de F_RHOET+ par raport a RHO,
C                RHOUX, RHOUY, RHOUZ, RHOET
C
C************************************************************************
C
C HISTORIQUE (Anomalies et modifications éventuelles)
C
C HISTORIQUE :  Créé le 23.07.01
C
C************************************************************************
C
C N.B.: Toutes les variables sont declarées explicitement
C
      IMPLICIT INTEGER(I-N)
      REAL*8 RHO,UX,UY,UZ,P,RHOET,GAM,CNX,CNY,CNZ,CT1X,CT1Y,CT1Z
     &     ,CT2X,CT2Y,CT2Z
     &     ,DFROC(5),DFRUNC(5),DFRU1C(5),DFRU2C(5),DFRETC(5)
     &     ,DFROP(5),DFRUNP(5),DFRU1P(5),DFRU2P(5),DFRETP(5)
     &     ,USRO,UXSRO,UYSRO,UZSRO,GM1,GM1EC,GM1UX,GM1UY,GM1UZ
C
C**** Jacobian with respect to the primitive variables
C
      CALL VLHJ5(RHO,UX,UY,UZ,P,RHOET,GAM,CNX,CNY,CNZ,
     &     CT1X,CT1Y,CT1Z,CT2X,CT2Y,CT2Z,
     &     DFROP,DFRUNP,DFRU1P,DFRU2P,DFRETP)
C
C**** Jacobian with respect to the conservative variables
C
      USRO = 1.0D0 / RHO
      UXSRO = UX * USRO
      UYSRO = UY * USRO
      UZSRO = UZ * USRO
      GM1 = GAM - 1.0D0
      GM1EC = GM1 * 0.5D0 * (UX * UX + UY * UY + UZ * UZ)
      GM1UX = GM1 * UX
      GM1UY = GM1 * UY
      GM1UZ = GM1 * UZ
C
      DFROC(1) = DFROP(1) - UXSRO * DFROP(2) -  UYSRO * DFROP(3)
     &     - UZSRO  * DFROP(4) + GM1EC * DFROP(5)
      DFROC(2) =  USRO * DFROP(2) -  GM1UX * DFROP(5)
      DFROC(3) =  USRO * DFROP(3) -  GM1UY * DFROP(5)
      DFROC(4) =  USRO * DFROP(4) -  GM1UZ * DFROP(5)
      DFROC(5) =  GM1 * DFROP(5)
C
      DFRUNC(1) = DFRUNP(1) - UXSRO * DFRUNP(2) -  UYSRO * DFRUNP(3)
     &     - UZSRO  * DFRUNP(4) + GM1EC * DFRUNP(5)
      DFRUNC(2) =  USRO * DFRUNP(2) -  GM1UX * DFRUNP(5)
      DFRUNC(3) =  USRO * DFRUNP(3) -  GM1UY * DFRUNP(5)
      DFRUNC(4) =  USRO * DFRUNP(4) -  GM1UZ * DFRUNP(5)
      DFRUNC(5) =  GM1 * DFRUNP(5)
C
      DFRU1C(1) = DFRU1P(1) - UXSRO * DFRU1P(2) -  UYSRO * DFRU1P(3)
     &     - UZSRO  * DFRU1P(4) + GM1EC * DFRU1P(5)
      DFRU1C(2) =  USRO * DFRU1P(2) -  GM1UX * DFRU1P(5)
      DFRU1C(3) =  USRO * DFRU1P(3) -  GM1UY * DFRU1P(5)
      DFRU1C(4) =  USRO * DFRU1P(4) -  GM1UZ * DFRU1P(5)
      DFRU1C(5) =  GM1 * DFRU1P(5)
C
      DFRU2C(1) = DFRU2P(1) - UXSRO * DFRU2P(2) -  UYSRO * DFRU2P(3)
     &     - UZSRO  * DFRU2P(4) + GM1EC * DFRU2P(5)
      DFRU2C(2) =  USRO * DFRU2P(2) -  GM1UX * DFRU2P(5)
      DFRU2C(3) =  USRO * DFRU2P(3) -  GM1UY * DFRU2P(5)
      DFRU2C(4) =  USRO * DFRU2P(4) -  GM1UZ * DFRU2P(5)
      DFRU2C(5) =  GM1 * DFRU2P(5)
C
      DFRETC(1) = DFRETP(1) - UXSRO * DFRETP(2) -  UYSRO * DFRETP(3)
     &     - UZSRO  * DFRETP(4) + GM1EC * DFRETP(5)
      DFRETC(2) =  USRO * DFRETP(2) -  GM1UX * DFRETP(5)
      DFRETC(3) =  USRO * DFRETP(3) -  GM1UY * DFRETP(5)
      DFRETC(4) =  USRO * DFRETP(4) -  GM1UZ * DFRETP(5)
      DFRETC(5) =  GM1 * DFRETP(5)
C
      RETURN
      END




