TUV-x
Loading...
Searching...
No Matches
Data Types | Functions/Subroutines | Variables
musica_string Module Reference

The string_t type and related functions. More...

Data Types

type  string_t
 Generic string type. More...
 
interface  to_char
 Converts values to character arrays. More...
 

Functions/Subroutines

subroutine string_assign_char (to, from)
 Assigns a string from a character array. More...
 
subroutine string_assign_int (to, from)
 Assigns a string from an integer. More...
 
subroutine string_assign_real (to, from)
 Assigns a string from a real number. More...
 
subroutine string_assign_double (to, from)
 Assigns a string from a double precision real number. More...
 
subroutine string_assign_logical (to, from)
 Assigns a string from a logical. More...
 
subroutine char_assign_string (to, from)
 Assign a character array from a string. More...
 
subroutine real_assign_string (to, from)
 Assign a real from a string. More...
 
subroutine double_assign_string (to, from)
 Assign a double precision real from a string. More...
 
subroutine int_assign_string (to, from)
 Assign an integer from a string. More...
 
subroutine logical_assign_string (to, from)
 Assigns a logical from a string. More...
 
elemental type(string_t) function string_join_string (a, b)
 Joins a string to a string. More...
 
elemental type(string_t) function string_join_char (a, b)
 Joins a string to a character array. More...
 
elemental type(string_t) function string_join_int (a, b)
 Joins a string to an integer. More...
 
elemental type(string_t) function string_join_real (a, b)
 Joins a string to a real number. More...
 
elemental type(string_t) function string_join_double (a, b)
 Joins a string to a double precision real number. More...
 
elemental type(string_t) function string_join_logical (a, b)
 Joins a string to a logical. More...
 
logical elemental function string_equals_string (a, b)
 Compares a string to a string for equality. More...
 
logical elemental function string_equals_char (a, b)
 Compares a string to a character array for equality. More...
 
logical elemental function string_equals_int (a, b)
 Compares a string to a integer for equality. More...
 
logical elemental function string_equals_real (a, b)
 Compares a string to a real number for equality. More...
 
logical elemental function string_equals_double (a, b)
 Compares a string to a double-precision real number for equality. More...
 
logical elemental function string_equals_logical (a, b)
 Compares a string to a logical for equality. More...
 
logical elemental function string_not_equals_string (a, b)
 Compares a string to a string for equality. More...
 
logical elemental function string_not_equals_char (a, b)
 Compares a string to a character array for equality. More...
 
logical elemental function string_not_equals_int (a, b)
 Compares a string to a integer for equality. More...
 
logical elemental function string_not_equals_real (a, b)
 Compares a string to a real number for equality. More...
 
logical elemental function string_not_equals_double (a, b)
 Compares a string to a double-precision real number for equality. More...
 
logical elemental function string_not_equals_logical (a, b)
 Compares a string to a logical for equality. More...
 
elemental integer function length (this)
 Returns the length of the string. More...
 
type(string_t) function to_upper (this)
 Converts a string to upper case. More...
 
type(string_t) function to_lower (this)
 Converts a string to lower case. More...
 
type(string_t) function substring (this, start_index, length)
 Returns a substring. More...
 
type(string_t) function, dimension(:), allocatable split_char (this, splitter, compress)
 Splits a string on a substring. More...
 
type(string_t) function, dimension(:), allocatable split_string (this, splitter, compress)
 Splits a string on a substring. More...
 
type(string_t) function replace (this, from, to)
 Replaces substrings within a string. More...
 
character(len=:) function, allocatable string_to_char (this)
 Converts a string to a character array. More...
 
elemental type(string_t) function char_join_string (a, b)
 Joins a character array to a string. More...
 
elemental type(string_t) function int_join_string (a, b)
 Joins an integer to a string. More...
 
elemental type(string_t) function real_join_string (a, b)
 Joins a real number to a string. More...
 
elemental type(string_t) function double_join_string (a, b)
 Joins a double precision real number to a string. More...
 
elemental type(string_t) function logical_join_string (a, b)
 Joins a logical to a string. More...
 
