Module dcstring_base
module dcstring_base
! Types
public type VSTRING
! Variables
integer, public, parameter :: STRING_MAX = 500
! Interfaces
public interface len
public interface var_str
public interface vchar
public interface extract
public interface split
public interface get
public interface put
public interface put_line
public interface vscan
public interface vverify
public interface vindex
public interface assignment(=)
private interface operator(//)
public interface operator(.cat.)
public interface operator(==)
public interface operator(/=)
public interface operator(<)
public interface operator(<=)
public interface operator(>)
public interface operator(>=)
! Subroutines and functions
private integer function string_len (str)
private type (VSTRING) function char_to_string (char)
private function string_to_char_length (str, length) result (result)
private subroutine string_let_char (str, char)
private subroutine string_let_char_array (str, char)
private subroutine char_let_string (char, str)
private subroutine char_array_let_string (char, str)
private type (VSTRING) function string_add_string (lhs, rhs)
private type (VSTRING) function string_add_char (lhs, rhs)
private function char_add_string (char, str) result (result)
private logical function string_eq_string (lhs, rhs)
private logical function string_eq_char (str, char)
private logical function char_eq_string (char, str)
private logical function string_ne_string (lhs, rhs)
private logical function string_ne_char (str, char)
private logical function char_ne_string (char, str)
private logical function string_lt_string (lhs, rhs)
private logical function string_lt_char (str, char)
private logical function char_lt_string (char, str)
private logical function string_le_string (lhs, rhs)
private logical function string_le_char (str, char)
private logical function char_le_string (char, str)
private logical function string_gt_string (lhs, rhs)
private logical function string_gt_char (str, char)
private logical function char_gt_string (char, str)
private logical function string_ge_string (lhs, rhs)
private logical function string_ge_char (str, char)
private logical function char_ge_string (char, str)
private subroutine string_get_default (str, maxlen, iostat)
private subroutine string_get (unit, str, maxlen, iostat)
private subroutine char_put_default (char, iostat)
private subroutine char_put (unit, char, iostat)
private subroutine string_put_default (str, iostat)
private subroutine string_put (unit, str, iostat)
private subroutine char_put_line_default (char, iostat)
private subroutine char_put_line (unit, char, iostat)
private subroutine string_put_line_default (str, iostat)
private subroutine string_put_line (unit, str, iostat)
private function string_index_string (str, substring, back) result (result)
private function string_index_char (str, substring, back) result (result)
private function char_index_string (str, substring, back) result (result)
private function string_scan_string (str, set, back) result (result)
private function string_scan_char (str, set, back) result (result)
private function string_verify_string (string, set, back) result (result)
private function string_verify_char (string, set, back) result (result)
private type (VSTRING) function extract_string (string, start, finish)
private subroutine split_c (string, word, set, separator, back)
private subroutine split_s (string, word, set, separator, back)
private subroutine shorten (string, newlen)
private subroutine left_shift (string, width)
private character function element (string, pos)
private type (VSTRING) function char_add_char (lhs, rhs)
end module dcstring_base
Description of Types
VSTRING
public type VSTRING
integer :: len
character (len=STRING_MAX) :: body
end type VSTRING
Description of Variables
STRING_MAX
integer, public, parameter :: STRING_MAX = 500
Description of Interfaces
len
public interface len
module procedure string_len
end interface len
var_str
public interface var_str
module procedure char_to_string
end interface var_str
vchar
public interface vchar
module procedure string_to_char_length
end interface vchar
extract
public interface extract
module procedure extract_string
end interface extract
split
public interface split
module procedure split_c
module procedure split_s
end interface split
get
public interface get
module procedure string_get
module procedure string_get_default
end interface get
put
public interface put
module procedure string_put
module procedure string_put_default
module procedure char_put
module procedure char_put_default
end interface put
put_line
public interface put_line
module procedure string_put_line
module procedure string_put_line_default
module procedure char_put_line
module procedure char_put_line_default
end interface put_line
vscan
public interface vscan
module procedure string_scan_string
module procedure string_scan_char
end interface vscan
vverify
public interface vverify
module procedure string_verify_string
module procedure string_verify_char
end interface vverify
vindex
public interface vindex
module procedure string_index_string
module procedure string_index_char
module procedure char_index_string
end interface vindex
assignment(=)
public interface assignment(=)
module procedure string_let_char
module procedure string_let_char_array
module procedure char_let_string
module procedure char_array_let_string
end interface assignment(=)
operator(//)
private interface operator(//)
module procedure string_add_string
module procedure char_add_string
module procedure string_add_char
end interface operator(//)
operator(.cat.)
public interface operator(.cat.)
module procedure string_add_string
module procedure char_add_string
module procedure string_add_char
end interface operator(.cat.)
operator(==)
public interface operator(==)
module procedure string_eq_string
module procedure string_eq_char
module procedure char_eq_string
end interface operator(==)
operator(/=)
public interface operator(/=)
module procedure string_ne_string
module procedure string_ne_char
module procedure char_ne_string
end interface operator(/=)
operator(<)
public interface operator(<)
module procedure string_lt_string
module procedure string_lt_char
module procedure char_lt_string
end interface operator(<)
operator(<=)
public interface operator(<=)
module procedure string_le_string
module procedure string_le_char
module procedure char_le_string
end interface operator(<=)
operator(>)
public interface operator(>)
module procedure string_gt_string
module procedure string_gt_char
module procedure char_gt_string
end interface operator(>)
operator(>=)
public interface operator(>=)
module procedure string_ge_string
module procedure string_ge_char
module procedure char_ge_string
end interface operator(>=)
Description of Subroutines and Functions
string_len
private function string_len (str) result (result)
type (VSTRING), intent(in) :: str
integer :: result
end function string_len
char_to_string
private function char_to_string (char) result (result)
character (len=*), intent(in) :: char
type (VSTRING) :: result
! Calls: dcstringbase_warnlim
end function char_to_string
string_to_char_length
private function string_to_char_length (str, length) result (result)
type (VSTRING), intent(in) :: str
integer, intent(in) :: length
character (len=length) :: result
! Calls: char_let_string
end function string_to_char_length
string_let_char
private subroutine string_let_char (str, char)
type (VSTRING), intent(inout) :: str
character (len=*), intent(in) :: char
end subroutine string_let_char
string_let_char_array
private subroutine string_let_char_array (str, char)
type (VSTRING), intent(inout) :: str
character, intent(in), dimension (:) :: char
end subroutine string_let_char_array
char_let_string
private subroutine char_let_string (char, str)
character (len=*), intent(out) :: char
type (VSTRING), intent(in) :: str
end subroutine char_let_string
char_array_let_string
private subroutine char_array_let_string (char, str)
character, intent(out), dimension (:) :: char
type (VSTRING), intent(in) :: str
end subroutine char_array_let_string
string_add_string
private function string_add_string (lhs, rhs) result (result)
type (VSTRING), intent(in) :: lhs
type (VSTRING), intent(in) :: rhs
type (VSTRING) :: result
end function string_add_string
string_add_char
private function string_add_char (lhs, rhs) result (result)
type (VSTRING), intent(in) :: lhs
character (len=*), intent(in) :: rhs
type (VSTRING) :: result
end function string_add_char
char_add_string
private function char_add_string (char, str) result (result)
character (len=*), intent(in) :: char
type (VSTRING), intent(in) :: str
type (VSTRING) :: result
end function char_add_string
string_eq_string
private function string_eq_string (lhs, rhs) result (result)
type (VSTRING), intent(in) :: lhs
type (VSTRING), intent(in) :: rhs
logical :: result
end function string_eq_string
string_eq_char
private function string_eq_char (str, char) result (result)
type (VSTRING), intent(in) :: str
character (len=*), intent(in) :: char
logical :: result
end function string_eq_char
char_eq_string
private function char_eq_string (char, str) result (result)
character (len=*), intent(in) :: char
type (VSTRING), intent(in) :: str
logical :: result
end function char_eq_string
string_ne_string
private function string_ne_string (lhs, rhs) result (result)
type (VSTRING), intent(in) :: lhs
type (VSTRING), intent(in) :: rhs
logical :: result
end function string_ne_string
string_ne_char
private function string_ne_char (str, char) result (result)
type (VSTRING), intent(in) :: str
character (len=*), intent(in) :: char
logical :: result
end function string_ne_char
char_ne_string
private function char_ne_string (char, str) result (result)
character (len=*), intent(in) :: char
type (VSTRING), intent(in) :: str
logical :: result
end function char_ne_string
string_lt_string
private function string_lt_string (lhs, rhs) result (result)
type (VSTRING), intent(in) :: lhs
type (VSTRING), intent(in) :: rhs
logical :: result
end function string_lt_string
string_lt_char
private function string_lt_char (str, char) result (result)
type (VSTRING), intent(in) :: str
character (len=*), intent(in) :: char
logical :: result
end function string_lt_char
char_lt_string
private function char_lt_string (char, str) result (result)
character (len=*), intent(in) :: char
type (VSTRING), intent(in) :: str
logical :: result
end function char_lt_string
string_le_string
private function string_le_string (lhs, rhs) result (result)
type (VSTRING), intent(in) :: lhs
type (VSTRING), intent(in) :: rhs
logical :: result
end function string_le_string
string_le_char
private function string_le_char (str, char) result (result)
type (VSTRING), intent(in) :: str
character (len=*), intent(in) :: char
logical :: result
end function string_le_char
char_le_string
private function char_le_string (char, str) result (result)
character (len=*), intent(in) :: char
type (VSTRING), intent(in) :: str
logical :: result
end function char_le_string
string_gt_string
private function string_gt_string (lhs, rhs) result (result)
type (VSTRING), intent(in) :: lhs
type (VSTRING), intent(in) :: rhs
logical :: result
end function string_gt_string
string_gt_char
private function string_gt_char (str, char) result (result)
type (VSTRING), intent(in) :: str
character (len=*), intent(in) :: char
logical :: result
end function string_gt_char
char_gt_string
private function char_gt_string (char, str) result (result)
character (len=*), intent(in) :: char
type (VSTRING), intent(in) :: str
logical :: result
end function char_gt_string
string_ge_string
private function string_ge_string (lhs, rhs) result (result)
type (VSTRING), intent(in) :: lhs
type (VSTRING), intent(in) :: rhs
logical :: result
end function string_ge_string
string_ge_char
private function string_ge_char (str, char) result (result)
type (VSTRING), intent(in) :: str
character (len=*), intent(in) :: char
logical :: result
end function string_ge_char
char_ge_string
private function char_ge_string (char, str) result (result)
character (len=*), intent(in) :: char
type (VSTRING), intent(in) :: str
logical :: result
end function char_ge_string
string_get_default
private subroutine string_get_default (str, maxlen, iostat)
type (VSTRING), intent(out) :: str
integer, optional, intent(in) :: maxlen
integer, optional, intent(out) :: iostat
! Calls: string_get
end subroutine string_get_default
string_get
private subroutine string_get (unit, str, maxlen, iostat)
integer, intent(in) :: unit
type (VSTRING), intent(out) :: str
integer, optional, intent(in) :: maxlen
integer, optional, intent(out) :: iostat
end subroutine string_get
char_put_default
private subroutine char_put_default (char, iostat)
character (len=*), intent(in) :: char
integer, optional, intent(out) :: iostat
! Calls: char_put
end subroutine char_put_default
char_put
private subroutine char_put (unit, char, iostat)
integer, intent(in) :: unit
character (len=*), intent(in) :: char
integer, optional, intent(out) :: iostat
end subroutine char_put
string_put_default
private subroutine string_put_default (str, iostat)
type (VSTRING), intent(in) :: str
integer, optional, intent(out) :: iostat
! Calls: string_put
end subroutine string_put_default
string_put
private subroutine string_put (unit, str, iostat)
integer, intent(in) :: unit
type (VSTRING), intent(in) :: str
integer, optional, intent(out) :: iostat
end subroutine string_put
char_put_line_default
private subroutine char_put_line_default (char, iostat)
character (len=*), intent(in) :: char
integer, optional, intent(out) :: iostat
! Calls: char_put_line
end subroutine char_put_line_default
char_put_line
private subroutine char_put_line (unit, char, iostat)
integer, intent(in) :: unit
character (len=*), intent(in) :: char
integer, optional, intent(out) :: iostat
end subroutine char_put_line
string_put_line_default
private subroutine string_put_line_default (str, iostat)
type (VSTRING), intent(in) :: str
integer, optional, intent(out) :: iostat
! Calls: string_put_line
end subroutine string_put_line_default
string_put_line
private subroutine string_put_line (unit, str, iostat)
integer, intent(in) :: unit
type (VSTRING), intent(in) :: str
integer, optional, intent(out) :: iostat
end subroutine string_put_line
string_index_string
private function string_index_string (str, substring, back) result (result)
type (VSTRING), intent(in) :: str
type (VSTRING), intent(in) :: substring
logical, optional, intent(in) :: back
integer :: result
end function string_index_string
string_index_char
private function string_index_char (str, substring, back) result (result)
type (VSTRING), intent(in) :: str
character (len=*), intent(in) :: substring
logical, optional, intent(in) :: back
integer :: result
end function string_index_char
char_index_string
private function char_index_string (str, substring, back) result (result)
character (len=*), intent(in) :: str
type (VSTRING), intent(in) :: substring
logical, optional, intent(in) :: back
integer :: result
end function char_index_string
string_scan_string
private function string_scan_string (str, set, back) result (result)
type (VSTRING), intent(in) :: str
type (VSTRING), intent(in) :: set
logical, optional :: back
integer :: result
end function string_scan_string
string_scan_char
private function string_scan_char (str, set, back) result (result)
type (VSTRING), intent(in) :: str
character (len=*), intent(in) :: set
logical, optional :: back
integer :: result
end function string_scan_char
string_verify_string
private function string_verify_string (string, set, back) result (result)
type (VSTRING), intent(in) :: string
type (VSTRING), intent(in) :: set
logical, optional :: back
integer :: result
end function string_verify_string
string_verify_char
private function string_verify_char (string, set, back) result (result)
type (VSTRING), intent(in) :: string
character (len=*), intent(in) :: set
logical, optional :: back
integer :: result
end function string_verify_char
extract_string
private type (VSTRING) function extract_string (string, start, finish)
type (VSTRING), intent(in) :: string
integer, optional, intent(in) :: start
integer, optional, intent(in) :: finish
end function extract_string
split_c
private subroutine split_c (string, word, set, separator, back)
type (VSTRING), intent(inout) :: string
type (VSTRING), intent(out) :: word
character (len=*), intent(in) :: set
type (VSTRING), optional, intent(out) :: separator
logical, optional, intent(in) :: back
! Calls: left_shift, shorten
end subroutine split_c
split_s
private subroutine split_s (string, word, set, separator, back)
type (VSTRING), intent(inout) :: string
type (VSTRING), intent(out) :: word
type (VSTRING), intent(in) :: set
type (VSTRING), optional, intent(out) :: separator
logical, optional, intent(in) :: back
! Calls: split_c
end subroutine split_s
shorten
private subroutine shorten (string, newlen)
type (VSTRING), intent(inout) :: string
integer, intent(in) :: newlen
end subroutine shorten
left_shift
private subroutine left_shift (string, width)
type (VSTRING), intent(inout) :: string
integer, intent(in) :: width
end subroutine left_shift
element
private function element (string, pos) result (result)
type (VSTRING), intent(in) :: string
integer, intent(in) :: pos
character :: result
end function element
char_add_char
private function char_add_char (lhs, rhs) result (result)
character (len=*), intent(in) :: lhs
character (len=*), intent(in) :: rhs
type (VSTRING) :: result
! Calls: dcstringbase_warnlim
end function char_add_char