gtool5 Fortran 90/95 Library 1.0.0-rc5
日本語
Loading...
Searching...
No Matches
Functions/Subroutines
gtvargetattr.f90 File Reference

Numeric attribute input. More...

Go to the source code of this file.

Functions/Subroutines

subroutine gtvargetattri (var, attrname, value, default)
 
subroutine gtvargetattrr (var, attrname, value, default)
 
subroutine gtvargetattrd (var, attrname, value, default)
 
subroutine gtvargetattrip (var, name, value)
 
subroutine gtvargetattrrp (var, name, value)
 
subroutine gtvargetattrdp (var, name, value)
 
subroutine gtvargetattria (var, name, value, default)
 
subroutine gtvargetattrra (var, name, value, default)
 
subroutine gtvargetattrda (var, name, value, default)
 

Detailed Description

Numeric attribute input.

Author
Eizi TOYODA, Yasuhiro MORIKAWA

Definition in file gtvargetattr.f90.

Function/Subroutine Documentation

◆ gtvargetattrd()

subroutine gtvargetattrd ( type(gt_variable), intent(in)  var,
character(len = *), intent(in)  attrname,
real(dp), intent(out)  value,
real(dp), intent(in), optional  default 
)

Get attribute value (double precision scalar)

Parameters
[in]varVariable handle
[in]attrnameAttribute name
[out]valueAttribute value (double precision)
[in]defaultDefault value (optional)

Definition at line 166 of file gtvargetattr.f90.

167 use gtdata_types, only: gt_variable
168 use gtdata_internal_map, only: var_class, vtb_class_netcdf
171 use dc_error, only: gt_enotvar, storeerror
172 use dc_types, only: dp
173 use netcdf, only: nf90_fill_double
174 implicit none
175 type(GT_VARIABLE), intent(in):: var
176 character(len = *), intent(in):: attrname
177 real(DP), intent(out):: value
178 real(DP), intent(in), optional:: default
179 integer:: stat
180 real(DP):: buffer(1)
181 integer:: class, cid
182continue
183 call var_class(var, class, cid)
184 select case(class)
185 case (vtb_class_netcdf)
186 call get_attr(gd_nc_variable(cid), attrname, value=buffer, &
187 & stat=stat, default=default)
188 if (stat >= 1) then
189 value = buffer(1)
190 return
191 end if
192 case default
193 call storeerror(gt_enotvar, "GTVarGetAttrR")
194 end select
195 value = nf90_fill_double
196 if (present(default)) value = default
Error handling module.
Definition dc_error.f90:454
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition dc_error.f90:891
integer, parameter, public gt_enotvar
Definition dc_error.f90:512
Provides kind type parameter values.
Definition dc_types.f90:55
integer, parameter, public dp
Double Precision Real number
Definition dc_types.f90:92
subroutine, public var_class(var, class, cid)

References dc_types::dp, dc_error::gt_enotvar, dc_error::storeerror(), and gtdata_internal_map::var_class().

Here is the call graph for this function:

◆ gtvargetattrda()

subroutine gtvargetattrda ( type(gt_variable), intent(in)  var,
character(len = *), intent(in)  name,
real(dp), dimension(:), intent(out)  value,
real(dp), intent(in)  default 
)

Get attribute value (double precision fixed-length array)

Parameters
[in]varVariable handle
[in]nameAttribute name
[out]valueAttribute value (double precision array)
[in]defaultDefault fill value

Definition at line 413 of file gtvargetattr.f90.

414 use gtdata_types, only: gt_variable
415 use gtdata_generic, only: friend => get_attr
416 use gtdata_internal_map, only: var_class, vtb_class_netcdf
419 use dc_types, only: dp
420 use dc_error, only: gt_enotvar, storeerror
421 implicit none
422 type(GT_VARIABLE), intent(in):: var
423 character(len = *), intent(in):: name
424 real(DP), intent(out):: value(:)
425 real(DP), intent(in):: default
426 integer:: stat, class, cid
427continue
428 call var_class(var, class, cid)
429 if (class == vtb_class_netcdf) then
430 call get_attr(gd_nc_variable(cid), name, value, stat, default)
431 else
432 call storeerror(gt_enotvar, "GTVarGetAttrRA")
433 endif

References dc_types::dp, dc_error::gt_enotvar, dc_error::storeerror(), and gtdata_internal_map::var_class().

Here is the call graph for this function:

◆ gtvargetattrdp()

subroutine gtvargetattrdp ( type(gt_variable), intent(in)  var,
character(len = *), intent(in)  name,
real(dp), dimension(:), pointer  value 
)

Get attribute value (double precision pointer array)

Parameters
[in]varVariable handle
[in]nameAttribute name
[out]valueAttribute value (double precision pointer)

Definition at line 293 of file gtvargetattr.f90.

