C***********************************************************************
C     THIS SUBROUTINE IS DESIGNED TO CALL ROUTINES TO ILLUSTRATE THE
C     EMPIRICAL DISTRIBUTIONS OF PERPENDICUALR DISTANCES, SIGHTING
C     DISTANCES, MEASURED SIGHTING ANGLES, COMPUTED SIGHTING ANGLES,
C     AND SINE OF THE SIGHTING ANGLE DEPENDING ON THE STATUS OF THE
C     DATA.  THE SORTED MEASUREMENTS ARE OUTPUT AND THEN HISTOGRAMS
C     AND/OR CDF PLOTS.
C
C     SUBROUTINES CALLED: HEADER,HISTGM,PCDF,PHIST
C***********************************************************************
      SUBROUTINE UNIVAR
C***********************************************************************
C     DECLARATIONS
C***********************************************************************
      INCLUDE 'PARMTR.INC'
      CHARACTER*1 NAME2(24), NAME3(24), NAME4(24), NAME5(24)
      INTEGER CNT, STATUS
      CHARACTER*1 LABEL, HEAD, UL
      REAL MESANG
      LOGICAL GRP, POOL, PEST, SEST, DESC, DEF, CUTP, TRUNC, LIST, PLOTS
     1 , HST, WARN, CDFPLT, HELP
C***********************************************************************
C     COMMON STATEMENTS
C***********************************************************************
      COMMON /STATS/ SM(10), CORMAT(5,5)
      COMMON /ALPHA/ LABEL(80), HEAD(30), UL(3,25)
      COMMON /PAGE/ IPAGE
      COMMON /IND/ IC, II, IREP, STATUS
      COMMON /DESOPT/ LIST, PLOTS, HST, CDFPLT
      COMMON /OPTION/ GRP, POOL, PEST, SEST, DESC, DEF, CUTP, TRUNC,
     1 HELP
      COMMON /NUM/ XL(MAXLIN), WIDTH, N, CNT, CONV(3), VARN, IDF, WARN
      COMMON /INTER/ KCUT, CUT(MAXCEL), FREQ(MAXCEL), NCUT, NKC(5),
     1    NK(5), RFREQ(5,MAXCEL), CCUT(5,MAXCEL)
      COMMON /MEASUR/ PD(MAXOBJ), SD(MAXOBJ), MESANG(MAXOBJ),
     1 COMANG(MAXOBJ), SINA(MAXOBJ)
C***********************************************************************
C     DATA STATEMENTS
C***********************************************************************
      DATA NAME2 /'S','i','g','h','t','i','n','g',' ','D','i','s','t',
     1 'a','n','c','e','s',' ',' ',' ',' ',' ',' '/
      DATA NAME3 /'M','e','a','s','u','r','e','d',' ','S','i','g','h',
     1 't','i','n','g',' ','A','n','g','l','e','s'/
      DATA NAME4 /'C','o','m','p','u','t','e','d',' ','S','i','g','h',
     1 't','i','n','g',' ','A','n','g','l','e','s'/
      DATA NAME5 /'S','i','g','h','t','i','n','g',' ','A','n','g','l',
     1 'e',' ','S','i','n','e','s',' ',' ',' ',' '/
      KKCUT=MIN0(MAXCEL,IFIX(FLOAT(N)**.5))
      IF (STATUS.EQ.2) GO TO 40
      IF (STATUS.EQ.7) GO TO 50
