C***********************************************************************
C   COMPUTE MEANS AND STANDARD DEVIATIONS OF THE OBSERVED DATA
C
C   REGARDING CORMAT: THE DIAGONAL CONTAINS THE STANDARD DEVIATIONS, WHILE
C   OFF DIAGONAL ELEMENTS ARE THE CORRELATIONS(FOR I,J=1,...,5)
C***********************************************************************
      SUBROUTINE MEAN (N)
      INCLUDE 'PARMTR.INC'
      REAL DATA(MAXOBJ,5)
C***********************************************************************
C     COMMON STATEMENTS
C***********************************************************************
      COMMON /MEASUR/ PD(MAXOBJ), SD(MAXOBJ), MESANG(MAXOBJ),
     1 COMANG(MAXOBJ), SINA(MAXOBJ)
      COMMON /STATS/ SM(10), CORMAT(5,5)
C***********************************************************************
C     EQUIVALENCE STATEMENTS
C***********************************************************************
      EQUIVALENCE (DATA(1,1),PD(1))
C***********************************************************************
C     DECLARATIONS
C***********************************************************************
      DOUBLE PRECISION Q
C***********************************************************************
C     CALCULATE THE MEANS
C***********************************************************************
      DO 20 I=1,5
         Q=0.
         DO 10 M=1,N
   10       Q=Q+DBLE(DATA(M,I))/DBLE(N)
   20 SM(I)=Q
C***********************************************************************
C     CALCULATE THE VARIANCE-COVARIANCE MATRIX EXCEPT THE STANDARD
C     DEVIATIONS ARE ON THE DIAGONAL RATHER THAN THE VARIANCES
C***********************************************************************
      DO 30 I=1,5
         DO 30 J=1,5
   30    CORMAT(I,J)=0.0
      IF (N.EQ.1) RETURN
      DO 50 I=1,5
         DO 50 J=I,5
            Q=0.
            DO 40 M=1,N
   40       Q=Q+
     1      (DBLE(DATA(M,I))-DBLE(SM(I)))*(DBLE(DATA(M,J))-DBLE(SM(J)))
         CORMAT(I,J)=Q/DBLE(N-1)
         IF (I.EQ.J) CORMAT(I,J)=SQRT(ABS(CORMAT(I,J)))
   50    CONTINUE
C***********************************************************************
C     CALCULATE THE CORRELATION MATRIX LEAVING THE STANDARD DEVIATIONS
C     THE DIAGONAL.
C***********************************************************************
      DO 70 I=1,4
         DO 70 J=I+1,5
            Q=CORMAT(I,I)*CORMAT(J,J)
            IF (Q.NE.0.) THEN
               CORMAT(I,J)=CORMAT(I,J)/Q
               CORMAT(J,I)=CORMAT(I,J)
            ELSE
               CORMAT(I,J)=0.
               CORMAT(J,I)=0.
            ENDIF
   70       CONTINUE
      RETURN
      END
