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
Double Precision Real number.
subroutine gdncattrgetdouble(var, name, value, stat, default)
Handling character types.
Provides kind type parameter values.
integer, parameter, public sp
Single Precision Real number.
subroutine gdncattrgetint(var, name, value, stat, default)
integer, parameter, public string
Character length for string.