A large commit.
[pdp8.git] / sw / rescue / lab8e_goettingen / disk2_11 / rkb / paroff / number.ft
CommitLineData
81e70d48
PH
1C \ eNUMBER.FT\r
2C\r
3C NUMBER SUBROUTINE FOR OS/8 FORTRAN 4\r
4C\r
5 SUBROUTINE NUMBER (XS,YS,HGT,ANUM,ANG,IDIG)\r
6 DIMENSION ANMPAS(21)\r
7 DO 5 J=1,21\r
8 ANMPAS(J)=0.\r
95 CONTINUE\r
10 IDGCNT=1\r
11 J=1\r
1210 PABS=ABS(ANUM)\r
13 IPART=PABS\r
14 FPART=PABS-IPART\r
15C COUNT NUMBER OF DIGITS TO PRINT\r
1620 IF (IPART/(10.**IDGCNT).LT.1) GOTO 30\r
17C DONE WITH WHOLE PART OF NUMBER WHEN JUMP\r
18 IDGCNT=IDGCNT+1\r
19 GOTO 20\r
2030 IF (IDGCNT.GT.21) GOTO 100\r
21 PABS=(FLOAT(IPART)+.5)/10**(IDGCNT-1)\r
22 DO 40 J=1,IDGCNT\r
23 ANMPAS(J)=AINT(PABS)\r
24 PABS=(PABS-ANMPAS(J))*10.\r
2540 CONTINUE\r
26C FILL UP ARRAY WITH WHOLE ELEMENTS\r
27 J=IDGCNT\r
28 LDIG=IDGCNT+IDIG+1\r
29 IF (LDIG.GT.20) GOTO 100\r
30 IF (IDIG.LT.0) GOTO 51\r
31 J=J+1\r
32 ANMPAS(J)=-2.\r
33C FOR DECIMAL POINT\r
34 IF (IDIG.LT.1) GOTO 51\r
35C FOR IDIG=0 CASE\r
36 DO 50 IPART=1,IDIG+1\r
37C EXTRA PLACE TO CHECK FOR ROUNDING\r
38 PABS=FPART*10.\r
39 J=J+1\r
40 ANMPAS(J)=AINT(PABS)\r
41 FPART=PABS-ANMPAS(J)\r
4250 CONTINUE\r
43 FPART=-3.\r
44 IF (ANUM.LT.0) GOTO 52\r
45C PREPARE FOR POSITIVE NUMBER ROUNDING\r
46 IF (ANMPAS(J).LT.5) GOTO 55\r
47 ANMPAS(J-1)=ANMPAS(J-1)+1\r
4859 IF (ANMPAS(J-1).NE.10) GOTO 55\r
49C BE SHURE NOT TO INDEX THE DECIMAL POINT\r
50 IF (ANMPAS(J-2).NE.-2.) GOTO 53\r
51 J=J-1\r
52 IF (ANUM.GE.1) GOTO 53\r
53 ANMPAS(J-2)=1.\r
54 GOTO 55\r
5553 ANMPAS(J-2)=ANMPAS(J-2)+1\r
56 J=J-1\r
57C CHECK TO OVERFLOW ANMPAS\r
58 IF (J.NE.2) GOTO 59\r
59 FPART=1.\r
60C MOVE ARRAY DOWN BY ONE TO ADD - OR 1 FOR .99+\r
6152 LDIG=LDIG+1\r
62 J=1\r
63 DO 60 J=1,LDIG-1\r
64 ANMPAS(LDIG-J+1)=ANMPAS(LDIG-J)\r
6560 CONTINUE\r
66 ANMPAS(1)=FPART\r
67 GOTO 55\r
6851 FPART=-3.\r
69 IF (LDIG.LE.0) GOTO 100\r
70C FOR NEG. NUMBERS WITH TOO FEW PLACES\r
71 IF (ANUM.LT.0) GOTO 52\r
7255 IF (LDIG.GT.21 .OR.LDIG.LE.0) GOTO 100\r
73 CALL SYMB (XS,YS,HGT,ANMPAS,ANG,LDIG)\r
74120 RETURN\r
75100 WRITE (0,200)\r
76200 FORMAT (' NUMBER OF DIGITS NOT 1-19')\r
77 END\r
78\1a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0