C***********************************************************************
C   SUMMARIZE PERPENDICULAR DISTANCES(STATUS: 1,3,4,5, OR 6)
C***********************************************************************
      CALL HEADER (1)
      WRITE (6,80)
      CALL HEADER (2)
      WRITE (6,90)
      IF (TRUNC.AND.(CNT.LT.N)) WRITE (6,100) CNT
      IF (.NOT.TRUNC) WRITE (6,110)
      WRITE (6,350)
      WRITE (6,120) (PD(I),I=1,N)
      IF (HST) THEN
         DO 20 I=1,NCUT
            CALL HEADER (1)
            WRITE (6,130)
            KCUT=NKC(I)
            RINT=WIDTH/FLOAT(KCUT)
            IF (CUTP) THEN
               WRITE (6,140) I
            ELSE
               WRITE (6,150) I,RINT,(UL(1,J),J=1,25)
            ENDIF
            DO 10 J=1,KCUT
               CUT(J)=CCUT(I,J)
   10          FREQ(J)=RFREQ(I,J)
            CALL HISTGM (FREQ,KCUT,38,CUT)
            WRITE (6,160) (UL(1,J),J=1,25)
   20       CONTINUE
      ENDIF
      IF (.NOT.CDFPLT) GO TO 40
      CALL HEADER (1)
      WRITE (6,170)
      CALL PCDF (PD,CNT,0.0,PD(CNT),3)
      WRITE (6,230) (UL(1,J),J=1,25)
C***********************************************************************
C   SUMMARIZE SIGHTING DISTANCES(STATUS: 1,2,4, OR 5)
C***********************************************************************
   40 IF (STATUS.EQ.3) RETURN
      IF (STATUS.NE.6) THEN
      CALL HEADER (1)
      WRITE (6,180)
      CALL HEADER (2)
      WRITE (6,190)
      WRITE (6,360)
      WRITE (6,120) (SD(I),I=1,N)
      IF (HST) CALL PHIST (SD,N,KKCUT,SD(N),NAME2,2)
      IF (.NOT.CDFPLT) GO TO 50
      CALL HEADER (1)
      WRITE (6,210)
      CALL PCDF (SD,N,0.0,SD(N),3)
      WRITE (6,270) (UL(1,J),J=1,25)
      ENDIF
C***********************************************************************
C     SUMMARIZE MEASURED SIGHTING ANGLES (STATUS:4,5,6,7)
C***********************************************************************
   50 IF (STATUS.EQ.2) RETURN
      IF (STATUS.NE.1) THEN
      CALL HEADER (1)
      WRITE (6,220)
      CALL HEADER (2)
      WRITE (6,370)
      WRITE (6,240) (MESANG(I),I=1,N)
      IF (HST) CALL PHIST (MESANG,N,KKCUT,90.,NAME3,3)
      IF (.NOT.CDFPLT) GO TO 60
      CALL HEADER (1)
      WRITE (6,250)
      CALL PCDF (MESANG,N,0.0,90.,3)
      WRITE (6,300)
      ENDIF
C***********************************************************************
C     SUMMARIZE COMPUTED ANGLES(STATUS: 1 OR 4)
C***********************************************************************
   60 IF (STATUS.LT.5) THEN
      CALL HEADER (1)
      WRITE (6,260)
      CALL HEADER (2)
      WRITE (6,380)
      WRITE (6,240) (COMANG(I),I=1,N)
      IF (HST) CALL PHIST (COMANG,N,KKCUT,90.,NAME4,3)
      IF (.NOT.CDFPLT) GO TO 70
      CALL HEADER (1)
      WRITE (6,280)
      CALL PCDF (COMANG,N,0.0,90.0,3)
      WRITE (6,330)
      ENDIF
C***********************************************************************
C     SUMMARIZE SINE OF THE SIGHTING ANGLES(STATUS:1,4,5,6,7)
C***********************************************************************
   70 CALL HEADER (1)
      WRITE (6,290)
      CALL HEADER (2)
      WRITE (6,390)
      WRITE (6,310) (SINA(I),I=1,N)
      IF (HST) CALL PHIST (SINA,N,KKCUT,1.,NAME5,0)
      IF (.NOT.CDFPLT) RETURN
      CALL HEADER (1)
      WRITE (6,320)
      CALL PCDF (SINA,N,0.0,1.0,3)
      WRITE (6,340)
      RETURN
