5 * Revision 1.1.1.1 1996/04/01 15:02:35 mclareni
10 SUBROUTINE HQR(NM,N,LOW,IGH,H,WR,WI,IERR)
11 INTEGER I,J,K,L,M,N,EN,LL,MM,NA,NM,IGH,ITS,LOW,MP2,ENM2,IERR
12 REAL H(NM,N),WR(N),WI(N)
13 REAL P,Q,R,S,T,W,X,Y,ZZ,MACHEP
15 #if defined(CERNLIB_CDC)
18 #if !defined(CERNLIB_CDC)
23 IF (I .GE. LOW .AND. I .LE. IGH) GO TO 50
29 60 IF (EN .LT. LOW) GO TO 1001
35 IF (L .EQ. LOW) GO TO 100
36 IF (ABS(H(L,L-1)) .LE. MACHEP * (ABS(H(L-1,L-1))
37 X + ABS(H(L,L)))) GO TO 100
40 IF (L .EQ. EN) GO TO 270
42 W = H(EN,NA) * H(NA,EN)
43 IF (L .EQ. NA) GO TO 280
44 IF (ITS .EQ. 30) GO TO 1000
45 IF (ITS .NE. 10 .AND. ITS .NE. 20) GO TO 130
48 120 H(I,I) = H(I,I) - X
49 S = ABS(H(EN,NA)) + ABS(H(NA,ENM2))
59 P = (R * S - W) / H(M+1,M) + H(M,M+1)
60 Q = H(M+1,M+1) - ZZ - R - S
62 S = ABS(P) + ABS(Q) + ABS(R)
66 IF (M .EQ. L) GO TO 150
67 IF (ABS(H(M,M-1)) * (ABS(Q) + ABS(R)) .LE. MACHEP * ABS(P)
68 X * (ABS(H(M-1,M-1)) + ABS(ZZ) + ABS(H(M+1,M+1)))) GO TO 150
73 IF (I .EQ. MP2) GO TO 160
78 IF (K .EQ. M) GO TO 170
82 IF (NOTLAS) R = H(K+2,K-1)
83 X = ABS(P) + ABS(Q) + ABS(R)
84 IF (X .EQ. 0.0) GO TO 260
88 170 S = SIGN(SQRT(P*P+Q*Q+R*R),P)
89 IF (K .EQ. M) GO TO 180
92 180 IF (L .NE. M) H(K,K-1) = -H(K,K-1)
100 P = H(K,J) + Q * H(K+1,J)
101 IF (.NOT. NOTLAS) GO TO 200
103 H(K+2,J) = H(K+2,J) - P * ZZ
104 200 H(K+1,J) = H(K+1,J) - P * Y
105 H(K,J) = H(K,J) - P * X
109 P = X * H(I,K) + Y * H(I,K+1)
110 IF (.NOT. NOTLAS) GO TO 220
111 P = P + ZZ * H(I,K+2)
112 H(I,K+2) = H(I,K+2) - P * R
113 220 H(I,K+1) = H(I,K+1) - P * Q
122 280 P = (Y - X) / 2.0
126 IF (Q .LT. 0.0) GO TO 320
130 IF (ZZ .NE. 0.0) WR(EN) = X - W / ZZ