NetCDF-Fortran  4.4.2
netcdf_attributes.f90
1  !
2  ! Attribute routines:
3  !
4  ! -------
5  function nf90_copy_att(ncid_in, varid_in, name, ncid_out, varid_out)
6  integer, intent( in) :: ncid_in, varid_in
7  character (len = *), intent( in) :: name
8  integer, intent( in) :: ncid_out, varid_out
9  integer :: nf90_copy_att
10 
11  nf90_copy_att = nf_copy_att(ncid_in, varid_in, name, ncid_out, varid_out)
12  end function nf90_copy_att
13  ! -------
14  function nf90_rename_att(ncid, varid, curname, newname)
15  integer, intent( in) :: ncid, varid
16  character (len = *), intent( in) :: curname, newname
17  integer :: nf90_rename_att
18 
19  nf90_rename_att = nf_rename_att(ncid, varid, curname, newname)
20  end function nf90_rename_att
21  ! -------
22  function nf90_del_att(ncid, varid, name)
23  integer, intent( in) :: ncid, varid
24  character (len = *), intent( in) :: name
25  integer :: nf90_del_att
26 
27  nf90_del_att = nf_del_att(ncid, varid, name)
28  end function nf90_del_att
29  ! -------
30  ! Attribute inquiry functions
31  ! -------
32  function nf90_inq_attname(ncid, varid, attnum, name)
33  integer, intent( in) :: ncid, varid, attnum
34  character (len = *), intent(out) :: name
35  integer :: nf90_inq_attname
36 
37  nf90_inq_attname = nf_inq_attname(ncid, varid, attnum, name)
38  end function nf90_inq_attname
39  ! -------
40  function nf90_inquire_attribute(ncid, varid, name, xtype, len, attnum)
41  integer, intent( in) :: ncid, varid
42  character (len = *), intent( in) :: name
43  integer, intent(out), optional :: xtype, len, attnum
44  integer :: nf90_inquire_attribute
45 
46  integer :: local_xtype, local_len
47 
48  ! Do we need to worry about not saving the state from this call?
49  if(present(attnum)) &
50  nf90_inquire_attribute = nf_inq_attid(ncid, varid, name, attnum)
51  nf90_inquire_attribute = nf_inq_att(ncid, varid, name, local_xtype, local_len)
52  if(present(xtype)) xtype = local_xtype
53  if(present(len )) len = local_len
54  end function nf90_inquire_attribute
55  ! -------
56  ! Put and get functions; these will get overloaded
57  ! -------
58  ! Text
59  ! -------
60  function nf90_put_att_text(ncid, varid, name, values)
61  integer, intent( in) :: ncid, varid
62  character(len = *), intent( in) :: name
63  character(len = *), intent( in) :: values
64  integer :: nf90_put_att_text
65 
66  nf90_put_att_text = nf_put_att_text(ncid, varid, name, len_trim(values), trim(values))
67  end function nf90_put_att_text
68  ! -------
69  function nf90_get_att_text(ncid, varid, name, values)
70  integer, intent( in) :: ncid, varid
71  character(len = *), intent( in) :: name
72  character(len = *), intent(out) :: values
73  integer :: nf90_get_att_text
74 
75  values = ' ' !! make sure result will be blank padded
76  nf90_get_att_text = nf_get_att_text(ncid, varid, name, values)
77  end function nf90_get_att_text
78  ! -------
79  ! Integer attributes
80  ! -------
81  function nf90_put_att_onebyteint(ncid, varid, name, values)
82  integer, intent( in) :: ncid, varid
83  character(len = *), intent( in) :: name
84  integer (kind = OneByteInt), dimension(:), intent( in) :: values
85  integer :: nf90_put_att_onebyteint
86 
87  nf90_put_att_onebyteint = nf_put_att_int1(ncid, varid, name, nf90_int1, size(values), values)
88  end function nf90_put_att_onebyteint
89  ! -------
90  function nf90_put_att_one_onebyteint(ncid, varid, name, values)
91  integer, intent( in) :: ncid, varid
92  character(len = *), intent( in) :: name
93  integer (kind = OneByteInt), intent( in) :: values
94  integer :: nf90_put_att_one_onebyteint
95 
96  integer (kind = OneByteInt), dimension(1) :: valuesa
97  valuesa(1) = values
98  nf90_put_att_one_onebyteint = nf_put_att_int1(ncid, varid, name, nf90_int1, 1, valuesa)
99  end function nf90_put_att_one_onebyteint
100  ! -------
101  function nf90_get_att_onebyteint(ncid, varid, name, values)
102  integer, intent( in) :: ncid, varid
103  character(len = *), intent( in) :: name
104  integer (kind = OneByteInt), dimension(:), intent(out) :: values
105  integer :: nf90_get_att_onebyteint
106 
107  nf90_get_att_onebyteint = nf_get_att_int1(ncid, varid, name, values)
108  end function nf90_get_att_onebyteint
109  ! -------
110  function nf90_get_att_one_onebyteint(ncid, varid, name, values)
111  integer, intent( in) :: ncid, varid
112  character(len = *), intent( in) :: name
113  integer (kind = OneByteInt), intent(out) :: values
114  integer :: nf90_get_att_one_onebyteint
115 
116  integer (kind = OneByteInt), dimension(1) :: valuesa
117  nf90_get_att_one_onebyteint = nf_get_att_int1(ncid, varid, name, valuesa)
118  values = valuesa(1)
119  end function nf90_get_att_one_onebyteint
120  ! -------
121  function nf90_put_att_twobyteint(ncid, varid, name, values)
122  integer, intent( in) :: ncid, varid
123  character(len = *), intent( in) :: name
124  integer (kind = TwoByteInt), dimension(:), intent( in) :: values
125  integer :: nf90_put_att_twobyteint
126 
127  nf90_put_att_twobyteint = nf_put_att_int2(ncid, varid, name, nf90_int2, size(values), values)
128  end function nf90_put_att_twobyteint
129  ! -------
130  function nf90_put_att_one_twobyteint(ncid, varid, name, values)
131  integer, intent( in) :: ncid, varid
132  character(len = *), intent( in) :: name
133  integer (kind = TwoByteInt), intent( in) :: values
134  integer :: nf90_put_att_one_twobyteint
135 
136  integer (kind = TwoByteInt), dimension(1) :: valuesa
137  valuesa(1) = values
138  nf90_put_att_one_twobyteint = nf_put_att_int2(ncid, varid, name, nf90_int2, 1, valuesa)
139  end function nf90_put_att_one_twobyteint
140  ! -------
141  function nf90_get_att_twobyteint(ncid, varid, name, values)
142  integer, intent( in) :: ncid, varid
143  character(len = *), intent( in) :: name
144  integer (kind = TwoByteInt), dimension(:), intent(out) :: values
145  integer :: nf90_get_att_twobyteint
146 
147  nf90_get_att_twobyteint = nf_get_att_int2(ncid, varid, name, values)
148  end function nf90_get_att_twobyteint
149  ! -------
150  function nf90_get_att_one_twobyteint(ncid, varid, name, values)
151  integer, intent( in) :: ncid, varid
152  character(len = *), intent( in) :: name
153  integer (kind = TwoByteInt), intent(out) :: values
154  integer :: nf90_get_att_one_twobyteint
155 
156  integer (kind = TwoByteInt), dimension(1) :: valuesa
157  nf90_get_att_one_twobyteint = nf_get_att_int2(ncid, varid, name, valuesa)
158  values = valuesa(1)
159  end function nf90_get_att_one_twobyteint
160  ! -------
161  function nf90_put_att_fourbyteint(ncid, varid, name, values)
162  integer, intent( in) :: ncid, varid
163  character(len = *), intent( in) :: name
164  integer (kind = FourByteInt), dimension(:), intent( in) :: values
165  integer :: nf90_put_att_fourbyteint
166 
167  nf90_put_att_fourbyteint = nf_put_att_int(ncid, varid, name, nf90_int, size(values), int(values))
168  end function nf90_put_att_fourbyteint
169  ! -------
170  function nf90_put_att_one_fourbyteint(ncid, varid, name, values)
171  integer, intent( in) :: ncid, varid
172  character(len = *), intent( in) :: name
173  integer (kind = FourByteInt), intent( in) :: values
174  integer :: nf90_put_att_one_fourbyteint
175 
176  integer (kind = FourByteInt), dimension(1) :: valuesa
177  valuesa(1) = int(values)
178  nf90_put_att_one_fourbyteint = nf_put_att_int(ncid, varid, name, nf90_int, 1, int(valuesa))
179  end function nf90_put_att_one_fourbyteint
180  ! -------
181  function nf90_get_att_fourbyteint(ncid, varid, name, values)
182  integer, intent( in) :: ncid, varid
183  character(len = *), intent( in) :: name
184  integer (kind = FourByteInt), dimension(:), intent(out) :: values
185  integer :: nf90_get_att_fourbyteint
186 
187  integer, dimension(size(values)) :: defaultinteger
188 
189  nf90_get_att_fourbyteint = nf_get_att_int(ncid, varid, name, defaultinteger)
190  values(:) = defaultinteger(:)
191  end function nf90_get_att_fourbyteint
192  ! -------
193  function nf90_get_att_one_fourbyteint(ncid, varid, name, values)
194  integer, intent( in) :: ncid, varid
195  character(len = *), intent( in) :: name
196  integer (kind = FourByteInt), intent(out) :: values
197  integer :: nf90_get_att_one_fourbyteint
198 
199  integer, dimension(1) :: defaultinteger
200 
201  nf90_get_att_one_fourbyteint = nf_get_att_int(ncid, varid, name, defaultinteger)
202  values = defaultinteger(1)
203  end function nf90_get_att_one_fourbyteint
204  ! -------
205  function nf90_put_att_eightbyteint(ncid, varid, name, values)
206  integer, intent( in) :: ncid, varid
207  character(len = *), intent( in) :: name
208  integer (kind = EightByteInt), dimension(:), intent( in) :: values
209  integer :: nf90_put_att_eightbyteint
210 
211  nf90_put_att_eightbyteint = nf_put_att_int(ncid, varid, name, nf90_int, size(values), int(values))
212  end function nf90_put_att_eightbyteint
213  ! -------
214  function nf90_put_att_one_eightbyteint(ncid, varid, name, values)
215  integer, intent( in) :: ncid, varid
216  character(len = *), intent( in) :: name
217  integer (kind = EightByteInt), intent( in) :: values
218  integer :: nf90_put_att_one_eightbyteint
219 
220  integer, dimension(1) :: valuesa
221  valuesa(1) = values
222  nf90_put_att_one_eightbyteint = nf_put_att_int(ncid, varid, name, nf90_int, 1, valuesa)
223  end function nf90_put_att_one_eightbyteint
224  ! -------
225  function nf90_get_att_eightbyteint(ncid, varid, name, values)
226  integer, intent( in) :: ncid, varid
227  character(len = *), intent( in) :: name
228  integer (kind = EightByteInt), dimension(:), intent(out) :: values
229  integer :: nf90_get_att_eightbyteint
230 
231  integer, dimension(size(values)) :: defaultinteger
232 
233  nf90_get_att_eightbyteint = nf_get_att_int(ncid, varid, name, defaultinteger)
234  values(:) = defaultinteger(:)
235  end function nf90_get_att_eightbyteint
236  ! -------
237  function nf90_get_att_one_eightbyteint(ncid, varid, name, values)
238  integer, intent( in) :: ncid, varid
239  character(len = *), intent( in) :: name
240  integer (kind = EightByteInt), intent(out) :: values
241  integer :: nf90_get_att_one_eightbyteint
242 
243  integer, dimension(1) :: defaultinteger
244 
245  nf90_get_att_one_eightbyteint = nf_get_att_int(ncid, varid, name, defaultinteger)
246  values = defaultinteger(1)
247  end function nf90_get_att_one_eightbyteint
248  ! -------
249  ! Real attributes
250  ! -------
251  function nf90_put_att_fourbytereal(ncid, varid, name, values)
252  integer, intent( in) :: ncid, varid
253  character(len = *), intent( in) :: name
254  real (kind = FourByteReal), dimension(:), intent( in) :: values
255  integer :: nf90_put_att_fourbytereal
256 
257  nf90_put_att_fourbytereal = nf_put_att_real(ncid, varid, name, nf90_real4, size(values), values)
258  end function nf90_put_att_fourbytereal
259  ! -------
260  function nf90_put_att_one_fourbytereal(ncid, varid, name, values)
261  integer, intent( in) :: ncid, varid
262  character(len = *), intent( in) :: name
263  real (kind = FourByteReal), intent( in) :: values
264  integer :: nf90_put_att_one_fourbytereal
265 
266  real (kind = FourByteReal), dimension(1) :: valuesa
267  valuesa(1) = values
268  nf90_put_att_one_fourbytereal = nf_put_att_real(ncid, varid, name, nf90_real4, 1, valuesa)
269  end function nf90_put_att_one_fourbytereal
270  ! -------
271  function nf90_get_att_fourbytereal(ncid, varid, name, values)
272  integer, intent( in) :: ncid, varid
273  character(len = *), intent( in) :: name
274  real (kind = FourByteReal), dimension(:), intent(out) :: values
275  integer :: nf90_get_att_fourbytereal
276 
277  nf90_get_att_fourbytereal = nf_get_att_real(ncid, varid, name, values)
278  end function nf90_get_att_fourbytereal
279  ! -------
280  function nf90_get_att_one_fourbytereal(ncid, varid, name, values)
281  integer, intent( in) :: ncid, varid
282  character(len = *), intent( in) :: name
283  real (kind = FourByteReal), intent(out) :: values
284  integer :: nf90_get_att_one_fourbytereal
285 
286  real (kind = FourByteReal), dimension(1) :: valuesa
287  nf90_get_att_one_fourbytereal = nf_get_att_real(ncid, varid, name, valuesa)
288  values = valuesa(1)
289  end function nf90_get_att_one_fourbytereal
290  ! -------
291  function nf90_put_att_eightbytereal(ncid, varid, name, values)
292  integer, intent( in) :: ncid, varid
293  character(len = *), intent( in) :: name
294  real (kind = EightByteReal), dimension(:), intent( in) :: values
295  integer :: nf90_put_att_eightbytereal
296 
297  nf90_put_att_eightbytereal = nf_put_att_double(ncid, varid, name, nf90_real8, size(values), values)
298  end function nf90_put_att_eightbytereal
299  ! -------
300  function nf90_put_att_one_eightbytereal(ncid, varid, name, values)
301  integer, intent( in) :: ncid, varid
302  character(len = *), intent( in) :: name
303  real (kind = EightByteReal), intent( in) :: values
304  integer :: nf90_put_att_one_eightbytereal
305 
306  real (kind = EightByteReal), dimension(1) :: valuesa
307  valuesa(1) = values
308  nf90_put_att_one_eightbytereal = nf_put_att_double(ncid, varid, name, nf90_real8, 1, valuesa)
309  end function nf90_put_att_one_eightbytereal
310  ! -------
311  function nf90_get_att_eightbytereal(ncid, varid, name, values)
312  integer, intent( in) :: ncid, varid
313  character(len = *), intent( in) :: name
314  real (kind = EightByteReal), dimension(:), intent(out) :: values
315  integer :: nf90_get_att_eightbytereal
316 
317  nf90_get_att_eightbytereal = nf_get_att_double(ncid, varid, name, values)
318  end function nf90_get_att_eightbytereal
319  ! -------
320  function nf90_get_att_one_eightbytereal(ncid, varid, name, values)
321  integer, intent( in) :: ncid, varid
322  character(len = *), intent( in) :: name
323  real (kind = EightByteReal), intent(out) :: values
324  integer :: nf90_get_att_one_eightbytereal
325 
326  real (kind = EightByteReal), dimension(1) :: valuesa
327  nf90_get_att_one_eightbytereal = nf_get_att_double(ncid, varid, name, valuesa)
328  values = valuesa(1)
329  end function nf90_get_att_one_eightbytereal
330  ! -------

Return to the Main Unidata NetCDF page.
Generated on Wed Aug 19 2015 17:51:09 for NetCDF-Fortran. NetCDF is a Unidata library.