read_undelimited_listdirected Subroutine

private subroutine read_undelimited_listdirected(dtv, unit, iostat, iomsg)

Read an undelimited (no leading apostrophe or double quote) character value according to the rules for list directed input.

A blank, comma/semicolon (depending on the decimal mode), slash or end of record terminates the string.

If input is terminated by end of record, then this procedure returns an end-of-record condition.

Type Bound

string

Arguments

Type IntentOptional Attributes Name
class(string), intent(inout) :: dtv

The string.

integer, intent(in) :: unit

Logical unit.

integer, intent(out) :: iostat

IO status code.

character(len=*), intent(inout) :: iomsg

IO status message.


Calls

proc~~read_undelimited_listdirected~~CallsGraph proc~read_undelimited_listdirected stringifor_string_t::string%read_undelimited_listdirected proc~get_decimal_mode stringifor_string_t::get_decimal_mode proc~read_undelimited_listdirected->proc~get_decimal_mode proc~read_undelimited stringifor_string_t::string%read_undelimited proc~read_undelimited_listdirected->proc~read_undelimited

Called by

proc~~read_undelimited_listdirected~~CalledByGraph proc~read_undelimited_listdirected stringifor_string_t::string%read_undelimited_listdirected proc~read_formatted stringifor_string_t::string%read_formatted proc~read_formatted->proc~read_undelimited_listdirected

Contents


Source Code

  subroutine read_undelimited_listdirected(dtv, unit, iostat, iomsg)
  !< Read an undelimited (no leading apostrophe or double quote) character value according to the rules for list directed input.
  !<
  !< A blank, comma/semicolon (depending on the decimal mode), slash or end of record terminates the string.
  !<
  !< If input is terminated by end of record, then this procedure returns an end-of-record condition.
  class(string),    intent(inout) :: dtv           !< The string.
  integer,          intent(in)    :: unit          !< Logical unit.
  integer,          intent(out)   :: iostat        !< IO status code.
  character(len=*), intent(inout) :: iomsg         !< IO status message.
  logical                         :: decimal_point !<True if DECIMAL=POINT in effect.

  call get_decimal_mode(unit=unit, decimal_point=decimal_point, iostat=iostat, iomsg=iomsg)
  if (iostat /= 0) return
  call dtv%read_undelimited(unit=unit, terminators=' '//'/'//merge(CK_',', CK_';', decimal_point), iostat=iostat, iomsg=iomsg)
  endsubroutine read_undelimited_listdirected