C COHILL    SOURCE    STRU      08/12/22    21:15:05     6246
c     Sous-Programme du module MISTRAL0
C     --------------------------------------------------------------------------
      SUBROUTINE COHILL (TT,PSI, ID, PCOHI, NP, H,DHDTT,DHDPSI)
C     --------------------------------------------------------------------------
C     Calcul des coefficients de Hill H(I),
C     et de leur derivees partielles DHDTT(I) et DHDPSI(I) si ID = 1,
C     en fonction de :
C     - la temperature TT,
C     - la variable de durcissement du a l'irradiation PSI,
C     - des parametres transmis dans PCOHI,
C     NP (incremente ici) etant en entree le nombre
C     de ceux correspondant aux deformations de natures IDPP < IDP.
C     --------------------------------------------------------------------------
      IMPLICIT INTEGER (I-N)
      IMPLICIT REAL*8 (A-H, O-Z)
      DIMENSION PCOHI(1:*)
c     (NPCHM = 6*10, NPCOHM = NPCHM*NDP)
      DIMENSION H(1:*),DHDTT(1:*),DHDPSI(1:*)
      DO I = 1,6
       NP = NP+1
       KH = NINT(PCOHI(NP))
       IF (KH.EQ.1) THEN
        NP = NP+1
        H(I) = PCOHI(NP)
        IF (ID.EQ.1) THEN
         DHDTT(I) = 0.D0
         DHDPSI(I) = 0.D0
        END IF
       ELSE IF (KH.EQ.2) THEN
        H(I) = PCOHI(NP+1)+(PCOHI(NP+2)+PCOHI(NP+3)*TT)*TT
        IF (ID.EQ.1) THEN
         DHDTT(I) = PCOHI(NP+2)+2.*PCOHI(NP+3)*TT
         DHDPSI(I) = 0.D0
        END IF
        NP = NP+3
       ELSE IF (KH.EQ.3) THEN
        HI0 = PCOHI(NP+1)
        HI1 = PCOHI(NP+2)
        HI2 = PCOHI(NP+3)
        HI3 = PCOHI(NP+4)
        HI4 = PCOHI(NP+5)
        HI5 = PCOHI(NP+6)
        HI6 = PCOHI(NP+7)
        HI7 = PCOHI(NP+8)
        HI8 = PCOHI(NP+9)
        EMHI7F = EXP(-HI7*PSI)
        EMHI8F = EXP(-HI8*PSI)
        HIUN = HI1+(HI2+HI3*TT)*TT
        HIDE = HI4+(HI5+HI6*TT)*TT
          H(I) = HI0+HIUN*EMHI7F+HIDE*(1.-EMHI8F)
        IF (ID.EQ.1) THEN
         DHDTT(I) = (HI2+2.*HI3*TT)*EMHI7F+(HI5+2.*HI6*TT)*(1.-EMHI8F)
         DHDPSI(I) = -HI7*HIUN*EMHI7F+HI8*HIDE*EMHI8F
        END IF
        NP = NP+9
       ELSE IF (KH.EQ.4) THEN
        HI0 = PCOHI(NP+1)
        HI1 = PCOHI(NP+2)
        HI2 = PCOHI(NP+3)
        HI3 = PCOHI(NP+4)
        HI4 = PCOHI(NP+5)
        HI5 = PCOHI(NP+6)
        HI6 = PCOHI(NP+7)
        HI7 = PCOHI(NP+8)
        HI8 = PCOHI(NP+9)
        EMHPSI = EXP(-HI7*PSI**HI8)
        HIUN = HI1+(HI2+HI3*TT)*TT
        HIDE = HI4+(HI5+HI6*TT)*TT
          H(I) = HI0+HIUN*EMHPSI+HIDE*(1.-EMHPSI)
        IF (ID.EQ.1) THEN
         DHDTT(I) = (HI2+2.*HI3*TT)*EMHPSI+(HI5+2.*HI6*TT)*(1.-EMHPSI)
         DHDPSI(I) = -(HIUN-HIDE)*HI7*HI8*PSI**(HI8-1.)*EMHPSI
        END IF
        NP = NP+9
       END IF
      END DO
        RETURN
        END

