Télécharger diafe1.eso

Retour à la liste

Numérotation des lignes :

  1. C DIAFE1 SOURCE BR232186 16/12/06 10:42:31 9242
  2. SUBROUTINE DIAFE1(X,VAL,VEC)
  3. C
  4. C====&===1=========2=========3=========4=========5=========6=========7==
  5. C Commentaires : Diagonalisation matrice 2x2
  6. C
  7. C
  8. C Argumets : Matrices X(II,JJ) et Y(KK,LL),retourne la matrice Z
  9. C
  10. C AUTEUR : E. KISHTA - CEA/DEN/DANS/DM2S/SEMT/EMSI
  11. C
  12. C====&===1=========2=========3=========4=========5=========6=========7==
  13. C
  14. C----DECLARATION GENERALES----------------------------------------------
  15. C
  16. IMPLICIT INTEGER(I-N)
  17. IMPLICIT REAL*8(A-H,O-Z)
  18.  
  19. REAl*8 X(2,2), VAL(2), VEC(2,2)
  20.  
  21. PARAMETER ( XR= 0.70710678118654752440084436210484904D0 )
  22.  
  23. X1 = 2.0d0*X(1,2)
  24. X2 = X(1,1)-X(2,2)
  25. X3 = SQRT((X2*X2)+(X1*X1))
  26.  
  27. VAL(1) = 0.5*(X(1,1)+X(2,2)+X3)
  28. VAL(2) = 0.5*(X(1,1)+X(2,2)-X3)
  29.  
  30. IF (X2.EQ.0.0D0) THEN
  31.  
  32. V1 = XR
  33. VEC(1,1) = V1
  34. VEC(2,1) = SIGEK(V1,X1)
  35. VEC(1,2) = -VEC(2,1)
  36. VEC(2,2) = V1
  37.  
  38. ELSE
  39.  
  40. V2 = X1/X2
  41. V3 = 1.0D0 + (V2**2)
  42. V3 = SIGEK(1.0D0,X2)/SQRT(V3)
  43. V4 = SQRT(((1.0D0+V3)*0.5D0))
  44. V5 = (1.0D0-V3)*0.5D0
  45. V5 = SIGEK(1.0D0,X1)*SQRT(V5)
  46.  
  47. VEC(1,1) = V4
  48. VEC(2,1) = V5
  49. VEC(1,2) = V5
  50. VEC(2,2) = V4
  51.  
  52. ENDIF
  53.  
  54.  
  55. RETURN
  56. END
  57.  
  58.  
  59.  

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