27 use dc_trace
, only: beginsub, endsub
28 use dc_string
, only: putline, printf, split, strinclude, stoa, joinchar
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' 60 call beginsub( subname )
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 )
119 call endsub( subname )
integer, parameter, public dc_enotinit
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public dc_noerr
integer, parameter, public dp
倍精度実数型変数
integer, parameter, public stdout
標準出力の装置番号
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