C T4CT2     SOURCE    CHAT      05/01/13    03:30:18     5004
      SUBROUTINE T4CT2(A,B,CC,MT)
C=======================================================================
C
C                CALCUL TENSORIEL     C = A : D
C
C                   - C TENSEUR D ORDRE 2  symetrique
C                   - A TENSEUR D ORDRE 4
C                   - D TENSEUR D ORDRE 2  symetrique
C
C         Remarque : En entree le tenseur D est en notation de  VOIGT
C========================================================================
C
C     CREATION : F.CORMERY
C                E.N.S.M.A - LMPM
C                DEC 1992
C
C========================================================================
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
C************************************************************************
C                 DIMENSION ET DATA
C************************************************************************
C                                      N9      N18
      DIMENSION A(3,3,3,3),B(6),CC(6),D(3,3),C(3,3)
C************************************************************************
C       PASSAGE DU TENSEUR B : tenseur d ordre 1 en tenseur d ordre 2
C************************************************************************
      D(1,1)=B(1)
      D(2,2)=B(2)
      D(3,3)=B(3)
      D(2,3)=B(4)
      D(3,2)=B(4)
      D(1,3)=B(5)
      D(3,1)=B(5)
      D(1,2)=B(6)
      D(2,1)=B(6)
C************************************************************************
C            CALCUL DU PRODUIT TENSORIEL :  C = A : D
C************************************************************************
      DO 10 I=1,3
      DO 10 J=1,3
      C(I,J)=0.D0
      DO 10 K=1,3
      DO 10 L=1,3
      C(I,J)=C(I,J)+A(I,J,K,L)*D(K,L)
10    CONTINUE
C------------------------------------------------------------------------
C                  Verification
C------------------------------------------------------------------------
      DO 20 I=1,3
      DO 20 J=1,3
      IF(ABS(C(I,J)-C(J,I)).GT.1E-5)THEN
      WRITE(MT,1000)
1000  FORMAT(1X,'ERREUR DANS T4CT2C.FOR : TENSEUR A+ non symetrique')
      DO 21 M=1,3
      WRITE(MT,*)(C(M,N),N=1,3)
21    CONTINUE
C      STOP
      ENDIF
20    CONTINUE
C************************************************************************
C            PASSAGE DU TENSEUR C EN NOTATION DE VOIGT
C************************************************************************
      CC(1)=C(1,1)
      CC(2)=C(2,2)
      CC(3)=C(3,3)
      CC(4)=C(2,3)
      CC(5)=C(1,3)
      CC(6)=C(1,2)
C------------------------------------------------------------------------
      DO 132 I=1,6
      IF(ABS(CC(I)).LE.1E-15)CC(I)=0.D0
132   CONTINUE
C------------------------------------------------------------------------
      RETURN
      END


