]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/packlib/kernlib/kerngen/tcgens/uhtoc.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / packlib / kernlib / kerngen / tcgens / uhtoc.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.2 1996/04/02 23:17:49 thakulin
6* Add support for EPC Fortran: remove char-int equivalences and use
7* F90 transfer facility instead.
8*
9* Revision 1.1.1.1 1996/02/15 17:50:15 mclareni
10* Kernlib
11*
12*
13#include "kerngen/pilot.h"
14 SUBROUTINE UHTOC (MS,NPW,MT,NCH)
15C
16C CERN PROGLIB# M409 UHTOC .VERSION KERNFOR 4.21 890323
17C ORIG. 10/02/89 JZ
18C
19 DIMENSION MS(99)
20 CHARACTER MT*99
21
22#include "kerngen/wordsize.inc"
23 CHARACTER CHWORD*(NCHAPW)
24 INTEGER IWORD
25#if !defined(CERNLIB_F90) && !defined(CERNLIB_QFEPC)
26 EQUIVALENCE (IWORD,CHWORD)
27#endif
28
29 IF (NCH) 91, 29, 11
30 11 IF (NPW.LE.0) GO TO 91
31 IF (NPW.EQ.1) GO TO 21
32 IF (NPW.LT.NCHAPW) GO TO 31
33
34C-------- NPW = maximum
35
36 JT = 0
37 NWS = NCH / NCHAPW
38 NTRAIL = NCH - NWS*NCHAPW
39
40 DO 14 JS=1,NWS
41 IWORD = MS(JS)
42#if defined(CERNLIB_F90) || defined(CERNLIB_QFEPC)
43 MT(JT+1:JT+NCHAPW) = transfer(IWORD,CHWORD)
44#else
45 MT(JT+1:JT+NCHAPW) = CHWORD
46#endif
47 14 JT = JT + NCHAPW
48
49 IF (NTRAIL.EQ.0) RETURN
50
51 IWORD = MS(NWS+1)
52#if defined(CERNLIB_F90) || defined(CERNLIB_QFEPC)
53 CHWORD = transfer(IWORD,CHWORD)
54#endif
55 MT(JT+1:JT+NTRAIL) = CHWORD(1:NTRAIL)
56 RETURN
57
58C-------- NPW = 1
59C-- equivalent to 'CALL UH1TOC(MS,MT,NCH)'
60
61 21 DO 24 JS=1,NCH
62 IWORD = MS(JS)
63#if defined(CERNLIB_F90) || defined(CERNLIB_QFEPC)
64 CHWORD = transfer(IWORD,CHWORD)
65#endif
66 MT(JS:JS) = CHWORD(1:1)
67 24 CONTINUE
68 29 RETURN
69
70C-------- NPW = 2 ...
71
72 31 JT = 0
73 NWS = NCH / NPW
74 NTRAIL = NCH - NWS*NPW
75
76 DO 34 JS=1,NWS
77 IWORD = MS(JS)
78#if defined(CERNLIB_F90) || defined(CERNLIB_QFEPC)
79 CHWORD = transfer(IWORD,CHWORD)
80#endif
81 MT(JT+1:JT+NPW) = CHWORD(1:NPW)
82 34 JT = JT + NPW
83
84 IF (NTRAIL.EQ.0) RETURN
85
86 IWORD = MS(NWS+1)
87#if defined(CERNLIB_F90) || defined(CERNLIB_QFEPC)
88 CHWORD = transfer(IWORD,CHWORD)
89#endif
90 MT(JT+1:JT+NTRAIL) = CHWORD(1:NTRAIL)
91 RETURN
92
93 91 CALL ABEND
94 END