Télécharger degre3.eso

Retour à la liste

Numérotation des lignes :

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

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