3 C NUMBER SUBROUTINE FOR OS/8 FORTRAN 4
5 SUBROUTINE NUMBER (XS,YS,HGT,ANUM,ANG,IDIG)
15 C COUNT NUMBER OF DIGITS TO PRINT
16 20 IF (IPART/(10.**IDGCNT).LT.1) GOTO 30
17 C DONE WITH WHOLE PART OF NUMBER WHEN JUMP
20 30 IF (IDGCNT.GT.21) GOTO 100
21 PABS=(FLOAT(IPART)+.5)/10**(IDGCNT-1)
24 PABS=(PABS-ANMPAS(J))*10.
26 C FILL UP ARRAY WITH WHOLE ELEMENTS
29 IF (LDIG.GT.20) GOTO 100
30 IF (IDIG.LT.0) GOTO 51
34 IF (IDIG.LT.1) GOTO 51
37 C EXTRA PLACE TO CHECK FOR ROUNDING
44 IF (ANUM.LT.0) GOTO 52
45 C PREPARE FOR POSITIVE NUMBER ROUNDING
46 IF (ANMPAS(J).LT.5) GOTO 55
47 ANMPAS(J-1)=ANMPAS(J-1)+1
48 59 IF (ANMPAS(J-1).NE.10) GOTO 55
49 C BE SHURE NOT TO INDEX THE DECIMAL POINT
50 IF (ANMPAS(J-2).NE.-2.) GOTO 53
52 IF (ANUM.GE.1) GOTO 53
55 53 ANMPAS(J-2)=ANMPAS(J-2)+1
57 C CHECK TO OVERFLOW ANMPAS
60 C MOVE ARRAY DOWN BY ONE TO ADD - OR 1 FOR .99+
64 ANMPAS(LDIG-J+1)=ANMPAS(LDIG-J)
69 IF (LDIG.LE.0) GOTO 100
70 C FOR NEG. NUMBERS WITH TOO FEW PLACES
71 IF (ANUM.LT.0) GOTO 52
72 55 IF (LDIG.GT.21 .OR.LDIG.LE.0) GOTO 100
73 CALL SYMB (XS,YS,HGT,ANMPAS,ANG,LDIG)
76 200 FORMAT (' NUMBER OF DIGITS NOT 1-19')