Loading...
Searching...
No Matches
gtvargetattr.f90 File Reference

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)

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 )

Definition at line 116 of file gtvargetattr.f90.

117 use gtdata_types, only: gt_variable
118 use gtdata_internal_map, only: var_class, vtb_class_netcdf
121 use dc_string, only: stod
122 use dc_error, only: gt_enotvar, storeerror
123 use dc_types, only: dp
124 use netcdf, only: nf90_fill_double
125 use dc_types, only: string
126 implicit none
127 type(GT_VARIABLE), intent(in):: var
128 character(len = *), intent(in):: attrname
129 real(DP), intent(out):: value
130 real(DP), intent(in), optional:: default
131 integer:: stat
132 real(DP):: buffer(1)
133 character(STRING):: cbuffer
134 integer:: class, cid
135 logical:: err
136continue
137 call var_class(var, class, cid)
138 select case(class)
139 case (vtb_class_netcdf)
140 call get_attr(gd_nc_variable(cid), attrname, value=buffer, &
141 & stat=stat, default=default)
142 if (stat >= 1) then
143 value = buffer(1)
144 return
145 end if
146 case default
147 call storeerror(gt_enotvar, "GTVarGetAttrR")
148 end select
149 value = nf90_fill_double
150 if (present(default)) value = default
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition dc_error.f90:830
integer, parameter, public gt_enotvar
Definition dc_error.f90:533
種別型パラメタを提供します。
Definition dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition dc_types.f90:118
integer, parameter, public dp
倍精度実数型変数
Definition dc_types.f90:83
subroutine, public var_class(var, class, cid)

References dc_types::dp, dc_error::gt_enotvar, dc_error::storeerror(), dc_types::string, 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 )

Definition at line 299 of file gtvargetattr.f90.

300 use gtdata_types, only: gt_variable
301 use gtdata_generic, only: friend => get_attr
302 use gtdata_internal_map, only: var_class, vtb_class_netcdf
305 use dc_types, only: dp
306 use dc_error, only: gt_enotvar, storeerror
307 implicit none
308 type(GT_VARIABLE), intent(in):: var
309 character(len = *), intent(in):: name
310 real(DP), intent(out):: value(:)
311 real(DP), intent(in):: default
312 real(DP), pointer:: ptr(:)
313 integer:: n, stat, class, cid
314continue
315 call var_class(var, class, cid)
316 if (class == vtb_class_netcdf) then
317 call get_attr(gd_nc_variable(cid), name, value, stat, default)
318 else
319 call storeerror(gt_enotvar, "GTVarGetAttrRA")
320 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 )

Definition at line 218 of file gtvargetattr.f90.

219 use gtdata_types, only: gt_variable
220 use gtdata_internal_map, only: var_class, vtb_class_netcdf
223 use dc_types, only: dp
224 use dc_error, only: gt_enotvar, storeerror
225 use dc_string, only: get_array
226 use dc_types, only: string
227 implicit none
228 type(GT_VARIABLE), intent(in):: var
229 character(len = *), intent(in):: name
230 real(DP), pointer:: value(:) !(out)
231 integer:: stat, class, cid
232 character(STRING):: cbuffer
233 logical:: err
234continue
235 call var_class(var, class, cid)
236 if (class == vtb_class_netcdf) then
237 allocate(value(1))
238 call get_attr(gd_nc_variable(cid), name, value(1:0), stat)
239 deallocate(value)
240 if (stat < 1) return
241 allocate(value(stat))
242 call get_attr(gd_nc_variable(cid), name, value, stat)
243 if (stat < 1) deallocate(value)
244 else
245 call storeerror(gt_enotvar, "GTVarGetAttrRP")
246 endif

References dc_types::dp, dc_error::gt_enotvar, dc_error::storeerror(), dc_types::string, 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 )

Definition at line 18 of file gtvargetattr.f90.

19 !
20 !== 属性の入力
21 !
22 ! 変数 *var* に付加されている属性 *name* の値を返します。
23 ! *Get_Attr* は複数のサブルーチンの総称名なので、
24 ! *value* には様々な型の変数 (ポインタも可能)
25 ! を与えることが可能です。
26 ! 以下のサブルーチンを参照してください。
27 !
28 ! 属性の値が正常に取得できず、且つ *default* が与えられて
29 ! いた場合、その値が返ります。
30 ! *default* が与えられない場合のデフォルトの値はそれぞれ以下の
31 ! 通りです。
32 !
33 ! character :: "" (空文字)
34 ! real :: netcdf_f77#NF90_FILL_REAL
35 ! real(DP) :: netcdf_f77#NF90_FILL_DOUBLE
36 ! integer :: netcdf_f77#NF90_FILL_INT
37 !
38 ! *value* がポインタの場合は、型に依らず空状態が返ります。
39 !
40 ! *value* にポインタを与えた場合、属性の値に応じて自動的に
41 ! 割り付けが行われます。そのため、必ず空状態にしてから与えてください。
42 !
43 ! *value* に固定長配列を用意する場合 *default* が必須になりますが、
44 ! これは Fortran の言語仕様上ポインタ方式と引用仕様が同じであっては
45 ! ならないからです。
46 !
47 use gtdata_types, only: gt_variable
48 use gtdata_internal_map, only: var_class, vtb_class_netcdf
51 use netcdf, only: nf90_fill_int
52 use dc_string, only: stoi
54 use dc_types, only: string
55 implicit none
56 type(GT_VARIABLE), intent(in):: var
57 character(len = *), intent(in):: attrname
58 integer, intent(out):: value
59 integer, intent(in), optional:: default
60 integer:: stat, buffer(1), class, cid
61 character(STRING):: cbuffer
62 logical:: err
63continue
64 call var_class(var, class, cid)
65 if (class == vtb_class_netcdf) then
66 call get_attr(gd_nc_variable(cid), attrname, buffer, stat, default)
67 if (stat >= 1) then
68 value = buffer(1)
69 return
70 end if
71 else
72 call storeerror(gt_enotvar, "GTVarGetAttrI")
73 endif
74 value = nf90_fill_int
75 if (present(default)) value = default