logical elemental function char_equals_string (a, b)
 Compares a character array to a string for equality. More...
 
logical elemental function int_equals_string (a, b)
 Compares an integer to a string for equality. More...
 
logical elemental function real_equals_string (a, b)
 Compares a real number to a string for equality. More...
 
logical elemental function double_equals_string (a, b)
 Compares a double-precision real number to a string for equality. More...
 
logical elemental function logical_equals_string (a, b)
 Compares a logical to a string for equality. More...
 
logical elemental function char_not_equals_string (a, b)
 Compares a character array to a string for equality. More...
 
logical elemental function int_not_equals_string (a, b)
 Compares an integer to a string for equality. More...
 
logical elemental function real_not_equals_string (a, b)
 Compares a real number to a string for equality. More...
 
logical elemental function double_not_equals_string (a, b)
 Compares a double-precision real number to a string for equality. More...
 
logical elemental function logical_not_equals_string (a, b)
 Compares a logical to a string for equality. More...
 
integer function pack_size (this, comm)
 Returns the size of a binary buffer required to pack the string.
 
subroutine mpi_pack (this, buffer, position, comm)
 Packs the string onto a character buffer. More...
 
subroutine mpi_unpack (this, buffer, position, comm)
 Unpacks a string from a character buffer. More...
 
character(len=kconvertcharlength) function int_to_char (val)
 Converts an integer to a char array. More...
 
character(len=kconvertcharlength) function real_to_char (val)
 Converts a real number to a char array. More...
 
character(len=kconvertcharlength) function double_to_char (val)
 Converts a double-precision real number to a char array. More...
 
character(len=kconvertcharlength) function complex_real_to_char (val)
 Converts a real complex number to a char array. More...
 
character(len=kconvertcharlength) function complex_double_to_char (val)
 Converts a double-precision real complex number to a char array. More...
 
character(len=kconvertcharlength) function logical_to_char (val)
 Converts a logical to a char array. More...
 
subroutine, public output_table (header, table, file_unit)
 Output tabular data to a given file unit. More...
 
subroutine assert_msg (code, condition, error_message)
 Local assert function. More...
 

Variables

integer(kind=musica_ik), parameter kconvertcharlength = 100
 Length of character array for to_char conversions.
 

Detailed Description

The string_t type and related functions.

Function/Subroutine Documentation

◆ assert_msg()

subroutine musica_string::assert_msg ( integer, intent(in)  code,
logical, intent(in)  condition,
character(len=*), intent(in)  error_message 
)
private

Local assert function.

Parameters
[in]codeUnique code for the assertion
[in]conditionCondition to evaluate
[in]error_messageMessage to display on failure

◆ char_assign_string()

subroutine musica_string::char_assign_string ( character(len=*), intent(inout)  to,
class(string_t), intent(in)  from 
)
private

Assign a character array from a string.

Parameters
[in,out]toVariable to assign
[in]fromString to assign from

◆ char_equals_string()

logical elemental function musica_string::char_equals_string ( character(len=*), intent(in)  a,
class(string_t), intent(in)  b 
)
private

Compares a character array to a string for equality.

Parameters
[in]aCharacter array a
[in]bString b

◆ char_join_string()

elemental type(string_t) function musica_string::char_join_string ( character(len=*), intent(in)  a,
class(string_t), intent(in)  b 
)
private

Joins a character array to a string.

Returns
Joined string
Parameters
[in]aCharacter array to join
[in]bString to join

◆ char_not_equals_string()

logical elemental function musica_string::char_not_equals_string ( character(len=*), intent(in)  a,
class(string_t), intent(in)  b 
)
private

Compares a character array to a string for equality.

Parameters
[in]aCharacter array a
[in]bString b

◆ complex_double_to_char()

character(len=kconvertcharlength) function musica_string::complex_double_to_char ( complex(kind=musica_dk), intent(in)  val)
private

Converts a double-precision real complex number to a char array.

Parameters
[in]valValue to convert

◆ complex_real_to_char()