294 use gtdata_types, only: gt_variable
295 use gtdata_internal_map, only: var_class, vtb_class_netcdf
298 use dc_types, only: dp
299 use dc_error, only: gt_enotvar, storeerror
300 implicit none
301 type(GT_VARIABLE), intent(in):: var
302 character(len = *), intent(in):: name
303 real(DP), pointer:: value(:) !(out)
304 integer:: stat, class, cid
305continue
306 call var_class(var, class, cid)
307 if (class == vtb_class_netcdf) then
308 allocate(value(1))
309 call get_attr(gd_nc_variable(cid), name, value(1:0), stat)
310 deallocate(value)
311 if (stat < 1) return
312 allocate(value(stat))
313 call get_attr(gd_nc_variable(cid), name, value, stat)
314 if (stat < 1) deallocate(value)
315 else
316 call storeerror(gt_enotvar, "GTVarGetAttrRP")
317 endif

References dc_types::dp, dc_error::gt_enotvar, dc_error::storeerror(), and gtdata_internal_map::var_class().

Here is the call graph for this function:

◆ gtvargetattri()

subroutine gtvargetattri ( type(gt_variable), intent(in)  var,
character(len = *), intent(in)  attrname,
integer, intent(out)  value,
integer, intent(in), optional  default 
)

Get attribute value (integer scalar)

Returns the value of attribute attrname attached to variable var. Get_Attr is a generic name for multiple subroutines, so value can accept various types of variables (including pointers).

If the attribute value cannot be retrieved normally and default is provided, that value is returned. Default values when default is not provided are:

  • character: "" (empty string)
  • real: NF90_FILL_REAL
  • real(DP): NF90_FILL_DOUBLE
  • integer: NF90_FILL_INT

When value is a pointer, it is automatically allocated according to the attribute value. Always pass it in a null state.

When value is a fixed-length array, default is required because Fortran language specifications require different interfaces for pointer and non-pointer forms.

Parameters
[in]varVariable handle
[in]attrnameAttribute name
[out]valueAttribute value (integer)
[in]defaultDefault value (optional)

Definition at line 76 of file gtvargetattr.f90.

77 use gtdata_types, only: gt_variable
78 use gtdata_internal_map, only: var_class, vtb_class_netcdf
81 use netcdf, only: nf90_fill_int
83 implicit none
84 type(GT_VARIABLE), intent(in):: var
85 character(len = *), intent(in):: attrname
86 integer, intent(out):: value
87 integer, intent(in), optional:: default
88 integer:: stat, buffer(1), class, cid
89continue
90 call var_class(var, class, cid)
91 if (class == vtb_class_netcdf) then
92 call get_attr(gd_nc_variable(cid), attrname, buffer, stat, default)
93 if (stat >= 1) then
94 value = buffer(1)
95 return
96 end if
97 else
98 call storeerror(gt_enotvar, "GTVarGetAttrI")
99 endif
100 value = nf90_fill_int
101 if (present(default)) value = default

References dc_error::gt_enotvar, dc_error::storeerror(), and gtdata_internal_map::var_class().

Here is the call graph for this function:

◆ gtvargetattria()

subroutine gtvargetattria ( type(gt_variable), intent(in)  var,
character(len = *), intent(in)  name,
integer, dimension(:), intent(out)  value,
integer, intent(in)  default 
)

Get attribute value (integer fixed-length array)

When receiving as a fixed-length array, excess attribute values are truncated. When attribute length is insufficient, default values fill the remainder (default is required unlike pointer form).

Parameters
[in]varVariable handle
[in]nameAttribute name
[out]valueAttribute value (integer array)
[in]defaultDefault fill value

Definition at line 341 of file gtvargetattr.f90.

342 use gtdata_types, only: gt_variable
343 use gtdata_generic, only: friend => get_attr
344 use gtdata_internal_map, only: var_class, vtb_class_netcdf
347 use dc_error, only: gt_enotvar, storeerror
348 implicit none
349 type(GT_VARIABLE), intent(in):: var
350 character(len = *), intent(in):: name
351 integer, intent(out):: value(:)
352 integer, intent(in):: default
353 integer:: stat, class, cid
354continue
355 call var_class(var, class, cid)
356 if (class == vtb_class_netcdf) then
357 call get_attr(gd_nc_variable(cid), name, value, stat, default)
358 else
359 call storeerror(gt_enotvar, "GTVarGetAttrIA")
360 endif

References dc_error::gt_enotvar, dc_error::storeerror(), and gtdata_internal_map::var_class().

Here is the call graph for this function:

◆ gtvargetattrip()

subroutine gtvargetattrip ( type(gt_variable), intent(in)  var,
character(len = *), intent(in)  name,
integer, dimension(:), pointer  value 
)

Get attribute value (integer pointer array)

When receiving with a pointer array, entities are allocated for as many interpretable values as exist.

Parameters
[in]varVariable handle
[in]nameAttribute name
[out]valueAttribute value (integer pointer)

Definition at line 216 of file gtvargetattr.f90.

