Functions/Subroutines
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 117 of file gtvargetattr.f90.

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

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
136 continue
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
integer, parameter, public gt_enotvar
Definition: dc_error.f90:533
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dp
Double Precision Real number.
Definition: dc_types.f90:83
Provides kind type parameter values.
Definition: dc_types.f90:49
subroutine, public var_class(var, class, cid)
integer, parameter, public string
Character length for string.
Definition: dc_types.f90:118
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 300 of file gtvargetattr.f90.

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

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
314 continue
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
integer, parameter, public gt_enotvar
Definition: dc_error.f90:533
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dp
Double Precision Real number.
Definition: dc_types.f90:83
Provides kind type parameter values.
Definition: dc_types.f90:49
subroutine, public var_class(var, class, cid)
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 219 of file gtvargetattr.f90.

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

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
234 continue
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
integer, parameter, public gt_enotvar
Definition: dc_error.f90:533
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dp
Double Precision Real number.
Definition: dc_types.f90:83
Provides kind type parameter values.
Definition: dc_types.f90:49
subroutine, public var_class(var, class, cid)
integer, parameter, public string
Character length for string.
Definition: dc_types.f90:118
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 19 of file gtvargetattr.f90.

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

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
53  use dc_error, only: gt_enotvar, storeerror
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
63 continue
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
integer, parameter, public gt_enotvar
Definition: dc_error.f90:533
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
Provides kind type parameter values.
Definition: dc_types.f90:49
subroutine, public var_class(var, class, cid)
integer, parameter, public string
Character length for string.
Definition: dc_types.f90:118
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 254 of file gtvargetattr.f90.

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

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
267 continue
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
integer, parameter, public gt_enotvar
Definition: dc_error.f90:533
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
subroutine, public var_class(var, class, cid)
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 158 of file gtvargetattr.f90.

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

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
172 continue
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
integer, parameter, public gt_enotvar
Definition: dc_error.f90:533
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
Provides kind type parameter values.
Definition: dc_types.f90:49
subroutine, public var_class(var, class, cid)
integer, parameter, public string
Character length for string.
Definition: dc_types.f90:118
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 79 of file gtvargetattr.f90.

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

79  use gtdata_types, only: gt_variable
82  use gtdata_internal_map, only: var_class, vtb_class_netcdf
83  use dc_error, only: gt_ebadvar, storeerror
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
97 continue
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
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public gt_ebadvar
Definition: dc_error.f90:539
Provides kind type parameter values.
Definition: dc_types.f90:49
subroutine, public var_class(var, class, cid)
integer, parameter, public string
Character length for string.
Definition: dc_types.f90:118
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 277 of file gtvargetattr.f90.

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

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
290 continue
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
integer, parameter, public gt_enotvar
Definition: dc_error.f90:533
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
subroutine, public var_class(var, class, cid)
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 188 of file gtvargetattr.f90.

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

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
202 continue
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
integer, parameter, public gt_enotvar
Definition: dc_error.f90:533
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
Provides kind type parameter values.
Definition: dc_types.f90:49
subroutine, public var_class(var, class, cid)
integer, parameter, public string
Character length for string.
Definition: dc_types.f90:118
Here is the call graph for this function: