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