5 * Revision 1.1.1.1 1996/03/06 10:47:15 mclareni
9 #include "zebra/pilot.h"
10 SUBROUTINE ZKRAKN (MFLAGP,JLP,JRP,VALP)
12 #include "zebra/zbcd.inc"
13 #include "zebra/zkrakc.inc"
14 #include "zebra/zkrakqu.inc"
15 C-------------- END CDE --------------
17 COMMON /SLATE/ NDIG, JNEXT, DUMMY(38)
19 DIMENSION MFLAGP(9), JLP(9), JRP(9), VALP(9)
21 EQUIVALENCE (VAL,IVAL)
24 #include "zebra/q_jbit.inc"
33 MULT = JBIT(MFLAG,10) - 1
34 IFLBLT = JBIT(MFLAG,6)
40 C- IZBCD VAL. 1 27 36 37 38 39 40 41 42 43 44 45 46 47
41 C- CHARACTER A 0 9 + - * / ( ) $ = BL , .
42 C- BIT J IN MFLAG IF SEPARATOR LEGAL, J= 1 2 3 4 5 6 7
43 C- J=10 MULTIPLIER LEGAL
45 C-- IGNORE LEADING BLANKS
49 IF (JDO.GT.JRRAN) GO TO 93
51 IF (IFIRST.EQ.45) GO TO 13
53 IF (IFIRST.LT.27) GO TO 91
54 IF (IFIRST.LT.39) GO TO 14
55 IF (IFIRST.NE.47) GO TO 92
57 C-- FIND BLANK TERMINATOR, IF SELECTED
59 14 IF (IFLBLT.EQ.0) GO TO 17
62 IF (JTERM.GT.JRRAN) GO TO 16
63 IF (IQCETK(JTERM).NE.45) GO TO 15
66 C-- STEP OVER SIGN-BIT
68 17 IF (IFIRST.EQ.37) GO TO 18
69 IF (IFIRST.NE.38) GO TO 21
71 IF (JDO.EQ.JTERM) GO TO 94
73 C-- READ INITIAL INTEGER
79 IF (JDO.EQ.JTERM) GO TO 28
92 IF (NSEP-39) 41, 81, 26
93 26 IF (NSEP.EQ.47) GO TO 31
95 28 IF (IFIRST.EQ.38) IVAL=-IVAL
103 IF (JDO.EQ.JTERM) GO TO 50
106 IF (NSEP-27) 41, 33, 34
111 34 IF (NSEP.GE.37) GO TO 38
112 35 IF (JEXW.EQ.0) GO TO 36
120 FRAC = FRAC*10. + REAL(NSEP-27)
123 38 IF (NSEP.EQ.45) GO TO 32
124 IF (NSEP-39) 44, 94, 51
128 41 IF (NSEP.NE.5) GO TO 44
130 IF (JDO.EQ.JTERM) GO TO 50
132 IF (NSEP.EQ.45) GO TO 42
133 IF (NSEP-39) 44, 94, 51
135 44 IF (NSEP.LT.27) GO TO 94
136 IF (NSEP.LT.37) GO TO 46
138 IF (JDO.EQ.JTERM) GO TO 94
140 46 JEXP = IUFORW (IQHOLK,JDO,JR)
141 IF (JEXP.EQ.0) GO TO 47
142 IF (NSEP.EQ.38) JEXP=-JEXP
145 IF (JDO.EQ.JTERM) GO TO 50
147 IF (NSEP.GE.40) GO TO 51
150 C-- SET FLOATING RESULT
154 IF (VAL.EQ.0.) GO TO 61
156 52 IF (JEXP.GE.9) GO TO 58
161 58 VAL = VAL * 10.**JEXP
163 C-- SET FLOATING RESULT, FRACTIONAL PART
165 61 IF (FRAC.EQ.0.) GO TO 66
167 62 IF (JEXF.GE.9) GO TO 64
172 64 FRAC = FRAC * 10.**JEXF
175 66 IF (IFIRST.NE.38) GO TO 71
180 71 IF (NDALL.EQ.0) GO TO 94
181 IF (NSEP.EQ.0) GO TO 72
183 IF (JBIT(MFLAG,NSEP-39).EQ.0) GO TO 94
184 IF (NSEP.EQ.43) GO TO 72
188 73 IF (JNXGO.GT.JRRAN) GO TO 75
189 IF (IQCETK(JNXGO).NE.45) GO TO 75
200 81 IF (IVAL.LE.0) GO TO 94
201 IF (MULT.NE.0) GO TO 94
214 94 MULT = MAX (0,MULT-1)
217 * ==================================================
218 #include "zebra/qcardl.inc"