|
|
1.1 root 1: SUBROUTINE SSORT(EX, X, LX, Q, L, OFFSET)
2: INTEGER EX, X(LX), Q(L), OFFSET
3: EXTERNAL EX
4: C
5: C ENTRIES SPACED 1 APART IN HASH TABLE
6: C EX IS EXCHANGE ROUTINE--RETURNS<0 IF EXCHANGES ITEMS
7: C RETURNS >=0 IF DOESN'T
8: C L IS NUMBER OF THINGS TO BE SORTED, SPACING IS 1 HERE
9: C START SHELL SORT
10: C
11: M = 1
12: 10 IF (M.GE.L) GO TO 20
13: M = M*2
14: GO TO 10
15: 20 M = M/2
16: IF (M.LT.1) RETURN
17: K = L - M
18: C
19: C IN PASS1 ARE SORTING SYMBOL TABLE
20: C IN PASS 2 ARE SORTING LATTICE
21: C OR COMMON BLOCK DEFS
22: C
23: DO 50 J=1,K
24: I = J
25: 30 IF (EX(I+M,I,X,LX,Q,L,OFFSET)) 40, 50, 50
26: C
27: C BUBBLE SORT W/I SUBLIST
28: C
29: 40 I = I - M
30: IF (I.GE.1) GO TO 30
31: 50 CONTINUE
32: GO TO 20
33: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.