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