 
      SUBROUTINE MODAL(M, X, Y, XLAB, YLAB, PT, IXMX, IYMX, NBLOKS,
     *                 IWORK, WORK1, DMWRK2, WORK2, DMCWRK, CWORK,
     *                 OUNIT)
C
C<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
C
C   PURPOSE
C   -------
C
C      PRODUCES A BIVARIATE HISTOGRAM
C
C   DESCRIPTION
C   -----------
C
C   1.  A CONTINGENCY TABLE OF SIZE IXMX BY IYMX IS CALCULATED BETWEEN
C       THE TWO VARIABLES.  THEN THE ROUTINE DETERMINES THE BLOCK OF
C       THE TABLE WITH THE SMALLEST AREA WITH A GIVEN FREQUENCY.  THIS
C       BLOCK IS ADDED TO THE BLOCK LIST AND DELETED FROM THE TABLE.
C       THE PROCESS IS REPEATED AND THE SMALLEST BLOCK OF THE NEW TABLE
C       WITH THE GIVEN FREQUENCY IS FOUND.  THE ROUTINE STOPS WHEN THE
C       FREQUENCY OF THE ENTIRE TABLE IS LESS THAN THE GIVEN FREQUENCY.
C
C   2.  THE RESULTS ARE PRINTED ON FORTRAN UNIT OUNIT.  A RECTANGLE
C       ABOUT TWICE THE SIZE OF THE CONTINGENCY TABLE IS PRINTED, AND
C       THEN EACH BLOCK FROM SMALLEST TO LARGEST AREA IS ADDED TO THE
C       DIAGRAM.  IF A BLOCK OVERLAPS AN EXISTING BLOCK, THE SYMBOLS OF
C       THE EXISTING BLOCK WILL BE RETAINED.  THEREFORE, THE SMALLEST
C       BLOCKS WILL APPEAR COMPLETE.
C
C   INPUT PARAMETERS
C   ----------------
C
C   M     INTEGER SCALAR (UNCHANGED ON OUTPUT).
C         THE NUMBER OF CASES.
C
C   X     REAL VECTOR DIMENSIONED AT LEAST M (UNCHANGED ON OUTPUT).
C         THE VALUES OF THE CASES FOR THE FIRST VARIABLE.
C
C   Y     REAL VECTOR DIMENSIONED AT LEAST M (UNCHANGED ON OUTPUT).
C         THE VALUES OF THE CASES FOR THE SECOND VARIABLE.
C
C   XLAB  4-CHARACTER VARIABLE (UNCHANGED ON OUTPUT).
C         THE LABEL OF THE FIRST VARIABLE.
C
C   YLAB  4-CHARACTER VARIABLE (UNCHANGED ON OUTPUT).
C         THE LABEL OF THE SECOND VARIABLE.
C
C   PT    REAL SCALAR (UNCHANGED ON OUTPUT).
C         THE FREQUENCY THRESHOLD FOR EACH BLOCK.
C
C   IXMX  INTEGER SCALAR (UNCHANGED ON OUTPUT).
C         THE NUMBER OF ROWS IN THE CONTINGENCY TABLE.
C
C   IYMX  INTEGER SCALAR (UNCHANGED ON OUTPUT).
C         THE NUMBER OF COLUMNS IN THE CONTINGENCY TABLE.
C
C   NBLOKS INTEGER SCALAR (UNCHANGED ON OUTPUT).
C         THE MAXIMUM NUMBER OF BLOCKS.
C
C   IWORK INTEGER VECTOR DIMENSIONED AT LEAST 4*NBLOKS.
C         WORK VECTOR.
C
C   WORK1 REAL VECTOR DIMENSIONED AT LEAST 3*NBLOKS.
C         WORK VECTOR.
C
C   DMWRK2 INTEGER SCALAR (UNCHANGED ON OUTPUT).
C         THE FIRST DIMENSION OF THE MATRIX WORK2.  MUST BE AT LEAST
C            IXMX.
C
C   WORK2 REAL MATRIX WHOSE FIRST DIMENSION MUST BE DMWRK2 AND SECOND
C            DIMENSION MUST BE AT LEAST IYMX.
C         WORK MATRIX.
C
C   DMCRWK INTEGER SCALAR (UNCHANGED ON OUTPUT).
C         THE FIRST DIMENSION OF THE MATRIX CWORK.  MUST BE AT LEAST
C            IXMX+IYMX+1.
C
C   CWORK MATRIX OF 1-CHARACTER VARIABLES WHOSE FIRST DIMENSION MUST BE
C            DMCWRK AND WHOSE SECOND DIMENSION MUST BE AT LEAST
C            IXMX+IYMX+1.
C         WORK MATRIX.
C
C   OUNIT INTEGER SCALAR (UNCHANGED ON OUTPUT).
C         UNIT NUMBER FOR OUTPUT.
C
C   REFERENCES
C   ----------
C
C     HARTIGAN, J. A. (1975).  CLUSTERING ALGORITHMS, JOHN WILEY &
C        SONS, INC., NEW YORK.  PAGES 40, 50-51.
C
C     HARTIGAN, J. A. (1975) PRINTER GRAPHICS FOR CLUSTERING. JOURNAL OF
C        STATISTICAL COMPUTATION AND SIMULATION. VOLUME 4,PAGES 187-213.
C
C<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
C
 
 
