31 use netcdf
, only: nf90_max_vars
34 character(TOKEN),
pointer:: varnames_ary(:)
35 logical,
intent(out),
optional:: err
54 integer:: varnums, ary_size
55 character(TOKEN),
allocatable:: varnames_ary_tmp1(:), varnames_ary_tmp2(:)
57 character(STRING):: cause_c
58 character(*),
parameter:: subname =
'HstNmlInfoNames' 70 if ( .not. gthstnml % initialized )
then 72 cause_c =
'GTHST_NMLINFO' 80 if (
associated(varnames_ary) )
deallocate(varnames_ary)
81 allocate( varnames_ary_tmp1(1:nf90_max_vars) )
87 hptr => gthstnml % gthstnml_list
88 do while (
associated( hptr % next ) )
89 call listnext( gthstnml_list = hptr )
91 ary_size =
size( varnames_ary_tmp1 )
92 if ( varnums > ary_size )
then 93 allocate( varnames_ary_tmp2(1:ary_size) )
94 varnames_ary_tmp2(1:ary_size) = varnames_ary_tmp1(1:ary_size)
95 deallocate( varnames_ary_tmp1 )
96 allocate( varnames_ary_tmp1(1:varnums*2) )
97 varnames_ary_tmp1(1:ary_size) = varnames_ary_tmp2(1:ary_size)
98 deallocate( varnames_ary_tmp2 )
101 varnames_ary_tmp1(varnums) = adjustl( hptr % name )
104 if ( varnums > 0 )
then 105 allocate( varnames_ary(1:varnums) )
106 varnames_ary(1:varnums) = varnames_ary_tmp1(1:varnums)
108 allocate( varnames_ary(1:1) )
118 call storeerror( stat, subname, err, cause_c )
integer, parameter, public dc_enotinit
integer, parameter, public token
Character length for word, token.
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public dc_noerr
character(string) function, public joinchar(carray, expr)
integer, parameter, public dp
Double Precision Real number.
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
integer, parameter, public stdout
Unit number for Standard OUTPUT.
Handling character types.
Provides kind type parameter values.
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
integer, parameter, public string
Character length for string.