C EPSIG     SOURCE    CHAT      05/01/12    23:42:34     5004
      SUBROUTINE EPSIG(SIGMA,EPS,IFOUR,YUNG,XNU,ITYP,ORMAT,CARAC)
C
C     TRANSFORMATION DE SIGMA EN EPSILON
C
C         ITYP=1 ELEMENT MASSIF DP AXIS
C         ITYP=2 ELEMENT COQUE
C         ITYP=3 ELEMENT MEMBRANE
C         ITYP=4 ELEMENT CABLE
C         ITYP=5 ORTHOTROPE
C         ITYP=6 ELEMENT MASSIF CP
C         ITYP=7 COQUE CONTRAINTES PLANES
C         ITYP=8 MEMBRANE CONTRAINTES PLANES
C         ITYP=11 POUTRES
C         ITYP=12 TUYAUX
C         ITYP=13 CONTRAINTES AVEC TOUS LES CISAILLEMENTS
C         ITYP=14 CAS DES ELEMENTS MASSIFS EN 1D (UNID)
C
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
      DIMENSION SIGMA(*),EPS(*),ORMAT(*),CARAC(*)
C
      DIMENSION NNN(14)
      DATA NNN / 6,6,3,3,6,4,6,1,6,3,6,6,6,3 /
C
      IBOU=NNN(ITYP)
      DO 1 IA=1,IBOU
    1 EPS(IA)=0.
      IF(ITYP.NE.5) E=1.D0/YUNG
      GO TO (61,62,63,64,65,61,62,63,99,99,71,72,73,74),ITYP
C
C     CONTRAINTES PLANES AVEC TOUS LES CISAILLEMENTS
   73 CONTINUE
      EPS(1)=(SIGMA(1)-XNU*SIGMA(2))*E
      EPS(2)=(SIGMA(2)-XNU*SIGMA(1))*E
      EPS(3)=-(SIGMA(1)+SIGMA(2))*XNU*E
      EPS(4)=2.*(1.+XNU)*E*SIGMA(4)
      EPS(5)=2.*(1.+XNU)*E*SIGMA(5)
      EPS(6)=2.*(1.+XNU)*E*SIGMA(6)
      GO TO 1000
C
 72   CONTINUE
C                     TUYAUX
 71   CONTINUE
C                     POUTRES
      CISA=YUNG/2.D00/(1.D00+XNU)
      IF(CARAC(4).NE.0.D0) EPS(1)=SIGMA(1)/(YUNG*CARAC(4))
      IF(CARAC(5).NE.0.D0) EPS(2)=SIGMA(2)/(CISA*CARAC(5))
      IF(CARAC(6).NE.0.D0) EPS(3)=SIGMA(3)/(CISA*CARAC(6))
      IF(CARAC(1).NE.0.D0) EPS(4)=SIGMA(4)/(CISA*CARAC(1))
      IF(CARAC(2).NE.0.D0) EPS(5)=SIGMA(5)/(YUNG*CARAC(2))
      IF(CARAC(3).NE.0.D0) EPS(6)=SIGMA(6)/(YUNG*CARAC(3))
      GO TO 1000
C
   61 CONTINUE
      IF(IFOUR.EQ.-2) GO TO 3
C                   DEFORMATIONS PLANES
      EPS(1)=(SIGMA(1)-XNU*(SIGMA(2)+SIGMA(3)))*E
      EPS(2)=(SIGMA(2)-XNU*(SIGMA(3)+SIGMA(1)))*E
      EPS(3)=(SIGMA(3)-XNU*(SIGMA(1)+SIGMA(2)))*E
      UNSG=2.*(1+XNU)*E
      LA=4
      LB=4
      IF (IFOUR.GT.0) LB=6
      DO 2 IA=LA,LB
    2 EPS(IA)=SIGMA(IA)*UNSG
      RETURN
C               CONTRAINTES PLANES
    3 CONTINUE
      EPS(1)=(SIGMA(1)-XNU*SIGMA(2))*E
      EPS(2)=(SIGMA(2)-XNU*SIGMA(1))*E
      EPS(4)=2.*(1.+XNU)*E*SIGMA(4)
      EPS(3)=-(SIGMA(1)+SIGMA(2))*XNU*E
 1000 RETURN
   62 JB=2
      JA=0
