home *** CD-ROM | disk | FTP | other *** search
- C
- 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
- 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