References dc_error::gt_enotvar, dc_error::storeerror(), dc_types::string, 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 )

Definition at line 253 of file gtvargetattr.f90.

254 use gtdata_types, only: gt_variable
255 use gtdata_generic, only: friend => get_attr
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 integer, intent(out):: value(:)
264 integer, intent(in):: default
265 integer, pointer:: ptr(:)
266 integer:: n, stat, class, cid
267continue
268 call var_class(var, class, cid)
269 if (class == vtb_class_netcdf) then
270 call get_attr(gd_nc_variable(cid), name, value, stat, default)
271 else
272 call storeerror(gt_enotvar, "GTVarGetAttrIA")
273 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 )

Definition at line 157 of file gtvargetattr.f90.

158 use gtdata_types, only: gt_variable
159 use gtdata_internal_map, only: var_class, vtb_class_netcdf
162 use dc_error, only: gt_enotvar, storeerror
163 use dc_string, only: get_array
164 use dc_types, only: string
165 implicit none
166 type(GT_VARIABLE), intent(in):: var
167 character(len = *), intent(in):: name
168 integer, pointer:: value(:) !(out)
169 integer:: stat, class, cid
170 character(STRING):: cbuffer
171 logical:: err
172continue
173 call var_class(var, class, cid)
174 if (class == vtb_class_netcdf) then
175 allocate(value(1))
176 call get_attr(gd_nc_variable(cid), name, value(1:0), stat)
177 deallocate(value)
178 if (stat < 1) return
179 allocate(value(stat))
180 call get_attr(gd_nc_variable(cid), name, value, stat)
181 if (stat < 1) deallocate(value)
182 else
183 call storeerror(gt_enotvar, "GTVarGetAttrIP")
184 endif

References dc_error::gt_enotvar, dc_error::storeerror(), dc_types::string, 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 )

Definition at line 78 of file gtvargetattr.f90.

79 use gtdata_types, only: gt_variable
82 use gtdata_internal_map, only: var_class, vtb_class_netcdf
84 use dc_string, only: stod
85 use netcdf, only: nf90_fill_float
86 use dc_types, only: string
87 implicit none
88 type(GT_VARIABLE), intent(in):: var
89 character(len = *), intent(in):: attrname
90 real, intent(out):: value
91 real, intent(in), optional:: default
92 integer:: stat
93 real:: buffer(1)
94 character(STRING):: cbuffer
95 integer:: class, cid
96 logical:: err
97continue
98 call var_class(var, class, cid)
99 if (class == vtb_class_netcdf) then
100 call get_attr(gd_nc_variable(cid), attrname, value=buffer, &
101 & stat=stat, default=default)
102 if (stat >= 1) then
103 value = buffer(1)
104 return
105 endif
106 else
107 call storeerror(gt_ebadvar, "GTVarGetAttrR")
108 endif
109 if (present(default)) then
110 value = default
111 else
112 value = nf90_fill_float
113 endif
integer, parameter, public gt_ebadvar
Definition dc_error.f90:539

References dc_error::gt_ebadvar, dc_error::storeerror(), dc_types::string, 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 )

Definition at line 276 of file gtvargetattr.f90.

277 use gtdata_types, only: gt_variable
278 use gtdata_generic, only: friend => get_attr
279 use gtdata_internal_map, only: var_class, vtb_class_netcdf
282 use dc_error, only: gt_enotvar, storeerror
283 implicit none
284 type(GT_VARIABLE), intent(in):: var
285 character(len = *), intent(in):: name
286 real, intent(out):: value(:)
287 real, intent(in):: default
288 real, pointer:: ptr(:)
289 integer:: n, class, cid, stat
290continue
291 call var_class(var, class, cid)
292 if (class == vtb_class_netcdf) then
293 call get_attr(gd_nc_variable(cid), name, value, stat, default)
294 else
295 call storeerror(gt_enotvar, "GTVarGetAttrRA")
296 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 )

Definition at line 187 of file gtvargetattr.f90.

188 use gtdata_types, only: gt_variable
189 use gtdata_internal_map, only: var_class, vtb_class_netcdf
192 use dc_string, only: get_array
193 use dc_error, only: gt_enotvar, storeerror
194 use dc_types, only: string
195 implicit none
196 type(GT_VARIABLE), intent(in):: var
197 character(len = *), intent(in):: name
198 real, pointer:: value(:) !(out)
199 integer:: stat, class, cid
200 character(STRING):: cbuffer
201 logical:: err
202continue
203 call var_class(var, class, cid)
204 if (class == vtb_class_netcdf) then
205 allocate(value(1))
206 call get_attr(gd_nc_variable(cid), name, value(1:0), stat)
207 deallocate(value)
208 if (stat < 1) return
209 allocate(value(stat))
210 call get_attr(gd_nc_variable(cid), name, value, stat)
211 if (stat < 1) deallocate(value)
212 else
213 nullify(value)
214 call storeerror(gt_enotvar, "GTVarGetAttrRP")
215 endif

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

Here is the call graph for this function: