stringifor_string_t Module

module~~stringifor_string_t~~UsesGraph module~stringifor_string_t stringifor_string_t module~befor64 befor64 module~befor64->module~stringifor_string_t module~penf~3 penf module~penf~3->module~stringifor_string_t module~penf~3->module~befor64 module~befor64_pack_data_m~2 befor64_pack_data_m module~penf~3->module~befor64_pack_data_m~2 module~befor64_pack_data_m~2->module~befor64 module~penf_global_parameters_variables penf_global_parameters_variables module~penf_global_parameters_variables->module~penf~3 module~penf_b_size~4 penf_b_size module~penf_global_parameters_variables->module~penf_b_size~4 module~penf_stringify~3 penf_stringify module~penf_global_parameters_variables->module~penf_stringify~3 module~penf_b_size~4->module~penf~3 module~penf_b_size~4->module~penf_stringify~3 module~penf_stringify~3->module~penf~3 iso_fortran_env iso_fortran_env iso_fortran_env->module~penf_stringify~3
Help

StringiFor, definition of string type.

Used By

module~~stringifor_string_t~~UsedByGraph module~stringifor_string_t stringifor_string_t module~stringifor stringifor module~stringifor_string_t->module~stringifor program~write_file write_file module~stringifor->program~write_file module~fury_uom_symbol128 fury_uom_symbol128 module~stringifor->module~fury_uom_symbol128 program~join join module~stringifor->program~join program~decode decode module~stringifor->program~decode program~srepeat srepeat module~stringifor->program~srepeat program~encode encode module~stringifor->program~encode program~to_number to_number module~stringifor->program~to_number module~fury_system_si64 fury_system_si64 module~stringifor->module~fury_system_si64 program~search search module~stringifor->program~search program~equal equal module~stringifor->program~equal module~fury_system_si128 fury_system_si128 module~stringifor->module~fury_system_si128 program~reverse reverse module~stringifor->program~reverse program~basename_dir basename_dir module~stringifor->program~basename_dir program~split split module~stringifor->program~split program~escape escape module~stringifor->program~escape program~swapcase swapcase module~stringifor->program~swapcase program~not_equal not_equal module~stringifor->program~not_equal program~slice slice module~stringifor->program~slice program~extension extension module~stringifor->program~extension module~fury_qreal128 fury_qreal128 module~stringifor->module~fury_qreal128 program~fill fill module~stringifor->program~fill program~free free module~stringifor->program~free program~snakecase snakecase module~stringifor->program~snakecase module~fury_uom_symbol32 fury_uom_symbol32 module~stringifor->module~fury_uom_symbol32 program~is_real is_real module~stringifor->program~is_real program~read_file read_file module~stringifor->program~read_file program~replace replace module~stringifor->program~replace program~sadjustlr sadjustlr module~stringifor->program~sadjustlr module~fury_uom64 fury_uom64 module~stringifor->module~fury_uom64 program~read_line read_line module~stringifor->program~read_line program~insert insert module~stringifor->program~insert program~greater_equal_than greater_equal_than module~stringifor->program~greater_equal_than program~is_number is_number module~stringifor->program~is_number program~strim strim module~stringifor->program~strim program~read_lines read_lines module~stringifor->program~read_lines program~sindex sindex module~stringifor->program~sindex program~greater_than greater_than module~stringifor->program~greater_than program~strip strip module~stringifor->program~strip program~startcase startcase module~stringifor->program~startcase program~camelcase camelcase module~stringifor->program~camelcase module~fury fury module~stringifor->module~fury program~is_integer is_integer module~stringifor->program~is_integer program~sverify sverify module~stringifor->program~sverify program~lower_equal_than lower_equal_than module~stringifor->program~lower_equal_than program~upper_lower upper_lower module~stringifor->program~upper_lower module~fury_mixed_kinds fury_mixed_kinds module~stringifor->module~fury_mixed_kinds program~partition partition module~stringifor->program~partition program~write_lines write_lines module~stringifor->program~write_lines module~fury_uom_reference64 fury_uom_reference64 module~stringifor->module~fury_uom_reference64 program~csv_naive_parser csv_naive_parser module~stringifor->program~csv_naive_parser module~fury_system_abstract32 fury_system_abstract32 module~stringifor->module~fury_system_abstract32 program~is_digit is_digit module~stringifor->program~is_digit program~count_string count_string module~stringifor->program~count_string module~fury_qreal32 fury_qreal32 module~stringifor->module~fury_qreal32 module~fury_qreal64 fury_qreal64 module~stringifor->module~fury_qreal64 module~fury_system_abstract64 fury_system_abstract64 module~stringifor->module~fury_system_abstract64 module~fury_uom_symbol64 fury_uom_symbol64 module~stringifor->module~fury_uom_symbol64 program~sscan sscan module~stringifor->program~sscan program~assignments assignments module~stringifor->program~assignments module~fury_uom32 fury_uom32 module~stringifor->module~fury_uom32 program~io_formatted io_formatted module~stringifor->program~io_formatted program~unique unique module~stringifor->program~unique program~slen slen module~stringifor->program~slen module~fury_uom128 fury_uom128 module~stringifor->module~fury_uom128 module~fury_uom_reference32 fury_uom_reference32 module~stringifor->module~fury_uom_reference32 program~concatenation concatenation module~stringifor->program~concatenation module~fury_system_abstract128 fury_system_abstract128 module~stringifor->module~fury_system_abstract128 program~capitalize capitalize module~stringifor->program~capitalize module~fury_uom_reference128 fury_uom_reference128 module~stringifor->module~fury_uom_reference128 program~io_basic io_basic module~stringifor->program~io_basic program~unescape unescape module~stringifor->program~unescape module~fury_system_si32 fury_system_si32 module~stringifor->module~fury_system_si32 program~start_end start_end module~stringifor->program~start_end program~lower_than lower_than module~stringifor->program~lower_than module~fury_uom_symbol128->module~fury module~fury_uom_symbol128->module~fury_mixed_kinds module~fury_uom_symbol128->module~fury_uom128 module~fury_uom_symbol128->module~fury_uom_reference128 module~fury_system_si64->module~fury module~fury_system_si128->module~fury module~fury_qreal128->module~fury_system_si128 module~fury_qreal128->module~fury module~fury_qreal128->module~fury_mixed_kinds module~fury_qreal128->module~fury_system_abstract128 module~fury_uom_symbol32->module~fury module~fury_uom_symbol32->module~fury_mixed_kinds module~fury_uom_symbol32->module~fury_uom32 module~fury_uom_symbol32->module~fury_uom_reference32 module~fury_uom64->module~fury_system_si64 module~fury_uom64->module~fury module~fury_uom64->module~fury_mixed_kinds module~fury_uom64->module~fury_qreal64 module~fury_uom64->module~fury_system_abstract64 program~fury_test_qreal_div_mixed fury_test_qreal_div_mixed module~fury->program~fury_test_qreal_div_mixed program~fury_test_qreal_eq fury_test_qreal_eq module~fury->program~fury_test_qreal_eq program~fury_test_uom_div fury_test_uom_div module~fury->program~fury_test_uom_div program~fury_test_qreal_eq_mixed fury_test_qreal_eq_mixed module~fury->program~fury_test_qreal_eq_mixed program~fury_test_uom_mul fury_test_uom_mul module~fury->program~fury_test_uom_mul program~fury_test_qreal_mul fury_test_qreal_mul module~fury->program~fury_test_qreal_mul program~fury_test_bolt32 fury_test_bolt32 module~fury->program~fury_test_bolt32 program~fury_test_uom_sub_failure fury_test_uom_sub_failure module~fury->program~fury_test_uom_sub_failure program~fury_test_qreal_mul_mixed fury_test_qreal_mul_mixed module~fury->program~fury_test_qreal_mul_mixed program~fury_test_bolt64 fury_test_bolt64 module~fury->program~fury_test_bolt64 program~fury_test_qreal_not_eq fury_test_qreal_not_eq module~fury->program~fury_test_qreal_not_eq program~fury_test_system_si fury_test_system_si module~fury->program~fury_test_system_si program~fury_test_uom_sub fury_test_uom_sub module~fury->program~fury_test_uom_sub program~fury_test_qreal_not_eq_mixed fury_test_qreal_not_eq_mixed module~fury->program~fury_test_qreal_not_eq_mixed program~fury_test_qreal_sub_failure fury_test_qreal_sub_failure module~fury->program~fury_test_qreal_sub_failure program~fury_test_qreal_pow fury_test_qreal_pow module~fury->program~fury_test_qreal_pow program~fury_test_uom_aliases fury_test_uom_aliases module~fury->program~fury_test_uom_aliases program~fury_test_qreal_sub fury_test_qreal_sub module~fury->program~fury_test_qreal_sub program~fury_test_uom_parse_failure fury_test_uom_parse_failure module~fury->program~fury_test_uom_parse_failure program~fury_test_qreal_add_aliases_failure fury_test_qreal_add_aliases_failure module~fury->program~fury_test_qreal_add_aliases_failure program~fury_test_qreal_add_failure fury_test_qreal_add_failure module~fury->program~fury_test_qreal_add_failure module~dbm_to_mw_converter dBm_to_mW_converter module~fury->module~dbm_to_mw_converter program~fury_test_qreal_sub_mixed fury_test_qreal_sub_mixed module~fury->program~fury_test_qreal_sub_mixed program~fury_test_qreal_add_mixed fury_test_qreal_add_mixed module~fury->program~fury_test_qreal_add_mixed program~fury_test_qreal_add fury_test_qreal_add module~fury->program~fury_test_qreal_add program~fury_test_qreal_sub_mixed_failure fury_test_qreal_sub_mixed_failure module~fury->program~fury_test_qreal_sub_mixed_failure program~fury_test_qreal_add_mixed_failure fury_test_qreal_add_mixed_failure module~fury->program~fury_test_qreal_add_mixed_failure program~fury_test_qreal_aliases fury_test_qreal_aliases module~fury->program~fury_test_qreal_aliases program~fury_test_uom_add fury_test_uom_add module~fury->program~fury_test_uom_add program~fury_test_qreal_assign fury_test_qreal_assign module~fury->program~fury_test_qreal_assign program~fury_test_uom_add_failure fury_test_uom_add_failure module~fury->program~fury_test_uom_add_failure program~fury_test_uom_assign fury_test_uom_assign module~fury->program~fury_test_uom_assign program~fury_test_qreal_conversions_complex fury_test_qreal_conversions_complex module~fury->program~fury_test_qreal_conversions_complex program~fury_test_qreal_conversions_si fury_test_qreal_conversions_si module~fury->program~fury_test_qreal_conversions_si program~fury_test_uom_pow fury_test_uom_pow module~fury->program~fury_test_uom_pow program~fury_test_qreal_conversions_simple fury_test_qreal_conversions_simple module~fury->program~fury_test_qreal_conversions_simple program~fury_test_uom_assign_failure fury_test_uom_assign_failure module~fury->program~fury_test_uom_assign_failure program~fury_test_qreal_div fury_test_qreal_div module~fury->program~fury_test_qreal_div module~fury_mixed_kinds->module~fury module~fury_uom_reference64->module~fury_uom64 module~fury_uom_reference64->module~fury module~fury_uom_reference64->module~fury_mixed_kinds module~fury_uom_reference64->module~fury_system_abstract64 module~fury_system_abstract32->module~fury module~fury_system_abstract32->module~fury_system_si32 module~fury_qreal32->module~fury module~fury_qreal32->module~fury_mixed_kinds module~fury_qreal32->module~fury_system_abstract32 module~fury_qreal32->module~fury_system_si32 module~fury_qreal64->module~fury_system_si64 module~fury_qreal64->module~fury module~fury_qreal64->module~fury_mixed_kinds module~fury_qreal64->module~fury_system_abstract64 module~fury_system_abstract64->module~fury_system_si64 module~fury_system_abstract64->module~fury module~fury_uom_symbol64->module~fury_uom64 module~fury_uom_symbol64->module~fury module~fury_uom_symbol64->module~fury_mixed_kinds module~fury_uom_symbol64->module~fury_uom_reference64 module~fury_uom32->module~fury module~fury_uom32->module~fury_mixed_kinds module~fury_uom32->module~fury_system_abstract32 module~fury_uom32->module~fury_qreal32 module~fury_uom32->module~fury_system_si32 module~fury_uom128->module~fury_system_si128 module~fury_uom128->module~fury_qreal128 module~fury_uom128->module~fury module~fury_uom128->module~fury_mixed_kinds module~fury_uom128->module~fury_system_abstract128 module~fury_uom_reference32->module~fury module~fury_uom_reference32->module~fury_mixed_kinds module~fury_uom_reference32->module~fury_system_abstract32 module~fury_uom_reference32->module~fury_uom32 module~fury_system_abstract128->module~fury_system_si128 module~fury_system_abstract128->module~fury module~fury_uom_reference128->module~fury module~fury_uom_reference128->module~fury_mixed_kinds module~fury_uom_reference128->module~fury_uom128 module~fury_uom_reference128->module~fury_system_abstract128 module~fury_system_si32->module~fury module~dbm_to_mw_converter->program~fury_test_qreal_conversions_complex
Help


