C CMAXWE    SOURCE    PV        17/12/08    21:16:02     9660           
       SUBROUTINE CMAXWE(WRK52,WRK53,WRK54,WR12,
     1      IB,IGAU,NCHAIN,DT,NWA)
C MAXWEL    SOURCE    DURAND    01/08/07    21:15:03     4179
c       SUBROUTINE MAXWEL(WRK0,WRK1,WRK5,WR12,MFR,
c     1      IB,IGAU,MELE,NCHAIN,KERRE,DT,CMATE,NWA,TEMP0)
*
*==============================================================
*      chaine de Maxwell
*==============================================================
*
* entrees
*
*        XMAT(NCOMAT) = CARACTERISTIQUES MECANIQUES DU MATERIAU
*
*        SIG0(NSTRS)  = CONTR. AU DEBUT DU PAS D'INTEGRATION
*        DEPST(NSTRS) = INCREMENT DES DEFORM. TOTALES
*        VAR0(NVARI)  = VARIABLES INTERNES AU DEBUT DU PAS D'INTEGRATION
*        XCAR(ICARA)  = CARACT. GEOMETRIQUES DES ELEMENTS FINIS
*
*        EPINO(NSTRS) = DEFORMATION INELASTIQUE AU DEBUT DU PAS D'INTEGRATION
*
*   WRK12
*        EMi(2,NWA(i+1))    i=0 a 8
*                        = EVOLUTION DU MODUE D'YOUNG DE LA BRANCHE i
*        SMi(NSTRS)         i=1 a 8
*                         = VARIABLES INTERNES AU DEBUT DU PAS D'INTEGRATION
*
*   IB = NUMERO DE L'ELEMENT
*   IGAU = NUMERO DU POINT DE GAUSS
*   MELE = NUMERO DE L'ELEMENT FINI (TYPE)
*   NCHAIN = NOMBRE DE BRANCHE DU MODELE DE MAXWELL
*   DT = INCREMENT DE TEMPS
*   NWA = DIMENSION DES EVOLUTIONS EMi
*   TEMP0 = TEMPS COURANT
*

* sorties
*
*        SIGF(NSTRS)= CONTR. A LA FIN DU PAS D'INTEGRATION
*        DEFP(NSTRS)= INCREMENT DES DEFORM. PLASTIQUES A LA FIN DU PAS
*               D'INTEGRATION
*
*        EPINF(NSTRS) = DEFORMATION INELASTIQUE A LA FIN DU PAS D'INTEGRATION
*
*
*
*
*
*==============================================================
*
      IMPLICIT INTEGER(I-N)
       IMPLICIT REAL*8(A-H,O-Z)

-INC PPARAM
-INC CCOPTIO
-INC DECHE
*
      SEGMENT WR12
        REAL*8  EM0(2,NWA(1)),EM1(2,NWA(2)),EM2(2,NWA(3))
        REAL*8  EM3(2,NWA(4)),EM4(2,NWA(5)),EM5(2,NWA(6))
        REAL*8  EM6(2,NWA(7)),EM7(2,NWA(8)),EM8(2,NWA(9))
        REAL*8  SM0(NSTRS),SM1(NSTRS),SM2(NSTRS),SM3(NSTRS)
        REAL*8  SM4(NSTRS),SM5(NSTRS),SM6(NSTRS),SM7(NSTRS)
        REAL*8  SM8(NSTRS)
      ENDSEGMENT
*

       DIMENSION NWA(9)
       NCXMAT=XMAT(/1)
       NVARI=VAR0(/1)
       NSTRS=SIG0(/1)
       ANU=XMAT(2)
       UNANU=1.D0-ANU
       TPS1=TEMP0
       TPS2=TEMP0+DT
       SE1=0.D0
       SE2=0.D0

