56 logical :: value_logical
57 integer :: value_integer
59 double precision :: value_double
60 integer,
private :: count = 0
98 logical,
intent(in),
optional :: destroy_next
104 if (
present(destroy_next))
then 105 donext = destroy_next
110 if (
associated(this))
then 112 if(
associated(this % name))
then 114 nullify (this % name)
117 if(
associated(this % value_string))
then 119 nullify (this % value_string)
122 if(
associated(this % children))
then 123 do while (this % count > 0)
125 this % children => this % children % next
126 this % count = this % count - 1
129 nullify(this % children)
132 if ((
associated(this % next)) .and. (donext))
then 134 nullify (this % next)
137 if(
associated(this % tail))
then 138 nullify (this % tail)
159 member % parent => this
162 if (
associated(this % children))
then 163 this % tail % next => member
165 this % children => member
168 this % tail => member
169 this % count = this % count + 1
188 integer,
intent(in) :: index
204 character(len=*),
intent(in) :: name
248 integer,
optional,
intent(in) :: indent
249 character (len = 1024) :: tmp_chars
250 integer :: tab, i, count, spaces
252 if (
present(indent))
then 260 select case (this % value_type)
262 print *, repeat(
" ", spaces),
"{" 270 print *, repeat(
" ", spaces),
'"', trim(tmp_chars),
'":' 275 print *, repeat(
" ", spaces),
"," 279 print *, repeat(
" ", spaces),
"}" 281 print *, repeat(
" ", spaces),
"[" 293 print *, repeat(
" ", spaces),
"]" 295 print *, repeat(
" ", spaces),
"null" 298 print *, repeat(
" ", spaces),
'"', trim(tmp_chars),
'"' 300 if (this % value_logical)
then 301 print *, repeat(
" ", spaces),
"true" 303 print *, repeat(
" ", spaces),
"false" 306 print *, repeat(
" ", spaces), this % value_integer
308 print *, repeat(
" ", spaces), this % value_double
type(ncdf_value) function, pointer ncdf_get_by_index(this, index)
integer, parameter, public type_real
type(ncdf_string) function, pointer, public ncdf_string_create(chars)
type(ncdf_value) function, pointer ncdf_get_by_name_chars(this, name)
integer, parameter, public type_logical
type(ncdf_value) function, pointer, public ncdf_value_create()
type(ncdf_value) function, pointer ncdf_get_by_name_string(this, name)
integer, parameter, public type_integer
integer, parameter, public type_array
integer, parameter, public type_string
recursive subroutine, public ncdf_value_print(this, indent)
recursive subroutine, public ncdf_value_destroy(this, destroy_next)
integer, parameter, public type_unknown
recursive subroutine, public ncdf_string_destroy(this)
integer, parameter, public type_object
integer, parameter, public type_null
subroutine, public ncdf_value_add(this, member)
integer function, public ncdf_value_count(this)