SUBROUTINE SCANINT( STRING, VALUE, NCHARS, NDIGITS ) INTEGER FUNCTION STR2INT( ASTRING ) REAL FUNCTION STR2REAL( ASTRING ) REAL*8 FUNCTION STR2DBLE( ASTRING ) CHARACTER*(*), INTENT(IN ) :: ASTRING ! string to find effective length for
INTEGER
, REAL
, or
DOUBLE PRECISION
value decoded from
ASTRING
, or IMISS3
or BADVAL3
from PARMS3.EXT
(as
appropriate) for "missing" or badly-formatted inputs. Skips leading
whitespace (defined as ASCII characters less than or equal to the
BLANK/SPACE character; terminates input at the first nondigit or the
first non-exponent-designator, for STR2REAL
.
SCANINT()
returns the INTEGER VALUE
(equivalent to VALUE=STR2INT(ASTRING)
, and also returns
the total number NCHARS
of characters consumed
(including whitespace) and the number NDIGITS
of digit
and/or leading sign characters.
USE M3UTILIO
(See sample programs LATLON, PRESZ, or SFCMET for additional usage examples.)
... USE M3UTILIO ... CHARACTER*256 ASTRING, BSTRING INTEGER L REAL R ... L = STR2INT( ASTRING ) IF ( L .EQ. IMISS3 ) THEN WRITE (*,*) 'ASTRING: ", ASTRING, '" blank or not an integer' ELSE WRITE (*,*) & 'INTEGER value stored in ASTRING is ', L END IF ... R = STR2REAL( BSTRING ) IF ( R .LT. AMISS3 ) THEN WRITE (*,*) 'BSTRING: ", BSTRING, '" blank or not a real' ELSE WRITE (*,*) & 'REAL value stored in BSTRING is ', R END IF ...
To: Models-3/EDSS I/O API: The Help Pages