Télécharger degre3.eso

Retour à la liste

Numérotation des lignes :

  1. C DEGRE3 SOURCE CB215821 18/09/21 21:15:33 9930
  2. SUBROUTINE DEGRE3(AS0,AS1,AS2,XR1,XI1,XR2,XI2,XR3,XI3)
  3.  
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6.  
  7. -INC CCOPTIO
  8. C
  9. C POLYNOME DE DEGRE 3 SOUS LA FORME
  10. C X3 + AS2*X2 + AS1*X + AS0 = 0
  11. C
  12. TR = SQRT(3.D0)
  13. AS2S3= AS2 /3.D0
  14.  
  15.  
  16. Q = AS1/3.D0 - AS2S3**2
  17. R =(AS1*AS2)/6.D0-AS0/2.D0 - AS2S3**3
  18. D = Q**3 + R**2
  19. C
  20. IF(IIMPI.EQ.9) THEN
  21. WRITE(6,*) 'Q ',Q
  22. WRITE(6,*) 'R ',R
  23. WRITE(6,*) 'D ',D
  24. ENDIF
  25. C
  26. IF(D) 1,2,2
  27. 2 SD=SQRT(D)
  28. S1=SIGN(1.D0,R+SD)*((ABS(R+SD))**(1.D0/3.D0))
  29. S2=SIGN(1.D0,R-SD)*((ABS(R-SD))**(1.D0/3.D0))
  30. XR1=S1+S2-AS2S3
  31. XI1= 0.D0
  32. XR2=-(S1+S2)/2.D0-AS2S3
  33. XI2= TR*(S1-S2)/2.D0
  34. XR3= XR2
  35. XI3= -XI2
  36. RETURN
  37.  
  38. 1 SD=SQRT(-D)
  39. RO=(R**2-D)**(1.D0/6.D0)
  40. ARG=ATAN2(SD,R)/3.D0
  41. if (abs(arg).lt.1e-7) arg=0.d0
  42. SOM=RO*COS(ARG)
  43. DIF=RO*SIN(ARG)
  44. XR1=SOM*2.D0-AS2S3
  45. XI1=0.D0
  46. XR2=-SOM -AS2S3 - TR*DIF
  47. XI2=0.D0
  48. XR3=-SOM -AS2S3 + TR*DIF
  49. XI3=0.D0
  50.  
  51. RETURN
  52. END
  53.  
  54.  
  55.  

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