character(len=kconvertcharlength) function musica_string::complex_real_to_char ( complex(kind=musica_rk), intent(in)  val)
private

Converts a real complex number to a char array.

Parameters
[in]valValue to convert

◆ double_assign_string()

subroutine musica_string::double_assign_string ( real(kind=musica_dk), intent(inout)  to,
class(string_t), intent(in)  from 
)
private

Assign a double precision real from a string.

Parameters
[in,out]toVariable to assign
[in]fromString to assign from

◆ double_equals_string()

logical elemental function musica_string::double_equals_string ( real(kind=musica_dk), intent(in)  a,
class(string_t), intent(in)  b 
)
private

Compares a double-precision real number to a string for equality.

Parameters
[in]aDouble-precision real number a
[in]bString b

◆ double_join_string()

elemental type(string_t) function musica_string::double_join_string ( real(kind=musica_dk), intent(in)  a,
class(string_t), intent(in)  b 
)
private

Joins a double precision real number to a string.

Returns
Joined string
Parameters
[in]aDouble precision real number to join
[in]bString to join

◆ double_not_equals_string()

logical elemental function musica_string::double_not_equals_string ( real(kind=musica_dk), intent(in)  a,
class(string_t), intent(in)  b 
)
private

Compares a double-precision real number to a string for equality.

Parameters
[in]aDouble-precition real number a
[in]bString b

◆ double_to_char()

character(len=kconvertcharlength) function musica_string::double_to_char ( real(kind=musica_dk), intent(in)  val)
private

Converts a double-precision real number to a char array.

Parameters
[in]valValue to convert

◆ int_assign_string()

subroutine musica_string::int_assign_string ( integer(kind=musica_ik), intent(inout)  to,
class(string_t), intent(in)  from 
)
private

Assign an integer from a string.

Parameters
[in,out]toVariable to assign
[in]fromString to assign from

◆ int_equals_string()

logical elemental function musica_string::int_equals_string ( integer(kind=musica_ik), intent(in)  a,
class(string_t), intent(in)  b 
)
private

Compares an integer to a string for equality.

Parameters
[in]aInteger a
[in]bString b

◆ int_join_string()

elemental type(string_t) function musica_string::int_join_string ( integer(kind=musica_ik), intent(in)  a,
class(string_t), intent(in)  b 
)
private

Joins an integer to a string.

Returns
Joined string
Parameters
[in]aInteger to join
[in]bString to join

◆ int_not_equals_string()

logical elemental function musica_string::int_not_equals_string ( integer(kind=musica_ik), intent(in)  a,
class(string_t), intent(in)  b 
)
private

Compares an integer to a string for equality.

Parameters
[in]aInteger a
[in]bString b

◆ int_to_char()

character(len=kconvertcharlength) function musica_string::int_to_char ( integer(kind=musica_ik), intent(in)  val)

Converts an integer to a char array.

Parameters
[in]valValue to convert

◆ length()

elemental integer function musica_string::length ( class(string_t), intent(in)  this)
private

Returns the length of the string.

Parameters
[in]thisString

◆ logical_assign_string()

subroutine musica_string::logical_assign_string ( logical, intent(inout)  to,
class(string_t), intent(in)  from 
)
private

Assigns a logical from a string.

Parameters
[in,out]toVariable to assign
[in]fromString to assign from

◆ logical_equals_string()

logical elemental function musica_string::logical_equals_string ( logical, intent(in)  a,
class(string_t), intent(in)  b 
)
private

Compares a logical to a string for equality.

Parameters
[in]aLogical a
[in]bString b

◆ logical_join_string()

elemental type(string_t) function musica_string::logical_join_string ( logical, intent(in)  a,
class(string_t), intent(in)  b 
)
private

Joins a logical to a string.

Returns
Joined string
Parameters
[in]aLogical to join
[in]bString to join

◆ logical_not_equals_string()

logical elemental function musica_string::logical_not_equals_string ( logical, intent(in)  a,
class(string_t), intent(in)  b 
)
private

Compares a logical to a string for equality.

Parameters
[in]aLogical a
[in]bString b

