File: MCANO.FT of Tape: Various/ETH/eth11-1
(Source file text)
C SAMPLE MAIN PROGRAM FOR CANONICAL CORRELATION - MCANO C USES CORRE,CANOR,MINV,NROOT,EIGEN C AND DATA (ATTACHED) C THE FOLLOWING DIMENSIONS MUST BE GREATER THAN OR EQUAL TO THE C TOTAL NUMBER OF VARIABLES M (M=MP+MQ, WHERE MP IS THE NUMBER C OF LEFT HAND VARIABLES AND MQ IS THE NUMBER OF RIGHT HAND C VARIABLES). DIMENSION XBAR(9),STD(9),CANR(9),CHISQ(9),NDF(9) C THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO THE C PRODUCT OF M*M DIMENSION RX(81) C THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO THE C (M+1)*M/2 DIMENSION R(45) C THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO THE C PRODUCT OF MQ*MQ DIMENSION COEFL(81) C THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO THE C PRODUCT OF MQ*MQ DIMENSION COEFR(25) C COMMON IOUT,IN C....................................................................... 1 FORMAT(A4,A2,I5,2I2) 2 FORMAT(//'CANONICAL CORRELATION.....'A4,A2//' NO. OF OBSER 1VATIONS'8X,I4/' NO. OF LEFT HAND VARIABLES'I5/' NO. OF 2 RIGHT HAND VARIABLES'I4/) 3 FORMAT(/' MEANS'/(5F16.5)) 4 FORMAT(/' STANDARD DEVIATIONS'/(5F16.5)) 5 FORMAT(/' CORRELATION COEFFICIENTS') 6 FORMAT(/' ROW'I3/(5F16.5)) 7 FORMAT(//' NUMBER OF'7X'LARGEST'7X'CORRESPONDING'27X'DEGREES' 1/' EIGENVALUES'5X'EIGENVALUE'7X'CANONICAL'7X'LAMBDA' 25X'CHI-SQUARE'4X'OF'/4X'REMOVED'7X'REMAINING'7X'CORRELATION' 328X'FREEDOM'/) 8 FORMAT(I7,F19.5,F16.5,2F14.5,3X,I5) 9 FORMAT(/' CANONICAL CORRELATION'F12.5) 10 FORMAT(/' COEFFICIENTS FOR LEFT HAND VARIABLES'/(5F16.5)) 11 FORMAT(/' COEFFICIENTS FOR RIGHT HAND VARIABLES'/(5F16.5)) C....................................................................... C OUTPUT CHANNEL = IOUT, INPUT CHANNEL = IN IOUT=2 IN=1 C C READ PROBLEM PARAMETER CARD 100 READ(IN,1) PR,PR1,N,MP,MQ C PR=PROBLEM NUMBER (MAY BE ALPHAMERIC) C PR1=PROBLEM NUMBER (CONTINUED) C N=NUMBER OF OBSERVATIONS C MP=NUMBER OF LEFT HAND VARIABLES C MQ=NUMBER OF RIGHT HAND VARIABLES IF(N.EQ.0) STOP WRITE(IOUT,2) PR,PR1,N,MP,MQ M=MP+MQ IO=0 X=0.0 CALL CORRE(N,M,IO,X,XBAR,STD,RX,R,CANR,CHISQ,COEFL) C PRINT MEANS, STANDARD DEVIATIONS, AND CORRELATION C COEFFICIENTS OF ALL VARIABLES WRITE(IOUT,3) (XBAR(I),I=1,M) WRITE(IOUT,4) (STD(I),I=1,M) WRITE(IOUT,5) DO 160 I=1,M DO 150 J=1,M IF(I-J) 120,130,130 120 L=I+(J*J-J)/2 GO TO 140 130 L=J+(I*I-I)/2 140 CANR(J)=R(L) 150 CONTINUE 160 WRITE(IOUT,6) I,(CANR(J),J=1,M) CALL CANOR(N,MP,MQ,R,XBAR,STD,CANR,CHISQ,NDF,COEFR,COEFL,RX) C PRINT EIGENVALUES, CANONICAL CORRELATIONS, LAMBDA, CHI-SQUARES C DEGREES OF FREEDOMS WRITE(IOUT,7) DO 170 I=1,MQ N1=I-1 C TEST WHETHER EIGEN VALUE IS GREATER THAN ZERO IF(XBAR(I))165,165,170 165 MM=N1 GO TO 175 170 WRITE(IOUT,8) N1,XBAR(I),CANR(I),STD(I),CHISQ(I),NDF(I) MM=MQ C PRINT CANONICAL COEFFICIENTS 175 N1=0 N2=0 DO 200 I=1,MM WRITE(IOUT,9) CANR(I) DO 180 J=1,MP N1=N1+1 180 XBAR(J)=COEFL(N1) WRITE(IOUT,10) (XBAR(J),J=1,MP) DO 190 J=1,MQ N2=N2+1 190 XBAR(J)=COEFR(N2) WRITE(IOUT,11) (XBAR(J),J=1,MQ) 200 CONTINUE GO TO 100 END C....................................................................... C SAMPLE INPUT SUBROUTINE - DATA C C PURPOSE C READ AN OBSERVATION (N DATA VALUES) FROM THE INPUT DEVICE. C THIS SUBROUTINE IS CALLED BY CORRE AND MUST BE PROVIDED BY THE USER C IF SIZE AND LOCATION OF DATA FIELDS ARE DIFFERENT FROM PROBLEM C TO PROBLEM, THIS SUBROUTINE MUST BE RECOMPILED WITH A PROPER C FORMAT STATEMENT. C C USAGE C CALL DATA(M,D) C C DESCRIPTION OF PARAMETERS C M - THE NUMBER OF VARIABLES IN AN OBSERVATION C D - OUTPUT VECTOR OF LENGTH M CONTAINING THE OBSERVATION DATA. C C REMARKS C THE TYPE OF CONVERSION SPECIFIED IN THE FORMAT MUST BE EITHER C F OR E. C C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED C NONE C....................................................................... SUBROUTINE DATA(M,D) DIMENSION D(1) COMMON IOUT,IN 1 FORMAT(12F6.0) C READ AN OBSERVATION FORM INPUT DEVICE. READ(IN,1) (D(I),I=1,M) RETURN END