C CHMKMD    SOURCE    CHAT      05/01/12    21:59:17     5004
      SUBROUTINE CHMKMD(IDSCHI,LGKMOD,LGKTMP,ICOTY3,LTMP,TMP,TMPNEW,
     * XMU,XMUNEW,GNEW)
C========================================================================
C
C OBJET: MODIFICATION DES LOGK DE XMU A XMUNEW ET DE TMP A TMPNEW
C               issu de TRIOEF (TRKMOD)
C
C
C DEMARCHE: 1. GK(TMP,XMMU)->GK(TMP,XMU=0)
C           2. GK(TMP,XMU=0)->GK(TMPNEW,XMU=0)
C           3. GK(TMPNEW,XMU=0)->GK(TMPNEW,XMUNEW)
C
C APPEL DE TRTMPD POUR LTMP=1 (1IERE APPROXIMATION "D'ULICH")
C APPEL DE TRTMPB POUR LTMP=2 (2IEME APPROXIMATION "D'ULICH")
C TMP ET TMPNEW NE DOIVENT PAS ETRE TROP ELOIGNE DU DOMAINE DE VALIDITE
C DES DONNEES THERMOCHIMIQUES
C
C APPEL DE CHMTMS POUR LTMP=0 (METHODE DES POLYNOMES)
C
C XMU ET XMUNEW DOIVENT ETRE <0.5 ETANT DONNEE LA METHODE DE CORRECTION
C DE LA FORCE IONIQUE IMPLANTEE
C
C
C========================================================================
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
-INC SMLENTI
      POINTEUR ICOTY3.MLENTI
C
      SEGMENT IDSCHI
           REAL*8 GK(NYDIM),AA(NYDIM,NXDIM),FF(NZDIM,NPDIM)
           INTEGER IDX(NXDIM),IDY(NYDIM),IDZ(NZDIM),IDP(NPDIM),NN(6)
           INTEGER IDECY(NYDIM),IONZ(NXDIM)
           CHARACTER*32 NAME(NXDIM),NAMESP(NYDIM)
      ENDSEGMENT
      SEGMENT LGKMOD
           REAL*8 DELH0(NYDIM),DELCP0(NYDIM)
      ENDSEGMENT
      SEGMENT LGKTMP
           INTEGER NUMT(NYDIM),NTVT(NYDIM)
           REAL*8 TMIMA(NYDIM,NT)
           REAL*8 POLYT(NYDIM,NT4),TGKLU(NYDIM,NT)
      ENDSEGMENT
*
C
C
C     WRITE(6,*)' XMUNEW,XMU,TMPNEW,TMP',XMUNEW,XMU,TMPNEW,TMP,ltmp
      IF (XMUNEW.EQ.XMU.AND.TMPNEW.EQ.TMP) GOTO 1000
C
C
*     WRITE(6,*)'ICOTYP3=',ICOTY3
      XMU1=XMUNEW
      IF (XMU.EQ.0.D0) GOTO 1020
      IF (TMPNEW.NE.TMP) GOTO 1010
C
      CALL CHMMOD(IDSCHI,XMU,XMUNEW,TMPNEW,GNEW)
      GOTO 1000
C
1010  CONTINUE
      XMUNEW=0.D0
      CALL CHMMOD(IDSCHI,XMU,XMUNEW,TMPNEW,GNEW)
1020  CONTINUE
CBRUNO
      IF (LTMP.EQ.0) CALL CHMTMS(IDSCHI,LGKTMP,ICOTY3,TMP,TMPNEW)
      IF (LTMP.EQ.1) CALL CHMTMD(IDSCHI,LGKMOD,ICOTY3,TMP,TMPNEW)
      IF (LTMP.EQ.2) CALL CHMTMB(IDSCHI,LGKMOD,ICOTY3,TMP,TMPNEW)
*
      TMP=TMPNEW
C
C
      XMUNEW=XMU1
      IF (XMUNEW.EQ.0.D0) GOTO 1000
C
      CALL CHMMOD(IDSCHI,XMU,XMUNEW,TMPNEW,GNEW)
C
1000  CONTINUE
C
      RETURN
      END