Variables

TypeVisibility AttributesNameInitial
integer, public, parameter:: CK =selected_char_kind('DEFAULT')

Default character kind.

character(kind=CK,len=26), private, parameter:: UPPER_ALPHABET ='ABCDEFGHIJKLMNOPQRSTUVWXYZ'

Upper case alphabet.

character(kind=CK,len=26), private, parameter:: LOWER_ALPHABET ='abcdefghijklmnopqrstuvwxyz'

Lower case alphabet.

character(kind=CK,len=1), private, parameter:: SPACE =' '

Space character.

character(kind=CK,len=1), private, parameter:: TAB =achar(9)

Tab character.

character(kind=CK,len=1), private, parameter:: UIX_DIR_SEP =char(47)

Unix/Linux directories separator (/).

character(kind=CK,len=1), private, parameter:: BACKSLASH =char(92)

Backslash character.


Derived Types

type, public :: string

OOP designed string class.

Components

TypeVisibility AttributesNameInitial
character(kind=CK,len=:), private, allocatable:: raw

Raw data.

Type-Bound Procedures

procedure, public, pass(self) :: adjustl => sadjustl

Adjustl replacement.

procedure, public, pass(self) :: adjustr => sadjustr

Adjustr replacement.

procedure, public, pass(self) :: count => scount

