39 & nf90_inquire_attribute, &
47 character(len = *),
intent(in) :: name
48 integer,
intent(out):: stat
49 integer,
intent(out)::
value(:)
50 integer,
intent(in),
optional:: default
51 integer,
allocatable:: rbuffer(:)
52 character(STRING) :: cbuffer
53 character(STRING),
pointer :: lbuffer(:)
54 integer :: attrlen, xtype, i, xferend, iname, varid
58 if (stat /= nf90_noerr)
then 59 if (
present(default)) value(:) = default
70 stat = nf90_inquire_attribute(ent%fileid, varid, &
71 name = name(iname:), xtype = xtype, len = attrlen)
72 if (stat /= nf90_noerr)
then 73 if (
present(default)) value(:) = default
77 if (xtype == nf90_char)
then 78 call get_attr(var, name, cbuffer,
"", stat)
80 call split(cbuffer, lbuffer,
", ")
81 attrlen =
size(lbuffer)
84 if (
size(
value) == 0)
then 85 if (xtype == nf90_char)
deallocate(lbuffer)
90 xferend = min(
size(
value), attrlen)
91 if (
present(default)) value(xferend+1: ) = default
92 if (xtype == nf90_char)
then 94 value(i) =
stod(lbuffer(i))
100 allocate(rbuffer(attrlen), stat=stat)
105 stat = nf90_get_att(ent%fileid, varid, name(iname:), rbuffer)
106 if (stat == nf90_noerr)
then 107 value(1:xferend) = rbuffer(1:xferend)
123 & nf90_inquire_attribute, &
131 character(len = *),
intent(in) :: name
132 integer,
intent(out):: stat
133 real(SP),
intent(out)::
value(:)
134 real(SP),
intent(in),
optional:: default
135 real(SP),
allocatable:: rbuffer(:)
136 character(STRING) :: cbuffer
137 character(STRING),
pointer :: lbuffer(:)
138 integer :: attrlen, xtype, i, xferend, iname, varid
142 if (stat /= nf90_noerr)
then 143 if (
present(default)) value(:) = default
154 stat = nf90_inquire_attribute(ent%fileid, varid, &
155 name = name(iname:), xtype = xtype, len = attrlen)
156 if (stat /= nf90_noerr)
then 157 if (
present(default)) value(:) = default
161 if (xtype == nf90_char)
then 162 call get_attr(var, name, cbuffer,
"", stat)
163 if (stat /= 0)
return 164 call split(cbuffer, lbuffer,
", ")
165 attrlen =
size(lbuffer)
168 if (
size(
value) == 0)
then 169 if (xtype == nf90_char)
deallocate(lbuffer)
174 xferend = min(
size(
value), attrlen)
175 if (
present(default)) value(xferend+1: ) = default
176 if (xtype == nf90_char)
then 178 value(i) =
stod(lbuffer(i))
184 allocate(rbuffer(attrlen), stat=stat)
189 stat = nf90_get_att(ent%fileid, varid, name(iname:), rbuffer)
190 if (stat == nf90_noerr)
then 191 value(1:xferend) = rbuffer(1:xferend)
207 & nf90_inquire_attribute, &
215 character(len = *),
intent(in) :: name
216 integer,
intent(out):: stat
217 real(DP),
intent(out)::
value(:)
218 real(DP),
intent(in),
optional:: default
219 real(DP),
allocatable:: rbuffer(:)
220 character(STRING) :: cbuffer
221 character(STRING),
pointer :: lbuffer(:)
222 integer :: attrlen, xtype, i, xferend, iname, varid
226 if (stat /= nf90_noerr)
then 227 if (
present(default)) value(:) = default
238 stat = nf90_inquire_attribute(ent%fileid, varid, &
239 name = name(iname:), xtype = xtype, len = attrlen)
240 if (stat /= nf90_noerr)
then 241 if (
present(default)) value(:) = default
245 if (xtype == nf90_char)
then 246 call get_attr(var, name, cbuffer,
"", stat)
247 if (stat /= 0)
return 248 call split(cbuffer, lbuffer,
", ")
249 attrlen =
size(lbuffer)
252 if (
size(
value) == 0)
then 253 if (xtype == nf90_char)
deallocate(lbuffer)
258 xferend = min(
size(
value), attrlen)
259 if (
present(default)) value(xferend+1: ) = default
260 if (xtype == nf90_char)
then 262 value(i) =
stod(lbuffer(i))
268 allocate(rbuffer(attrlen), stat=stat)
273 stat = nf90_get_att(ent%fileid, varid, name(iname:), rbuffer)
274 if (stat == nf90_noerr)
then 275 value(1:xferend) = rbuffer(1:xferend)
subroutine gdncattrgetreal(var, name, value, stat, default)
integer function, public vtable_lookup(var, entry)
character, parameter, public gt_plus
integer, parameter, public dp
倍精度実数型変数
subroutine gdncattrgetdouble(var, name, value, stat, default)
integer, parameter, public sp
単精度実数型変数
subroutine gdncattrgetint(var, name, value, stat, default)
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