*
*        Formulation UNIDIMENSIONNELLE
*   ou   Formulation UNIDIRECTIONNELLE
*
      IF (MFR.EQ.27.OR.
     & ((MFR.EQ.1.OR.MFR.EQ.33).AND.( CMATE.EQ.'UNIDIREC'))) THEN

          CONS=1.
          IF(MFR.EQ.27) XSECT=xcarb(1)
          IF(MFR.EQ.1.OR.MFR.EQ.33) XSECT=1.D0


         CALL CMODFI(TPS1,TPS2,0,WR12,WRK52,WRK53,
     1                NWA,EFIC,TR,E1,E2)
           FLUA=EXP(-TR*DT)
           SM0(1)=SM0(1)/XSECT
           SM0(1)=SM0(1)*FLUA+CONS*EFIC*DEPST(1)
           SM0(1)=SM0(1)*XSECT
           SIGF(1)=SM0(1)
           SE1=SE1+E1
           SE2=SE2+E2

         CALL CMODFI(TPS1,TPS2,1,WR12,WRK52,WRK53,
     1                NWA,EFIC,TR,E1,E2)
           FLUA=EXP(-TR*DT)
           SM1(1)=SM1(1)/XSECT
           SM1(1)=SM1(1)*FLUA+CONS*EFIC*DEPST(1)
           SM1(1)=SM1(1)*XSECT
           SIGF(1)=SIGF(1)+SM1(1)
           SE1=SE1+E1
           SE2=SE2+E2



         CALL CMODFI(TPS1,TPS2,2,WR12,WRK52,WRK53,
     1                NWA,EFIC,TR,E1,E2)
           FLUA=EXP(-TR*DT)
           SM2(1)=SM2(1)/XSECT
           SM2(1)=SM2(1)*FLUA+CONS*EFIC*DEPST(1)
           SM2(1)=SM2(1)*XSECT
           SIGF(1)=SIGF(1)+SM2(1)
           SE1=SE1+E1
           SE2=SE2+E2

         CALL CMODFI(TPS1,TPS2,3,WR12,WRK52,WRK53,
     1                NWA,EFIC,TR,E1,E2)
           FLUA=EXP(-TR*DT)
           SM3(1)=SM3(1)/XSECT
           SM3(1)=SM3(1)*FLUA+CONS*EFIC*DEPST(1)
           SM3(1)=SM3(1)*XSECT
           SIGF(1)=SIGF(1)+SM3(1)
           SE1=SE1+E1
           SE2=SE2+E2

         CALL CMODFI(TPS1,TPS2,4,WR12,WRK52,WRK53,
     1                NWA,EFIC,TR,E1,E2)
           FLUA=EXP(-TR*DT)
           SM4(1)=SM4(1)/XSECT
           SM4(1)=SM4(1)*FLUA+CONS*EFIC*DEPST(1)
           SM4(1)=SM4(1)*XSECT
           SIGF(1)=SIGF(1)+SM4(1)
           SE1=SE1+E1
           SE2=SE2+E2

           IF (NCHAIN-1.GE.5) THEN
         CALL CMODFI(TPS1,TPS2,5,WR12,WRK52,WRK53,
     1                NWA,EFIC,TR,E1,E2)
             FLUA=EXP(-TR*DT)
             SM5(1)=SM5(1)/XSECT
             SM5(1)=SM5(1)*FLUA+CONS*EFIC*DEPST(1)
             SM5(1)=SM5(1)*XSECT
             SIGF(1)=SIGF(1)+SM5(1)
           SE1=SE1+E1
           SE2=SE2+E2

           ELSE IF (NCHAIN-1.GE.6) THEN
         CALL CMODFI(TPS1,TPS2,6,WR12,WRK52,WRK53,
     1                NWA,EFIC,TR,E1,E2)
             FLUA=EXP(-TR*DT)
             SM6(1)=SM6(1)/XSECT
             SM6(1)=SM6(1)*FLUA+CONS*EFIC*DEPST(1)
             SM6(1)=SM6(1)*XSECT
             SIGF(1)=SIGF(1)+SM6(1)
           SE1=SE1+E1
           SE2=SE2+E2

           ELSE IF (NCHAIN-1.GE.7) THEN
         CALL CMODFI(TPS1,TPS2,7,WR12,WRK52,WRK53,
     1                NWA,EFIC,TR,E1,E2)
             FLUA=EXP(-TR*DT)
             SM7(1)=SM7(1)/XSECT
             SM7(1)=SM7(1)*FLUA+CONS*EFIC*DEPST(1)
             SM7(1)=SM7(1)*XSECT
             SIGF(1)=SIGF(1)+SM7(1)
           SE1=SE1+E1
           SE2=SE2+E2

           ELSE IF (NCHAIN-1.GE.8) THEN
         CALL CMODFI(TPS1,TPS2,8,WR12,WRK52,WRK53,
     1                NWA,EFIC,TR,E1,E2)
             FLUA=EXP(-TR*DT)
             SM8(1)=SM8(1)/XSECT
             SM8(1)=SM8(1)*FLUA+CONS*EFIC*DEPST(1)
             SM8(1)=SM8(1)*XSECT
             SIGF(1)=SIGF(1)+SM8(1)
           SE1=SE1+E1
           SE2=SE2+E2
           ENDIF

           DEFP(1)=DEPST(1)-((SIGF(1))/(XSECT*SE2))
     1       +((SIG0(1))/(XSECT*SE1))
           EPINF(1)=EPIN0(1)-DEFP(1)
       DO I=1,NVARI
       VARF(I)=VAR0(I)
       END DO
       GOTO 999

*        Formulation TRIDIMENSIONNELLE MASSIVE
*
       ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.1) THEN
         CONS=1.D0/((1.D0+ANU)*(1.D0-2.D0*ANU))
         DO 10 M=0,NCHAIN-1
         CALL CMODFI(TPS1,TPS2,M,WR12,WRK52,WRK53,
     1                NWA,EFIC,TR,E1,E2)
           SE1=SE1+E1
           SE2=SE2+E2
           FLUA=EXP(-TR*DT)
           IF (M.EQ.0) THEN
             SM0(1)=SM0(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM0(2)=SM0(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM0(3)=SM0(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM0(4)=SM0(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SM0(5)=SM0(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
             SM0(6)=SM0(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
             SIGF(1)=SM0(1)
             SIGF(2)=SM0(2)
             SIGF(3)=SM0(3)
             SIGF(4)=SM0(4)
             SIGF(5)=SM0(5)
             SIGF(6)=SM0(6)
           ELSE IF (M.EQ.1) THEN
             SM1(1)=SM1(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM1(2)=SM1(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM1(3)=SM1(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM1(4)=SM1(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SM1(5)=SM1(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
             SM1(6)=SM1(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
             SIGF(1)=SIGF(1)+SM1(1)
             SIGF(2)=SIGF(2)+SM1(2)
             SIGF(3)=SIGF(3)+SM1(3)
             SIGF(4)=SIGF(4)+SM1(4)
             SIGF(5)=SIGF(5)+SM1(5)
             SIGF(6)=SIGF(6)+SM1(6)
           ELSE IF (M.EQ.2) THEN
             SM2(1)=SM2(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM2(2)=SM2(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM2(3)=SM2(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM2(4)=SM2(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SM2(5)=SM2(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
             SM2(6)=SM2(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
             SIGF(1)=SIGF(1)+SM2(1)
             SIGF(2)=SIGF(2)+SM2(2)
             SIGF(3)=SIGF(3)+SM2(3)
             SIGF(4)=SIGF(4)+SM2(4)
             SIGF(5)=SIGF(5)+SM2(5)
             SIGF(6)=SIGF(6)+SM2(6)
           ELSE IF (M.EQ.3) THEN
             SM3(1)=SM3(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM3(2)=SM3(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM3(3)=SM3(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM3(4)=SM3(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SM3(5)=SM2(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
             SM3(6)=SM2(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
             SIGF(1)=SIGF(1)+SM3(1)
             SIGF(2)=SIGF(2)+SM3(2)
             SIGF(3)=SIGF(3)+SM3(3)
             SIGF(4)=SIGF(4)+SM3(4)
             SIGF(5)=SIGF(5)+SM3(5)
             SIGF(6)=SIGF(6)+SM3(6)
           ELSE IF (M.EQ.4) THEN
             SM4(1)=SM4(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM4(2)=SM4(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM4(3)=SM4(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM4(4)=SM4(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SM4(5)=SM4(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
             SM4(6)=SM4(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
             SIGF(1)=SIGF(1)+SM4(1)
             SIGF(2)=SIGF(2)+SM4(2)
             SIGF(3)=SIGF(3)+SM4(3)
             SIGF(4)=SIGF(4)+SM4(4)
             SIGF(5)=SIGF(5)+SM4(5)
             SIGF(6)=SIGF(6)+SM4(6)
           ELSE IF (M.EQ.5) THEN
             SM5(1)=SM5(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM5(2)=SM5(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM5(3)=SM5(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM5(4)=SM5(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SM5(5)=SM5(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
             SM5(6)=SM5(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
             SIGF(1)=SIGF(1)+SM5(1)
             SIGF(2)=SIGF(2)+SM5(2)
             SIGF(3)=SIGF(3)+SM5(3)
             SIGF(4)=SIGF(4)+SM5(4)
             SIGF(5)=SIGF(5)+SM5(5)
             SIGF(6)=SIGF(6)+SM5(6)
           ELSE IF (M.EQ.6) THEN
             SM6(1)=SM6(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM6(2)=SM6(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM6(3)=SM6(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM6(4)=SM6(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SM6(5)=SM6(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
             SM6(6)=SM6(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
             SIGF(1)=SIGF(1)+SM6(1)
             SIGF(2)=SIGF(2)+SM6(2)
             SIGF(3)=SIGF(3)+SM6(3)
             SIGF(4)=SIGF(4)+SM6(4)
             SIGF(5)=SIGF(5)+SM6(5)
             SIGF(6)=SIGF(6)+SM6(6)
           ELSE IF (M.EQ.7) THEN
             SM7(1)=SM7(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM7(2)=SM7(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM7(3)=SM7(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM7(4)=SM7(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SM7(5)=SM7(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
             SM7(6)=SM7(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
             SIGF(1)=SIGF(1)+SM7(1)
             SIGF(2)=SIGF(2)+SM7(2)
             SIGF(3)=SIGF(3)+SM7(3)
             SIGF(4)=SIGF(4)+SM7(4)
             SIGF(5)=SIGF(5)+SM7(5)
             SIGF(6)=SIGF(6)+SM7(6)
           ELSE IF (M.EQ.8) THEN
             SM8(1)=SM8(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM8(2)=SM8(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM8(3)=SM8(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM8(4)=SM8(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SM8(5)=SM8(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
             SM8(6)=SM8(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
             SIGF(1)=SIGF(1)+SM8(1)
             SIGF(2)=SIGF(2)+SM8(2)
             SIGF(3)=SIGF(3)+SM8(3)
             SIGF(4)=SIGF(4)+SM8(4)
             SIGF(5)=SIGF(5)+SM8(5)
             SIGF(6)=SIGF(6)+SM8(6)
           END IF
10       CONTINUE

         DEFP(1)=DEPST(1)-((SIGF(1)-ANU*(SIGF(2)+SIGF(3)))/SE2
     1                   -(SIG0(1)-ANU*(SIG0(2)+SIG0(3)))/SE1)
         DEFP(2)=DEPST(2)-((SIGF(2)-ANU*(SIGF(1)+SIGF(3)))/SE2
     1                   -(SIG0(2)-ANU*(SIG0(1)+SIG0(3)))/SE1)
         DEFP(3)=DEPST(3)-((SIGF(3)-ANU*(SIGF(2)+SIGF(1)))/SE2
     1                   -(SIG0(3)-ANU*(SIG0(2)+SIG0(1)))/SE1)
         DEFP(4)=DEPST(4)-(1+ANU)*(SIGF(4)/SE2-SIG0(4)/SE1)
         DEFP(5)=DEPST(5)-(1+ANU)*(SIGF(5)/SE2-SIG0(5)/SE1)
         DEFP(6)=DEPST(6)-(1+ANU)*(SIGF(6)/SE2-SIG0(6)/SE1)
         DO I=1,NSTRS
           EPINF(I)=EPIN0(I)+DEFP(I)
         END DO
         GOTO 999


*
*        Formulation DEFORMATIONS PLANES /AXISYMETRIQUE
*
       ELSE IF ((IFOMOD.EQ.-1.AND.IFOUR.NE.-2).OR.
     &       (IFOMOD.EQ.0.OR.IFOMOD.EQ.1))  THEN
          CONS=1.D0/((1.D0+ANU)*(1.D0-2.D0*ANU))
         DO 20 M=0,NCHAIN-1
         CALL CMODFI(TPS1,TPS2,M,WR12,WRK52,WRK53,
     1                NWA,EFIC,TR,E1,E2)
           SE1=SE1+E1
           SE2=SE2+E2
           FLUA=EXP(-TR*DT)
           IF (M.EQ.0) THEN
             SM0(1)=SM0(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM0(2)=SM0(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM0(3)=SM0(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM0(4)=SM0(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SIGF(1)=SM0(1)
             SIGF(2)=SM0(2)
             SIGF(3)=SM0(3)
             SIGF(4)=SM0(4)
           ELSE IF (M.EQ.1) THEN
             SM1(1)=SM1(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM1(2)=SM1(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM1(3)=SM1(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM1(4)=SM1(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SIGF(1)=SIGF(1)+SM1(1)
             SIGF(2)=SIGF(2)+SM1(2)
             SIGF(3)=SIGF(3)+SM1(3)
             SIGF(4)=SIGF(4)+SM1(4)
           ELSE IF (M.EQ.2) THEN
             SM2(1)=SM2(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM2(2)=SM2(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM2(3)=SM2(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM2(4)=SM2(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SIGF(1)=SIGF(1)+SM2(1)
             SIGF(2)=SIGF(2)+SM2(2)
             SIGF(3)=SIGF(3)+SM2(3)
             SIGF(4)=SIGF(4)+SM2(4)
           ELSE IF (M.EQ.3) THEN
             SM3(1)=SM3(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM3(2)=SM3(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM3(3)=SM3(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM3(4)=SM3(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SIGF(1)=SIGF(1)+SM3(1)
             SIGF(2)=SIGF(2)+SM3(2)
             SIGF(3)=SIGF(3)+SM3(3)
             SIGF(4)=SIGF(4)+SM3(4)
           ELSE IF (M.EQ.4) THEN
             SM4(1)=SM4(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM4(2)=SM4(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM4(3)=SM4(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM4(4)=SM4(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SIGF(1)=SIGF(1)+SM4(1)
             SIGF(2)=SIGF(2)+SM4(2)
             SIGF(3)=SIGF(3)+SM4(3)
             SIGF(4)=SIGF(4)+SM4(4)
           ELSE IF (M.EQ.5) THEN
             SM5(1)=SM5(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM5(2)=SM5(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM5(3)=SM5(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM5(4)=SM5(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SIGF(1)=SIGF(1)+SM5(1)
             SIGF(2)=SIGF(2)+SM5(2)
             SIGF(3)=SIGF(3)+SM5(3)
             SIGF(4)=SIGF(4)+SM5(4)
           ELSE IF (M.EQ.6) THEN
             SM6(1)=SM6(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM6(2)=SM6(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM6(3)=SM6(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM6(4)=SM6(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SIGF(1)=SIGF(1)+SM6(1)
             SIGF(2)=SIGF(2)+SM6(2)
             SIGF(3)=SIGF(3)+SM6(3)
             SIGF(4)=SIGF(4)+SM6(4)
           ELSE IF (M.EQ.7) THEN
             SM7(1)=SM7(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM7(2)=SM7(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM7(3)=SM7(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM7(4)=SM7(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SIGF(1)=SIGF(1)+SM7(1)
             SIGF(2)=SIGF(2)+SM7(2)
             SIGF(3)=SIGF(3)+SM7(3)
             SIGF(4)=SIGF(4)+SM7(4)
           ELSE IF (M.EQ.8) THEN
             SM8(1)=SM8(1)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
             SM8(2)=SM8(2)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
             SM8(3)=SM8(3)*FLUA
     1            +CONS*EFIC*((UNANU)*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
             SM8(4)=SM8(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
             SIGF(1)=SIGF(1)+SM8(1)
             SIGF(2)=SIGF(2)+SM8(2)
             SIGF(3)=SIGF(3)+SM8(3)
             SIGF(4)=SIGF(4)+SM8(4)
           END IF
20       CONTINUE

         DEFP(1)=DEPST(1)-((SIGF(1)-ANU*(SIGF(2)+SIGF(3)))/SE2
     1                   -(SIG0(1)-ANU*(SIG0(2)+SIG0(3)))/SE1)
         DEFP(2)=DEPST(2)-((SIGF(2)-ANU*(SIGF(1)+SIGF(3)))/SE2
     1                   -(SIG0(2)-ANU*(SIG0(1)+SIG0(3)))/SE1)
         DEFP(3)=DEPST(3)-((SIGF(3)-ANU*(SIGF(2)+SIGF(1)))/SE2
     1                   -(SIG0(3)-ANU*(SIG0(2)+SIG0(1)))/SE1)
         DEFP(4)=DEPST(4)-(1+ANU)*(SIGF(4)/SE2-SIG0(4)/SE1)
         DO I=1,NSTRS
           EPINF(I)=EPIN0(I)+DEFP(I)
         END DO
         GOTO 999

*
*        Formulation CONTRAINTES PLANES
*
       ELSE IF (IFOMOD.EQ.-1.AND.IFOUR.EQ.-2) THEN
*         CONS=1.D0/(UNANU*ANU)
         CONS=1.D0/(1.D0-(ANU*ANU))
         DO 30 M=0,NCHAIN-1
         CALL CMODFI(TPS1,TPS2,M,WR12,WRK52,WRK53,
     1                NWA,EFIC,TR,E1,E2)
           SE1=SE1+E1
           SE2=SE2+E2
           FLUA=EXP(-TR*DT)
           IF (M.EQ.0) THEN
             SM0(1)=SM0(1)*FLUA
     1            +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
             SM0(2)=SM0(2)*FLUA
     1            +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
             SM0(3)=0.D0
             SM0(4)=SM0(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
             SIGF(1)=SM0(1)
             SIGF(2)=SM0(2)
             SIGF(3)=SM0(3)
             SIGF(4)=SM0(4)
           ELSE IF (M.EQ.1) THEN
             SM1(1)=SM1(1)*FLUA
     1            +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
             SM1(2)=SM1(2)*FLUA
     1            +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
             SM1(3)=0.D0
             SM1(4)=SM1(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
             SIGF(1)=SIGF(1)+SM1(1)
             SIGF(2)=SIGF(2)+SM1(2)
             SIGF(3)=SIGF(3)+SM1(3)
             SIGF(4)=SIGF(4)+SM1(4)
           ELSE IF (M.EQ.2) THEN
             SM2(1)=SM2(1)*FLUA
     1            +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
             SM2(2)=SM2(2)*FLUA
     1            +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
             SM2(3)=0.D0
             SM2(4)=SM2(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
             SIGF(1)=SIGF(1)+SM2(1)
             SIGF(2)=SIGF(2)+SM2(2)
             SIGF(3)=SIGF(3)+SM2(3)
             SIGF(4)=SIGF(4)+SM2(4)
           ELSE IF (M.EQ.3) THEN
             SM3(1)=SM3(1)*FLUA
     1            +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
             SM3(2)=SM3(2)*FLUA
     1            +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
             SM3(3)=0.D0
             SM3(4)=SM3(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
             SIGF(1)=SIGF(1)+SM3(1)
             SIGF(2)=SIGF(2)+SM3(2)
             SIGF(3)=SIGF(3)+SM3(3)
             SIGF(4)=SIGF(4)+SM3(4)
           ELSE IF (M.EQ.4) THEN
             SM4(1)=SM4(1)*FLUA
     1            +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
             SM4(2)=SM4(2)*FLUA
     1            +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
             SM4(3)=0.D0
             SM4(4)=SM4(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
             SIGF(1)=SIGF(1)+SM4(1)
             SIGF(2)=SIGF(2)+SM4(2)
             SIGF(3)=SIGF(3)+SM4(3)
             SIGF(4)=SIGF(4)+SM4(4)
           ELSE IF (M.EQ.5) THEN
             SM5(1)=SM5(1)*FLUA
     1            +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
             SM5(2)=SM5(2)*FLUA
     1            +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
             SM5(3)=0.D0
             SM5(4)=SM5(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
             SIGF(1)=SIGF(1)+SM5(1)
             SIGF(2)=SIGF(2)+SM5(2)
             SIGF(3)=SIGF(3)+SM5(3)
             SIGF(4)=SIGF(4)+SM5(4)
           ELSE IF (M.EQ.6) THEN
             SM6(1)=SM6(1)*FLUA
     1            +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
             SM6(2)=SM6(2)*FLUA
     1            +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
             SM6(3)=0.D0
             SM6(4)=SM6(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
             SIGF(1)=SIGF(1)+SM6(1)
             SIGF(2)=SIGF(2)+SM6(2)
             SIGF(3)=SIGF(3)+SM6(3)
             SIGF(4)=SIGF(4)+SM6(4)
           ELSE IF (M.EQ.7) THEN
             SM7(1)=SM7(1)*FLUA
     1            +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
             SM7(2)=SM7(2)*FLUA
     1            +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
             SM7(3)=0.D0
             SM7(4)=SM7(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
             SIGF(1)=SIGF(1)+SM7(1)
             SIGF(2)=SIGF(2)+SM7(2)
             SIGF(3)=SIGF(3)+SM7(3)
             SIGF(4)=SIGF(4)+SM7(4)
           ELSE IF (M.EQ.8) THEN
             SM8(1)=SM8(1)*FLUA
     1            +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
             SM8(2)=SM8(2)*FLUA
     1            +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
             SM8(3)=0.D0
             SM8(4)=SM8(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
             SIGF(1)=SIGF(1)+SM8(1)
             SIGF(2)=SIGF(2)+SM8(2)
             SIGF(3)=SIGF(3)+SM8(3)
             SIGF(4)=SIGF(4)+SM8(4)
           END IF
30       CONTINUE

         DEFP(1)=DEPST(1)-((SIGF(1)-ANU*(SIGF(2)+SIGF(3)))/SE2
     1                   -(SIG0(1)-ANU*(SIG0(2)+SIG0(3)))/SE1)
         DEFP(2)=DEPST(2)-((SIGF(2)-ANU*(SIGF(1)+SIGF(3)))/SE2
     1                   -(SIG0(2)-ANU*(SIG0(1)+SIG0(3)))/SE1)
         DEFP(3)=DEPST(3)-((SIGF(3)-ANU*(SIGF(2)+SIGF(1)))/SE2
     1                   -(SIG0(3)-ANU*(SIG0(2)+SIG0(1)))/SE1)
         DEFP(4)=DEPST(4)-(1+ANU)*(SIGF(4)/SE2-SIG0(4)/SE1)
         DO I=1,NSTRS
           EPINF(I)=EPIN0(I)+DEFP(I)
         END DO
         GOTO 999

       ENDIF
       GOTO 999


999       RETURN
        END


















 
 
 
