Télécharger degre3.eso

Retour à la liste

Numérotation des lignes :

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

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