5 * Revision 1.2 1996/04/18 16:13:48 mclareni
6 * Incorporate changes from J.Zoll for version 3.77
8 * Revision 1.1.1.1 1996/03/06 10:47:15 mclareni
12 #include "zebra/pilot.h"
13 SUBROUTINE ZSORVI (IXSTOR,LGOP,JWORD,NWORDS)
15 C- SORT BANKS AT LGO SUCH THAT THE 'NWORDS' LONG KEY STRINGS
16 C- STARTING AT Q(L+JWORD) ARE IN INCREASING ORDER
18 #include "zebra/mqsys.inc"
19 C-------------- END CDE --------------
20 DIMENSION JWORD(9), NWORDS(9), LGOP(9)
22 #if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M))
24 DATA NAMESR / 4HZSOR, 4HVI /
26 #if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M))
27 DATA NAMESR / 6HZSORVI /
29 #if !defined(CERNLIB_QTRHOLL)
31 PARAMETER (NAMESR = 'ZSORVI ')
34 #include "zebra/q_jbyt.inc"
39 #include "zebra/qtraceq.inc"
40 #include "zebra/qstore.inc"
43 JWN = JW-1 + NWORDS(1)
44 IF (JWN.LE.JW) GO TO 88
45 KGONG = LQSTA(KQT+2) - 1
55 IF (KEYN.LT.0 ) GO TO 62
57 C-------- +VE IN-SEQUENCE LOOP FOR BANKS WITH +VE KEY
58 C-- KEEP GOING FOR INCREASING KEYS
68 IF (KEYN.LT.0 ) GO TO 61
69 24 IF (KEYN-KEYPL) 28, 25, 23
77 C-------- OUT-SEQUENCE LOOP, FIND PLACE FOR BANK IN THE CHAIN
78 C-- OF BANKS ALREADY SORTED, +VE OR -VE CHAIN
84 IF (KEYN-IQ(KQS+LS+JW)) 48, 45, 43
92 IF (LNX.EQ.0) GO TO 81
95 IF (KEYN.GE.0 ) GO TO 21
97 C-------- -VE IN-SEQUENCE LOOP FOR BANKS WITH -VE KEY
98 C-- KEEP GOING FOR INCREASING KEYS
103 IF (KEYNG.NE.0 ) GO TO 64
108 IF (LN.EQ.0) GO TO 81
110 IF (KEYN.GE.0 ) GO TO 21
111 64 IF (KEYN-KEYNG) 41, 65, 63
116 C-------- COMPARE 2 STRINGS STARTING WITH THE SAME WORD
124 IF (KYN.GE.0 ) GO TO 74
125 IF (KYC.GE.0 ) GO TO 79
129 74 IF (KYC.LT.0 ) GO TO 78
131 75 IF (KYN-KYC) 79, 76, 78
132 76 IF (J.LT.JWN) GO TO 72
134 C-- KEYS/N .GE. KEYS/C
136 78 IF (JSW) 63, 43, 23
138 C-- KEYS/N .LT. KEYS/C
140 79 IF (JSW) 41, 48, 28
142 C---- FINISHED, LINK +VE AND -VE STREAMS, CHAIN K-LINKS
144 81 IF (IFL.EQ.0) GO TO 999
146 LQ(KQS+LLNG) = LQ(KQS+KGOPL)
151 IF (K.NE.0) LQ(KQS+K)=L
156 IF (L.EQ.0) GO TO 999
160 C---- SPECIAL CASE NWORDS=1
162 88 CALL ZSORTI (IXSTOR,LGOP,JW)
164 #include "zebra/qtrace99.inc"
167 * ==================================================
168 #include "zebra/qcardl.inc"