C               COQUES
  621 CONTINUE
      DO 620 IA=1,JB
      EPS(JA+1)=(SIGMA(JA+1)-XNU*SIGMA(JA+2))*E
      EPS(JA+2)=(SIGMA(JA+2)-XNU*SIGMA(JA+1))*E
      EPS(JA+3)=2.*(1.+XNU)*E*SIGMA(JA+3)
  620 JA=JA+3
      GO TO 1000
   63 JB=1
      JA=0
      GO TO 621
   64 EPS(3)=E*SIGMA(3)/CARAC(1)
      GO TO 1000
   65 CONTINUE
C                    MATERIAU QUELCONQUE
      E1=1./ORMAT(1)
      E2=1./ORMAT(2)
      E3=1./ORMAT(3)
      F1=1./ORMAT(7)
      F2=1./ORMAT(8)
      F3=1./ORMAT(9)
      EPS(1)=E1*SIGMA(1)-ORMAT(4)*E2*SIGMA(2)-ORMAT(5)*E3*SIGMA(3)
      EPS(2)=SIGMA(2)*E2-ORMAT(4)*E1*SIGMA(1)-ORMAT(6)*E3*SIGMA(3)
      EPS(3)=SIGMA(3)*E3-ORMAT(5)*E1*SIGMA(1)-ORMAT(6)*E2*SIGMA(2)
      EPS(4)=F1*SIGMA(4)
      IF(IFOUR.LE.0) GO TO 1000
      EPS(5)=F2*SIGMA(5)
      EPS(6)=F3*SIGMA(6)
      GO TO 1000
C
C= Modes de calcul UNIDIMENSIONNELs (1D)
C= Les deformations sont initialisees au debut du sousprogramme.
 74   CONTINUE
C= Mode de calcul 1D UNID PLAN DYDZ
      IF (IFOUR.EQ.3) THEN
        EPS(1)=(SIGMA(1)-XNU*(SIGMA(2)+SIGMA(3)))*E
      ELSE IF (IFOUR.EQ.4) THEN
        EPS(1)=(SIGMA(1)-XNU*SIGMA(2))*E
        EPS(3)=-XNU*(SIGMA(1)+SIGMA(2))*E
      ELSE IF (IFOUR.EQ.5) THEN
        EPS(1)=(SIGMA(1)-XNU*SIGMA(3))*E
        EPS(2)=-XNU*(SIGMA(1)+SIGMA(3))*E
      ELSE IF (IFOUR.EQ.6) THEN
        EPS(1)=SIGMA(1)*E
        EPS(2)=-XNU*SIGMA(1)*E
        EPS(3)=EPS(2)
      ELSE IF (IFOUR.EQ.7) THEN
        EPS(1)=(SIGMA(1)-XNU*(SIGMA(2)+SIGMA(3)))*E
        EPS(2)=(SIGMA(2)-XNU*(SIGMA(1)+SIGMA(3)))*E
      ELSE IF (IFOUR.EQ.8) THEN
        EPS(1)=(SIGMA(1)-XNU*SIGMA(2))*E
        EPS(2)=(SIGMA(2)-XNU*SIGMA(1))*E
        EPS(3)=-XNU*(SIGMA(1)+SIGMA(2))*E
      ELSE IF (IFOUR.EQ.9.OR.IFOUR.EQ.12) THEN
        EPS(1)=(SIGMA(1)-XNU*(SIGMA(2)+SIGMA(3)))*E
        EPS(3)=(SIGMA(3)-XNU*(SIGMA(1)+SIGMA(2)))*E
      ELSE IF (IFOUR.EQ.10.OR.IFOUR.EQ.13) THEN
        EPS(1)=(SIGMA(1)-XNU*SIGMA(3))*E
        EPS(2)=-XNU*(SIGMA(1)+SIGMA(3))*E
        EPS(3)=(SIGMA(3)-XNU*SIGMA(1))*E
C**   ELSE IF (IFOUR.EQ.11.OR.IFOUR.EQ.14.OR.IFOUR.EQ.15) THEN
      ELSE
        EPS(1)=(SIGMA(1)-XNU*(SIGMA(2)+SIGMA(3)))*E
        EPS(2)=(SIGMA(2)-XNU*(SIGMA(1)+SIGMA(3)))*E
        EPS(3)=(SIGMA(3)-XNU*(SIGMA(1)+SIGMA(2)))*E
      ENDIF
      RETURN
C     GOTO 1000

99    WRITE(6,299)
299   FORMAT('0 EPSIG - CAS NON IMPLEMENTE '/)
      STOP
      END




