home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frostbyte's 1980s DOS Shareware Collection
/
floppyshareware.zip
/
floppyshareware
/
DOOG
/
PCSSP2.ZIP
/
STATFCTR.ZIP
/
LOAD.FOR
next >
Wrap
Text File
|
1985-11-29
|
3KB
|
75 lines
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