Download degre3.eso

Back to the list

   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 :  

© Cast3M 2003 - All rights reserved.
Disclaimer