parse_real Interface

public interface parse_real

Parse a string into a real, reporting failures through error_t.

The accepted grammar is optional surrounding whitespace, an optional sign, a mantissa holding at least one digit and at most one decimal point (so both ".5" and "5." are accepted, "." is not), and an optional exponent introduced by e, E, d or D with an optional sign and at least one digit.

Everything else is rejected, in particular the spellings that a list directed read would happily accept: "nan", "inf", "infinity", repeat counts such as "3*7", comma separated values such as "1,2", and any trailing junk. Values that overflow the requested kind are rejected as well instead of becoming infinity.

Specific procedures exist for sp and dp.

Calls

interface~~parse_real~~CallsGraph interface~parse_real parse_real proc~parse_real_dp_char parse_real_dp_char interface~parse_real->proc~parse_real_dp_char proc~parse_real_dp_string parse_real_dp_string interface~parse_real->proc~parse_real_dp_string proc~parse_real_sp_char parse_real_sp_char interface~parse_real->proc~parse_real_sp_char proc~parse_real_sp_string parse_real_sp_string interface~parse_real->proc~parse_real_sp_string proc~parse_real_wide parse_real_wide proc~parse_real_dp_char->proc~parse_real_wide proc~parse_real_dp_string->proc~parse_real_wide interface~strip strip proc~parse_real_sp_char->interface~strip proc~error_has_error error_t%error_has_error proc~parse_real_sp_char->proc~error_has_error proc~error_set error_t%error_set proc~parse_real_sp_char->proc~error_set proc~parse_real_sp_char->proc~parse_real_wide proc~parse_real_sp_string->proc~parse_real_sp_char proc~strip_char strip_char interface~strip->proc~strip_char proc~strip_string strip_string interface~strip->proc~strip_string proc~parse_real_wide->interface~strip proc~parse_real_wide->proc~error_has_error proc~parse_real_wide->proc~error_set proc~check_exponent check_exponent proc~parse_real_wide->proc~check_exponent proc~skip_sign skip_sign proc~parse_real_wide->proc~skip_sign proc~check_exponent->proc~error_set proc~check_exponent->proc~skip_sign proc~strip_string->interface~strip

Called by

interface~~parse_real~~CalledByGraph interface~parse_real parse_real proc~cli_get_real_dp cli_t%cli_get_real_dp proc~cli_get_real_dp->interface~parse_real proc~cli_get_real_sp cli_t%cli_get_real_sp proc~cli_get_real_sp->interface~parse_real

Module Procedures

private subroutine parse_real_sp_char(str, value, err)

Parse a character string into a single precision real.

Read more…

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: str
real(kind=sp), intent(out) :: value
type(error_t), intent(out) :: err

private subroutine parse_real_sp_string(str, value, err)

Parse a string_type into a single precision real.

Arguments

Type IntentOptional Attributes Name
type(string_type), intent(in) :: str
real(kind=sp), intent(out) :: value
type(error_t), intent(out) :: err

private subroutine parse_real_dp_char(str, value, err)

Parse a character string into a double precision real.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: str
real(kind=dp), intent(out) :: value
type(error_t), intent(out) :: err

private subroutine parse_real_dp_string(str, value, err)

Parse a string_type into a double precision real.

Arguments

Type IntentOptional Attributes Name
type(string_type), intent(in) :: str
real(kind=dp), intent(out) :: value
type(error_t), intent(out) :: err