62 SUBROUTINE pycmqr(NM,N,LOW,IGH,HR,HI,WR,WI,IERR)
64 INTEGER i,
j,l,
n,en,ll,nm,igh,itn,its,
low,lp1,enm1,ierr
65 DOUBLE PRECISION hr(4,4),hi(4,4),wr(4),wi(4)
66 DOUBLE PRECISION si,sr,ti,tr,xi,xr,yi,yr,zzi,zzr,
norm,tst1,tst2,
70 IF (
low .EQ. igh) goto 130
76 IF (hi(
i,
i-1) .EQ. 0.0d0) goto 120
84 si = yr * hi(
i,
j) - yi * hr(
i,
j)
85 hr(
i,
j) = yr * hr(
i,
j) + yi * hi(
i,
j)
90 si = yr * hi(
j,
i) + yi * hr(
j,
i)
91 hr(
j,
i) = yr * hr(
j,
i) - yi * hi(
j,
i)
98 IF (
i .GE.
low .AND.
i .LE. igh) goto 140
108 150
IF (en .LT.
low) goto 320
113 160
DO 170 ll =
low, en
115 IF (l .EQ.
low) goto 180
116 tst1 = dabs(hr(l-1,l-1)) + dabs(hi(l-1,l-1))
117 x + dabs(hr(l,l)) + dabs(hi(l,l))
118 tst2 = tst1 + dabs(hr(l,l-1))
119 IF (tst2 .EQ. tst1) goto 180
122 180
IF (l .EQ. en) goto 300
123 IF (itn .EQ. 0) goto 310
124 IF (its .EQ. 10 .OR. its .EQ. 20) goto 200
127 xr = hr(enm1,en) * hr(en,enm1)
128 xi = hi(enm1,en) * hr(en,enm1)
129 IF (xr .EQ. 0.0d0 .AND. xi .EQ. 0.0d0) goto 210
130 yr = (hr(enm1,enm1) - sr) / 2.0d0
131 yi = (hi(enm1,enm1) - si) / 2.0d0
132 CALL
pycsrt(yr**2-yi**2+xr,2.0d0*yr*yi+xi,zzr,zzi)
133 IF (yr * zzr + yi * zzi .GE. 0.0d0) goto 190
136 190 CALL
pycdiv(xr,xi,yr+zzr,yi+zzi,xr,xi)
141 200 sr = dabs(hr(en,enm1)) + dabs(hr(enm1,en-2))
144 210
DO 220
i =
low, en
145 hr(
i,
i) = hr(
i,
i) - sr
146 hi(
i,
i) = hi(
i,
i) - si
173 hr(
i-1,
j) = xr * yr + xi * yi + hi(
i,
i-1) * zzr
174 hi(
i-1,
j) = xr * yi - xi * yr + hi(
i,
i-1) * zzi
175 hr(
i,
j) = xr * zzr - xi * zzi - hi(
i,
i-1) * yr
176 hi(
i,
j) = xr * zzi + xi * zzr - hi(
i,
i-1) * yi
182 IF (si .EQ. 0.0d0) goto 250
184 sr = hr(en,en) /
norm
189 250
DO 280
j = lp1, en
198 IF (
i .EQ.
j) goto 260
200 hi(
i,
j-1) = xr * yi + xi * yr + hi(
j,
j-1) * zzi
201 260 hr(
i,
j-1) = xr * yr - xi * yi + hi(
j,
j-1) * zzr
202 hr(
i,
j) = xr * zzr + xi * zzi - hi(
j,
j-1) * yr
203 hi(
i,
j) = xr * zzi - xi * zzr - hi(
j,
j-1) * yi
208 IF (si .EQ. 0.0d0) goto 160
213 hr(
i,en) = sr * yr - si * yi
214 hi(
i,en) = sr * yi + si * yr
219 300 wr(en) = hr(en,en) + tr
220 wi(en) = hi(en,en) + ti