Télécharger diagod.eso

Retour à la liste

Numérotation des lignes :

  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.  
  35.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales