5 * Revision 1.1.1.1 1996/04/01 15:02:37 mclareni
10 SUBROUTINE TINVIT(NM,N,D,E,E2,M,W,IND,Z,
11 X IERR,RV1,RV2,RV3,RV4,RV6)
12 INTEGER I,J,M,N,P,Q,R,S,II,IP,JJ,NM,ITS,TAG,IERR,GROUP
13 REAL D(N),E(N),E2(N),W(M),Z(NM,M),
14 X RV1(N),RV2(N),RV3(N),RV4(N),RV6(N)
15 REAL U,V,UK,XU,X0,X1,EPS2,EPS3,EPS4,NORM,ORDER,MACHEP
17 #if defined(CERNLIB_CDC)
20 #if !defined(CERNLIB_CDC)
29 IF (Q .EQ. N) GO TO 140
30 IF (E2(Q+1) .EQ. 0.0) GO TO 140
35 IF (IND(R) .NE. TAG) GO TO 920
38 IF (S .NE. 0) GO TO 510
40 IF (P .NE. Q) GO TO 490
46 500 NORM = NORM + ABS(D(I)) + ABS(E(I))
55 510 IF (ABS(X1-X0) .GE. EPS2) GO TO 505
57 IF (ORDER * (X1 - X0) .LE. 0.0) X1 = X0 + ORDER * EPS3
61 IF (I .EQ. P) GO TO 560
62 IF (ABS(E(I)) .LT. ABS(U)) GO TO 540
68 IF (I .NE. Q) RV3(I-1) = E(I+1)
77 560 U = D(I) - X1 - XU * V
78 IF (I .NE. Q) V = E(I+1)
80 IF (U .EQ. 0.0) U = EPS3
86 RV6(I) = (RV6(I) - U * RV2(I) - V * RV3(I)) / RV1(I)
90 IF (GROUP .EQ. 0) GO TO 700
94 IF (IND(J) .NE. TAG) GO TO 630
97 640 XU = XU + RV6(I) * Z(I,J)
99 660 RV6(I) = RV6(I) - XU * Z(I,J)
103 720 NORM = NORM + ABS(RV6(I))
104 IF (NORM .GE. 1.0) GO TO 840
105 IF (ITS .EQ. 5) GO TO 830
106 IF (NORM .NE. 0.0) GO TO 740
113 760 RV6(I) = RV6(I) * XU
116 IF (RV1(I-1) .NE. E(I)) GO TO 800
119 800 RV6(I) = U - RV4(I) * RV6(I-1)
128 860 U = U + RV6(I)**2
133 900 Z(I,R) = RV6(I) * XU
136 IF (Q .LT. N) GO TO 100