Count replacement.

generic, public :: index => sindex_string_string, sindex_string_character

Index replacement.

procedure, public, pass(self) :: len => slen

Len replacement.

procedure, public, pass(self) :: len_trim => slen_trim

Len_trim replacement.

generic, public :: repeat => srepeat_string_string, srepeat_character_string

Repeat replacement.

generic, public :: scan => sscan_string_string, sscan_string_character

Scan replacement.

procedure, public, pass(self) :: trim => strim

Trim replacement.

procedure, public, pass(self) :: verify => sverify

Verify replacement.

procedure, public, pass(self) :: basedir

Return the base directory name of a string containing a file name.

procedure, public, pass(self) :: basename

Return the base file name of a string containing a file name.

procedure, public, pass(self) :: camelcase

Return a string with all words capitalized without spaces.

procedure, public, pass(self) :: capitalize

Return a string with its first character capitalized and the rest lowercased.

procedure, public, pass(self) :: chars

Return the raw characters data.

procedure, public, pass(self) :: decode

Decode string.

procedure, public, pass(self) :: encode

Encode string.

procedure, public, pass(self) :: escape

Escape backslashes (or custom escape character).

procedure, public, pass(self) :: extension

Return the extension of a string containing a file name.

procedure, public, pass(self) :: fill

Pad string on the left (or right) with zeros (or other char) to fill width.

procedure, public, pass(self) :: free

Free dynamic memory.

generic, public :: insert => insert_string, insert_character

Insert substring into string at a specified position.

generic, public :: join => join_strings, join_characters

Return a string that is a join of an array of strings or characters.

procedure, public, pass(self) :: lower

Return a string with all lowercase characters.

procedure, public, pass(self) :: partition

Split string at separator and return the 3 parts (before, the separator and after).

procedure, public, pass(self) :: read_file

Read a file a single string stream.

procedure, public, pass(self) :: read_line

Read line (record) from a connected unit.

procedure, public, pass(self) :: read_lines

Read (all) lines (records) from a connected unit as a single ascii stream.

procedure, public, pass(self) :: replace

Return a string with all occurrences of substring old replaced by new.

procedure, public, pass(self) :: reverse

Return a reversed string.

procedure, public, pass(self) :: search

Search for tagged record into string.

procedure, public, pass(self) :: slice

Return the raw characters data sliced.

procedure, public, pass(self) :: snakecase

Return a string with all words lowercase separated by "_".

procedure, public, pass(self) :: split

Return a list of substring in the string, using sep as the delimiter string.

procedure, public, pass(self) :: startcase

Return a string with all words capitalized, e.g. title case.

procedure, public, pass(self) :: strip

Return a string with the leading and trailing characters removed.

procedure, public, pass(self) :: swapcase

Return a string with uppercase chars converted to lowercase and vice versa.

generic, public :: to_number => to_integer_I1P, to_integer_I2P, to_integer_I4P, to_integer_I8P, to_real_R4P, to_real_R8P

Cast string to number.

procedure, public, pass(self) :: unescape

Unescape double backslashes (or custom escaped character).

procedure, public, pass(self) :: unique

Reduce to one (unique) multiple occurrences of a substring into a string.

procedure, public, pass(self) :: upper

Return a string with all uppercase characters.

procedure, public, pass(self) :: write_file

Write a single string stream into file.

procedure, public, pass(self) :: write_line

Write line (record) to a connected unit.

procedure, public, pass(self) :: write_lines

Write lines (records) to a connected unit.

procedure, public, pass(self) :: end_with

Return true if a string ends with a specified suffix.

procedure, public, pass(self) :: is_allocated

Return true if the string is allocated.

procedure, public, pass(self) :: is_digit

Return true if all characters in the string are digits.

procedure, public, pass(self) :: is_integer

Return true if the string contains an integer.

procedure, public, pass(self) :: is_lower

Return true if all characters in the string are lowercase.

procedure, public, pass(self) :: is_number

Return true if the string contains a number (real or integer).

procedure, public, pass(self) :: is_real

Return true if the string contains an real.

procedure, public, pass(self) :: is_upper

Return true if all characters in the string are uppercase.

procedure, public, pass(self) :: start_with

Return true if a string starts with a specified prefix.

generic, public :: assignment(=) => string_assign_string, string_assign_character, string_assign_integer_I1P, string_assign_integer_I2P, string_assign_integer_I4P, string_assign_integer_I8P, string_assign_real_R4P, string_assign_real_R8P

Assignment operator overloading.

