* * $Id$ * * $Log$ * Revision 1.1.1.1 1996/02/15 17:50:22 mclareni * Kernlib * * SUBROUTINE UPKBYT (MBV,JTHP,MIV,NINTP,NBITS) C C CERN PROGLIB# M422 UPKBYT .VERSION KERNSUN 1.06 920511 C ORIG. 22/09/88, JZ C DIMENSION MIV(99), MBV(99), JTHP(9), NINTP(9), NBITS(2) JTH = JTHP(1) NINT = NINTP(1) IF (NINT.LE.0) RETURN NZB = NBITS(1) IF (NZB.GT.0) GO TO 11 NZB = 1 NPWD = 32 MASK = 1 GO TO 12 11 NPWD = NBITS(2) #if defined(CERNLIB_BUGLRSHFT) MASK = ishft (-1,NZB-32) #endif #if !defined(CERNLIB_BUGLRSHFT) MASK = lrshft (-1,32-NZB) #endif 12 JBV = 1 JIV = 0 IF (JTH.LT.2) GO TO 21 JBV = (JTH-1)/NPWD + 1 JPOS = JTH - (JBV-1)*NPWD - 1 IF (JPOS.EQ.0) GO TO 21 NR = JPOS*NZB JIVE = NPWD - JPOS #if defined(CERNLIB_BUGLRSHFT) IZW = ishft (MBV(JBV), -NR) #endif #if !defined(CERNLIB_BUGLRSHFT) IZW = lrshft (MBV(JBV), NR) #endif GO TO 22 C-- UNPACK EACH WORD 21 JIVE = JIV + NPWD IZW = MBV(JBV) 22 JIVE = MIN0 (NINT,JIVE) 24 JIV = JIV + 1 MIV(JIV) = AND (MASK,IZW) IF (JIV.EQ.JIVE) GO TO 27 #if defined(CERNLIB_BUGLRSHFT) IZW = ishft (IZW,-NZB) #endif #if !defined(CERNLIB_BUGLRSHFT) IZW = lrshft (IZW, NZB) #endif GO TO 24 27 IF (JIV.EQ.NINT) RETURN JBV = JBV + 1 GO TO 21 END