46 use netcdf,
only: nf90_max_vars
49 character(TOKEN),
pointer:: varnames_ary(:)
50 logical,
intent(out),
optional:: err
69 integer:: varnums, ary_size
70 character(TOKEN),
allocatable:: varnames_ary_tmp1(:), varnames_ary_tmp2(:)
72 character(STRING):: cause_c
73 character(*),
parameter:: subname =
'HstNmlInfoNames'
85 if ( .not. gthstnml % initialized )
then
87 cause_c =
'GTHST_NMLINFO'
95 if (
associated(varnames_ary) )
deallocate(varnames_ary)
96 allocate( varnames_ary_tmp1(1:nf90_max_vars) )
102 hptr => gthstnml % gthstnml_list
103 do while (
associated( hptr % next ) )
104 call listnext( gthstnml_list = hptr )
105 varnums = varnums + 1
106 ary_size =
size( varnames_ary_tmp1 )
107 if ( varnums > ary_size )
then
108 allocate( varnames_ary_tmp2(1:ary_size) )
109 varnames_ary_tmp2(1:ary_size) = varnames_ary_tmp1(1:ary_size)
110 deallocate( varnames_ary_tmp1 )
111 allocate( varnames_ary_tmp1(1:varnums*2) )
112 varnames_ary_tmp1(1:ary_size) = varnames_ary_tmp2(1:ary_size)
113 deallocate( varnames_ary_tmp2 )
116 varnames_ary_tmp1(varnums) = adjustl( hptr % name )
119 if ( varnums > 0 )
then
120 allocate( varnames_ary(1:varnums) )
121 varnames_ary(1:varnums) = varnames_ary_tmp1(1:varnums)
123 allocate( varnames_ary(1:1) )
133 call storeerror( stat, subname, err, cause_c )
subroutine hstnmlinfogetnames(gthstnml, varnames_ary, err)
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public dc_enotinit
-400 以下: dc ユーティリティのエラー
integer, parameter, public dc_noerr
エラー等を保持
subroutine, public beginsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca, version)
subroutine, public endsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca)
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