Download diagod.eso

Back to the list

   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