generic, public :: operator(//) => string_concat_string, string_concat_character, character_concat_string

Concatenation operator overloading.

generic, public :: operator(.cat.) => string_concat_string_string, string_concat_character_string, character_concat_string_string

Concatenation operator (string output) overloading.

generic, public :: operator(==) => string_eq_string, string_eq_character, character_eq_string

Equal operator overloading.

generic, public :: operator(/=) => string_ne_string, string_ne_character, character_ne_string

Not equal operator overloading.

generic, public :: operator(<) => string_lt_string, string_lt_character, character_lt_string

Lower than operator overloading.

generic, public :: operator(<=) => string_le_string, string_le_character, character_le_string

Lower equal than operator overloading.

generic, public :: operator(>=) => string_ge_string, string_ge_character, character_ge_string

Greater equal than operator overloading.

generic, public :: operator(>) => string_gt_string, string_gt_character, character_gt_string

Greater than operator overloading.

procedure, private, pass(self) :: sindex_string_string

Index replacement.

procedure, private, pass(self) :: sindex_string_character

Index replacement.

procedure, private, pass(self) :: srepeat_string_string

Repeat replacement.

procedure, private, pass(self) :: srepeat_character_string

Repeat replacement.

procedure, private, pass(self) :: sscan_string_string

Scan replacement.

procedure, private, pass(self) :: sscan_string_character

Scan replacement.

procedure, private, pass(self) :: insert_string

Insert substring into string at a specified position.

procedure, private, pass(self) :: insert_character

Insert substring into string at a specified position.

procedure, private, pass(self) :: join_strings

Return join string of an array of strings.

procedure, private, pass(self) :: join_characters

Return join string of an array of characters.

procedure, private, pass(self) :: to_integer_I1P

Cast string to integer.

procedure, private, pass(self) :: to_integer_I2P

Cast string to integer.

procedure, private, pass(self) :: to_integer_I4P

Cast string to integer.

procedure, private, pass(self) :: to_integer_I8P

Cast string to integer.

procedure, private, pass(self) :: to_real_R4P

Cast string to real.

procedure, private, pass(self) :: to_real_R8P

Cast string to real.

procedure, private, pass(self) :: to_real_R16P

Cast string to real.

procedure, private, pass(lhs) :: string_assign_string

Assignment operator from string input.

procedure, private, pass(lhs) :: string_assign_character

Assignment operator from character input.

procedure, private, pass(lhs) :: string_assign_integer_I1P

Assignment operator from integer input.

procedure, private, pass(lhs) :: string_assign_integer_I2P

Assignment operator from integer input.

procedure, private, pass(lhs) :: string_assign_integer_I4P

Assignment operator from integer input.

procedure, private, pass(lhs) :: string_assign_integer_I8P

Assignment operator from integer input.

procedure, private, pass(lhs) :: string_assign_real_R4P

Assignment operator from real input.

procedure, private, pass(lhs) :: string_assign_real_R8P

Assignment operator from real input.

procedure, private, pass(lhs) :: string_assign_real_R16P

Assignment operator from real input.

procedure, private, pass(lhs) :: string_concat_string

Concatenation with string.

procedure, private, pass(lhs) :: string_concat_character

Concatenation with character.

procedure, private, pass(rhs) :: character_concat_string

Concatenation with character (inverted).

procedure, private, pass(lhs) :: string_concat_string_string

Concatenation with string (string output).

procedure, private, pass(lhs) :: string_concat_character_string

Concatenation with character (string output).

procedure, private, pass(rhs) :: character_concat_string_string

Concatenation with character (inverted, string output).

procedure, private, pass(lhs) :: string_eq_string

Equal to string logical operator.

procedure, private, pass(lhs) :: string_eq_character

Equal to character logical operator.

procedure, private, pass(rhs) :: character_eq_string

Equal to character (inverted) logical operator.

procedure, private, pass(lhs) :: string_ne_string

Not equal to string logical operator.

procedure, private, pass(lhs) :: string_ne_character

Not equal to character logical operator.

procedure, private, pass(rhs) :: character_ne_string

Not equal to character (inverted) logical operator.

procedure, private, pass(lhs) :: string_lt_string

Lower than to string logical operator.

procedure, private, pass(lhs) :: string_lt_character

Lower than to character logical operator.

procedure, private, pass(rhs) :: character_lt_string

Lower than to character (inverted) logical operator.

procedure, private, pass(lhs) :: string_le_string

Lower equal than to string logical operator.

procedure, private, pass(lhs) :: string_le_character

Lower equal than to character logical operator.

procedure, private, pass(rhs) :: character_le_string

Lower equal than to character (inverted) logical operator.

procedure, private, pass(lhs) :: string_ge_string

Greater equal than to string logical operator.

procedure, private, pass(lhs) :: string_ge_character

Greater equal than to character logical operator.

procedure, private, pass(rhs) :: character_ge_string

Greater equal than to character (inverted) logical operator.

procedure, private, pass(lhs) :: string_gt_string

Greater than to string logical operator.

procedure, private, pass(lhs) :: string_gt_character

Greater than to character logical operator.

procedure, private, pass(rhs) :: character_gt_string

Greater than to character (inverted) logical operator.

procedure, private, pass(dtv) :: read_formatted

Formatted input.

procedure, private, pass(dtv) :: read_delimited

Read a delimited input.

procedure, private, pass(dtv) :: read_undelimited

Read an undelimited input.

procedure, private, pass(dtv) :: read_undelimited_listdirected

Read an undelimited list directed input.

procedure, private, pass(dtv) :: write_formatted

Formatted output.

procedure, private, pass(dtv) :: read_unformatted

Unformatted input.

procedure, private, pass(dtv) :: write_unformatted

Unformatted output.

procedure, private, pass(self) :: replace_one_occurrence

Replace the first occurrence of substring old by new.


Functions

private elemental function sadjustl(self) result(adjusted)

Left adjust a string by removing leading spaces.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value type(string)

Adjusted string.

public pure function sadjustl_character(self) result(adjusted)

Left adjust a string by removing leading spaces (character output).

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value character(kind=CK,len=len(self%raw))

Adjusted string.

private elemental function sadjustr(self) result(adjusted)

Right adjust a string by removing leading spaces.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value type(string)

Adjusted string.

public pure function sadjustr_character(self) result(adjusted)

Right adjust a string by removing leading spaces (character output).

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value character(kind=CK,len=len(self%raw))

Adjusted string.

private elemental function scount(self, substring, ignore_isolated) result(No)

Count the number of occurences of a substring into a string.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(len=*), intent(in) :: substring

Substring.

logical, intent(in), optional :: ignore_isolated

Ignore "isolated" occurrences.

Return Value integer

Number of occurrences.

public elemental function sindex_string_string(self, substring, back) result(i)

Return the position of the start of the first occurrence of string substring as a substring in string, counting from one. If substring is not present in string, zero is returned. If the back argument is present and true, the return value is the start of the last occurrence rather than the first.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

type(string), intent(in) :: substring

Searched substring.

logical, intent(in), optional :: back

Start of the last occurrence rather than the first.

Return Value integer

Result of the search.

public elemental function sindex_string_character(self, substring, back) result(i)

Return the position of the start of the first occurrence of string substring as a substring in string, counting from one. If substring is not present in string, zero is returned. If the back argument is present and true, the return value is the start of the last occurrence rather than the first.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in) :: substring

