C INCR10    SOURCE    SP204843  25/10/30    21:15:09     12389          
       SUBROUTINE INCR10(SIG,VAR,ZMAT,NSTRS,EPSVPT,VARPT,XM)
C--------------------------------------------------------------------C
C
C          Sous-programme d'integration de la loi de CHABOCHE        C
C
C--------------------------------------------------------------------C
C
C  ENTREES :
C    - SIG   : contraintes en debute de pas
C    - VAR   : variables internes en debut de pas
C    - ZMAT  : carateristiques materielles
C    - NSTRS : dimension du tableau SIG
C
C  SORTIES :
C    - EPSVPT : increment de deformation viscoplastique
C    - VARPT  : increment de variables internes
C
C--------------------------------------------------------------------C
C
       IMPLICIT INTEGER(I-N)
       IMPLICIT REAL*8(A-H,O-Z)
C
       DIMENSION SIG(*),VAR(*),EPSVPT(*),VARPT(*),XM(*)
       DIMENSION XX(6),ZMAT(100)
C
       PARAMETER (AMAX = 1.0D20 , AMIN = 1.D-10)
C
       DETIER = 2.0D0/3.0D0
C-------------------------------------------------------------------|
C*******  EVALUATION OF TAUI AND XI
C-------------------------------------------------------------------I
       TAUI=0.D0
       XI  =0.D0
       DO I=1,NSTRS
         TAUI=TAUI+SIG(I)*XM(I)
         XI  =XI  +ZMAT(8)*ZMAT(9)*VAR(I)*XM(I)
       ENDDO
       TAUMX=ABS(TAUI-XI)
C       write(6,*) 'SIG(i)=',(SIG(i),i=1,NSTRS)
C       write(6,*) 'VAR(i)=',(VAR(i),i=1,NSTRS)
C       write(6,*) 'XM(i)=',(XM(i),i=1,NSTRS)
C       write(6,*) 'TAUI',TAUI
C       write(6,*) 'XI  ',XI
C--------------------------------------------------------------------|
C*******  CALCUL OF SIGV/K                                           |
C -------------------------------------------------------------------I
       RR = ZMAT(10)*ZMAT(11)*VAR(NSTRS+2)
       SK = (TAUMX - RR - ZMAT(5)) / ZMAT(6)
C       write(6,*) 'RR, SK=',RR,SK
C--------------------------------------------------------------------|
C*******  CALCULATION OF EFFECTIVE INELASTIC STRAIN INCREMENT (P)    |
C -------------------------------------------------------------------I
       IF (SK.GT.0.0D0) THEN
         PPT= XPUISS(SK,ZMAT(7),AMAX)
       ELSE
         PPT= 0.0D0
       ENDIF
       VARPT(NSTRS+1) = PPT
       GAMPT=PPT*SIGN(1.D0,TAUI-XI)
C       write(6,*) 'GAMPT,PPT=',GAMPT,PPT
C---------------------------------------------------------------------|
C*******  CALCULATION OF INELASTIC STRAIN INCREMENTS  (EPSVPT)        |
C---------------------------------------------------------------------I
       DO 71 I=1,NSTRS
         IF (PPT.EQ.0.D0) THEN
            EPSVPT(I) = 0.0D0
         ELSE
            EPSVPT(I) = XM(I)*GAMPT
         ENDIF
 71    CONTINUE
C       write(6,*) 'EPSVPT(i)=',(EPSVPT(i),i=1,NSTRS)
C----------------------------------------------------------------|
C*******  CALCULATION OF ALPHPT                                  |
C----------------------------------------------------------------I
       DO 72 I=1,NSTRS
         IF (PPT.EQ.0.0) THEN
            VARPT(I)=0.D0
         ELSE
            VARPT(I)=EPSVPT(I)-ZMAT(9)*VAR(I)*PPT
         ENDIF
 72    CONTINUE
C       write(6,*) '  ALPH(i)=',(  VAR(i),i=1,NSTRS)
C       write(6,*) 'ALPHPT(i)=',(VARPT(i),i=1,NSTRS)
C----------------------------------------------------------------|
C*******  CALCULATION OF QQPT                                    |
C----------------------------------------------------------------I
       IV = NSTRS+2
       IF (PPT.EQ.0.0) THEN
         VARPT(IV)=0.D0
       ELSE
         XQQ = 1.D0 - ZMAT(10)*VAR(IV)
         VARPT(IV) = XQQ*PPT
       ENDIF
C       write(6,*) 'QQPT=',VARPT(IV)
C
       RETURN
       END

 
 
