1 : C DIAGOD SOURCE CHAT 05/01/12 22:49:49 5004 2 : SUBROUTINE DIAGOD(A) 3 : C 4 : C -------------------------------------------------------------- 5 : C 6 : C DIAGONALISATION MATRICE 2X2 SYMETRIQUE G.NAHAS 03-85 7 : C 8 : C -------------------------------------------------------------- 9 : C 10 : IMPLICIT INTEGER(I-N) 11 : IMPLICIT REAL*8(A-H,O-Z) 12 : DIMENSION A(3) 13 : RAD=57.29577951308232D0 14 : C 15 : A(3)=2.D0*A(3) 16 : B=A(1)-A(2) 17 : C=SQRT(B*B+A(3)*A(3)) 18 : A(1)=0.5D0*(A(1)+A(2)+C) 19 : A(2)=A(1)-C 20 : C 21 : ZERO=MIN(ABS(A(1)),ABS(A(2)))*1.D-10 22 : IF(ABS(B).GT.ZERO) GO TO 10 23 : D=A(3)*0.5D0 24 : IF(ABS(D).LE.ZERO) GO TO 20 25 : Q45=45.D0 26 : A(3)=SIGN(Q45,A(3)) 27 : GO TO 30 28 : 20 CONTINUE 29 : A(3)=0.D0 30 : GO TO 30 31 : 10 A(3)=ATAN2(A(3),B)*0.5D0*RAD 32 : 30 RETURN 33 : END 34 :
© Cast3M 2003 - All rights reserved.
Disclaimer