]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MINICERN/packlib/kernlib/kerngen/tcgens/lnxgs/ubunch.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / MINICERN / packlib / kernlib / kerngen / tcgens / lnxgs / ubunch.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1996/02/15 17:50:20  mclareni
6 * Kernlib
7 *
8 *
9       SUBROUTINE UBUNCH (MS,MT,NCHP)
10 C
11 C CERN PROGLIB# M409    UBUNCH          .VERSION KERNLNX  1.02  940511
12 C ORIG. 03/02/89 K.M.STORR
13 C
14
15       DIMENSION    MS(99), MT(99), NCHP(9)
16       data iblan1/x'20202020'/
17       data mask1/x'000000ff'/
18
19       NCH = NCHP(1)
20       IF   (NCH)             91,39,11
21    11 NWT    = ishftr (NCH,2)
22       NTRAIL = AND (NCH,3)
23       JS     = 0
24       IF (NWT.EQ.0)          GO TO 31
25
26 C--                Pack the initial complete words
27
28       DO 24  JT=1,NWT
29       MT(JT) = OR (OR (OR (
30      +                  AND(MS(JS+1),MASK1),
31      +          LSHIFT (AND(MS(JS+2),MASK1), 8)),
32      +          LSHIFT (IAND(MS(JS+3),MASK1),16)),
33      +          LSHIFT      (MS(JS+4),       24) )
34    24 JS = JS + 4
35
36       IF (NTRAIL.EQ.0)       RETURN
37
38 C--                Pack the trailing word
39
40    31 MWD = IBLAN1
41       JS  = NCH
42
43       DO 34 JT=1,NTRAIL
44       MWD = OR (LSHIFT(MWD,8), AND(MS(JS),MASK1))
45    34 JS  = JS - 1
46       MT(NWT+1) = MWD
47    39 RETURN
48
49    91 CALL ABEND
50       END