Go to the source code of this file.
|
subroutine | cubic (a0, a1, a2, solreal, solimag, n) |
|
◆ cubic()
subroutine cubic |
( |
real*8 |
a0, |
|
|
real*8 |
a1, |
|
|
real*8 |
a2, |
|
|
real*8, dimension(3) |
solreal, |
|
|
real*8, dimension(3) |
solimag, |
|
|
integer |
n |
|
) |
| |
35 real*8 a0,a1,a2,solreal(3),solimag(3),q,r,d,s1,s2,
38 write(30,*)
'a2,a1,a0 ',a2,a1,a0
40 r=(a1*a2-3.d0*a0)/6.d0-(a2**3)/27.d0
43 write(30,*)
'q,r,d ',q,r,d
51 s1=(r+dsqrt(d))**(1.d0/3.d0)
56 s2=-(-s2)**(1.d0/3.d0)
58 write(30,*)
'd>0 s1,s2 ',s1,s2
60 solreal(1)=(s1+s2)-a2/3.d0
61 solreal(2)=-(s1+s2)/2.d0-a2/3.d0
65 solimag(2)=(s1-s2)*dsqrt(3.d0)/2.d0
66 solimag(3)=-solimag(2)
75 a=(r*r-d)**(1.d0/6.d0)
76 phi=(datan2(dsqrt(-d),r))/3.d0
78 write(30,*)
'd <=0 a,phi ',a,phi
84 write(30,*)
'd >=0 s1r,s1i ',s1r,s1i
86 solreal(1)=2.d0*s1r-a2/3.d0
87 solreal(2)=-s1r-a2/3.d0-s1i*dsqrt(3.d0)
88 solreal(3)=-s1r-a2/3.d0+s1i*dsqrt(3.d0)