◆ logical_to_char()

character(len=kconvertcharlength) function musica_string::logical_to_char ( logical, intent(in)  val)
private

Converts a logical to a char array.

Parameters
[in]valValue to convert

◆ mpi_pack()

subroutine musica_string::mpi_pack ( class(string_t), intent(in)  this,
character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
integer, intent(in)  comm 
)

Packs the string onto a character buffer.

Parameters
[in]thisString to pack
[in,out]bufferMemory buffer
[in,out]positionCurrent buffer position
[in]commMPI communicator

◆ mpi_unpack()

subroutine musica_string::mpi_unpack ( class(string_t), intent(out)  this,
character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
integer, intent(in)  comm 
)

Unpacks a string from a character buffer.

Parameters
[out]thisString to be unpacked
[in,out]bufferMemory buffer
[in,out]positionCurrent buffer position
[in]commMPI communicator

◆ output_table()

subroutine, public musica_string::output_table ( type(string_t), dimension(:), intent(in)  header,
type(string_t), dimension(:,:), intent(in)  table,
integer(kind=musica_ik), intent(in)  file_unit 
)

Output tabular data to a given file unit.

Parameters
[in]headerTable header
[in]tableTable data (column, row)
[in]file_unitFile unit

◆ real_assign_string()

subroutine musica_string::real_assign_string ( real(kind=musica_rk), intent(inout)  to,
class(string_t), intent(in)  from 
)
private

Assign a real from a string.

Parameters
[in,out]toVariable to assign
[in]fromString to assign from

◆ real_equals_string()

logical elemental function musica_string::real_equals_string ( real(kind=musica_rk), intent(in)  a,
class(string_t), intent(in)  b 
)
private

Compares a real number to a string for equality.

Parameters
[in]aReal number a
[in]bString b

◆ real_join_string()

elemental type(string_t) function musica_string::real_join_string ( real(kind=musica_rk), intent(in)  a,
class(string_t), intent(in)  b 
)
private

Joins a real number to a string.

Returns
Joined string
Parameters
[in]aReal number to join
[in]bString to join

◆ real_not_equals_string()

logical elemental function musica_string::real_not_equals_string ( real(kind=musica_rk), intent(in)  a,
class(string_t), intent(in)  b 
)
private

Compares a real number to a string for equality.

Parameters
[in]aReal number a
[in]bString b

◆ real_to_char()

character(len=kconvertcharlength) function musica_string::real_to_char ( real(kind=musica_rk), intent(in)  val)
private

Converts a real number to a char array.

Parameters
[in]valValue to convert

◆ replace()

type(string_t) function musica_string::replace ( class(string_t this,
character(len=*), intent(in)  from,
character(len=*), intent(in)  to 
)
private

Replaces substrings within a string.

Example:

type(string_t) :: my_string
my_string = "foo bar foobar"
my_string = my_string%replace( 'foo', 'bar' )
write(*,*) my_string

Output:

bar bar barbar
Returns
String with replacements
Parameters
thisOriginal string
[in]fromSub-string to replace
[in]toReplacement string

◆ split_char()

type(string_t) function, dimension(:), allocatable musica_string::split_char ( class(string_t), intent(in)  this,
character(len=*), intent(in)  splitter,
logical, intent(in), optional  compress 
)
private

Splits a string on a substring.

Example:

type(string_t) :: my_string
type(string_t), allocatable :: sub_strings(:)
integer :: i
my_string = "my original string"
sub_strings = my_string%split( ' ' )
do i = 1, size( sub_strings )
write(*,*) i, sub_strings( i )
end do
sub_strings = my_string%split( ' ', .true. )
do i = 1, size( sub_strings )
write(*,*) i, sub_strings( i )
end do

Output:

1 my
2 original
3
4
5
6 string
1 my
2 original
3 string
Returns
Split string
Parameters
[in]thisFull string
[in]splitterString to split on
[in]compressCompress (default = false)

No 0-length substrings will be returned (adjacent tokens will be merged; tokens at the beginning and end of the original string will be ignored)

◆ split_string()

type(string_t) function, dimension(:), allocatable musica_string::split_string ( class(string_t), intent(in)  this,
type(string_t), intent(in)  splitter,
logical, intent(in), optional  compress 
)
private

Splits a string on a substring.

See string_split_char for description and example

Returns
Split string
Parameters
[in]thisFull string
[in]splitterString to split on
[in]compressCompress (default = false)

No 0-length substrings will be returned (adjacent tokens will be merged; tokens at the beginning and end of the original string will be ignored)

◆ string_assign_char()

subroutine musica_string::string_assign_char ( class(string_t), intent(out)  to,
character(len=*), intent(in)  from 
)
private

Assigns a string from a character array.

Parameters
[out]toString to assign
[in]fromNew string value

◆ string_assign_double()

subroutine musica_string::string_assign_double ( class(string_t), intent(out)  to,
real(kind=musica_dk), intent(in)  from 
)
private

Assigns a string from a double precision real number.

Parameters
[out]toString to assign
[in]fromNew string value

◆ string_assign_int()

subroutine musica_string::string_assign_int ( class(string_t), intent(out)  to,
integer(kind=musica_ik), intent(in)  from 
)
private

Assigns a string from an integer.

Parameters
[out]toString to assign
[in]fromNew string value

◆ string_assign_logical()

subroutine musica_string::string_assign_logical ( class(string_t), intent(out)  to,
logical, intent(in)  from 
)
private

Assigns a string from a logical.

Parameters
[out]toString to assign
[in]fromNew string value

◆ string_assign_real()

subroutine musica_string::string_assign_real ( class(string_t), intent(out)  to,
real(kind=musica_rk), intent(in)  from 
)
private

Assigns a string from a real number.

Parameters
[out]toString to assign
[in]fromNew string value

◆ string_equals_char()

logical elemental function musica_string::string_equals_char ( class(string_t), intent(in)  a,
character(len=*), intent(in)  b 
)
private

Compares a string to a character array for equality.

Parameters
[in]aString a
[in]bCharacter array b

◆ string_equals_double()

logical elemental function musica_string::string_equals_double ( class(string_t), intent(in)  a,
real(kind=musica_dk), intent(in)  b 
)
private

Compares a string to a double-precision real number for equality.

Parameters
[in]aString a
[in]bDouble-precition real number b

◆ string_equals_int()

logical elemental function musica_string::string_equals_int ( class(string_t), intent(in)  a,
integer(kind=musica_ik), intent(in)  b 
)
private

Compares a string to a integer for equality.

Parameters
[in]aString a
[in]bInteger b

◆ string_equals_logical()

logical elemental function musica_string::string_equals_logical ( class(string_t), intent(in)  a,
logical, intent(in)  b 
)
private

Compares a string to a logical for equality.

Parameters
[in]aString a
[in]bLogical b

◆ string_equals_real()

logical elemental function musica_string::string_equals_real ( class(string_t), intent(in)  a,
real(kind=musica_rk), intent(in)  b 
)
private

Compares a string to a real number for equality.

Parameters
[in]aString a
[in]bReal number b

◆ string_equals_string()

logical elemental function musica_string::string_equals_string ( class(string_t), intent(in)  a,
class(string_t), intent(in)  b 
)
private

Compares a string to a string for equality.

Parameters
[in]aString a
[in]bString b

◆ string_join_char()

elemental type(string_t) function musica_string::string_join_char ( class(string_t), intent(in)  a,
character(len=*), intent(in)  b 
)
private

Joins a string to a character array.

Returns
Joined string
Parameters
[in]aString to join
[in]bCharacter array to join

◆ string_join_double()

elemental type(string_t) function musica_string::string_join_double ( class(string_t), intent(in)  a,
real(kind=musica_dk), intent(in)  b 
)
private

Joins a string to a double precision real number.

Returns
Joined string
Parameters
[in]aString to join
[in]bDouble precision real number to join

◆ string_join_int()

elemental type(string_t) function musica_string::string_join_int ( class(string_t), intent(in)  a,
integer(kind=musica_ik), intent(in)  b 
)
private

Joins a string to an integer.

Returns
Joined string
Parameters
[in]aString to join
[in]bInteger to join

◆ string_join_logical()

elemental type(string_t) function musica_string::string_join_logical ( class(string_t), intent(in)  a,
logical, intent(in)  b 
)
private

Joins a string to a logical.

Returns
Joined string
Parameters
[in]aString to join
[in]bLogical to join

◆ string_join_real()

elemental type(string_t) function musica_string::string_join_real ( class(string_t), intent(in)  a,
real(kind=musica_rk), intent(in)  b 
)
private

Joins a string to a real number.

Returns
Joined string
Parameters
[in]aString to join
[in]bReal number to join

◆ string_join_string()

elemental type(string_t) function musica_string::string_join_string ( class(string_t), intent(in)  a,
class(string_t), intent(in)  b 
)
private

Joins a string to a string.

Returns
Joined string
Parameters
[in]aString to join
[in]bString to join

◆ string_not_equals_char()

logical elemental function musica_string::string_not_equals_char ( class(string_t), intent(in)  a,
character(len=*), intent(in)  b 
)
private

Compares a string to a character array for equality.

Parameters
[in]aString a
[in]bCharacter array b

◆ string_not_equals_double()

logical elemental function musica_string::string_not_equals_double ( class(string_t), intent(in)  a,
real(kind=musica_dk), intent(in)  b 
)
private

Compares a string to a double-precision real number for equality.

Parameters
[in]aString a
[in]bDouble-precition real number b

◆ string_not_equals_int()

logical elemental function musica_string::string_not_equals_int ( class(string_t), intent(in)  a,
integer(kind=musica_ik), intent(in)  b 
)
private

Compares a string to a integer for equality.

Parameters
[in]aString a
[in]bInteger b

◆ string_not_equals_logical()

logical elemental function musica_string::string_not_equals_logical ( class(string_t), intent(in)  a,
logical, intent(in)  b 
)
private

Compares a string to a logical for equality.

Parameters
[in]aString a
[in]bLogical b

◆ string_not_equals_real()

logical elemental function musica_string::string_not_equals_real ( class(string_t), intent(in)  a,
real(kind=musica_rk), intent(in)  b 
)
private

Compares a string to a real number for equality.

Parameters
[in]aString a
[in]bReal number b

◆ string_not_equals_string()

logical elemental function musica_string::string_not_equals_string ( class(string_t), intent(in)  a,
class(string_t), intent(in)  b 
)
private

Compares a string to a string for equality.

Parameters
[in]aString a
[in]bString b

◆ string_to_char()

character(len=:) function, allocatable musica_string::string_to_char ( class(string_t), intent(in)  this)
private

Converts a string to a character array.

Returns
Converted string
Parameters
[in]thisString to convert

◆ substring()

type(string_t) function musica_string::substring ( class(string_t), intent(in)  this,
integer(kind=musica_ik), intent(in)  start_index,
integer(kind=musica_ik), intent(in)  length 
)
private

Returns a substring.

Example:

type(string_t) :: my_string, sub_string
my_string = "Hi there!"
sub_string = my_string%substring( 4, 5 )
write(*,*) sub_string
sub_string = my_string%substring( 9, 50 )
write(*,*) sub_string

Output:

there
!
Parameters
[in]thisFull string
[in]start_indexStarting character index
[in]lengthLength of the substring to return

◆ to_lower()

type(string_t) function musica_string::to_lower ( class(string_t), intent(in)  this)
private

Converts a string to lower case.

Adapted from http://www.star.le.ac.uk/~cgp/fortran.html (25 May 2012) Original author: Clive Page

Returns
Converted string
Parameters
[in]thisString to convert

◆ to_upper()

type(string_t) function musica_string::to_upper ( class(string_t), intent(in)  this)
private

Converts a string to upper case.

Adapted from http://www.star.le.ac.uk/~cgp/fortran.html (25 May 2012) Original author: Clive Page

Returns
Converted string
Parameters
[in]thisString to convert