gtool5 Fortran 90/95 Library 1.0.0-rc5
日本語
Loading...
Searching...
No Matches
gtvargetattr.f90
Go to the documentation of this file.
1
21
76subroutine gtvargetattri(var, attrname, value, default)
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
102end subroutine gtvargetattri
103
118subroutine gtvargetattrr(var, attrname, value, default)
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
150end subroutine gtvargetattrr
151
166subroutine gtvargetattrd(var, attrname, value, default)
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
197end subroutine
198
216subroutine gtvargetattrip(var, name, value)
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
240end subroutine gtvargetattrip
241
254subroutine gtvargetattrrp(var, name, value)
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
279end subroutine gtvargetattrrp
280
293subroutine gtvargetattrdp(var, name, value)
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
318end subroutine gtvargetattrdp
319
341subroutine gtvargetattria(var, name, value, default)
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
361end subroutine gtvargetattria
362
377subroutine gtvargetattrra(var, name, value, default)
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
397end subroutine gtvargetattrra
398
413subroutine gtvargetattrda(var, name, value, default)
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
434end subroutine gtvargetattrda
subroutine gtvargetattrra(var, name, value, default)
subroutine gtvargetattrip(var, name, value)
subroutine gtvargetattrd(var, attrname, value, default)
subroutine gtvargetattrrp(var, name, value)
subroutine gtvargetattria(var, name, value, default)
subroutine gtvargetattrda(var, name, value, default)
subroutine gtvargetattrdp(var, name, value)
subroutine gtvargetattrr(var, attrname, value, default)
subroutine gtvargetattri(var, attrname, 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_ebadvar
Definition dc_error.f90:518
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)