C DEVIAT    SOURCE    BR232186  12/08/01    21:15:22     7456
C DEVIAT    SOURCE    BR      06/01/10    21:15:29     5284
      SUBROUTINE DEVIAT(A,B)
C======================================================================
C Routine permettant de calculer le deviateur de A
C
C     OBJET
C     -----
C     CALCUL DE B = DEVIAT(A) = A - (1.0D0/3.0D0) * TRACE(A) * UNIT
C
C     ENTREES
C     -------
C     A(3,3) = MATRICE SYMETRIQUE
C
C     SORTIES
C     -------
C     B      = DEVIAT(A)
C
C===============================================================
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)

      REAL*8 A(3,3),UNIT(3,3),B(3,3)

      TRA = A(1,1)+A(2,2)+A(3,3)

      DO I=1,3
         DO J=1,3

            UNIT(I,J) = 0.0D0

            IF (I.EQ.J) THEN
               UNIT(I,J) = 1.0D0
            ENDIF

         ENDDO
      ENDDO

      DO I=1,3
         DO J=1,3

            B(I,J) = 0.0D0
            B(I,J) = A(I,J) - (1.0D0/3.0D0)*TRA*UNIT(I,J)

         ENDDO
      ENDDO


      RETURN
      END






