C DIAGOD    SOURCE    CHAT      05/01/12    22:49:49     5004
      SUBROUTINE DIAGOD(A)
C
C     --------------------------------------------------------------
C
C          DIAGONALISATION MATRICE 2X2 SYMETRIQUE      G.NAHAS 03-85
C
C     --------------------------------------------------------------
C
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      DIMENSION A(3)
      RAD=57.29577951308232D0
C
      A(3)=2.D0*A(3)
      B=A(1)-A(2)
      C=SQRT(B*B+A(3)*A(3))
      A(1)=0.5D0*(A(1)+A(2)+C)
      A(2)=A(1)-C
C
      ZERO=MIN(ABS(A(1)),ABS(A(2)))*1.D-10
      IF(ABS(B).GT.ZERO) GO TO 10
      D=A(3)*0.5D0
      IF(ABS(D).LE.ZERO) GO TO 20
      Q45=45.D0
      A(3)=SIGN(Q45,A(3))
      GO TO 30
   20 CONTINUE
      A(3)=0.D0
      GO TO 30
   10 A(3)=ATAN2(A(3),B)*0.5D0*RAD
   30 RETURN
      END

