C*********************************************************************** C SUBROUTINE PRINT WRITES THE INPUT DATA, THE COMPUTED DATA IF ANY,AND C SOME DESCRIPTIVE STATISTICS.SUBROUTINE LINE(WHICH PRINTS THE ACTUAL C LINES) IS AN INTEGRAL PART OF PRINT. C C SUBROUTINES CALLED: LINE,COR C*********************************************************************** SUBROUTINE PRINT C*********************************************************************** C DECLARATIONS C*********************************************************************** INCLUDE 'PARMTR.INC' INTEGER CNT, STATUS LOGICAL WARN REAL X(5), Y(5) CHARACTER*2 FLAG CHARACTER*25 ID C*********************************************************************** C COMMON STATEMENTS C*********************************************************************** COMMON /STATS/ SM(10), CORMAT(5,5) COMMON /IND/ IC, II, IREP, STATUS COMMON /NUM/ XL(MAXLIN), WIDTH, N, CNT, CONV(3), VARN, IDF, WARN COMMON /MEASUR/ DATA(MAXOBJ,5) C*********************************************************************** C WRITE OUT THE INPUT DATA AND THE COMPUTED DATA. C*********************************************************************** IF (STATUS.EQ.1) THEN FLAG='**' ELSE FLAG=' ' ENDIF WRITE(6,100) FLAG WRITE(6,110) K=41 DO 10 I=1,N X(1)=DATA(I,1) X(2)=DATA(I,2) X(3)=DATA(I,3) X(4)=DATA(I,4) X(5)=DATA(I,5) IF (I.EQ.K) THEN WRITE(6,110) CALL HEADER(1) WRITE(6,100) FLAG WRITE(6,110) K=K+50 ENDIF WRITE (ID,'(21X,I4)') I CALL LINE (STATUS,ID,X) 10 CONTINUE WRITE (6,110) C*********************************************************************** C WRITE THE MEANS,STANDARD DEVIATIONS AND STANDARD ERRORS OF THE MEANS C*********************************************************************** CALL HEADER (1) WRITE (6,300) WRITE (6,105) FLAG WRITE (6,110) X(1)=SM(1) X(2)=SM(2) X(3)=SM(3) X(4)=SM(4) X(5)=SM(5) ID=' ' ID(21:25)='Means' CALL LINE (STATUS,ID,X) FACT=1./SQRT(FLOAT(N)) DO 20 I=1,5 Q=CORMAT(I,I) X(I)=Q SM(I+5)=Q Y(I)=Q*FACT 20 CORMAT(I,I)=1000000. C*********************************************************************** C THE ABOVE PLACES THE SAMPLE STANDARD DEVIATIONS INTO POSITIONS 6-10 C OF SM. C*********************************************************************** ID(7:25)='Standard Deviations' CALL LINE (STATUS,ID,X) ID=' Standard Error of Means' CALL LINE (STATUS,ID,Y) WRITE (6,110) IF ((STATUS.EQ.2).OR.(STATUS.EQ.3).OR.(STATUS.EQ.7)) RETURN C*********************************************************************** C IF THERE WERE ANY CORRELATIONS COMPUTABLE, PRINT THE MODIFIED C CORRELATION MATRIX. C*********************************************************************** WRITE (6,120) DO 30 I=1,4 IP1=I+1 DO 30 J=IP1,5 R=CORMAT(I,J) PSQ=0.0 IF (ABS(R).LT..00001) GO TO 30 CALL COR (N,R,P,PSQ) IF (PSQ.EQ.-1.) WRITE (6,130) I,J 30 CORMAT(I,J)=1.0-PSQ WRITE (6,140) WRITE (6,290) FLAG IF (STATUS.EQ.1) THEN C*********************************************************************** C STATUS CODE 1 COMES HERE C*********************************************************************** WRITE (6,150) CORMAT(1,1),CORMAT(1,2),CORMAT(1,4),CORMAT(1,5), 1 ' PD' WRITE (6,150) CORMAT(2,1),CORMAT(2,2),CORMAT(2,4),CORMAT(2,5), 1 ' SD' WRITE (6,120) WRITE (6,150) CORMAT(4,1),CORMAT(4,2),CORMAT(4,4),CORMAT(4,5), 1 'COMANG' WRITE (6,150) CORMAT(5,1),CORMAT(5,2),CORMAT(5,4),CORMAT(5,5), 1 'SINE**' C*********************************************************************** C STATUS CODE 4 COMES HERE C*********************************************************************** ELSE IF (STATUS.EQ.4) THEN WRITE (6,160) (CORMAT(1,J),J=1,5),' PD' WRITE (6,160) (CORMAT(2,J),J=1,5),' SD' WRITE (6,160) (CORMAT(3,J),J=1,5),'MESANG' WRITE (6,160) (CORMAT(4,J),J=1,5),'COMANG' WRITE (6,160) (CORMAT(5,J),J=1,5),' SINE' C*********************************************************************** C STATUS CODE 5 COMES HERE C*********************************************************************** ELSE IF (STATUS.EQ.5) THEN WRITE (6,170) CORMAT(1,1),CORMAT(1,2),CORMAT(1,3),CORMAT(1,5), 1 ' PD' WRITE (6,170) CORMAT(2,1),CORMAT(2,2),CORMAT(2,3),CORMAT(2,5), 1 ' SD' WRITE (6,170) CORMAT(3,1),CORMAT(3,2),CORMAT(3,3),CORMAT(3,5), 1 'MESANG' WRITE (6,120) WRITE (6,170) CORMAT(5,1),CORMAT(5,2),CORMAT(5,3),CORMAT(5,5), 1 ' SINE' C*********************************************************************** C STATUS CODE 6 COMES HERE C*********************************************************************** ELSE IF (STATUS.EQ.6) THEN WRITE (6,180) CORMAT(1,1),CORMAT(1,3),CORMAT(1,5),' PD' WRITE (6,120) WRITE (6,180) CORMAT(3,1),CORMAT(3,3),CORMAT(3,5),'MESANG' WRITE (6,120) WRITE (6,180) CORMAT(5,1),CORMAT(5,3),CORMAT(5,5),' SINE' ENDIF DO 80 I=1,5 80 CORMAT(I,I)=SM(I+5) RETURN C*********************************************************************** C FORMAT STATEMENTS C*********************************************************************** C 100 FORMAT (1H0,15X,'Data Point',7X,'PD',10X,'SD',7X,'MESANG', 1 4X,'COMANG',4X,'SINE',A2) 105 FORMAT (1H0,16X,'Parameter',7X,'PD',10X,'SD',7X,'MESANG', 1 4X,'COMANG',4X,'SINE',A2) 110 FORMAT (1H ,79(1H-)) 120 FORMAT (1H0) 130 FORMAT (/,1H0,4X,'Probability level for correlation ',2I3, 1' is unreliable') 140 FORMAT (//5X,'Correlations (lower off diagonal), and their two'/ 1 5X,'tailed significance levels (upper off diagonal)') 150 FORMAT (1H0,4X,2(3X,F7.4),10X,2(3X,F7.4),T61,A6) 160 FORMAT (1H0,4X,5(3X,F7.4),T61,A6) 170 FORMAT (1H0,4X,3(3X,F7.4),13X,F7.4,T61,A6) 180 FORMAT (1H0,7X,F7.4,13X,F7.4,13X,F7.4,T61,A6) 290 FORMAT (1H0,10X,'PD',8X,'SD',6X,'MESANG',4X,'COMANG',4X,'SINE',A2) 300 FORMAT (///5X,'Summary Statistics'/) END