36 character (len = BLOCK_SIZE) :: chars
63 character(len=*),
optional :: chars
70 if(
present(chars))
then 84 if (
associated(this))
then 86 if(
associated(this % next))
then 103 type(ncdf_string),
pointer :: this
104 type(ncdf_string),
pointer :: new
106 if (.not.
associated(this % next))
then 119 type(ncdf_string),
pointer :: str1, str2
135 type(ncdf_string),
pointer :: str
136 character (len = *),
intent(in) :: c
153 character,
intent(in) :: c
162 str % index = str % index + 1
163 str % chars(str % index:str % index) = c
172 type(ncdf_string),
pointer :: this
173 character(len = *),
intent(inout) :: to
184 do i = length + 1, len(to)
199 if (
associated(this % next))
then 201 deallocate(this % next)
202 nullify (this % next)
217 if (str % index ==
block_size .AND.
associated(str % next))
then 229 integer,
intent(in) :: i
231 if (i .LE. this % index)
then 232 c = this % chars(i:i)
subroutine ncdf_copy_chars(this, to)
logical function ncdf_equals_string(this, other)
recursive subroutine ncdf_string_clear(this)
type(ncdf_string) function, pointer, public ncdf_string_create(chars)
subroutine ncdf_append_string(str1, str2)
recursive character function ncdf_get_char_at(this, i)
integer, parameter block_size
recursive integer function ncdf_string_length(str)
recursive subroutine, public ncdf_string_destroy(this)
recursive subroutine ncdf_append_char(str, c)
subroutine ncdf_append_chars(str, c)
subroutine ncdf_allocate_block(this)