Télécharger diafe1.eso

Retour à la liste

Numérotation des lignes :

diafe1
  1. C DIAFE1 SOURCE PV 22/04/15 13:20:07 11344
  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. write(6,*) ' priere de corriger l''appel a sigek'
  24. call erreur(5)
  25. X1 = 2.0d0*X(1,2)
  26. X2 = X(1,1)-X(2,2)
  27. X3 = SQRT((X2*X2)+(X1*X1))
  28.  
  29. VAL(1) = 0.5*(X(1,1)+X(2,2)+X3)
  30. VAL(2) = 0.5*(X(1,1)+X(2,2)-X3)
  31.  
  32. IF (X2.EQ.0.0D0) THEN
  33.  
  34. V1 = XR
  35. VEC(1,1) = V1
  36. * VEC(2,1) = SIGEK(V1,X1)
  37. VEC(1,2) = -VEC(2,1)
  38. VEC(2,2) = V1
  39.  
  40. ELSE
  41.  
  42. V2 = X1/X2
  43. V3 = 1.0D0 + (V2**2)
  44. * V3 = SIGEK(1.0D0,X2)/SQRT(V3)
  45. V4 = SQRT(((1.0D0+V3)*0.5D0))
  46. V5 = (1.0D0-V3)*0.5D0
  47. * V5 = SIGEK(1.0D0,X1)*SQRT(V5)
  48.  
  49. VEC(1,1) = V4
  50. VEC(2,1) = V5
  51. VEC(1,2) = V5
  52. VEC(2,2) = V4
  53.  
  54. ENDIF
  55.  
  56.  
  57. RETURN
  58. END
  59.  
  60.  
  61.  
  62.  
  63.  

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