5 * Revision 1.1.1.1 1996/02/15 17:49:50 mclareni
9 #include "kerngen/pilot.h"
10 SUBROUTINE SORTZV (A,INDEX,N1,MODE,NWAY,NSORT)
12 C CERN PROGLIB# M101 SORTZV .VERSION KERNFOR 3.15 820113
15 DIMENSION A(N1),INDEX(N1)
20 IF (NSORT.NE.0) GO TO 2
26 10 CALL SORTTI (A,INDEX,N)
29 20 CALL SORTTC(A,INDEX,N)
32 30 CALL SORTTF (A,INDEX,N)
34 40 IF (NWAY.EQ.0) GO TO 50
43 * ========================================
44 SUBROUTINE SORTTF (A,INDEX,N1)
46 DIMENSION A(N1),INDEX(N1)
56 IF (AI.LE.A (I22)) GO TO 3
68 IF (I2.LE.N) I22= INDEX(I2)
71 IF (A(I22)-A(I222)) 8,9,9
74 9 IF (AI-A(I22)) 10,11,11
83 * ========================================
84 SUBROUTINE SORTTI (A,INDEX,N1)
87 DIMENSION A(N1),INDEX(N1)
97 IF (AI.LE.A (I22)) GO TO 3
103 INDEX (N) = INDEX (1)
109 IF (I2.LE.N) I22= INDEX(I2)
111 7 I222 = INDEX (I2+1)
112 IF (A(I22)-A(I222)) 8,9,9
115 9 IF (AI-A(I22)) 10,11,11
124 * ========================================
125 SUBROUTINE SORTTC (A,INDEX,N1)
128 DIMENSION A(N1),INDEX(N1)
138 IF(ICMPCH(AI,A(I22)))3,3,21
144 INDEX (N) = INDEX (1)
150 IF (I2.LE.N) I22= INDEX(I2)
152 7 I222 = INDEX (I2+1)
153 IF (ICMPCH(A(I22),A(I222))) 8,9,9
156 9 IF (ICMPCH(AI,A(I22))) 10,11,11
165 * ========================================
166 FUNCTION ICMPCH(IC1,IC2)
167 C FUNCTION TO COMPARE TWO 4 CHARACTER EBCDIC STRINGS - IC1,IC2
168 C ICMPCH=-1 IF HEX VALUE OF IC1 IS LESS THAN IC2
169 C ICMPCH=0 IF HEX VALUES OF IC1 AND IC2 ARE THE SAME
170 C ICMPCH=+1 IF HEX VALUES OF IC1 IS GREATER THAN IC2
173 IF(I1.GE.0.AND.I2.GE.0)GOTO 40