5 * Revision 1.1.2.1 2002/07/11 17:14:48 alibrary
8 * Revision 1.1.1.1 1999/05/18 15:55:29 fca
11 * Revision 1.1.1.1 1996/02/15 17:49:50 mclareni
15 #include "kerngen/pilot.h"
16 SUBROUTINE SORTZV (A,INDEX,N1,MODE,NWAY,NSORT)
18 C CERN PROGLIB# M101 SORTZV .VERSION KERNFOR 3.15 820113
21 DIMENSION A(N1),INDEX(N1)
26 IF (NSORT.NE.0) GO TO 2
32 10 CALL SORTTI (A,INDEX,N)
35 20 CALL SORTTC(A,INDEX,N)
38 30 CALL SORTTF (A,INDEX,N)
40 40 IF (NWAY.EQ.0) GO TO 50
49 * ========================================
50 SUBROUTINE SORTTF (A,INDEX,N1)
52 DIMENSION A(N1),INDEX(N1)
62 IF (AI.LE.A (I22)) GO TO 3
74 IF (I2.LE.N) I22= INDEX(I2)
77 IF (A(I22)-A(I222)) 8,9,9
80 9 IF (AI-A(I22)) 10,11,11
89 * ========================================
90 SUBROUTINE SORTTI (A,INDEX,N1)
93 DIMENSION A(N1),INDEX(N1)
103 IF (AI.LE.A (I22)) GO TO 3
109 INDEX (N) = INDEX (1)
115 IF (I2.LE.N) I22= INDEX(I2)
117 7 I222 = INDEX (I2+1)
118 IF (A(I22)-A(I222)) 8,9,9
121 9 IF (AI-A(I22)) 10,11,11
130 * ========================================
131 SUBROUTINE SORTTC (A,INDEX,N1)
134 DIMENSION A(N1),INDEX(N1)
144 IF(ICMPCH(AI,A(I22)))3,3,21
150 INDEX (N) = INDEX (1)
156 IF (I2.LE.N) I22= INDEX(I2)
158 7 I222 = INDEX (I2+1)
159 IF (ICMPCH(A(I22),A(I222))) 8,9,9
162 9 IF (ICMPCH(AI,A(I22))) 10,11,11
171 * ========================================
172 FUNCTION ICMPCH(IC1,IC2)
173 C FUNCTION TO COMPARE TWO 4 CHARACTER EBCDIC STRINGS - IC1,IC2
174 C ICMPCH=-1 IF HEX VALUE OF IC1 IS LESS THAN IC2
175 C ICMPCH=0 IF HEX VALUES OF IC1 AND IC2 ARE THE SAME
176 C ICMPCH=+1 IF HEX VALUES OF IC1 IS GREATER THAN IC2
179 IF(I1.GE.0.AND.I2.GE.0)GOTO 40