5 * Revision 1.1.1.1 1996/02/15 17:50:13 mclareni
9 #include "kerngen/pilot.h"
10 SUBROUTINE PKCHAR (IGV,ICHV,NN,IPAR)
12 C CERN PROGLIB# M427 PKCHAR .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"
33 IF (NZONE.NE.0) GO TO 41
37 21 JGO = NBITPW+1 - IGNOR
39 IF (NCHAR.EQ.0) GO TO 22
40 NBEND = MAX (NBEND,JGO-NBITS*(NCHAR-1))
45 CALL SBYT (IGV(JIN),ICHV(JCH),JBT,NBITS)
48 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
69 IF (JBT.LT.0) GO TO 51
70 CALL SBYT (IGV(JIN),ICHV(JCH),JBT+1,NBITS)
73 C-- CHARACTER ACROSS WORD BOUNDARY
77 IF (NLEFT.EQ.0) GO TO 54
78 CALL CBYT (IGV(JIN),NRIGH+1,ICHV(JCH),1,NLEFT)
81 CALL SBYT (IGV(JIN),ICHV(JCH),JBT+1,NRIGH)
83 58 IF (JIN.EQ.N) RETURN
85 NBDONE= NBDONE + NBITS
86 IF (NBDONE.LT.NBEND) GO TO 44
87 JBT = JBT - (NZONE-NBDONE) - IGNOR