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