Télécharger rseq3d.eso

Retour à la liste

Numérotation des lignes :

rseq3d
  1. C RSEQ3D SOURCE CHAT 05/01/13 03:07:21 5004
  2. SUBROUTINE RSEQ3D (AAA,BBB,CCC,DDD,YUNG,X1,X2,X3,KERRE)
  3. C
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8 (A-H,O-Z)
  6.  
  7. -INC PPARAM
  8. -INC CCOPTIO
  9. C
  10. C***********************************************************************
  11. C************** RESOLUTION D UNE EQUATION DE 3EME DEGRE ***************
  12. C**************** AAA X**3 + BBB X**2 + CCC X + DDD =0 *****************
  13. C********************* RACINES REELLES UNIQUEMENT **********************
  14. C***********************************************************************
  15. C
  16. RF=YUNG*YUNG*1.D-16
  17. C
  18. IF(IIMPI.EQ.9) THEN
  19. WRITE(6,*) 'AAA',AAA
  20. WRITE(6,*) 'BBB',BBB
  21. WRITE(6,*) 'CCC',CCC
  22. WRITE(6,*) 'DDD',DDD
  23. ENDIF
  24. C
  25. IF(AAA.EQ.0.D0) GO TO 100
  26. A1=BBB/AAA
  27. A2=CCC/AAA
  28. A3=DDD/AAA
  29. CALL DEGRE3(A3,A2,A1,X1,XI1,X2,XI2,X3,XI3)
  30. RETURN
  31. C
  32. 100 IF(BBB.EQ.0.D0) GO TO 200
  33. DELT=CCC*CCC-4.D0*BBB*DDD
  34. IF(IIMPI.EQ.9) WRITE(6,*) 'CAS D UNE EQ DU 2EME DEGRE'
  35. IF(IIMPI.EQ.9) WRITE(6,*) 'DELT',DELT
  36. IF(ABS(DELT).LT.RF.AND.DELT.LT.0.D0) DELT=0.D0
  37. IF(DELT.LT.0.D0) GO TO 500
  38. RADE=SQRT(DELT)
  39. X1=0.5D0*(-CCC+RADE)/BBB
  40. X2=0.5D0*(-CCC+RADE)/BBB
  41. X3=X1
  42. RETURN
  43. C
  44. 200 IF(CCC.EQ.0.D0) GO TO 300
  45. X1=-DDD/CCC
  46. X2=X1
  47. X3=X1
  48. RETURN
  49. C
  50. 300 IF(DDD.EQ.0.D0) GO TO 400
  51. X1=1.D0
  52. X2=X1
  53. X3=X1
  54. RETURN
  55. C
  56. 400 X1=0.D0
  57. X2=X1
  58. X3=X1
  59. RETURN
  60. C
  61. 500 KERRE=470
  62. REAERR(1)=AAA
  63. REAERR(2)=BBB
  64. REAERR(3)=CCC
  65. REAERR(4)=DDD
  66. REAERR(5)=DELT
  67. RETURN
  68. C
  69. END
  70.  
  71.  

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