C J2        SOURCE    CB215821  16/04/21    21:17:19     8920
      SUBROUTINE J2(A,B)
C======================================================================
C Routine permettant de calculer le deuxième invariant du déviateur
C de A
C     OBJET
C     -----
C     CALCUL DE B = J2(A)
C
C     ENTREES
C     -------
C     A(3,3) = MATRICE SYMETRIQUE
C
C     SORTIES
C     -------
C     B      = J2(A)
C
C===============================================================
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)

      INTEGER NCAS
      REAL*8 A(3,3),TRAV(3,3),UNIT(3,3)

        DO I=1,3
         DO J=1,3
            IF (I.EQ.J) THEN
               UNIT(I,J) = 1.0D0
            ELSE
               UNIT(I,J) = 0.0D0
            ENDIF
         ENDDO
      ENDDO

      B = 0.0D0

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

      DO I=1,3
         DO J=1,3
            TRAV(I,J) = 0.0D0
            TRAV(I,J) = A(I,J)-(1.0D0/3.0D0)*TRA_SE*UNIT(I,J)
         ENDDO
      ENDDO

      CALL DBLECONT(TRAV,TRAV,B)
      B = (3.0D0/2.0D0)*B
      B = SQRT(B)

      RETURN
      END









