SUBROUTINE RDNUM(REAL) C C FORTRAN CALL: CALL RDNUM(REAL) C C ACTION: READS AN INTEGER FROM UNIT 4 INTO THE VARIABLE C "REAL" C NUMBERS ARE READ IN FREE FORMAT, THAT IS, A NUMBER IS ANY STRING C OF DIGITS WITH ANY NUMBER OF LEADING OR TRAILING NON-NUMERIC C CHARACTERS. C EXAMPLE: ANY OF THE FOLLOWING INPUT LINES WILL RETURN THE VALUES C 1,2,3,4,5,6,7 C C 1 2 3 4 5 6 7 C 1,2,3,4,5,6,7 C C 1,2,3,4 C 5,6,7 C CCCCCCCCCCCCCCCCCCCCCCCCCCCCC REAL=0.0 ISIGN=1 DIV=0.1 S\1001, JMS CHAR IF(IC)1099,1001,1099 1099 IF(IC-43)1002,1001,1002 1002 IF(IC-45)4,3,4 3 ISIGN=-ISIGN GO TO 1001 4 IF(IC-32)5,1001,5 S\11, JMS CHAR 5 IF(IC-46)6,1007,6 6 IF(IC-48)99,8,8 8 IF(IC-58)1009,99,99 C*** IT'S A DIGIT!! 1009 REAL=REAL*10.0+FLOAT(IC-48) GO TO 11 C C*** PAST DECIMAL POINT *** C S\1007, JMS CHAR IF(IC-48)99,15,15 15 IF(IC-58)16,99,99 C*** DIGIT! 16 REAL=REAL+(DIV*FLOAT(IC-48)) DIV=DIV/10.0 GO TO 1007 C C END OF NUMBER, FIXUP SIGN C 99 IF(ISIGN)100,101,101 100 REAL=-REAL 101 RETURN C SUBROUTINE 'CHAR': IC<-- EDITED CHAR C IGNORES CONTROL CHARS SCHAR, 0 /ENTRY-EXIT 998 CALL CHRIO(-4,IC) S TAD \IC S AND (177 S DCA \IC IF(IC-13)996,997,996 996 IF(IC-32)998,997,997 997 CONTINUE S JMP I CHAR /RETURN END