217 use gtdata_types, only: gt_variable
218 use gtdata_internal_map, only: var_class, vtb_class_netcdf
221 use dc_error, only: gt_enotvar, storeerror
222 implicit none
223 type(GT_VARIABLE), intent(in):: var
224 character(len = *), intent(in):: name
225 integer, pointer:: value(:) !(out)
226 integer:: stat, class, cid
227continue
228 call var_class(var, class, cid)
229 if (class == vtb_class_netcdf) then
230 allocate(value(1))
231 call get_attr(gd_nc_variable(cid), name, value(1:0), stat)
232 deallocate(value)
233 if (stat < 1) return
234 allocate(value(stat))
235 call get_attr(gd_nc_variable(cid), name, value, stat)
236 if (stat < 1) deallocate(value)
237 else
238 call storeerror(gt_enotvar, "GTVarGetAttrIP")
239 endif

References dc_error::gt_enotvar, dc_error::storeerror(), and gtdata_internal_map::var_class().

Here is the call graph for this function:

◆ gtvargetattrr()

subroutine gtvargetattrr ( type(gt_variable), intent(in)  var,
character(len = *), intent(in)  attrname,
real, intent(out)  value,
real, intent(in), optional  default 
)

Get attribute value (real scalar)

Parameters
[in]varVariable handle
[in]attrnameAttribute name
[out]valueAttribute value (real)
[in]defaultDefault value (optional)

Definition at line 118 of file gtvargetattr.f90.

119 use gtdata_types, only: gt_variable
122 use gtdata_internal_map, only: var_class, vtb_class_netcdf
123 use dc_error, only: gt_ebadvar, storeerror
124 use netcdf, only: nf90_fill_float
125 implicit none
126 type(GT_VARIABLE), intent(in):: var
127 character(len = *), intent(in):: attrname
128 real, intent(out):: value
129 real, intent(in), optional:: default
130 integer:: stat
131 real:: buffer(1)
132 integer:: class, cid
133continue
134 call var_class(var, class, cid)
135 if (class == vtb_class_netcdf) then
136 call get_attr(gd_nc_variable(cid), attrname, value=buffer, &
137 & stat=stat, default=default)
138 if (stat >= 1) then
139 value = buffer(1)
140 return
141 endif
142 else
143 call storeerror(gt_ebadvar, "GTVarGetAttrR")
144 endif
145 if (present(default)) then
146 value = default
147 else
148 value = nf90_fill_float
149 endif
integer, parameter, public gt_ebadvar
Definition dc_error.f90:518

References dc_error::gt_ebadvar, dc_error::storeerror(), and gtdata_internal_map::var_class().

Here is the call graph for this function:

◆ gtvargetattrra()

subroutine gtvargetattrra ( type(gt_variable), intent(in)  var,
character(len = *), intent(in)  name,
real, dimension(:), intent(out)  value,
real, intent(in)  default 
)

Get attribute value (real fixed-length array)

Parameters
[in]varVariable handle
[in]nameAttribute name
[out]valueAttribute value (real array)
[in]defaultDefault fill value

Definition at line 377 of file gtvargetattr.f90.

378 use gtdata_types, only: gt_variable
379 use gtdata_generic, only: friend => get_attr
380 use gtdata_internal_map, only: var_class, vtb_class_netcdf
383 use dc_error, only: gt_enotvar, storeerror
384 implicit none
385 type(GT_VARIABLE), intent(in):: var
386 character(len = *), intent(in):: name
387 real, intent(out):: value(:)
388 real, intent(in):: default
389 integer:: class, cid, stat
390continue
391 call var_class(var, class, cid)
392 if (class == vtb_class_netcdf) then
393 call get_attr(gd_nc_variable(cid), name, value, stat, default)
394 else
395 call storeerror(gt_enotvar, "GTVarGetAttrRA")
396 endif

References dc_error::gt_enotvar, dc_error::storeerror(), and gtdata_internal_map::var_class().

Here is the call graph for this function:

◆ gtvargetattrrp()

subroutine gtvargetattrrp ( type(gt_variable), intent(in)  var,
character(len = *), intent(in)  name,
real, dimension(:), pointer  value 
)

Get attribute value (real pointer array)

Parameters
[in]varVariable handle
[in]nameAttribute name
[out]valueAttribute value (real pointer)

Definition at line 254 of file gtvargetattr.f90.

255 use gtdata_types, only: gt_variable
256 use gtdata_internal_map, only: var_class, vtb_class_netcdf
259 use dc_error, only: gt_enotvar, storeerror
260 implicit none
261 type(GT_VARIABLE), intent(in):: var
262 character(len = *), intent(in):: name
263 real, pointer:: value(:) !(out)
264 integer:: stat, class, cid
265continue
266 call var_class(var, class, cid)
267 if (class == vtb_class_netcdf) then
268 allocate(value(1))
269 call get_attr(gd_nc_variable(cid), name, value(1:0), stat)
270 deallocate(value)
271 if (stat < 1) return
272 allocate(value(stat))
273 call get_attr(gd_nc_variable(cid), name, value, stat)
274 if (stat < 1) deallocate(value)
275 else
276 nullify(value)
277 call storeerror(gt_enotvar, "GTVarGetAttrRP")
278 endif

References dc_error::gt_enotvar, dc_error::storeerror(), and gtdata_internal_map::var_class().

Here is the call graph for this function: