Convert free-format input into double precision floating point palDfltin
Uses the strtod() system call to do the parsing. This may lead to subtle differences when compared to the SLA/F parsing.
All " D" characters are converted to " E" to handle fortran exponents.
Commas are recognized as a special case and are skipped if one happens to be the next character when updating nstrt. Additionally the output nstrt position will skip past any trailing space.
If no number can be found flag will be set to 1.
If the number overflows or underflows jflag will be set to 2. For overflow the returned result will have the value HUGE_VAL, for underflow it will have the value 0.0.
For compatiblity with SLA/F -0 will be returned as " 0" with jflag == -1.
Unlike slaDfltin a standalone " E" will return status 1 (could not find a number) rather than 2 (bad
number).
The code is more robust if the C99 copysign() function is available. This can recognize the -0.0 values returned by strtod. If copysign() is missing we try to scan the string looking for minus signs.