C***********************************************************************
C     FORMAT STATEMENTS
C***********************************************************************
   80 FORMAT (///10X,60('*')/10X,'*',58X,'*'/10X,'*',11X,
     1 'Perpendicular Distance Distributions',11X,'*'/10X,'*',
     2 58X,'*'/10X,60('*'))
   90 FORMAT (//'0Illustration of the distributions of observed',
     1' perpendicular distances provides'/
     2' information about the detection function g(x) which dictates',
     3' the type of esti-'/
     4' mator to be used.  However, a graphical representation alone',
     5' should not be the'/
     6' basis for a decision and more reliance should be placed',
     5' on statistical tests.'/
     6' The illustrations can be used to pick out anomalies in the',
     7' data such as'/
     8' errors or extreme outliers.  Caution must be exercised',
     8' in interpreting'/
     9' histograms with unequal intervals because it will not be',
     A' immediately obvious.')
  100 FORMAT (' All of the observations are listed among the',
     1' sorted data.  However,'/
     2' the user has chosen to truncate the data further and only ',I4,
     3' observations have'/
     4' been used in the histograms and/or CDFs.')
  110 FORMAT (' For the purpose of illustrating the histogram',
     1' and/or CDF of untruncated'/
     2' data it is necessary to ignore that there is no final end',
     3' point (unbounded'/
     4' width.  In the case of histograms the last end point given',
     5' on the figures is'/
     6' either the last order statistic or a user defined end point. ',
     7' For CDF plots'/
     8' the last order statistic is used as the final end point. ',
     9' In reality the last'/
     A' interval extends to infinity.')
  120 FORMAT (8G10.3)
  130 FORMAT (//'0Histogram of Perpendicular Distance')
  140 FORMAT (' User Defined Intervals, Cut Point Set ',I1//)
  150 FORMAT (' Cut Point Set ',I1,', Interval Width = ',G10.4,1X,
     1 25A1//)
  160 FORMAT (//'0Perpendicular Distance in ',25A1)
  170 FORMAT (/41X,'Sample CDF of Perpendicular Distances')
  180 FORMAT (///10X,60('*')/10X,'*',58X,'*'/10X,'*',14X,
     1 'Sighting Distance Distributions',13X,'*'/10X,'*',58X,'*'
     2 /10X,60('*'))
  190 FORMAT (//'0For illustration of histograms and/or CDFs of',
     1' sighting distances it is'/
     2' necessary to ignore that there is no final end point',
     3' (unbounded).  The last'/
     4' order statistic (largest sighting distance) has been used for',
     5' the final end'/
     6' point.  However, in reality the last interval extends',
     7' to infinity.')
  210 FORMAT (/41X,'Sample CDF of the sighting distances')
  220 FORMAT (///10X,60('*')/10X,'*',58X,'*'/10X,'*',11X,
     1 'Measured Sighting Angle Distributions',10X,'*'/10X,'*',
     2 58X,'*'/10X,60('*'))
  230 FORMAT (/41X,'Perpendicular Distance in ',25A1)
  240 FORMAT (1X,12F6.1)
  250 FORMAT (/41X,'Sample CDF of the Measured Sighting Angles')
  260 FORMAT (///10X,60('*')/10X,'*',58X,'*'/10X,'*',11X,
     1 'Computed Sighting Angle Distributions',10X,'*'/10X,'*',
     2 58X,'*'/10X,60('*'))
  270 FORMAT (/41X,'Sighting Distance in ',25A1)
  280 FORMAT (/41X,'Sample CDF of the Computed Sighting Angles')
  290 FORMAT (///10X,60('*')/10X,'*',58X,'*'/10X,'*',13X,
     1 'Sighting Angle Sine Distributions',12X,'*'/10X,'*',58X,
     2 '*'/10X,60('*'))
  300 FORMAT (/41X,'Measured Sighting Angle in Degrees')
  310 FORMAT (1X,12F6.2)
  320 FORMAT (/41X,'Sample CDF of the Sighting Angle Sines')
  330 FORMAT (/41X,'Computed Sighting Angle in Degrees')
  340 FORMAT (/41X,'Sighting Angle Sines')
  350 FORMAT (//'0Ordered Perpendicular Distances'//)
  360 FORMAT (//'0Ordered Sighting Distances'//)
  370 FORMAT (//'0Ordered Measured Sighting Angles'//)
  380 FORMAT (//'0Ordered computed Sighting Angles'//)
  390 FORMAT (//'0Ordered Sighting Angle Sines'//)
      END
