53 use netcdf
, only: nf90_fill_int
59 character(len = *),
intent(in):: attrname
60 integer,
intent(out):: value
61 integer,
intent(in),
optional:: default
62 integer:: stat, buffer(1),
class, cid
63 character(STRING):: cbuffer
67 if (
class == vtb_class_netcdf)
then 73 else if (
class == vtb_class_memory)
then 83 if (
present(default))
value = default
95 use netcdf
, only: nf90_fill_float
99 character(len = *),
intent(in):: attrname
100 real,
intent(out):: value
101 real,
intent(in),
optional:: default
104 character(STRING):: cbuffer
109 if (
class == vtb_class_netcdf)
then 111 & stat=stat, default=default)
116 else if (
class == vtb_class_memory)
then 119 value =
stod(cbuffer)
125 if (
present(default))
then 128 value = nf90_fill_float
142 use netcdf
, only: nf90_fill_double
146 character(len = *),
intent(in):: attrname
147 real(DP),
intent(out):: value
148 real(DP),
intent(in),
optional:: default
151 character(STRING):: cbuffer
157 case (vtb_class_netcdf)
159 & stat=stat, default=default)
164 case (vtb_class_memory)
167 value =
stod(cbuffer)
173 value = nf90_fill_double
174 if (
present(default))
value = default
193 character(len = *),
intent(in):: name
194 integer,
pointer::
value(:)
195 integer:: stat,
class, cid
196 character(STRING):: cbuffer
200 if (
class == vtb_class_netcdf)
then 205 allocate(value(stat))
207 if (stat < 1)
deallocate(
value)
208 else if (
class == vtb_class_memory)
then 233 character(len = *),
intent(in):: name
234 real,
pointer::
value(:)
235 integer:: stat,
class, cid
236 character(STRING):: cbuffer
240 if (
class == vtb_class_netcdf)
then 245 allocate(value(stat))
247 if (stat < 1)
deallocate(
value)
248 else if (
class == vtb_class_memory)
then 275 character(len = *),
intent(in):: name
276 real(DP),
pointer::
value(:)
277 integer:: stat,
class, cid
278 character(STRING):: cbuffer
282 if (
class == vtb_class_netcdf)
then 287 allocate(value(stat))
289 if (stat < 1)
deallocate(
value)
290 else if (
class == vtb_class_memory)
then 316 character(len = *),
intent(in):: name
317 integer,
intent(out)::
value(:)
318 integer,
intent(in):: default
319 integer,
pointer:: ptr(:)
320 integer:: n, stat,
class, cid
323 if (
class == vtb_class_netcdf)
then 325 else if (
class == vtb_class_memory)
then 326 call friend(var, name, ptr)
327 if (.not.
associated(ptr))
then 330 n = min(
size(ptr),
size(
value))
331 value(1:n) = ptr(1:n)
332 if (n <
size(ptr)) value(n+1: ) = default
349 character(len = *),
intent(in):: name
350 real,
intent(out)::
value(:)
351 real,
intent(in):: default
352 real,
pointer:: ptr(:)
353 integer:: n,
class, cid, stat
356 if (
class == vtb_class_netcdf)
then 358 else if (
class == vtb_class_memory)
then 359 call friend(var, name, ptr)
360 if (.not.
associated(ptr))
then 363 n = min(
size(ptr),
size(
value))
364 value(1:n) = ptr(1:n)
365 if (n <
size(ptr)) value(n+1: ) = default
383 character(len = *),
intent(in):: name
384 real(DP),
intent(out)::
value(:)
385 real(DP),
intent(in):: default
386 real(DP),
pointer:: ptr(:)
387 integer:: n, stat,
class, cid
390 if (
class == vtb_class_netcdf)
then 392 else if (
class == vtb_class_memory)
then 393 call friend(var, name, ptr)
394 if (.not.
associated(ptr))
then 397 n = min(
size(ptr),
size(
value))
398 value(1:n) = ptr(1:n)
399 if (n <
size(ptr)) value(n+1: ) = default
subroutine gtvargetattrip(var, name, value)
integer, parameter, public gt_enotvar
subroutine gtvargetattrda(var, name, value, default)
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public gt_ebadvar
subroutine gtvargetattrr(var, attrname, value, default)
subroutine gtvargetattrra(var, name, value, default)
subroutine gtvargetattrd(var, attrname, value, default)
integer, parameter, public dp
倍精度実数型変数
subroutine gtvargetattrdp(var, name, value)
subroutine gtvargetattria(var, name, value, default)
subroutine gtvargetattri(var, attrname, value, default)
subroutine, public var_class(var, class, cid)
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
subroutine gtvargetattrrp(var, name, value)