Searched substring.

logical, intent(in), optional :: back

Start of the last occurrence rather than the first.

Return Value integer

Result of the search.

public elemental function sindex_character_string(string_, substring, back) result(i)

Return the position of the start of the first occurrence of string substring as a substring in string, counting from one. If substring is not present in string, zero is returned. If the back argument is present and true, the return value is the start of the last occurrence rather than the first.

Arguments

Type IntentOptional AttributesName
character(kind=CK,len=*), intent(in) :: string_

The string.

type(string), intent(in) :: substring

Searched substring.

logical, intent(in), optional :: back

Start of the last occurrence rather than the first.

Return Value integer

Result of the search.

public elemental function slen(self) result(l)

Return the length of a string.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value integer

String length.

public elemental function slen_trim(self) result(l)

Return the length of a string, ignoring any trailing blanks.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value integer

String length.

public elemental function srepeat_string_string(self, ncopies) result(repeated)

Concatenates several copies of an input string.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

String to be repeated.

integer, intent(in) :: ncopies

Number of string copies.

Return Value type(string)

Repeated string.

private elemental function srepeat_character_string(self, rstring, ncopies) result(repeated)

Concatenates several copies of an input string.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

String to be repeated.

character(kind=CK,len=*), intent(in) :: rstring

String to be repeated.

integer, intent(in) :: ncopies

Number of string copies.

Return Value type(string)

Repeated string.

public elemental function sscan_string_string(self, set, back) result(i)

Return the leftmost (if back is either absent or equals false, otherwise the rightmost) character of string that is in set.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

type(string), intent(in) :: set

Searched set.

logical, intent(in), optional :: back

Start of the last occurrence rather than the first.

Return Value integer

Result of the search.

public elemental function sscan_string_character(self, set, back) result(i)

Return the leftmost (if back is either absent or equals false, otherwise the rightmost) character of string that is in set.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in) :: set

Searched set.

logical, intent(in), optional :: back

Start of the last occurrence rather than the first.

Return Value integer

Result of the search.

public elemental function sscan_character_string(sstring, set, back) result(i)

Return the leftmost (if back is either absent or equals false, otherwise the rightmost) character of string that is in set.

Arguments

Type IntentOptional AttributesName
character(kind=CK,len=*), intent(in) :: sstring

The string.

type(string), intent(in) :: set

Searched set.

logical, intent(in), optional :: back

Start of the last occurrence rather than the first.

Return Value integer

Result of the search.

public elemental function strim(self) result(trimmed)

Remove leading spaces.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value type(string)

Trimmed string.

private elemental function sverify(self, set, back) result(i)

Return the leftmost (if back is either absent or equals false, otherwise the rightmost) character of string that is not in set. If all characters of string are found in set, the result is zero.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in) :: set

Searched set.

logical, intent(in), optional :: back

Start of the last occurrence rather than the first.

Return Value integer

Result of the search.

private elemental function basedir(self, sep)

Return the base directory name of a string containing a file name.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in), optional :: sep

Directory separator.

Return Value type(string)

Base directory name.

private elemental function basename(self, sep, extension, strip_last_extension)

Return the base file name of a string containing a file name.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in), optional :: sep

Directory separator.

character(kind=CK,len=*), intent(in), optional :: extension

File extension.

logical, intent(in), optional :: strip_last_extension

Flag to enable the stripping of last extension.

Return Value type(string)

Base file name.

private elemental function camelcase(self, sep)

Return a string with all words capitalized without spaces.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in), optional :: sep

Separator.

Return Value type(string)

Camel case string.

private elemental function capitalize(self) result(capitalized)

Return a string with its first character capitalized and the rest lowercased.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value type(string)

Upper case string.

private pure function chars(self) result(raw)

Return the raw characters data.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value character(kind=CK,len=:), allocatable

Raw characters data.

private elemental function decode(self, codec) result(decoded)

Return a string decoded accordingly the codec.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in) :: codec

Encoding codec.

Return Value type(string)

Decoded string.

private elemental function encode(self, codec) result(encoded)

Return a string encoded accordingly the codec.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in) :: codec

Encoding codec.

Return Value type(string)

Encoded string.

private elemental function escape(self, to_escape, esc) result(escaped)

Escape backslashes (or custom escape character).

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=1), intent(in) :: to_escape

Character to be escaped.

character(kind=CK,len=*), intent(in), optional :: esc

Character used to escape.

Return Value type(string)

Escaped string.

private elemental function extension(self)

Return the extension of a string containing a file name.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value type(string)

Extension file name.

private elemental function fill(self, width, right, filling_char) result(filled)

Pad string on the left (or right) with zeros (or other char) to fill width.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

integer, intent(in) :: width

Final width of filled string.

logical, intent(in), optional :: right

Fill on the right instead of left.

character(kind=CK,len=1), intent(in), optional :: filling_char

Filling character (default "0").

Return Value type(string)

Filled string.

private elemental function insert_character(self, substring, pos) result(inserted)

Insert substring into string at a specified position.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(len=*), intent(in) :: substring

Substring.

integer, intent(in) :: pos

Position from which insert substring.

Return Value type(string)

Inserted string.

private elemental function insert_string(self, substring, pos) result(inserted)

Insert substring into string at a specified position.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

type(string), intent(in) :: substring

Substring.

integer, intent(in) :: pos

Position from which insert substring.

Return Value type(string)

Inserted string.

private pure function join_strings(self, array, sep) result(join)

Return a string that is a join of an array of strings.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

type(string), intent(in) :: array(1:)

Array to be joined.

character(kind=CK,len=*), intent(in), optional :: sep

Separator.

Return Value type(string)

The join of array.

private pure function join_characters(self, array, sep) result(join)

Return a string that is a join of an array of characters.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in) :: array(1:)

Array to be joined.

character(kind=CK,len=*), intent(in), optional :: sep

Separator.

Return Value type(string)

The join of array.

private elemental function lower(self)

Return a string with all lowercase characters.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value type(string)

Upper case string.

private pure function partition(self, sep) result(partitions)

Split string at separator and return the 3 parts (before, the separator and after).

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in), optional :: sep

Separator.

Return Value type(string) (1:3)

after the separator.

private elemental function replace(self, old, new, count) result(replaced)

Return a string with all occurrences of substring old replaced by new.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in) :: old

Old substring.

character(kind=CK,len=*), intent(in) :: new

New substring.

integer, intent(in), optional :: count

Number of old occurences to be replaced.

Return Value type(string)

The string with old replaced by new.

private elemental function reverse(self) result(reversed)

Return a reversed string.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value type(string)

The reversed string.

private function search(self, tag_start, tag_end, in_string, in_character, istart, iend) result(tag)

Search for tagged record into string, return the first record found (if any) matching the tags.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in) :: tag_start

Start tag.

character(kind=CK,len=*), intent(in) :: tag_end

End tag.

type(string), intent(in), optional :: in_string

Search into this string.

character(kind=CK,len=*), intent(in), optional :: in_character

Search into this character string.

integer, intent(out), optional :: istart

Starting index of tag inside the string.

integer, intent(out), optional :: iend

Ending index of tag inside the string.

Return Value type(string)

First tag found.

private pure function slice(self, istart, iend) result(raw)

Return the raw characters data sliced.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

integer, intent(in) :: istart

Slice start index.

integer, intent(in) :: iend

Slice end index.

Return Value character(kind=CK,len=:), allocatable

Raw characters data.

private elemental function snakecase(self, sep)

Return a string with all words lowercase separated by "_".

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in), optional :: sep

Separator.

Return Value type(string)

Snake case string.

private elemental function startcase(self, sep)

Return a string with all words capitalized, e.g. title case.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in), optional :: sep

Separator.

Return Value type(string)

Start case string.

private elemental function strip(self, remove_nulls)

Return a copy of the string with the leading and trailing characters removed.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

logical, intent(in), optional :: remove_nulls

Remove null characters at the end.

Return Value type(string)

The stripped string.

private elemental function swapcase(self)

Return a copy of the string with uppercase characters converted to lowercase and vice versa.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value type(string)

Upper case string.

private elemental function to_integer_I1P(self, kind) result(to_number)

Cast string to integer (I1P).

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

integer(kind=I1P), intent(in) :: kind

Mold parameter for kind detection.

Return Value integer(kind=I1P)

The number into the string.

private elemental function to_integer_I2P(self, kind) result(to_number)

Cast string to integer (I2P).

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

integer(kind=I2P), intent(in) :: kind

Mold parameter for kind detection.

Return Value integer(kind=I2P)

The number into the string.

private elemental function to_integer_I4P(self, kind) result(to_number)

Cast string to integer (I4P).

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

integer(kind=I4P), intent(in) :: kind

Mold parameter for kind detection.

Return Value integer(kind=I4P)

The number into the string.

private elemental function to_integer_I8P(self, kind) result(to_number)

Cast string to integer (I8P).

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

integer(kind=I8P), intent(in) :: kind

Mold parameter for kind detection.

Return Value integer(kind=I8P)

The number into the string.

private elemental function to_real_R4P(self, kind) result(to_number)

Cast string to real (R4P).

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

real(kind=R4P), intent(in) :: kind

Mold parameter for kind detection.

Return Value real(kind=R4P)

The number into the string.

private elemental function to_real_R8P(self, kind) result(to_number)

Cast string to real (R8P).

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

real(kind=R8P), intent(in) :: kind

Mold parameter for kind detection.

Return Value real(kind=R8P)

The number into the string.

private elemental function to_real_R16P(self, kind) result(to_number)

Cast string to real (R16P).

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

real(kind=R16P), intent(in) :: kind

Mold parameter for kind detection.

Return Value real(kind=R16P)

The number into the string.

private elemental function unescape(self, to_unescape, unesc) result(unescaped)

Unescape double backslashes (or custom escaped character).

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=1), intent(in) :: to_unescape

Character to be unescaped.

character(kind=CK,len=*), intent(in), optional :: unesc

Character used to unescape.

Return Value type(string)

Escaped string.

private elemental function unique(self, substring) result(uniq)

Reduce to one (unique) multiple (sequential) occurrences of a substring into a string.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in), optional :: substring

Substring which multiple occurences must be reduced to one.

Return Value type(string)

String parsed.

private elemental function upper(self)

Return a string with all uppercase characters.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value type(string)

Upper case string.

private elemental function end_with(self, suffix, start, end)

Return true if a string ends with a specified suffix.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in) :: suffix

Searched suffix.

integer, intent(in), optional :: start

Start position into the string.

integer, intent(in), optional :: end

End position into the string.

Return Value logical

Result of the test.

private elemental function is_allocated(self)

Return true if the string is allocated.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value logical

Result of the test.

private elemental function is_digit(self)

Return true if all characters in the string are digits.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value logical

Result of the test.

private elemental function is_integer(self, allow_spaces)

Return true if the string contains an integer.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

logical, intent(in), optional :: allow_spaces

Allow leading-trailing spaces.

Return Value logical

Result of the test.

private elemental function is_lower(self)

Return true if all characters in the string are lowercase.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value logical

Result of the test.

private elemental function is_number(self, allow_spaces)

Return true if the string contains a number (real or integer).

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

logical, intent(in), optional :: allow_spaces

Allow leading-trailing spaces.

Return Value logical

Result of the test.

private elemental function is_real(self, allow_spaces)

Return true if the string contains a real.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

logical, intent(in), optional :: allow_spaces

Allow leading-trailing spaces.

Return Value logical

Result of the test.

private elemental function is_upper(self)

Return true if all characters in the string are uppercase.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

Return Value logical

Result of the test.

private elemental function start_with(self, prefix, start, end)

Return true if a string starts with a specified prefix.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in) :: prefix

Searched prefix.

integer, intent(in), optional :: start

Start position into the string.

integer, intent(in), optional :: end

End position into the string.

Return Value logical

Result of the test.

private pure function string_concat_string(lhs, rhs) result(concat)

Concatenation with string.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: lhs

Left hand side.

type(string), intent(in) :: rhs

Right hand side.

Return Value character(kind=CK,len=:), allocatable

Concatenated string.

private pure function string_concat_character(lhs, rhs) result(concat)

Concatenation with character.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: lhs

Left hand side.

character(kind=CK,len=*), intent(in) :: rhs

Right hand side.

Return Value character(kind=CK,len=:), allocatable

Concatenated string.

private pure function character_concat_string(lhs, rhs) result(concat)

Concatenation with character (inverted).

Arguments

