5 * Revision 1.1.1.1 1996/04/01 15:02:28 mclareni
10 #if !defined(CERNLIB_DOUBLE)
11 SUBROUTINE RCHEBN(M,N,A,MDIM,B,TOL,RELERR,X,RESMAX,IRK,ITER,IOCD)
13 DIMENSION A(MDIM,*),B(*),X(*)
15 PARAMETER (R0 = 0, R1 = 1, R2 = 2)
24 CALL RVSET(M,R1,A(1,N+1),A(2,N+1))
25 CALL RVSCL(M,-R1,B(1),B(2),A(1,N+2),A(2,N+2))
35 CALL RVSET(N,R0,X(1),X(2))
44 CALL RVSET(M-K+1,R1,B(1),B(2))
56 IF(K .LE. 1 .AND. D .LE. TOL) THEN
69 IF(D .GT. TOL) GOTO 330
72 IF(MODE .EQ. 1) GOTO 50
76 IF(ABS(A(I,J)) .GT. TOL) THEN
88 110 CALL RVXCH(N+3,A(IQ,1),A(IQ,2),A(K,1),A(K,2))
89 CALL RVXCH(M+1,A(1,IP),A(2,IP),A(1,NK),A(2,NK))
91 160 IF(IRK .EQ. M) GOTO 380
109 IF(A(IQ,N+2) .GE. -TOL) THEN
110 A(IQ,N+1)=2-A(IQ,N+1)
111 CALL RVSCL(N+4-NR,-R1,A(IQ,1),A(IQ,2),A(IQ,1),A(IQ,2))
115 IF(A(IQ,J) .GE. TOL) THEN
117 1 A(1,J),A(2,J),A(1,N+1),A(2,N+1),A(1,N+1),A(2,N+1))
118 CALL RVSCL(M,-R1,A(1,J),A(2,J),A(1,J),A(2,J))
125 230 IF(IRK+1 .EQ. M) GO TO 380
126 CALL RVXCH(IRK+3,A(IQ,1),A(IQ,2),A(M,1),A(M,2))
133 IF(A(I,N+2) .LT. D) THEN
146 IF(D .GE. -TOL) GOTO 380
148 IF(DD .LT. RELTMP) THEN
155 1 A(M,1),A(M,2),A(IQ,1),A(IQ,2),A(IQ,1),A(IQ,2))
161 IF(A(IQ,J) .GT. TOL) THEN
169 IF(D .LT. BIG) GO TO 330
174 CALL RVSCL(M,RPVT,A(1,IP),A(2,IP),A(1,IP),A(2,IP))
178 CALL RVSCA(N+3-NR,-D,
179 1 A(IQ,NR),A(IQ,NR+1),A(I,NR),A(I,NR+1),A(I,NR),A(I,NR+1))
183 CALL RVSCL(IRK+2,-RPVT,A(IQ,NR),A(IQ,NR+1),A(IQ,NR),A(IQ,NR+1))
189 GOTO (110,230,260), LEV
191 380 CALL RVSET(M,R0,B(1),B(2))
192 IF(MODE .EQ. 2) GOTO 450
194 X(INT(A(I,N+3)))=A(I,N+2)
196 IF(MODE .EQ. 3 .OR. IRK .EQ. M) GOTO 450
198 B(INT(ABS(A(M+1,J)))-N)=A(M,N+2)*SIGN(R1,A(M+1,J))
201 B(INT(ABS(A(I,N+3)))-N)=(A(M,N+2)-A(I,N+2))*SIGN(R1,A(I,N+3))
203 430 DO 440 J = NR,N+1
204 IF(ABS(A(M,J)) .LE. TOL) THEN
209 450 IF(MODE .NE. 2 .AND. MODE .NE. 3) RESMAX=A(M,N+2)
210 IF(IRK .EQ. M) RESMAX=0
211 IF(MODE .EQ. 4) RESMAX=RESMAX-D