29 integer,
parameter::
s_eof = -128
41 character(STRING),
private,
save::
thisline =
"" 42 integer,
private,
save::
i = 1
48 character(*),
intent(in):: line
56 integer,
intent(out):: tokentype
57 integer,
intent(out):: ivalue(5)
58 real(DP),
intent(out):: dvalue
59 character(*),
intent(out):: cvalue
60 integer:: iend, istr, ilen, ios
118 call match(
"^[-+]?#d*#.#d*[EeDd][-+]?#d+",
thisline(
i:), istr, ilen)
119 if (istr <= 0)
call match(
"^[-+]?#d*#.#d*",
thisline(
i:), istr, ilen)
123 if (ios /= 0) dvalue = huge(dvalue)
133 & iostat=ios) ivalue(1)
134 if (ios /= 0) ivalue(1) = huge(1)
character(string), save, private thisline
integer, parameter, public s_exponent
integer, parameter, public s_eof
integer, parameter, public s_openpar
integer, parameter, public s_shift
integer, parameter, public s_real
Provide simple regular expression subroutine: 'match'.
integer, parameter, public dp
Double Precision Real number.
subroutine, public match(pattern, text, start, length)
integer, parameter, public s_divide
Provides kind type parameter values.
integer, parameter, public s_multiply
integer, parameter, public s_closepar
integer, parameter, public s_text
subroutine, public dcunitsgettoken(tokentype, ivalue, dvalue, cvalue)
subroutine, public dcunitssetline(line)
integer, parameter, public s_integer
integer, parameter, public string
Character length for string.