File: LOAD.FT of Tape: Various/ETH/eth11-1
(Source file text)
C .................................................................. C C SUBROUTINE LOAD C C PURPOSE C COMPUTE A FACTOR MATRIX (LOADING) FROM EIGENVALUES AND C ASSOCIATED EIGENVECTORS. THIS SUBROUTINE NORMALLY OCCURS C IN A SEQUENCE OF CALLS TO SUBROUTINES CORRE, EIGEN, TRACE, C LOAD, AND VARMX IN THE PERFORMANCE OF A FACTOR ANALYSIS. C C USAGE C CALL LOAD (M,K,R,V) C C DESCRIPTION OF PARAMETERS C M - NUMBER OF VARIABLES. C K - NUMBER OF FACTORS. K MUST BE GREATER THAN OR EQUAL C TO 1 AND LESS THAN OR EQUAL TO M. C R - A MATRIX (SYMMETRIC AND STORED IN COMPRESSED FORM C WITH ONLY UPPER TRIANGLE BY COLUMN IN CORE) CON- C TAINING EIGENVALUES IN DIAGONAL. EIGENVALUES ARE C ARRANGED IN DESCENDING ORDER, AND FIRST K C EIGENVALUES ARE USED BY THIS SUBROUTINE. THE ORDER C OF MATRIX R IS M BY M. ONLY M*(M+1)/2 ELEMENTS ARE C IN STORAGE. (STORAGE MODE OF 1) C V - WHEN THIS SUBROUTINE IS CALLED, MATRIX V (M X M) C CONTAINS EIGENVECTORS COLUMNWISE. UPON RETURNING TO C THE CALLING PROGRAM, MATRIX V CONTAINS A FACTOR C MATRIX (M X K). C C REMARKS C NONE C C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED C NONE C C METHOD C NORMALIZED EIGENVECTORS ARE CONVERTED TO THE FACTOR PATTERN C BY MULTIPLYING THE ELEMENTS OF EACH VECTOR BY THE SQUARE C ROOT OF THE CORRESPONDING EIGENVALUE. C C .................................................................. C SUBROUTINE LOAD (M,K,R,V) DIMENSION R(1),V(1) C C ............................................................... C C IF A DOUBLE PRECISION VERSION OF THIS ROUTINE IS DESIRED, THE C C IN COLUMN 1 SHOULD BE REMOVED FROM THE DOUBLE PRECISION C STATEMENT WHICH FOLLOWS. C C DOUBLE PRECISION R,V,SQ,DSQRT C C THE C MUST ALSO BE REMOVED FROM DOUBLE PRECISION STATEMENTS C APPEARING IN OTHER ROUTINES USED IN CONJUNCTION WITH THIS C ROUTINE. C C THE DOUBLE PRECISION VERSION OF THIS SUBROUTINE MUST ALSO C CONTAIN DOUBLE PRECISION FORTRAN FUNCTIONS. SQRT IN STATEMENT C 150 MUST BE CHANGED TO DSQRT. C C ............................................................... C L=0 JJ=0 DO 160 J=1,K JJ=JJ+J 150 SQ= SQRT(R(JJ)) DO 160 I=1,M L=L+1 160 V(L)=SQ*V(L) RETURN END C