Previous: utidf Up: ../plot79_u.html Next: utidl
SUBROUTINE UTIDI (NUMBER,NEXT,ERROR,FIELD,LENGTH,NBASE,FLUSH) C$ (Decode INTEGER Value from Character Form) C$ Convert an integer value represented as a string of digits C$ in FIELD(*) to internal (binary) format. Leading blanks C$ and tabs are ignored. Unlike FORTRAN formatted input, C$ blanks ARE significant. To permit free-form input, the C$ conversion will continue until a character which is neither C$ a sign nor a valid digit is found, or else the end of C$ FIELD(*) is reached. Lower-case letters are acceptable C$ input if the base is larger than 10. A pointer is set to C$ the next unprocessed character in FIELD(*) (which might be C$ FIELD(LENGTH+1)) so that the caller may check for valid C$ syntax. The arguments are: C$ C$ NUMBER.........Integer value (returned). C$ NEXT...........On exit, index of the character in FIELD(*) C$ which follows the last character processed. C$ On input, it should point to the first C$ character to be processed. C$ ERROR.......... .TRUE. - No valid characters found. NUMBER C$ is set to 0. C$ .FALSE. - No error occurred. C$ FIELD(*).......Character string to be decoded (A1 format). C$ LENGTH.........Number of characters in FIELD(*). C$ NBASE..........Number base. If not in the range 2..16, the C$ nearer of 2 or 16 will be assumed. C$ FLUSH.......... .TRUE. - Flush any leading invalid C$ characters. C$ .FALSE. - Do not flush leading invalid C$ characters. C$ C$ If FORTRAN formatted input is to be simulated, then LENGTH C$ should be set to the desired field width, and the output C$ value of NUMBER should be multiplied by 10**(LENGTH-NEXT+1) C$ to account for trailing blanks to be interpreted as zeroes. C$ It is up to the caller to verify that any trailing C$ characters are in fact blanks. The FLUSH option is useful C$ to allow successive calls to retrieve integers separated by C$ commas, spaces, etc. The caller must realize, however, C$ that this might cause skipping over incorrectly-coded items C$ (e.g. "1,2,3,R,5" for "1,2,3,4,5"). C$ (11-SEP-85)