source: LMDZ6/branches/cirrus/tools/netcdf95/Variables/nf95_get_var.f90 @ 5304

Last change on this file since 5304 was 4918, checked in by Laurent Fairhead, 6 months ago

Reintegrated NetCDF95 in LMDZ so that it is compiled and made available by the makelmdz_fcm script.
The makelmdz_fcm creates the libnetcdf95 library and copies it in the tools/netcdf/lib directory, copying
the mod files in the tools/netcdf/include library.

File size: 13.6 KB
Line 
1module nf95_get_var_m
2
3  use netcdf, only: nf90_get_var, NF90_NOERR
4 
5  use nf95_abort_m, only: nf95_abort
6  use check_start_count_m, only: check_start_count
7  use nf95_get_missing_m, only: nf95_get_missing
8  use nf95_constants, only: nf95_noerr
9
10  implicit none
11
12  interface nf95_get_var
13     module procedure nf95_get_var_FourByteReal, nf95_get_var_FourByteInt, &
14          nf95_get_var_text, nf95_get_var_1D_FourByteReal, &
15          nf95_get_var_1D_FourByteInt, nf95_get_var_1D_EightByteReal, &
16          nf95_get_var_2D_FourByteReal, nf95_get_var_2D_EightByteReal, &
17          nf95_get_var_2D_twoByteInt, nf95_get_var_2D_FourByteInt, &
18          nf95_get_var_3D_FourByteInt, nf95_get_var_3D_FourByteReal, &
19          nf95_get_var_3D_EightByteReal, nf95_get_var_4D_FourByteReal, &
20          nf95_get_var_4D_EightByteReal, nf95_get_var_5D_FourByteReal, &
21          nf95_get_var_5D_EightByteReal
22  end interface
23
24  private
25  public nf95_get_var
26
27  integer ncerr_not_opt
28
29contains
30
31  subroutine nf95_get_var_FourByteReal(ncid, varid, values, start, &
32       new_missing, ncerr)
33
34    use typesizes, only: FourByteReal
35
36    integer, intent(in):: ncid, varid
37    real(kind = FourByteReal), intent(out):: values
38    integer, dimension(:), optional, intent(in):: start
39    real(kind = FourByteReal), optional, intent(in):: new_missing
40    integer, intent(out), optional:: ncerr
41
42    ! Local:
43    character(len=*), parameter:: procedure_name = "nf95_get_var_FourByteReal"
44    real(kind = FourByteReal) missing
45
46    !-------------------
47
48    include "nf95_get_var_scalar.h"
49
50  end subroutine nf95_get_var_FourByteReal
51
52  !***********************
53
54  subroutine nf95_get_var_FourByteInt(ncid, varid, values, start, new_missing, &
55       ncerr)
56
57    use typesizes, only: FourByteInt
58
59    integer, intent(in):: ncid, varid
60    integer(kind = FourByteInt), intent(out):: values
61    integer, dimension(:), optional, intent(in):: start
62    integer(kind = FourByteInt), optional, intent(in):: new_missing
63    integer, intent(out), optional:: ncerr
64
65    ! Local:
66    character(len=*), parameter:: procedure_name = "nf95_get_var_FourByteInt"
67    integer(kind = FourByteInt) missing
68   
69    !-------------------
70
71    include "nf95_get_var_scalar.h"
72
73  end subroutine nf95_get_var_FourByteInt
74
75  !***********************
76
77  subroutine nf95_get_var_text(ncid, varid, values, start, new_missing, ncerr)
78
79    integer, intent(in):: ncid, varid
80    character, intent(out):: values
81    integer, dimension(:), optional, intent(in):: start
82    character, optional, intent(in):: new_missing
83    integer, intent(out), optional:: ncerr
84
85    ! Local:
86    character(len=*), parameter:: procedure_name = "nf95_get_var_text"
87    character missing
88
89    !-------------------
90
91    include "nf95_get_var_scalar.h"
92
93  end subroutine nf95_get_var_text
94
95  !***********************
96
97  subroutine nf95_get_var_1D_FourByteReal(ncid, varid, values, start, &
98       count_nc, stride, map, new_missing, ncerr)
99
100    use typesizes, only: FourByteReal
101
102    integer,                         intent(in):: ncid, varid
103    real(kind = FourByteReal), intent(out):: values(:)
104    integer, dimension(:), optional, intent(in):: start, count_nc, stride, map
105    real(kind = FourByteReal), optional, intent(in):: new_missing
106    integer, intent(out), optional:: ncerr
107
108    ! Local:
109    character(len=*), parameter:: procedure_name = &
110         "nf95_get_var_1D_FourByteReal"
111    integer, parameter:: rank_values = 1
112    real(kind = FourByteReal) missing
113
114    !-------------------
115
116    include "nf95_get_var_array.h"
117
118  end subroutine nf95_get_var_1D_FourByteReal
119
120  !***********************
121
122  subroutine nf95_get_var_1D_FourByteInt(ncid, varid, values, start, &
123       count_nc, stride, map, new_missing, ncerr)
124
125    use typesizes, only: FourByteInt
126
127    integer,                         intent(in):: ncid, varid
128    integer(kind = FourByteInt), intent(out):: values(:)
129    integer, dimension(:), optional, intent(in):: start, count_nc, stride, map
130    integer(kind = FourByteInt), optional, intent(in):: new_missing
131    integer, intent(out), optional:: ncerr
132
133    ! Local:
134    character(len=*), parameter:: procedure_name = &
135         "nf95_get_var_1D_FourByteInt"
136    integer, parameter:: rank_values = 1
137    integer(kind = FourByteInt) missing
138
139    !-------------------
140
141    include "nf95_get_var_array.h"
142
143  end subroutine nf95_get_var_1D_FourByteInt
144
145  !***********************
146
147  subroutine nf95_get_var_1D_EightByteReal(ncid, varid, values, start, &
148       count_nc, stride, map, new_missing, ncerr)
149
150    use typesizes, only: eightByteReal
151
152    integer,                         intent(in):: ncid, varid
153    real(kind = EightByteReal),     intent(out):: values(:)
154    integer, dimension(:), optional, intent(in):: start, count_nc, stride, map
155    real(kind = EightByteReal), optional, intent(in):: new_missing
156    integer, intent(out), optional:: ncerr
157
158    ! Local:
159    character(len=*), parameter:: procedure_name = &
160         "nf95_get_var_1D_EightByteReal"
161    integer, parameter:: rank_values = 1
162    real(kind = EightByteReal) missing
163
164    !-------------------
165
166    include "nf95_get_var_array.h"
167
168  end subroutine nf95_get_var_1D_EightByteReal
169
170  !***********************
171
172  subroutine nf95_get_var_2D_FourByteReal(ncid, varid, values, start, &
173       count_nc, stride, map, new_missing, ncerr)
174
175    use typesizes, only: FourByteReal
176
177    integer,                         intent(in):: ncid, varid
178    real(kind = FourByteReal), intent(out):: values(:, :)
179    integer, dimension(:), optional, intent(in):: start, count_nc, stride, map
180    real(kind = FourByteReal), optional, intent(in):: new_missing
181    integer, intent(out), optional:: ncerr
182
183    ! Local:
184    character(len=*), parameter:: procedure_name = &
185         "nf95_get_var_2D_FourByteReal"
186    integer, parameter:: rank_values = 2
187    real(kind = FourByteReal) missing
188
189    !-------------------
190
191    include "nf95_get_var_array.h"
192
193  end subroutine nf95_get_var_2D_FourByteReal
194
195  !***********************
196
197  subroutine nf95_get_var_2D_EightByteReal(ncid, varid, values, start, &
198       count_nc, stride, map, new_missing, ncerr)
199
200    use typesizes, only: EightByteReal
201
202    integer,                         intent(in):: ncid, varid
203    real(kind = EightByteReal), intent(out):: values(:, :)
204    integer, dimension(:), optional, intent(in):: start, count_nc, stride, map
205    real(kind = EightByteReal), optional, intent(in):: new_missing
206    integer, intent(out), optional:: ncerr
207
208    ! Local:
209    character(len=*), parameter:: procedure_name = &
210         "nf95_get_var_2D_EightByteReal"
211    integer, parameter:: rank_values = 2
212    real(kind = EightByteReal) missing
213
214    !-------------------
215
216    include "nf95_get_var_array.h"
217
218  end subroutine nf95_get_var_2D_EightByteReal
219
220  !***********************
221
222  subroutine nf95_get_var_2D_TwoByteInt(ncid, varid, values, start, count_nc, &
223       stride, map, new_missing, ncerr)
224
225    use typesizes, only: TwoByteInt
226
227    integer, intent(in):: ncid, varid
228    integer(kind = TwoByteInt), intent(out):: values(:, :)
229    integer, dimension(:), optional, intent(in):: start, count_nc, stride, map
230    integer(kind = TwoByteInt), optional, intent(in):: new_missing
231    integer, intent(out), optional:: ncerr
232
233    ! Local:
234    character(len=*), parameter:: procedure_name = "nf95_get_var_2D_TwoByteInt"
235    integer, parameter:: rank_values = 2
236    integer(kind = TwoByteInt) missing
237
238    !-------------------
239
240    include "nf95_get_var_array.h"
241
242  end subroutine nf95_get_var_2D_TwoByteInt
243
244  !***********************
245
246  subroutine nf95_get_var_2D_FourByteInt(ncid, varid, values, start, &
247       count_nc, stride, map, new_missing, ncerr)
248
249    use typesizes, only: FourByteInt
250
251    integer, intent(in):: ncid, varid
252    integer(kind = FourByteInt), intent(out):: values(:, :)
253    integer, dimension(:), optional, intent(in):: start, count_nc, stride, map
254    integer(kind = FourByteInt), optional, intent(in):: new_missing
255    integer, intent(out), optional:: ncerr
256
257    ! Local:
258    character(len=*), parameter:: procedure_name = &
259         "nf95_get_var_2D_FourByteInt"
260    integer, parameter:: rank_values = 2
261    integer(kind = FourByteInt) missing
262
263    !-------------------
264
265    include "nf95_get_var_array.h"
266
267  end subroutine nf95_get_var_2D_FourByteInt
268
269  !***********************
270
271  subroutine nf95_get_var_3D_FourByteInt(ncid, varid, values, start, &
272       count_nc, stride, map, new_missing, ncerr)
273
274    use typesizes, only: FourByteInt
275
276    integer, intent(in):: ncid, varid
277    integer(kind = FourByteInt), intent(out):: values(:, :, :)
278    integer, dimension(:), optional, intent(in):: start, count_nc, stride, map
279    integer(kind = FourByteInt), optional, intent(in):: new_missing
280    integer, intent(out), optional:: ncerr
281
282    ! Local:
283    character(len=*), parameter:: procedure_name = &
284         "nf95_get_var_3D_FourByteInt"
285    integer, parameter:: rank_values = 3
286    integer(kind = FourByteInt) missing
287
288    !-------------------
289
290    include "nf95_get_var_array.h"
291
292  end subroutine nf95_get_var_3D_FourByteInt
293
294  !***********************
295
296  subroutine nf95_get_var_3D_FourByteReal(ncid, varid, values, start, &
297       count_nc, stride, map, new_missing, ncerr)
298
299    use typesizes, only: FourByteReal
300
301    integer,                         intent(in):: ncid, varid
302    real(kind = FourByteReal), intent(out):: values(:, :, :)
303    integer, dimension(:), optional, intent(in):: start, count_nc, stride, map
304    real(kind = FourByteReal), optional, intent(in):: new_missing
305    integer, intent(out), optional:: ncerr
306
307    ! Local:
308    character(len=*), parameter:: procedure_name = &
309         "nf95_get_var_3D_FourByteReal"
310    integer, parameter:: rank_values = 3
311    real(kind = FourByteReal) missing
312
313    !-------------------
314
315    include "nf95_get_var_array.h"
316
317  end subroutine nf95_get_var_3D_FourByteReal
318
319  !***********************
320
321  subroutine nf95_get_var_3D_EightByteReal(ncid, varid, values, start, &
322       count_nc, stride, map, new_missing, ncerr)
323
324    use typesizes, only: eightByteReal
325
326    integer,                         intent(in):: ncid, varid
327    real(kind = EightByteReal),     intent(out):: values(:, :, :)
328    integer, dimension(:), optional, intent(in):: start, count_nc, stride, map
329    real(kind = EightByteReal), optional, intent(in):: new_missing
330    integer, intent(out), optional:: ncerr
331
332    ! Local:
333    character(len=*), parameter:: procedure_name = &
334         "nf95_get_var_3D_EightByteReal"
335    integer, parameter:: rank_values = 3
336    real(kind = EightByteReal) missing
337
338    !-------------------
339
340    include "nf95_get_var_array.h"
341
342  end subroutine nf95_get_var_3D_EightByteReal
343
344  !***********************
345
346  subroutine nf95_get_var_4D_FourByteReal(ncid, varid, values, start, &
347       count_nc, stride, map, new_missing, ncerr)
348
349    use typesizes, only: FourByteReal
350
351    integer,                         intent(in):: ncid, varid
352    real(kind = FourByteReal), intent(out):: values(:, :, :, :)
353    integer, dimension(:), optional, intent(in):: start, count_nc, stride, map
354    real(kind = FourByteReal), optional, intent(in):: new_missing
355    integer, intent(out), optional:: ncerr
356
357    ! Local:
358    character(len=*), parameter:: procedure_name = &
359         "nf95_get_var_4D_FourByteReal"
360    integer, parameter:: rank_values = 4
361    real(kind = FourByteReal) missing
362
363    !-------------------
364
365    include "nf95_get_var_array.h"
366
367  end subroutine nf95_get_var_4D_FourByteReal
368
369  !***********************
370
371  subroutine nf95_get_var_4D_EightByteReal(ncid, varid, values, start, &
372       count_nc, stride, map, new_missing, ncerr)
373
374    use typesizes, only: EightByteReal
375
376    integer, intent(in):: ncid, varid
377    real(kind = EightByteReal), intent(out):: values(:, :, :, :)
378    integer, dimension(:), optional, intent(in):: start, count_nc, stride, map
379    real(kind = EightByteReal), optional, intent(in):: new_missing
380    integer, intent(out), optional:: ncerr
381
382    ! Local:
383    character(len=*), parameter:: procedure_name = &
384         "nf95_get_var_4D_EightByteReal"
385    integer, parameter:: rank_values = 4
386    real(kind = EightByteReal) missing
387
388    !-------------------
389
390    include "nf95_get_var_array.h"
391
392  end subroutine nf95_get_var_4D_EightByteReal
393
394  !***********************
395
396  subroutine nf95_get_var_5D_FourByteReal(ncid, varid, values, start, &
397       count_nc, stride, map, new_missing, ncerr)
398
399    use typesizes, only: FourByteReal
400
401    integer, intent(in):: ncid, varid
402    real(kind = FourByteReal), intent(out):: values(:, :, :, :, :)
403    integer, dimension(:), optional, intent(in):: start, count_nc, stride, map
404    real(kind = FourByteReal), optional, intent(in):: new_missing
405    integer, intent(out), optional:: ncerr
406
407    ! Local:
408    character(len=*), parameter:: procedure_name = &
409         "nf95_get_var_5D_FourByteReal"
410    integer, parameter:: rank_values = 5
411    real(kind = FourByteReal) missing
412
413    !-------------------
414
415    include "nf95_get_var_array.h"
416
417  end subroutine nf95_get_var_5D_FourByteReal
418
419  !***********************
420
421  subroutine nf95_get_var_5D_EightByteReal(ncid, varid, values, start, &
422       count_nc, stride, map, new_missing, ncerr)
423
424    use typesizes, only: EightByteReal
425
426    integer, intent(in):: ncid, varid
427    real(kind = EightByteReal), intent(out):: values(:, :, :, :, :)
428    integer, dimension(:), optional, intent(in):: start, count_nc, stride, map
429    real(kind = EightByteReal), optional, intent(in):: new_missing
430    integer, intent(out), optional:: ncerr
431
432    ! Local:
433    character(len=*), parameter:: procedure_name = &
434         "nf95_get_var_5D_EightByteReal"
435    integer, parameter:: rank_values = 5
436    real(kind = EightByteReal) missing
437
438    !-------------------
439
440    include "nf95_get_var_array.h"
441
442  end subroutine nf95_get_var_5D_EightByteReal
443
444end module nf95_get_var_m
Note: See TracBrowser for help on using the repository browser.