5 * Revision 1.1.1.1 1996/02/15 17:50:16 mclareni
9 #include "kerngen/pilot.h"
10 SUBROUTINE UPKCH (ICHV,IGV,NN,IPAR)
12 C CERN PROGLIB# M427 UPKCH .VERSION KERNFOR 4.20 881028
15 COMMON /SLATE/ JCH,N,NBITS,NCHAR,NZONE,IGNOR,JIN,NBDONE,NBEND
16 +, JGO,JBT,NLEFT,NRIGH,DUMMY(27)
17 DIMENSION ICHV(*),IGV(*),IPAR(9)
20 #include "kerngen/wordsize.inc"
22 #include "kerngen/q_jbit.inc"
34 IF (NZONE.NE.0) GO TO 41
38 21 JGO = NBITPW+1 - IGNOR
40 IF (NCHAR.EQ.0) GO TO 22
41 NBEND= MAX (NBEND, JGO-NBITS*(NCHAR-1))
46 IGV(JIN)= JBYT (ICHV(JCH),JBT,NBITS)
49 IF (JBT.GE.NBEND) GO TO 24
53 C---- ZONE NOT EQUALS A WORD
55 41 IF (NZONE.EQ.NBITPW) GO TO 21
57 NBEND = NZONE+1 - NBITS
58 IF (NCHAR.EQ.0) GO TO 42
59 NBEND = MIN (NBEND, IGNOR+NCHAR*NBITS)
62 43 IF (JBT.GE.0) GO TO 44
68 IF (JBT.LT.0) GO TO 51
69 IGV(JIN)= JBYT (ICHV(JCH),JBT+1,NBITS)
72 C-- CHARACTER ACROSS WORD BOUNDARY
76 IGV(JIN)= JBYT (ICHV(JCH+1),JBT+1,NRIGH)
77 IF (NLEFT.EQ.0) GO TO 54
78 CALL CBYT (ICHV(JCH),1,IGV(JIN),NRIGH+1,NLEFT)
81 58 IF (JIN.EQ.N) RETURN
83 NBDONE= NBDONE + NBITS
84 IF (NBDONE.LT.NBEND) GO TO 44
85 JBT = JBT - (NZONE-NBDONE) - IGNOR