Type IntentOptional AttributesName
character(kind=CK,len=*), intent(in) :: lhs

Left hand side.

class(string), intent(in) :: rhs

Right hand side.

Return Value character(kind=CK,len=:), allocatable

Concatenated string.

private elemental function string_concat_string_string(lhs, rhs) result(concat)

Concatenation with string.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: lhs

Left hand side.

type(string), intent(in) :: rhs

Right hand side.

Return Value type(string)

Concatenated string.

private elemental function string_concat_character_string(lhs, rhs) result(concat)

Concatenation with character.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: lhs

Left hand side.

character(kind=CK,len=*), intent(in) :: rhs

Right hand side.

Return Value type(string)

Concatenated string.

private elemental function character_concat_string_string(lhs, rhs) result(concat)

Concatenation with character (inverted).

Arguments

Type IntentOptional AttributesName
character(kind=CK,len=*), intent(in) :: lhs

Left hand side.

class(string), intent(in) :: rhs

Right hand side.

Return Value type(string)

Concatenated string.

private elemental function string_eq_string(lhs, rhs) result(is_it)

Equal to string logical operator.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: lhs

Left hand side.

type(string), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function string_eq_character(lhs, rhs) result(is_it)

Equal to character logical operator.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: lhs

Left hand side.

character(kind=CK,len=*), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function character_eq_string(lhs, rhs) result(is_it)

Equal to character (inverted) logical operator.

Arguments

Type IntentOptional AttributesName
character(kind=CK,len=*), intent(in) :: lhs

Left hand side.

class(string), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function string_ne_string(lhs, rhs) result(is_it)

Not equal to string logical operator.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: lhs

Left hand side.

type(string), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function string_ne_character(lhs, rhs) result(is_it)

Not equal to character logical operator.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: lhs

Left hand side.

character(kind=CK,len=*), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function character_ne_string(lhs, rhs) result(is_it)

Not equal to character (inverted) logical operator.

Arguments

Type IntentOptional AttributesName
character(kind=CK,len=*), intent(in) :: lhs

Left hand side.

class(string), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function string_lt_string(lhs, rhs) result(is_it)

Lower than to string logical operator.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: lhs

Left hand side.

type(string), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function string_lt_character(lhs, rhs) result(is_it)

Lower than to character logical operator.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: lhs

Left hand side.

character(kind=CK,len=*), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function character_lt_string(lhs, rhs) result(is_it)

Lower than to character (inverted) logical operator.

Arguments

Type IntentOptional AttributesName
character(kind=CK,len=*), intent(in) :: lhs

Left hand side.

class(string), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function string_le_string(lhs, rhs) result(is_it)

Lower equal than to string logical operator.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: lhs

Left hand side.

type(string), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function string_le_character(lhs, rhs) result(is_it)

Lower equal than to character logical operator.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: lhs

Left hand side.

character(kind=CK,len=*), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function character_le_string(lhs, rhs) result(is_it)

Lower equal than to character (inverted) logical operator.

Arguments

Type IntentOptional AttributesName
character(kind=CK,len=*), intent(in) :: lhs

Left hand side.

class(string), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function string_ge_string(lhs, rhs) result(is_it)

Greater equal than to string logical operator.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: lhs

Left hand side.

type(string), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function string_ge_character(lhs, rhs) result(is_it)

Greater equal than to character logical operator.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: lhs

Left hand side.

character(kind=CK,len=*), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function character_ge_string(lhs, rhs) result(is_it)

Greater equal than to character (inverted) logical operator.

Arguments

Type IntentOptional AttributesName
character(kind=CK,len=*), intent(in) :: lhs

Left hand side.

class(string), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function string_gt_string(lhs, rhs) result(is_it)

Greater than to string logical operator.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: lhs

Left hand side.

type(string), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function string_gt_character(lhs, rhs) result(is_it)

Greater than to character logical operator.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: lhs

Left hand side.

character(kind=CK,len=*), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function character_gt_string(lhs, rhs) result(is_it)

Greater than to character (inverted) logical operator.

Arguments

Type IntentOptional AttributesName
character(kind=CK,len=*), intent(in) :: lhs

Left hand side.

class(string), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function replace_one_occurrence(self, old, new) result(replaced)

Return a string with the first occurrence of substring old replaced by new.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(kind=CK,len=*), intent(in) :: old

Old substring.

character(kind=CK,len=*), intent(in) :: new

New substring.

Return Value type(string)

The string with old replaced by new.


Subroutines

private elemental subroutine free(self)

Free dynamic memory.

Arguments

Type IntentOptional AttributesName
class(string), intent(inout) :: self

The string.

private subroutine read_file(self, file, form, iostat, iomsg)

Read a file as a single string stream.

Arguments

Type IntentOptional AttributesName
class(string), intent(inout) :: self

The string.

character(len=*), intent(in) :: file

File name.

character(len=*), intent(in), optional :: form

Format of unit.

integer, intent(out), optional :: iostat

IO status code.

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

IO status message.

private subroutine read_line(self, unit, form, iostat, iomsg)

Read line (record) from a connected unit.

Arguments

Type IntentOptional AttributesName
class(string), intent(inout) :: self

The string.

integer, intent(in) :: unit

Logical unit.

character(len=*), intent(in), optional :: form

Format of unit.

integer, intent(out), optional :: iostat

IO status code.

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

IO status message.

private subroutine read_lines(self, unit, form, iostat, iomsg)

Read (all) lines (records) from a connected unit as a single ascii stream.

Arguments

Type IntentOptional AttributesName
class(string), intent(inout) :: self

The string.

integer, intent(in) :: unit

Logical unit.

character(len=*), intent(in), optional :: form

Format of unit.

integer, intent(out), optional :: iostat

IO status code.

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

IO status message.

private pure subroutine split(self, tokens, sep)

Return a list of substring in the string, using sep as the delimiter string.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

type(string), intent(out), allocatable:: tokens(:)

Tokens substring.

character(kind=CK,len=*), intent(in), optional :: sep

Separator.

private subroutine write_file(self, file, form, iostat, iomsg)

Write a single string stream into file.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

character(len=*), intent(in) :: file

File name.

character(len=*), intent(in), optional :: form

Format of unit.

integer, intent(out), optional :: iostat

IO status code.

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

IO status message.

private subroutine write_line(self, unit, form, iostat, iomsg)

Write line (record) to a connected unit.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

integer, intent(in) :: unit

Logical unit.

character(len=*), intent(in), optional :: form

Format of unit.

integer, intent(out), optional :: iostat

