C FVDI      SOURCE    STRU      08/12/22    21:15:24     6246
c     Sous-Programme du module MISTRAL0
C     --------------------------------------------------------------------------
      SUBROUTINE FVDI (PSI,TT, ID, PAR, V,DVDPSI,DVDTT)
C     --------------------------------------------------------------------------
C     Calcul de V, et de ses derivees DVDPSI et DVDTT si ID = 1,
C     en fonction de PSI, TT et des parametres transmis dans PAR.
C     --------------------------------------------------------------------------
      IMPLICIT INTEGER (I-N)
      IMPLICIT REAL*8 (A-H, O-Z)
      DIMENSION PAR(1:*)
c     (NPPSIM = 6)
      L = NINT(PAR(1))
      IP = 1
        IF (L.EQ.1) THEN
         V = LOG(1.+PAR(IP+1)*PSI)
       IF (ID.EQ.1) THEN
          DVDPSI = PAR(IP+1)/(1.+PAR(IP+1)*PSI)
        DVDTT = 0.
         END IF
        ELSE IF (L.EQ.2) THEN
         V = 1.-EXP(-PAR(IP+1)*PSI)
       IF (ID.EQ.1) THEN
          DVDPSI = PAR(IP+1)*EXP(-PAR(IP+1)*PSI)
        DVDTT = 0.
         END IF
        ELSE IF (L.EQ.3) THEN
         V = EXP(PAR(IP+1)*PSI**PAR(IP+2))
       IF (ID.EQ.1) THEN
          DVDPSI = PAR(IP+1)*PAR(IP+2)*PSI**(PAR(IP+2)-1.)*V
        DVDTT = 0.
         END IF
        ELSE IF (L.EQ.4) THEN
         VP = PAR(IP+1)*PSI**PAR(IP+2)
         VPT = PAR(IP+3)*EXP(PAR(IP+4)*PSI**PAR(IP+5))/TT
         V = EXP(VP+VPT)
       IF (ID.EQ.1) THEN
        DVPDP = PAR(IP+1)*PAR(IP+2)*PSI**(PAR(IP+2)-1.)
        DVPTDP = PAR(IP+4)*PAR(IP+5)*PSI**(PAR(IP+5)-1.)*VPT
          DVDPSI = (DVPDP+DVPTDP)*V
        DVDTT = -VPT/TT*V
         END IF
        END IF
        RETURN
        END

