1      SUBROUTINE REBAKB(NM,N,B,DL,M,Z)
2C***BEGIN PROLOGUE  REBAKB
3C***DATE WRITTEN   760101   (YYMMDD)
4C***REVISION DATE  830518   (YYMMDD)
5C***CATEGORY NO.  D4C4
6C***KEYWORDS  EIGENVALUES,EIGENVECTORS,EISPACK
7C***AUTHOR  SMITH, B. T., ET AL.
8C***PURPOSE  Forms eigenvectors of generalized symmetric eigensystem
9C            from eigenvectors of derived matrix output from REDUC2
10C***DESCRIPTION
11C
12C     This subroutine is a translation of the ALGOL procedure REBAKB,
13C     NUM. MATH. 11, 99-110(1968) by Martin and Wilkinson.
14C     HANDBOOK FOR AUTO. COMP., VOL.II-LINEAR ALGEBRA, 303-314(1971).
15C
16C     This subroutine forms the eigenvectors of a generalized
17C     SYMMETRIC eigensystem by back transforming those of the
18C     derived symmetric matrix determined by  REDUC2.
19C
20C     On Input
21C
22C        NM must be set to the row dimension of two-dimensional
23C          array parameters as declared in the calling program
24C          dimension statement.
25C
26C        N is the order of the matrix system.
27C
28C        B contains information about the similarity transformation
29C          (cholesky decomposition) used in the reduction by  REDUC2
30C          in its strict lower triangle.
31C
32C        DL contains further information about the transformation.
33C
34C        M is the number of eigenvectors to be back transformed.
35C
36C        Z contains the eigenvectors to be back transformed
37C          in its first M columns.
38C
39C     On Output
40C
41C        Z contains the transformed eigenvectors
42C          in its first M columns.
43C
44C     Questions and comments should be directed to B. S. Garbow,
45C     APPLIED MATHEMATICS DIVISION, ARGONNE NATIONAL LABORATORY
46C     ------------------------------------------------------------------
47C***REFERENCES  B. T. SMITH, J. M. BOYLE, J. J. DONGARRA, B. S. GARBOW,
48C                 Y. IKEBE, V. C. KLEMA, C. B. MOLER, *MATRIX EIGEN-
49C                 SYSTEM ROUTINES - EISPACK GUIDE*, SPRINGER-VERLAG,
50C                 1976.
51C***ROUTINES CALLED  (NONE)
52C***END PROLOGUE  REBAKB
53C
54      INTEGER I,J,K,M,N,I1,II,NM
55      REAL B(NM,N),DL(N),Z(NM,M)
56      REAL X
57C
58C***FIRST EXECUTABLE STATEMENT  REBAKB
59      IF (M .EQ. 0) GO TO 200
60C
61      DO 100 J = 1, M
62C     .......... FOR I=N STEP -1 UNTIL 1 DO -- ..........
63         DO 100 II = 1, N
64            I1 = N - II
65            I = I1 + 1
66            X = DL(I) * Z(I,J)
67            IF (I .EQ. 1) GO TO 80
68C
69            DO 60 K = 1, I1
70   60       X = X + B(I,K) * Z(K,J)
71C
72   80       Z(I,J) = X
73  100 CONTINUE
74C
75  200 RETURN
76      END
77