7.151. CKXNUM

CKXNUM    CKXNUM    CKXNUM    CKXNUM    CKXNUM    CKXNUM    CKXNUM    
          **********************************************
                    **************************
                              ******

SUBROUTINE CKXNUM (LINE, NEXP, LOUT, NVAL, RVAL, KERR)
Searches a character string, LINE, for NEXP space-delimited
substrings representing numbers, until NVAL real values are
converted and stored in the array, RVAL.
This allows format-free input of numerical data.  For example:

   input:  LINE    = " 0.170E+14 0 47780.0"
           NEXP    = 3, the number of values requested
           LOUT    = 6, a logical unit number on which to write
                     diagnostic messages.
   output: NVAL    = 3, the number of values found
           RVAL(*) = 1.700E+13, 0.000E+00, 4.778E+04
           KERR    = .FALSE.

INPUT
LINE   - Character string, length established by calling program.
NEXP   - Integer scalar, number of real values to be found in LINE;
         If NEXP < 0 then IABS(NEXP) values are expected, but
         it is not an error condition if fewer values are found.
LOUT   - Integer scalar, output unit for printed diagnostics.

OUTPUT
NVAL   - Integer scalar, count of real values found in LINE.
RVAL   - Real array, values converted from characters in LINE;
         dimension at least NEXP.
KERR   - Logical, syntax or dimensioning error flag.