*COMDECK  COMCSST            SHELL SORT TABLE.                           COMCSST
 SST      CTEXT  COMCSST - SHELL SORT TABLE.                             COMCSST
 SST      SPACE  4,10                                                    COMCSST
          IF     -DEF,QUAL$,1                                            COMCSST
          QUAL   COMCSST                                                 COMCSST
          BASE   D                                                       COMCSST
 SST      SPACE  4,10                                                    COMCSST
***       SST - SHELL SORT TABLE.                                        COMCSST
*                                                                        COMCSST
*         R. HOTCHKISS.                                                  COMCSST
*         L. A. LIDDIARD.                                                COMCSST
*         E. J. MUNDSTOCK.   70/10/07.  UNIVERSITY OF MINNESOTA.         COMCSST
* 
*         ******************************************************* 
*         * THIS COMMON DECK IS PART OF THE COMMON COMMON DECKS * 
*         * RESIDING ON THE COMPASS PROGRAM LIBRARY, AND BEING  * 
*         * MAINTAINED BY THE COMPASS PROJECT.  ANY CHANGES     * 
*         * REQUIRED SHOULD BE DIRECTED TO THE COMPASS PROJECT  * 
*         * THROUGH THE PROPER PROCEDURE.                       * 
*         ******************************************************* 
* 
*                                                                        COMCSST
*         SST SORTS A TABLE USING A SHELL SORTING TECHNIQUE.             COMCSST
 SST      SPACE  4,10                                                    COMCSST
***       SST SORTS A TABLE OF ONE-WORD ENTRIES INTO ASCENDING ORDER.    COMCSST
*         ALL ENTRIES SHOULD BE OF THE SAME SIGN.                        COMCSST
*                                                                        COMCSST
*         ORIGIN OF TECHNIQUE IS *COMMUNICATIONS OF THE ACM*             COMCSST
*         VOLUME 6, NUMBER 5 (MAY 1963), PAGE 209.                       COMCSST
*                                                                        COMCSST
*         ENTRY  (B1) = 1.                                               COMCSST
*                (B7) = ADDRESS OF TABLE TO BE SORTED.                   COMCSST
*                (X1) = NUMBER OF ELEMENTS IN ARRAY.                     COMCSST
*                                                                        COMCSST
*         EXIT   TABLE SORTED.                                           COMCSST
*                                                                        COMCSST
*         USES   X - 1, 2, 3, 4, 6, 7.                                   COMCSST
*                B - 2, 3, 4, 5.                                         COMCSST
*                A - 1, 2, 6, 7.                                         COMCSST
*                                                                        COMCSST
*         CALLS  NONE.                                                   COMCSST
                                                                         COMCSST
                                                                         COMCSST
 SST1     SA7    B5-B4       T(J+K) = S                                  COMCSST
          SB2    B2+B1       I = I+1                                     COMCSST
          EQ     B2,B3,SST4  IF END OF TABLE                             COMCSST
 SST2     SA2    B2          S = T(I)                                    COMCSST
          NO                                                             COMCSST
          SB5    B2+B4       J = I-K                                     COMCSST
          BX7    X2                                                      COMCSST
 SST3     SA1    B5          T(J)                                        COMCSST
          IX3    X2-X1       COMPARE S AND T(J)                          COMCSST
          PL     X3,SST1     IF ELEMENTS IN ORDER                        COMCSST
          BX6    X1          T(J+K) = T(J)                               COMCSST
          SB5    B5+B4       J = J-K                                     COMCSST
          SA6    A1-B4                                                   COMCSST
          GE     B5,B7,SST3  IF J .NE. FIRST                             COMCSST
          EQ     SST1                                                    COMCSST
                                                                         COMCSST
                                                                         COMCSST
 SST4     AX4    1           K = K/2                                     COMCSST
          NO                                                             COMCSST
          SB4    X4          (B4) = -K                                   COMCSST
          SB2    B7-B4       I = FIRST+K                                 COMCSST
          NZ     X4,SST2     IF K .NE. 0                                 COMCSST
                                                                         COMCSST
 SST      SUBR               ENTRY/EXIT                                  COMCSST
          MX4    12          K = 2**(ENTIER(LOG2(COUNT)+1)               COMCSST
          SB3    B7+X1       (B3) = LAST+1                               COMCSST
          NX6,B2 X1                                                      COMCSST
          AX4    X4,B2                                                   COMCSST
          EQ     SST4        ENTER SORT LOOP                             COMCSST
 SST      SPACE  4,10                                                    COMCSST
          BASE   *                                                       COMCSST
 QUAL$    IF     -DEF,QUAL$                                              COMCSST
          QUAL   *                                                       COMCSST
 SST      EQU    /COMCSST/SST                                            COMCSST
 SST=     EQU    /COMCSST/SST 
 QUAL$    ENDIF                                                          COMCSST
 SST      ENDX                                                           COMCSST
