|
|
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.