5 * Revision 1.1.1.1 1996/02/15 17:49:50 mclareni
9 #include "kerngen/pilot.h"
10 #if !defined(CERNLIB_TCGEN)
11 SUBROUTINE SORTX(MX,NC,NR,NCS,NK)
13 C CERN PROGLIB# M106 SORTX .VERSION KERNFOR 1.0 661115
16 DIMENSION MX(2),NK(2,2)
17 COMMON/SLATE/I,I1,I2,I3,IC,IR,ICMX,N1,N2,N3,N4,N5,NKI,NKI1,NKI2,
18 1 NCSORT,NRM1,INK,JNK,NHELP,NKIP1,XQX(19)
21 IF(NR.LE.1.OR.NCSORT.GT.NC.OR.NCSORT.LE.0) GO TO 1000
24 1 NK(1,I)=NK(1,I-1)+NC
29 C-- MAIN PROGRAM (PASSES N1,N2, AND N3 TO MERGE)
35 IF(N1.GT.NRM1) GO TO 113
39 IF (MX(NKIP1).LT.MX(NKI)) GO TO 104
47 IF (N2.GT.NRM1) GO TO 116
51 IF(MX(NKIP1).LT.MX(NKI)) GO TO 107
57 C-- MERGE SEQUENCE (STRINGS N1-(N2-1), N2-N3)
64 IF(MX(NKI2).LT.MX(NKI1)) GO TO 202
70 IF ((N3+1).LE.I2) GO TO 205
82 207 NK(JNK,I3)=NK(INK,I)
83 IF(NR.GT.N3) GO TO 101
85 IF (N1.NE.1) GO TO 100
87 C-- FINAL PERMUTATION PROGRAM
92 ICMX=NK(INK,IR)+IC-NCSORT
93 301 NK(JNK,IR)=MX(ICMX)
96 IF (NCS.GE.0) GO TO 303
98 MX(ICMX)=NK(JNK,NHELP)
100 303 MX(ICMX)=NK(JNK,IR)