1      SUBROUTINE OUT1(MM, M, N, A, CLAB, RLAB, TITLE, KC, DMNB, NB,
2     *                OUNIT)
3C
4C<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
5C
6C   PURPOSE
7C   -------
8C
9C      PRINTS BLOCK DIAGRAM FOUND ON TOP OF PAGE 51 OF USER GUIDE
10C
11C   DESCRIPTION
12C   -----------
13C
14C   1.  EACH BLOCK IS ASSUMED TO CONTAIN ONLY ONE VARIABLE.  NOT
15C       PRESENTLY USED BY ANY CLUSTER ROUTINES.  OUTPUT DIAGRAM IS VERY
16C       SIMILAR TO DIAGRAM FROM CLUSTER ROUTINE BLOCK.
17C
18C   INPUT PARAMETERS
19C   ----------------
20C
21C   MM    INTEGER SCALAR (UNCHANGED ON OUTPUT).
22C         THE LEADING DIMENSION OF MATRIX A.
23C
24C   M     INTEGER SCALAR (UNCHANGED ON OUTPUT).
25C         THE NUMBER OF OBJECTS.
26C
27C   N     INTEGER SCALAR (UNCHANGED ON OUTPUT).
28C         THE NUMBER OF VARIABLES.
29C
30C   A     REAL MATRIX WHOSE FIRST DIMENSION MUST BE MM AND SECOND
31C            DIMENSION MUST BE AT LEAST M (UNCHANGED ON OUTPUT).
32C         THE DATA MATRIX.
33C
34C   CLAB  VECTOR OF 4-CHARACTER VARIABLES DIMENSIONED AT LEAST N
35C            (UNCHANGED ON OUTPUT).
36C         ORDERED LABELS OF THE COLUMNS.
37C
38C   RLAB  VECTOR OF 4-CHARACTER VARIABLES DIMENSIONED AT LEAST M
39C            (UNCHANGED ON OUTPUT).
40C         ORDERED LABELS OF THE ROWS.
41C
42C   TITLE 10-CHARACTER VARIABLE (UNCHANGED ON OUTPUT).
43C         TITLE OF THE DATA SET.
44C
45C   KC    INTEGER SCALAR (UNCHANGED ON OUTPUT).
46C         THE NUMBER OF BLOCKS.
47C
48C   DMNB  INTEGER SCALAR (UNCHANGED ON OUTPUT).
49C         THE LEADING DIMENSION OF MATRIX NB.  MUST BE AT LEAST 4.
50C
51C   NB    REAL MATRIX WHOSE FIRST DIMENSION MUST BE DMNB AND SECOND
52C            DIMENSION MUST BE AT LEAST KC (UNCHANGED ON OUTPUT).
53C         THE MATRIX DEFINING THE BOUNDARIES OF THE BLOCKS.
54C
55C         NB(1,I) IS 1 + THE FIRST ROW IN BLOCK I
56C         NB(2,I) IS 1 + THE LAST ROW IN BLOCK I
57C         NB(3,I) IS 1 + THE FIRST COLUMN IN BLOCK I
58C         NB(4,I) IS 1 + THE LAST COLUMN IN BLOCK I
59C
60C   OUNIT INTEGER SCALAR (UNCHANGED ON OUTPUT).
61C         UNIT NUMBER FOR ERROR MESSAGES.
62C
63C   REFERENCES
64C   ----------
65C
66C     HARTIGAN, J. A. (1975).  CLUSTERING ALGORITHMS, JOHN WILEY &
67C        SONS, INC., NEW YORK.  PAGE 273.
68C
69C     HARTIGAN, J. A. (1975) PRINTER GRAPHICS FOR CLUSTERING. JOURNAL OF
70C        STATISTICAL COMPUTATION AND SIMULATION. VOLUME 4,PAGES 187-213.
71C
72C     DALLAL, GERARD E.  A USER'S GUIDE TO J. A. HARTIGAN'S "CLUSTERING
73C        ALGORITHMS".  YALE UNIVERSITY.
74C
75C<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
76C
77      INTEGER DMNB, OUNIT
78      DIMENSION A(MM,*), NB(DMNB,*)
79      CHARACTER*10 TITLE
80      CHARACTER*4 CLAB(*), RLAB(*), AA(20), BLANK, DASH
81      DATA BLANK,DASH/'    ','----'/
82C
83      IF (OUNIT .LE. 0) RETURN
84      WRITE(OUNIT,1)TITLE
85    1 FORMAT('1 ONE WAY SPLIT OF ',A10)
86      NN=(N-1)/20+1
87      DO 40 LL=1,NN
88         JL=(LL-1)*20+1
89         JU=LL*20
90         IF(JU.GT.N) JU=N
91         WRITE(OUNIT,2) TITLE, (CLAB(J),J=JL,JU)
92         WRITE(OUNIT,3)(DASH,J=JL,JU+1)
93    2    FORMAT(2X,A10,20(A4,2X))
94    3    FORMAT(2X,A4,6X,20(A4,2X))
95         DO 30 I=1,M
96            WRITE(OUNIT,4)RLAB(I),(A(I,J),J=JL,JU)
97    4       FORMAT(1X,A4,5X,20F6.2/(7X,20F6.2))
98            DO 10 L=1,20
99   10          AA(L)=BLANK
100            NC=0
101            DO 20 K=1,KC
102               L=0
103               IF(NB(2,K).EQ.I+1) L=NB(3,K)-1
104               IF(L.GE.JL.AND.L.LE.JU+1) AA(L-JL+2)=DASH
105   20          IF(L.NE.0) NC=1
106            IF(NC.NE.0) WRITE(OUNIT,3)(AA(L),L=1,20)
107   30    CONTINUE
108         IF (LL .NE. 1) WRITE(OUNIT,5)
109    5    FORMAT('1')
110   40 CONTINUE
111      RETURN
112      END
113