5 * Revision 1.3 1998/09/25 09:33:27 mclareni
6 * Modifications for the Mklinux port flagged by CERNLIB_PPC
8 * Revision 1.2 1996/04/18 16:13:47 mclareni
9 * Incorporate changes from J.Zoll for version 3.77
11 * Revision 1.1.1.1 1996/03/06 10:47:15 mclareni
15 #include "zebra/pilot.h"
16 #if (defined(CERNLIB_VAX))||((defined(CERNLIB_LINUX) && !defined(CERNLIB_PPC)))||(defined(CERNLIB_QMVMI))||(defined(CERNLIB_QMDOS))
17 #include "qutyvax/zsorvh.F"
19 SUBROUTINE ZSORVH (IXSTOR,LGOP,JWORD,NWORDS)
21 C- SORT BANKS AT LGO SUCH THAT THE 'NWORDS' LONG HOLLERITH STRINGS
22 C- STARTING AT Q(L+JWORD) ARE IN INCREASING ORDER
24 C- ALPHABETIC SORT DONE WITH INTEGER COMPARISON
25 C- THE SIGN-BIT IS CONSIDERED AS AN ORDINARY BIT, FOR CONSISTENCY
26 C- ON ANY GIVEN MACHINE THIS MAY NOT BE VERY SATISFACTORY
28 #include "zebra/mqsys.inc"
29 C-------------- END CDE --------------
30 DIMENSION JWORD(9), NWORDS(9), LGOP(9)
31 #if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M))
33 DATA NAMESR / 4HZSOR, 4HVH /
35 #if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M))
36 DATA NAMESR / 6HZSORVH /
38 #if !defined(CERNLIB_QTRHOLL)
40 PARAMETER (NAMESR = 'ZSORVH ')
43 #include "zebra/q_jbyt.inc"
48 #include "zebra/qtraceq.inc"
49 #include "zebra/qstore.inc"
52 JWN = JW-1 + NWORDS(1)
53 IF (JWN.LE.JW) GO TO 88
54 KGONG = LQSTA(KQT+2) - 1
64 IF (KEYN.GE.0 ) GO TO 22
67 C-------- +VE IN-SEQUENCE LOOP FOR BANKS WITH +VE KEY
68 C-- KEEP GOING FOR INCREASING KEYS
79 IF (KEYN.LT.0 ) GO TO 62
80 24 IF (KEYN-KEYPL) 28, 25, 23
88 C-------- OUT-SEQUENCE LOOP, FIND PLACE FOR BANK IN THE CHAIN
89 C-- OF BANKS ALREADY SORTED, +VE OR -VE CHAIN
95 IF (KEYN-IQ(KQS+LS+JW)) 48, 45, 43
103 IF (LNX.EQ.0) GO TO 81
106 IF (KEYN.GE.0 ) GO TO 22
108 C-------- -VE IN-SEQUENCE LOOP FOR BANKS WITH -VE KEY
109 C-- KEEP GOING FOR INCREASING KEYS
113 IF (KEYNG.NE.0 ) GO TO 64
118 IF (LN.EQ.0) GO TO 81
120 IF (KEYN.GE.0 ) GO TO 21
121 64 IF (KEYN-KEYNG) 41, 65, 63
126 C-------- COMPARE 2 STRINGS STARTING WITH THE SAME WORD
134 IF (KYN.GE.0 ) GO TO 74
135 IF (KYC.GE.0 ) GO TO 79
139 74 IF (KYC.LT.0 ) GO TO 78
141 75 IF (KYN-KYC) 79, 76, 78
142 76 IF (J.LT.JWN) GO TO 72
144 C-- KEYS/N .GE. KEYS/C
146 78 IF (JSW) 63, 43, 23
148 C-- KEYS/N .LT. KEYS/C
150 79 IF (JSW) 41, 48, 28
152 C---- FINISHED, LINK +VE AND -VE STREAMS, CHAIN K-LINKS
154 81 IF (IFL.EQ.0) GO TO 999
156 LQ(KQS+LLPL) = LQ(KQS+KGONG)
161 IF (K.NE.0) LQ(KQS+K)=L
166 IF (L.EQ.0) GO TO 999
170 C---- SPECIAL CASE NWORDS=1
172 88 CALL ZSORTH (IXSTOR,LGOP,JW)
174 #include "zebra/qtrace99.inc"
177 * ==================================================
178 #include "zebra/qcardl.inc"