 
      SUBROUTINE SPLIT1(MM, M, N, A, CLAB, RLAB, TITLE, DMW, W, TH,
     *                  KD, IWORK, DMIWRK, IWORK1, DMWORK, WORK, IERR,
     *                  OUNIT)
C
C<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
C
C   PURPOSE
C   -------
C
C      SPLITS THE CASES IN EACH VARIABLE UNTIL ALL WITHIN-CLUSTER
C      VARIANCES ARE SMALLER THAN A USER-SPECIFIED THRESHOLD
C
C   DESCRIPTION
C   -----------
C
C   1.  THE THRESHOLD IS THE LARGEST WITHIN-CLUSTER VARIANCE FOR EACH
C       VARIABLE.  THE VARIABLES MUST BE SCALED SIMILARLY (CLUSTER
C       SUBROUTINE STAND CAN BE USED TO STANDARDIZE THE VARIABLES).
C       THE ROUTINE STARTS WITH ONE CLUSTER OF ALL CASES FOR EACH
C       VARIABLE.  FOR EACH CLUSTER WHOSE VARIANCE IS LARGER THAN THE
C       THRESHOLD, IT IS SPLIT INTO TWO CLUSTERS SUCH THAT THE SUM OF
C       THE TWO WITHIN-CLUSTER VARIANCES IS SMALLEST.  THIS REPEATS
C       UNTIL ALL CLUSTER VARIANCES ARE SMALLER THAN THE THRESHOLD.
C       THE THRESHOLD SHOULD BE CHOSEN WISELY AS A LARGE THRESHOLD WILL
C       PRODUCE A FEW LARGE CLUSTERS AND A SMALL THRESHOLD WILL PRODUCE
C       MANY SMALL CLUSTERS.
C
C   2.  A MATRIX CAN BE USED TO WEIGH THE DATA VALUES.  A WEIGHT OF 1.
C       WILL GIVE THE VALUE FULL WEIGHT, A WEIGHT OF 0.  WILL GIVE THE
C       VALUE NO WEIGHT (IE.  A MISSING VALUE).  ALL WEIGHTS MUST BE
C       BETWEEN 0.  AND 1., AND THE WEIGHT MATRIX WILL BE DESTROYED
C       DURING EXECUTION.
C
C   3.  THE OUTPUT DIAGRAM IS AN ARRAY WITH THE VARIABLES LABELING THE
C       COLUMNS AND THE CASES LABELING THE ROWS AND THE VARIABLE VALUES
C       MULTIPLIED BY 10 AS THE ELEMENTS OF THE ARRAY.  THE HORIZONTAL
C       LINES OUTLINE THE BLOCKS AS EACH BLOCK IS ASSUMED TO CONTAIN
C       ONLY ONE VARIABLE AND HENCE, ONLY ONE COLUMN.  THE OUTPUT
C       DIAGRAM IS WRITTEN ON FORTRAN UNIT OUNIT.
C
C   INPUT PARAMETERS
C   ----------------
C
C   MM    INTEGER SCALAR (UNCHANGED ON OUTPUT).
C         THE LEADING DIMENSION OF MATRIX A.  MUST BE AT LEAST M.
C
C   M     INTEGER SCALAR (UNCHANGED ON OUTPUT).
C         THE NUMBER OF CASES.
C
C   N     INTEGER SCALAR (UNCHANGED ON OUTPUT).
C         THE NUMBER OF VARIABLES.
C
C   A     REAL MATRIX WHOSE FIRST DIMENSION MUST BE MM AND SECOND
C            DIMENSION MUST BE AT LEAST M (CHANGED ON OUTPUT).
C         THE DATA MATRIX.
C
C         A(I,J) IS THE VALUE FOR THE J-TH VARIABLE FOR THE I-TH CASE.
C
C   CLAB  VECTOR OF 4-CHARACTER VARIABLES DIMENSIONED AT LEAST N
C            (UNCHANGED ON OUTPUT).
C         LABELS OF THE VARIABLES.
C
C   RLAB  VECTOR OF 4-CHARACTER VARIABLES DIMENSIONED AT LEAST M
C            (CHANGED ON OUTPUT).
C         LABELS OF THE CASES.
C
C   TITLE 10-CHARACTER VARIABLE (UNCHANGED ON OUTPUT).
C         TITLE OF THE DATA SET.
C
C   DMW   INTEGER SCALAR (UNCHANGED ON OUTPUT).
C         THE LEADING DIMENSION OF MATRIX W.  MUST BE AT LEAST M.
C
C   W     REAL MATRIX WHOSE FIRST DIMENSION MUST BE DMW AND SECOND
C            DIMENSION MUST BE AT LEAST N (CHANGED ON OUTPUT).
C         W(I,J) IS THE WEIGHT OF VARIABLE J FOR CASE I AND SHOULD BE
C            BETWEEN 0. AND 1.  MISSING VALUES SHOULD BE GIVEN A WEIGHT
C            OF 0.
C
C   TH    INTEGER SCALAR (UNCHANGED ON OUTPUT).
C         THRESHOLD VARIANCE FOR VARIABLES WITHIN CLUSTERS.
C
C   KD    INTEGER SCALAR (UNCHANGED ON OUTPUT).
C         THE MAXIMUM NUMBER OF BLOCKS ALLOCATED (SECOND DIMENSION OF
C            IWORK1).  THE SMALLEST K SHOULD BE IS M AND THE LARGEST IS
C            N*M.
C
C   IWORK INTEGER VECTOR DIMENSIONED AT LEAST 2*M+N.
C         WORK VECTOR.
C
C   DMIWRK INTEGER SCALAR (UNCHANGED ON OUTPUT).
C         THE LEADING DIMENSION OF MATRIX IWORK1.  MUST BE AT LEAST 4.
C
C   IWORK1 INTEGER MATRIX WHOSE FIRST DIMENSION MUST BE DMIWRK AND
C            SECOND DIMENSION MUST BE AT LEAST KD.
C         WORK MATRIX.
C
C   DMWORK INTEGER SCALAR (UNCHANGED ON OUTPUT).
C         THE LEADING DIMENSION OF MATRIX WORK.  MUST BE AT LEAST 4.
C
C   WORK  REAL MATRIX WHOSE FIRST DIMENSION MUST BE DMWORK AND SECOND
C            SECOND MUST BE AT LEAST N (CHANGED ON OUTPUT).
C         WORK MATRIX.
C
C   OUNIT INTEGER SCALAR (UNCHANGED ON OUTPUT).
C         UNIT NUMBER FOR OUTPUT.
C
C   OUTPUT PARAMETER
C   ----------------
C
C   IERR  INTEGER SCALAR.
C         ERROR FLAG.
C
C         IERR = 0, NO ERRORS WERE DETECTED DURING EXECUTION
C
C         IERR = 1, THE NUMBER OF BLOCKS NEEDED WAS LARGER THAN THE
C                   NUMBER OF BLOCKS ALLOCATED.  EXECUTION IS
C                   TERMINATED.  INCREASE KD.
C
C         IERR = 2, EITHER THE FIRST AND LAST CASES OR THE CLUSTER
C                   DIAMETER FOR A CLUSTER IS OUT OF BOUNDS.  THE
C                   CLUSTER AND ITS BOUNDARIES ARE PRINTED ON UNIT
C                   OUNIT.  EXECUTION WILL CONTINUE WITH QUESTIONABLE
C                   RESULTS FOR THAT CLUSTER.
C
C   REFERENCES
C   ----------
C
C     HARTIGAN, J. A. (1975).  CLUSTERING ALGORITHMS, JOHN WILEY &
C        SONS, INC., NEW YORK.  PAGES 251-271.
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
 
 
