]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/packlib/zebra/fq/fzocxfd.inc
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / packlib / zebra / fq / fzocxfd.inc
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1996/03/06 10:47:10 mclareni
6* Zebra
7*
8*
9* cv double-pr. F from CRAY -> IEEE
10*
11* fzocxfd.inc
12*
13#if defined(CERNLIB_QMCRY)
14C-- Cray single-pr. to IEEE double, ignoring 2nd word
15C- for the moment (loss of 5 bits)
16 DO 449 JL=1,NWDODB,2
17 ITHA = MS(JMS+1)
18 IF (ITHA.EQ.0) GO TO 442
19 JSIGN = SHIFTR (MASK(1).AND.ITHA, 32)
20 JEXP = SHIFTR (SHIFTL(ITHA,1), 49)
21 JEXP = JEXP - 40000B + 1022
22 IF (JEXP.LE.0) GO TO 441
23 IF (JEXP.GE.2047) GO TO 433
24 JMANT = MASK(128-20) .AND. SHIFTR (ITHA,27)
25 ITHB = SHIFTL (ITHA, 5) .AND. 37777777777B
26 ITHA = JSIGN .OR. SHIFTL(JEXP,20) .OR. JMANT
27 GO TO 447
28
29C-- overflow
30 433 IFOCON(1) = 4
31 IFOCON(2) = JMS
32 IFOCON(3) = ITHA
33 IF (JSIGN.EQ.0) THEN
34 ITHA = IOVPCD
35 ELSE
36 ITHA = IOVNCD
37 ENDIF
38 GO TO 442
39
40 441 ITHA = 0
41 442 ITHB = 0
42 447 MT(JMT+1) = ITHA
43 MT(JMT+2) = ITHB
44 JMT = JMT + 2
45 449 JMS = JMS + 2
46#endif
47* cv double-pr. F from ND -> IEEE
48*
49* fzocxfd.inc
50*
51#if defined(CERNLIB_QMND3)
52C-- NORD double-precision to IEEE double
53 DO 449 JL=1,NWDODB,2
54 ITHA = MS(JMS+1)
55 IF (ITHA.EQ.0) GO TO 442
56 ITHB = MS(JMS+2)
57 JSIGN = ISHFT (ITHA,-31)
58 JEXP = ISHFT (ISHFT(ITHA,1), -23)
59 IF (JEXP.EQ.0) GO TO 441
60 IF (JEXP.EQ.511) GO TO 433
61 JMANT = ISHFT (ISHFT(ITHA,10), -12)
62 ITHB = ISHFT (ITHA,30) .OR. ISHFT (ITHB,-2)
63 ITHA = ISHFT(JSIGN,31) .OR. ISHFT(JEXP+766,20) .OR. JMANT
64 GO TO 447
65
66C-- overflow / NaN
67 433 IFOCON(1) = 4
68 IFOCON(2) = JMS
69 IFOCON(3) = ITHA
70 IF (ITHA.NE.IBADMS) THEN
71 IF (JSIGN.EQ.0) THEN
72 ITHA = IOVPCD
73 ELSE
74 ITHA = IOVNCD
75 ENDIF
76 ELSE
77 ITHA = IBADCD
78 ENDIF
79 GO TO 442
80
81 441 ITHA = 0
82 442 ITHB = 0
83 447 MT(JMT+1) = ITHA
84 MT(JMT+2) = ITHB
85 JMT = JMT + 2
86 449 JMS = JMS + 2
87* -------------- sequences for input ---------------------
88#endif
89* cv double-pr. F from VAX -> IEEE
90*
91* fzocxfd.inc
92*
93#if defined(CERNLIB_QMVAX)
94C-- VAX double-precision to IEEE double
95 DO 449 JL=1,NWDODB,2
96 ITHA = MS(JMS+1)
97 IF (ITHA.EQ.0) GO TO 442
98 ITHB = MS(JMS+2)
99 JSIGN = ITHA .AND. MSKB16
100 JEXP = JIBITS (ITHA,7,8)
101 IF (JEXP.EQ.0) GO TO 431
102 IF (JEXP.EQ.255) GO TO 433
103 JMANT = JISHFT (JIBITS(ITHA, 0, 7), 13) .OR. JIBITS(ITHA,19,13)
104 ITHB = JISHFT (JIBITS(ITHA,16, 3), 29) .OR.
105 + JISHFT (JIBITS(ITHB, 0,16), 13) .OR.
106 + JIBITS(ITHB,19,13)
107 ITHA = JISHFT(JSIGN,16) .OR. JISHFT(JEXP+894,20) .OR. JMANT
108 GO TO 447
109
110C-- zero / NaN
111 431 IF (JSIGN.EQ.0) GO TO 441
112 ITHB = IBADCD
113 GO TO 436
114
115C-- overflow
116 433 IF (JSIGN.EQ.0) THEN
117 ITHB = IOVPCD
118 ELSE
119 ITHB = IOVNCD
120 ENDIF
121 436 IFOCON(1) = 4
122 IFOCON(2) = JMS
123 IFOCON(3) = ITHA
124 ITHA = ITHB
125 GO TO 442
126
127 441 ITHA = 0
128 442 ITHB = 0
129 447 MT(JMT+1) = ITHA
130 MT(JMT+2) = ITHB
131 JMT = JMT + 2
132 449 JMS = JMS + 2
133#endif