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
単語やキーワードを保持する文字型変数の種別型パラメタ
subroutine hstnmlinfogetnames(gthstnml, varnames_ary, err)
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
倍精度実数型変数
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
integer, parameter, public stdout
標準出力の装置番号
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