IO status code.

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

IO status message.

private subroutine write_lines(self, unit, form, iostat, iomsg)

Write lines (records) to a connected unit.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: self

The string.

integer, intent(in) :: unit

Logical unit.

character(len=*), intent(in), optional :: form

Format of unit.

integer, intent(out), optional :: iostat

IO status code.

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

IO status message.

private elemental subroutine string_assign_string(lhs, rhs)

Assignment operator from string input.

Arguments

Type IntentOptional AttributesName
class(string), intent(inout) :: lhs

Left hand side.

type(string), intent(in) :: rhs

Right hand side.

private elemental subroutine string_assign_character(lhs, rhs)

Assignment operator from character input.

Arguments

Type IntentOptional AttributesName
class(string), intent(inout) :: lhs

Left hand side.

character(kind=CK,len=*), intent(in) :: rhs

Right hand side.

private elemental subroutine string_assign_integer_I1P(lhs, rhs)

Assignment operator from real input.

Arguments

Type IntentOptional AttributesName
class(string), intent(inout) :: lhs

Left hand side.

integer(kind=I1P), intent(in) :: rhs

Right hand side.

private elemental subroutine string_assign_integer_I2P(lhs, rhs)

Assignment operator from real input.

Arguments

Type IntentOptional AttributesName
class(string), intent(inout) :: lhs

Left hand side.

integer(kind=I2P), intent(in) :: rhs

Right hand side.

private elemental subroutine string_assign_integer_I4P(lhs, rhs)

Assignment operator from real input.

Arguments

Type IntentOptional AttributesName
class(string), intent(inout) :: lhs

Left hand side.

integer(kind=I4P), intent(in) :: rhs

Right hand side.

private elemental subroutine string_assign_integer_I8P(lhs, rhs)

Assignment operator from real input.

Arguments

Type IntentOptional AttributesName
class(string), intent(inout) :: lhs

Left hand side.

integer(kind=I8P), intent(in) :: rhs

Right hand side.

private elemental subroutine string_assign_real_R4P(lhs, rhs)

Assignment operator from real input.

Arguments

Type IntentOptional AttributesName
class(string), intent(inout) :: lhs

Left hand side.

real(kind=R4P), intent(in) :: rhs

Right hand side.

private elemental subroutine string_assign_real_R8P(lhs, rhs)

Assignment operator from real input.

Arguments

Type IntentOptional AttributesName
class(string), intent(inout) :: lhs

Left hand side.

real(kind=R8P), intent(in) :: rhs

Right hand side.

private elemental subroutine string_assign_real_R16P(lhs, rhs)

Assignment operator from real input.

Arguments

Type IntentOptional AttributesName
class(string), intent(inout) :: lhs

Left hand side.

real(kind=R16P), intent(in) :: rhs

Right hand side.

private subroutine read_formatted(dtv, unit, iotype, v_list, iostat, iomsg)

Formatted input.

Arguments

Type IntentOptional AttributesName
class(string), intent(inout) :: dtv

The string.

integer, intent(in) :: unit

Logical unit.

character(len=*), intent(in) :: iotype

Edit descriptor.

integer, intent(in) :: v_list(:)

Edit descriptor list.

integer, intent(out) :: iostat

IO status code.

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

IO status message.

private subroutine read_delimited(dtv, unit, delim, iostat, iomsg)

Read a delimited string from a unit connected for formatted input.

Arguments

Type IntentOptional AttributesName
class(string), intent(out) :: dtv

The string.

integer, intent(in) :: unit

Logical unit.

character(kind=CK,len=1), intent(in) :: delim

String delimiter.

integer, intent(out) :: iostat

IO status code.

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

IO status message.

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.

Arguments

Type IntentOptional AttributesName
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.

private subroutine read_undelimited(dtv, unit, terminators, iostat, iomsg)

Read an undelimited string up until end of record or a character from a set of terminators is encountered.

Arguments

Type IntentOptional AttributesName
class(string), intent(inout) :: dtv

The string.

integer, intent(in) :: unit

Logical unit.

character(kind=CK,len=*), intent(in) :: terminators

Characters that are considered to terminate the string. Blanks in this string are meaningful.

integer, intent(out) :: iostat

IO status code.

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

IO status message.

private subroutine write_formatted(dtv, unit, iotype, v_list, iostat, iomsg)

Formatted output.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: dtv

The string.

integer, intent(in) :: unit

Logical unit.

character(kind=CK,len=*), intent(in) :: iotype

Edit descriptor.

integer, intent(in) :: v_list(:)

Edit descriptor list.

integer, intent(out) :: iostat

IO status code.

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

IO status message.

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

Unformatted input.

Arguments

Type IntentOptional AttributesName
class(string), intent(inout) :: dtv

The string.

integer, intent(in) :: unit

Logical unit.

integer, intent(out) :: iostat

IO status code.

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

IO status message.

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

Unformatted output.

Arguments

Type IntentOptional AttributesName
class(string), intent(in) :: dtv

The string.

integer, intent(in) :: unit

Logical unit.

integer, intent(out) :: iostat

IO status code.

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

IO status message.

private subroutine get_delimiter_mode(unit, delim, iostat, iomsg)

Get the DELIM changeable connection mode for the given unit.

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: unit

The unit for the connection.

character(kind=len=1,CK), intent(out) :: delim

Represents the value of the DELIM mode.

integer, intent(out) :: iostat

IOSTAT error code, non-zero on error.

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

IOMSG explanatory message - only defined if iostat is non-zero.

private subroutine get_next_non_blank_character_this_record(unit, ch, iostat, iomsg)

Get the next non-blank character in the current record.

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: unit

Logical unit.

character(kind=CK,len=1), intent(out) :: ch

The non-blank character read. Not valid if IOSTAT is non-zero.

integer, intent(out) :: iostat

IO status code.

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

IO status message.

private subroutine get_next_non_blank_character_any_record(unit, ch, iostat, iomsg)

Get the next non-blank character, advancing records if necessary.

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: unit

Logical unit.

character(kind=CK,len=1), intent(out) :: ch

The non-blank character read. Not valid if IOSTAT is non-zero.

integer, intent(out) :: iostat

IO status code.

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

IO status message.

private subroutine get_decimal_mode(unit, decimal_point, iostat, iomsg)

Get the DECIMAL changeable connection mode for the given unit.

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: unit

Logical unit.

logical, intent(out) :: decimal_point

True if the decimal mode is POINT, false otherwise.

integer, intent(out) :: iostat

IO status code.

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

IO status message.