NetCDF-Fortran  4.4.2
module_netcdf4_nc_interfaces.f90
1 Module netcdf4_nc_interfaces
2 
3 ! Fortran interfaces to netCDF4 C functions using FORTRAN 2003 C
4 ! Interoperability features. These interfaces are for the base
5 ! netCDF C routines in the libsrc4 directory and the results from
6 ! running CPP on the fort-xxx.c routines to get the cfortran.h
7 ! generated interfaces
8 
9 ! Written by: Richard Weed, Ph.D.
10 ! Center for Advanced Vehicular Systems
11 ! Mississippi State University
12 ! rweed@cavs.msstate.edu
13 
14 
15 ! License (and other Lawyer Language)
16 
17 ! This software is released under the Apache 2.0 Open Source License. The
18 ! full text of the License can be viewed at :
19 !
20 ! http:www.apache.org/licenses/LICENSE-2.0.html
21 !
22 ! The author grants to the University Corporation for Atmospheric Research
23 ! (UCAR), Boulder, CO, USA the right to revise and extend the software
24 ! without restriction. However, the author retains all copyrights and
25 ! intellectual property rights explicitly stated in or implied by the
26 ! Apache license
27 
28 ! Version 1.: June. 2007 - Initial version - split from ntecdf_nc_interfaces
29 ! Version 2.: April, 2009 - Interfaces based on netcdf-4.0.1 source
30 ! Version 3.: April, 2010 - Interfaces based on netcdf-4.1.1 source
31 ! Version 4.: Aug, 2013 - Added nc_rename_grp interfaces for netcdf-C 4.3.1
32 
33  USE netcdf_nc_interfaces
34 
35  Implicit NONE
36 
37 !--------- Define default C interface parameters from netcdf.h ---------------
38 
39 ! Begin explicit interfaces for nc_ functions. Note that some interfaces
40 ! expect data to be passed as C_PTR type variables. These data are arrays
41 ! that could have a NULL pointer passed instead of the array. Also, note
42 ! the use of generic interfaces to support routines that handle text data
43 ! to allow text to be passed as either a single string or an array of
44 ! single characters
45 
46 ! Also note that each interface has an explicit USE ISO_C_BINDING. A better
47 ! solution is to use the F2003 IMPORT statement (I originally had it this way)
48 ! However its best to leave the interfaces as is for now because there might
49 ! be a few compilers out there that support most of the C-interop facility but
50 ! for some reason haven't implemented IMPORT yet.
51 
52 ! NETCDF 4 functions supported by FORTRAN interface
53 
54 !----------------------------- nc_create_par_fortran -------------------------
55 Interface
56  Function nc_create_par_fortran(path, cmode, comm, info, ncidp) BIND(C)
57 
58  USE iso_c_binding, ONLY: c_int, c_char
59 
60  Character(KIND=C_CHAR), Intent(IN) :: path(*)
61  Integer(KIND=C_INT), VALUE :: cmode, comm, info
62  Integer(KIND=C_INT), Intent(OUT) :: ncidp
63 
64  Integer(KIND=C_INT) :: nc_create_par_fortran
65 
66  End Function nc_create_par_fortran
67 End Interface
68 !----------------------------- nc_open_par_fortran ---------------------------
69 Interface
70  Function nc_open_par_fortran(path, mode, comm, info, ncidp) BIND(C)
71 
72  USE iso_c_binding, ONLY: c_int, c_char
73 
74  Character(KIND=C_CHAR), Intent(IN) :: path(*)
75  Integer(KIND=C_INT), VALUE :: mode, comm, info
76  Integer(KIND=C_INT), Intent(OUT) :: ncidp
77 
78  Integer(KIND=C_INT) :: nc_open_par_fortran
79 
80  End Function nc_open_par_fortran
81 End Interface
82 !------------------------------- nc_var_par_access ----------------------------
83 Interface
84  Function nc_var_par_access(ncid, varid, par_access) BIND(C)
85 
86  USE iso_c_binding, ONLY: c_int
87 
88  Integer(KIND=C_INT), VALUE :: ncid, varid, par_access
89 
90  Integer(KIND=C_INT) :: nc_var_par_access
91 
92  End Function nc_var_par_access
93 End Interface
94 !------------------------------- nc_inq_ncid ----------------------------------
95 Interface
96  Function nc_inq_ncid(ncid, name, grp_ncid) BIND(C)
97 
98  USE iso_c_binding, ONLY: c_int, c_char
99 
100  Integer(KIND=C_INT), VALUE :: ncid
101  Character(KIND=C_CHAR), Intent(IN) :: name(*)
102  Integer(KIND=C_INT), Intent(INOUT) :: grp_ncid
103 
104  Integer(KIND=C_INT) :: nc_inq_ncid
105 
106  End Function nc_inq_ncid
107 End Interface
108 !------------------------------- nc_inq_grps ----------------------------------
109 Interface
110  Function nc_inq_grps(ncid, numgrps, ncids) BIND(C)
111 
112  USE iso_c_binding, ONLY: c_int
113 
114  Integer(KIND=C_INT), VALUE :: ncid
115  Integer(KIND=C_INT), Intent(INOUT) :: numgrps
116  Integer(KIND=C_INT), Intent(INOUT) :: ncids(*)
117 
118  Integer(KIND=C_INT) :: nc_inq_grps
119 
120  End Function nc_inq_grps
121 End Interface
122 !------------------------------- nc_inq_grpname -------------------------------
123 Interface
124  Function nc_inq_grpname(ncid, name) BIND(C)
125 
126  USE iso_c_binding, ONLY: c_int, c_char
127 
128  Integer(KIND=C_INT), VALUE :: ncid
129  Character(KIND=C_CHAR), Intent(INOUT) :: name(*)
130 
131  Integer(KIND=C_INT) :: nc_inq_grpname
132 
133  End Function nc_inq_grpname
134 End Interface
135 !------------------------------- nc_inq_grpname_full --------------------------
136 Interface
137  Function nc_inq_grpname_full(ncid, nlen, name) BIND(C)
138 
139  USE iso_c_binding, ONLY: c_int, c_size_t, c_char
140 
141  Integer(KIND=C_INT), VALUE :: ncid
142  Integer(KIND=C_SIZE_T), Intent(INOUT) :: nlen
143  Character(KIND=C_CHAR), Intent(INOUT) :: name(*)
144 
145  Integer(KIND=C_INT) :: nc_inq_grpname_full
146 
147  End Function nc_inq_grpname_full
148 End Interface
149 !------------------------------- nc_inq_grpname_len ---------------------------
150 Interface
151  Function nc_inq_grpname_len(ncid, nlen) BIND(C)
152 
153  USE iso_c_binding, ONLY: c_int, c_size_t
154 
155  Integer(KIND=C_INT), VALUE :: ncid
156  Integer(KIND=C_SIZE_T), Intent(INOUT) :: nlen
157 
158  Integer(KIND=C_INT) :: nc_inq_grpname_len
159 
160  End Function nc_inq_grpname_len
161 End Interface
162 !------------------------------- nc_inq_grp_full_ncid -------------------------
163 Interface
164  Function nc_inq_grp_full_ncid(ncid, full_name, grp_ncid) BIND(C)
165 
166  USE iso_c_binding, ONLY: c_int, c_char
167 
168  Integer(KIND=C_INT), VALUE :: ncid
169  Integer(KIND=C_INT), Intent(INOUT) :: grp_ncid
170  Character(KIND=C_CHAR), Intent(INOUT) :: full_name(*)
171 
172  Integer(KIND=C_INT) :: nc_inq_grp_full_ncid
173 
174  End Function nc_inq_grp_full_ncid
175 End Interface
176 !------------------------------- nc_inq_grp_parent ----------------------------
177 Interface
178  Function nc_inq_grp_parent(ncid, parent_ncid) BIND(C)
179 
180  USE iso_c_binding, ONLY: c_int
181 
182  Integer(KIND=C_INT), VALUE :: ncid
183  Integer(KIND=C_INT), Intent(INOUT) :: parent_ncid
184 
185  Integer(KIND=C_INT) :: nc_inq_grp_parent
186 
187  End Function nc_inq_grp_parent
188 End Interface
189 !------------------------------- nc_inq_grp_ncid ------------------------------
190 Interface
191  Function nc_inq_grp_ncid(ncid, grp_name, grp_ncid) BIND(C)
192 
193  USE iso_c_binding, ONLY: c_int, c_char
194 
195  Integer(KIND=C_INT), VALUE :: ncid
196  Character(KIND=C_CHAR), Intent(IN) :: grp_name(*)
197  Integer(KIND=C_INT), Intent(INOUT) :: grp_ncid
198 
199  Integer(KIND=C_INT) :: nc_inq_grp_ncid
200 
201  End Function nc_inq_grp_ncid
202 End Interface
203 !------------------------------- nc_inq_varids_f ------------------------------
204 Interface
205  Function nc_inq_varids_f(ncid, nvars, varids) BIND(C)
206 
207  USE iso_c_binding, ONLY: c_int
208 
209  Integer(KIND=C_INT), VALUE :: ncid
210  Integer(KIND=C_INT), Intent(INOUT) :: nvars
211  Integer(KIND=C_INT), Intent(INOUT) :: varids(*)
212 
213  Integer(KIND=C_INT) :: nc_inq_varids_f
214 
215  End Function nc_inq_varids_f
216 End Interface
217 !------------------------------- nc_inq_dimids_f ------------------------------
218 Interface
219  Function nc_inq_dimids_f(ncid, ndims, dimids, parent) BIND(C)
220 
221  USE iso_c_binding, ONLY: c_int
222 
223  Integer(KIND=C_INT), VALUE :: ncid, parent
224  Integer(KIND=C_INT), Intent(INOUT) :: ndims
225  Integer(KIND=C_INT), Intent(INOUT) :: dimids(*)
226 
227  Integer(KIND=C_INT) :: nc_inq_dimids_f
228 
229  End Function nc_inq_dimids_f
230 End Interface
231 !------------------------------- nc_inq_typeids -------------------------------
232 Interface
233  Function nc_inq_typeids(ncid, ntypes, typeids) BIND(C)
234 
235  USE iso_c_binding, ONLY: c_int
236 
237  Integer(KIND=C_INT), VALUE :: ncid
238  Integer(KIND=C_INT), Intent(INOUT) :: ntypes
239  Integer(KIND=C_INT), Intent(INOUT) :: typeids(*)
240 
241  Integer(KIND=C_INT) :: nc_inq_typeids
242 
243  End Function nc_inq_typeids
244 End Interface
245 !------------------------------- nc_inq_typeid --------------------------------
246 Interface
247  Function nc_inq_typeid(ncid, name, typeid) BIND(C)
248 
249  USE iso_c_binding, ONLY: c_int, c_char
250 
251  Integer(KIND=C_INT), VALUE :: ncid
252  Character(KIND=C_CHAR), Intent(IN) :: name(*)
253  Integer(KIND=C_INT), Intent(INOUT) :: typeid
254 
255  Integer(KIND=C_INT) :: nc_inq_typeid
256 
257  End Function nc_inq_typeid
258 End Interface
259 !------------------------------- nc_def_grp -----------------------------------
260 Interface
261  Function nc_def_grp(parent_ncid, name, new_ncid) BIND(C)
262 
263  USE iso_c_binding, ONLY: c_int, c_char
264 
265  Integer(KIND=C_INT), VALUE :: parent_ncid
266  Character(KIND=C_CHAR), Intent(IN) :: name(*)
267  Integer(KIND=C_INT), Intent(INOUT) :: new_ncid
268 
269  Integer(KIND=C_INT) :: nc_def_grp
270 
271  End Function nc_def_grp
272 End Interface
273 !------------------------------- nc_rename_grp --------------------------------
274 Interface
275  Function nc_rename_grp(grpid, name) BIND(C)
276 
277  USE iso_c_binding, ONLY: c_int, c_char
278 
279  Integer(KIND=C_INT), VALUE :: grpid
280  Character(KIND=C_CHAR), Intent(IN) :: name(*)
281 
282  Integer(KIND=C_INT) :: nc_rename_grp
283 
284  End Function nc_rename_grp
285 End Interface
286 !------------------------------- nc_def_compound ------------------------------
287 Interface
288  Function nc_def_compound(ncid, isize, name, typeidp) BIND(C)
289 
290  USE iso_c_binding, ONLY: c_int, c_size_t, c_char
291 
292  Integer(KIND=C_INT), VALUE :: ncid
293  Integer(KIND=C_SIZE_T), VALUE :: isize
294  Character(KIND=C_CHAR), Intent(IN) :: name(*)
295  Integer(KIND=C_INT), Intent(INOUT) :: typeidp
296 
297  Integer(KIND=C_INT) :: nc_def_compound
298 
299  End Function nc_def_compound
300 End Interface
301 !------------------------------- nc_insert_compound ---------------------------
302 Interface
303  Function nc_insert_compound(ncid, xtype, name, offset, field_typeid) BIND(C)
304 
305  USE iso_c_binding, ONLY: c_int, c_size_t, c_char
306 
307  Integer(KIND=C_INT), VALUE :: ncid
308  Integer(KIND=C_INT), VALUE :: xtype, field_typeid ! nc_type in C
309  Integer(KIND=C_SIZE_T), VALUE :: offset
310  Character(KIND=C_CHAR), Intent(IN) :: name(*)
311 
312  Integer(KIND=C_INT) :: nc_insert_compound
313 
314  End Function nc_insert_compound
315 End Interface
316 !------------------------------- nc_insert_array_compound_f -------------------
317 Interface
318  Function nc_insert_array_compound_f(ncid, xtype, name, offset, field_typeid, &
319  ndims, dim_sizes) bind(c)
320 
321  USE iso_c_binding, ONLY: c_int, c_size_t, c_char
322 
323  Integer(KIND=C_INT), VALUE :: ncid, ndims
324  Integer(KIND=C_INT), VALUE :: xtype, field_typeid ! nc_type in C
325  Integer(KIND=C_SIZE_T), VALUE :: offset
326  Character(KIND=C_CHAR), Intent(IN) :: name(*)
327  Integer(KIND=C_INT), Intent(INOUT) :: dim_sizes(*)
328 
329  Integer(KIND=C_INT) :: nc_insert_array_compound_f
330 
331  End Function nc_insert_array_compound_f
332 End Interface
333 !------------------------------- nc_inq_type ----------------------------------
334 Interface
335  Function nc_inq_type(ncid, xtype, name, isize) BIND(C)
336 
337  USE iso_c_binding, ONLY: c_int, c_size_t, c_char
338 
339  Integer(KIND=C_INT), VALUE :: ncid
340  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
341  Character(KIND=C_CHAR), Intent(IN) :: name(*)
342  Integer(KIND=C_SIZE_T), Intent(INOUT) :: isize
343 
344  Integer(KIND=C_INT) :: nc_inq_type
345 
346  End Function nc_inq_type
347 End Interface
348 !------------------------------- nc_inq_compound -----------------------------
349 Interface
350  Function nc_inq_compound(ncid, xtype, name, isize, nfieldsp) BIND(C)
351 
352  USE iso_c_binding, ONLY: c_int, c_size_t, c_char
353 
354  Integer(KIND=C_INT), VALUE :: ncid
355  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
356  Character(KIND=C_CHAR), Intent(INOUT) :: name(*)
357  Integer(KIND=C_SIZE_T), Intent(INOUT) :: isize, nfieldsp
358 
359  Integer(KIND=C_INT) :: nc_inq_compound
360 
361  End Function nc_inq_compound
362 End Interface
363 !------------------------------- nc_inq_compound_name -------------------------
364 Interface
365  Function nc_inq_compound_name(ncid, xtype, name) BIND(C)
366 
367  USE iso_c_binding, ONLY: c_int, c_size_t, c_char
368 
369  Integer(KIND=C_INT), VALUE :: ncid
370  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
371  Character(KIND=C_CHAR), Intent(INOUT) :: name(*)
372 
373  Integer(KIND=C_INT) :: nc_inq_compound_name
374 
375  End Function nc_inq_compound_name
376 End Interface
377 !------------------------------- nc_inq_compound_size -------------------------
378 Interface
379  Function nc_inq_compound_size(ncid, xtype, isize) BIND(C)
380 
381  USE iso_c_binding, ONLY: c_int, c_size_t
382 
383  Integer(KIND=C_INT), VALUE :: ncid
384  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
385  Integer(KIND=C_SIZE_T), Intent(INOUT) :: isize
386 
387  Integer(KIND=C_INT) :: nc_inq_compound_size
388 
389  End Function nc_inq_compound_size
390 End Interface
391 !------------------------------- nc_inq_compound_nfields ----------------------
392 Interface
393  Function nc_inq_compound_nfields(ncid, xtype, nfieldsp) BIND(C)
394 
395  USE iso_c_binding, ONLY: c_int, c_size_t
396 
397  Integer(KIND=C_INT), VALUE :: ncid
398  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
399  Integer(KIND=C_SIZE_T), Intent(INOUT) :: nfieldsp
400 
401  Integer(KIND=C_INT) :: nc_inq_compound_nfields
402 
403  End Function nc_inq_compound_nfields
404 End Interface
405 !------------------------------- nc_inq_compound_field_f ----------------------
406 Interface
407  Function nc_inq_compound_field_f(ncid, xtype, fieldid, name, offsetp, &
408  field_typeidp, ndimsp, dim_sizesp) bind(c)
409 
410  USE iso_c_binding, ONLY: c_int, c_size_t, c_char
411 
412  Integer(KIND=C_INT), VALUE :: ncid, fieldid
413  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
414  Integer(KIND=C_INT), Intent(INOUT) :: field_typeidp ! nc_type in C
415  Integer(KIND=C_SIZE_T), Intent(INOUT) :: offsetp
416  Character(KIND=C_CHAR), Intent(INOUT) :: name(*)
417  Integer(KIND=C_INT), Intent(INOUT) :: ndimsp
418  Integer(KIND=C_INT), Intent(INOUT) :: dim_sizesp(*)
419 
420  Integer(KIND=C_INT) :: nc_inq_compound_field_f
421 
422  End Function nc_inq_compound_field_f
423 End Interface
424 !------------------------------- nc_inq_compound_fieldoffset ------------------
425 Interface
426  Function nc_inq_compound_fieldoffset(ncid, xtype, fieldid, offsetp) BIND(C)
427 
428  USE iso_c_binding, ONLY: c_int, c_size_t
429 
430  Integer(KIND=C_INT), VALUE :: ncid, fieldid
431  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
432  Integer(KIND=C_SIZE_T), Intent(INOUT) :: offsetp
433 
434  Integer(KIND=C_INT) :: nc_inq_compound_fieldoffset
435 
436  End Function nc_inq_compound_fieldoffset
437 End Interface
438 !------------------------------- nc_inq_compound_fieldname --------------------
439 Interface
440  Function nc_inq_compound_fieldname(ncid, xtype, fieldid, name) BIND(C)
441 
442  USE iso_c_binding, ONLY: c_int, c_char
443 
444  Integer(KIND=C_INT), VALUE :: ncid, fieldid
445  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
446  Character(KIND=C_CHAR), Intent(INOUT) :: name(*)
447 
448  Integer(KIND=C_INT) :: nc_inq_compound_fieldname
449 
450  End Function nc_inq_compound_fieldname
451 End Interface
452 !------------------------------- nc_inq_compound_fieldindex -------------------
453 Interface
454  Function nc_inq_compound_fieldindex(ncid, xtype, name, fieldidp) BIND(C)
455 
456  USE iso_c_binding, ONLY: c_int, c_char
457 
458  Integer(KIND=C_INT), VALUE :: ncid
459  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
460  Character(KIND=C_CHAR), Intent(IN) :: name(*)
461  Integer(KIND=C_INT), Intent(INOUT) :: fieldidp
462 
463  Integer(KIND=C_INT) :: nc_inq_compound_fieldindex
464 
465  End Function nc_inq_compound_fieldindex
466 End Interface
467 !------------------------------- nc_inq_compound_fieldtype --------------------
468 Interface
469  Function nc_inq_compound_fieldtype(ncid, xtype, fieldid, field_typeidp) BIND(C)
470 
471  USE iso_c_binding, ONLY: c_int
472 
473  Integer(KIND=C_INT), VALUE :: ncid, fieldid
474  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
475  Integer(KIND=C_INT), Intent(INOUT) :: field_typeidp ! nc_type in C
476 
477  Integer(KIND=C_INT) :: nc_inq_compound_fieldtype
478 
479  End Function nc_inq_compound_fieldtype
480 End Interface
481 !------------------------------- nc_inq_compound_fieldndims -------------------
482 Interface
483  Function nc_inq_compound_fieldndims(ncid, xtype, fieldid, ndimsp) BIND(C)
484 
485  USE iso_c_binding, ONLY: c_int
486 
487  Integer(KIND=C_INT), VALUE :: ncid, fieldid
488  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
489  Integer(KIND=C_INT), Intent(INOUT) :: ndimsp
490 
491  Integer(KIND=C_INT) :: nc_inq_compound_fieldndims
492 
493  End Function nc_inq_compound_fieldndims
494 End Interface
495 !------------------------------- nc_inq_compound_fielddim_sizes ---------------
496 Interface
497  Function nc_inq_compound_fielddim_sizes(ncid, xtype, fieldid, dim_sizes) BIND(C)
498 
499  USE iso_c_binding, ONLY: c_int
500 
501  Integer(KIND=C_INT), VALUE :: ncid, fieldid
502  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
503  Integer(KIND=C_INT), Intent(INOUT) :: dim_sizes(*)
504 
505  Integer(KIND=C_INT) :: nc_inq_compound_fielddim_sizes
506 
507  End Function nc_inq_compound_fielddim_sizes
508 End Interface
509 !------------------------------- nc_def_vlen ----------------------------------
510 Interface
511  Function nc_def_vlen(ncid, name, base_typeid, xtypep) BIND(C)
512 
513  USE iso_c_binding, ONLY: c_int, c_char
514 
515  Integer(KIND=C_INT), VALUE :: ncid
516  Integer(KIND=C_INT), VALUE :: base_typeid ! nc_type in C
517  Integer(KIND=C_INT), Intent(INOUT) :: xtypep ! nc_type in C
518  Character(KIND=C_CHAR), Intent(IN) :: name(*)
519 
520  Integer(KIND=C_INT) :: nc_def_vlen
521 
522  End Function nc_def_vlen
523 End Interface
524 !------------------------------- nc_inq_vlen ----------------------------------
525 Interface
526  Function nc_inq_vlen(ncid, xtype, name, datum_sizep, base_nc_typep) BIND(C)
527 
528  USE iso_c_binding, ONLY: c_int, c_size_t, c_char
529 
530  Integer(KIND=C_INT), VALUE :: ncid
531  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
532  Integer(KIND=C_SIZE_T), Intent(INOUT) :: datum_sizep
533  Integer(KIND=C_INT), Intent(INOUT) :: base_nc_typep ! nc_type in C
534  Character(KIND=C_CHAR), Intent(INOUT) :: name(*)
535 
536  Integer(KIND=C_INT) :: nc_inq_vlen
537 
538  End Function nc_inq_vlen
539 End Interface
540 !------------------------------- nc_inq_user_type -----------------------------
541 Interface
542  Function nc_inq_user_type(ncid, xtype, name, isize, base_nc_typep, &
543  nfieldsp, classp) bind(c)
544 
545  USE iso_c_binding, ONLY: c_int, c_size_t, c_char
546 
547  Integer(KIND=C_INT), VALUE :: ncid
548  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
549  Integer(KIND=C_SIZE_T), Intent(INOUT) :: isize , nfieldsp
550  Integer(KIND=C_INT), Intent(INOUT) :: base_nc_typep ! nc_type in C
551  Integer(KIND=C_INT), Intent(INOUT) :: classp
552  Character(KIND=C_CHAR), Intent(INOUT) :: name(*)
553 
554  Integer(KIND=C_INT) :: nc_inq_user_type
555 
556  End Function nc_inq_user_type
557 End Interface
558 !------------------------------- nc_def_enum ----------------------------------
559 Interface
560  Function nc_def_enum(ncid, base_typeid, name, typeidp) BIND(C)
561 
562  USE iso_c_binding, ONLY: c_int, c_char
563 
564  Integer(KIND=C_INT), VALUE :: ncid
565  Integer(KIND=C_INT), VALUE :: base_typeid ! nc_type in C
566  Integer(KIND=C_INT), Intent(OUT) :: typeidp ! nc_type in C
567  Character(KIND=C_CHAR), Intent(IN) :: name(*)
568 
569  Integer(KIND=C_INT) :: nc_def_enum
570 
571  End Function nc_def_enum
572 End Interface
573 !------------------------------- nc_insert_enum -------------------------------
574 Interface
575  Function nc_insert_enum(ncid, xtype, name, values) BIND(C)
576 
577  USE iso_c_binding, ONLY: c_int, c_char, c_ptr
578 
579  Integer(KIND=C_INT), VALUE :: ncid
580  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
581  Type(c_ptr), VALUE :: values ! void pointer in C
582  Character(KIND=C_CHAR), Intent(IN) :: name(*)
583 
584  Integer(KIND=C_INT) :: nc_insert_enum
585 
586  End Function nc_insert_enum
587 End Interface
588 !------------------------------- nc_inq_enum ----------------------------------
589 Interface
590  Function nc_inq_enum(ncid, xtype, name, base_nc_typep, base_sizep, &
591  num_membersp) bind(c)
592 
593  USE iso_c_binding, ONLY: c_int, c_size_t, c_char
594 
595  Integer(KIND=C_INT), VALUE :: ncid
596  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
597  Integer(KIND=C_INT), Intent(INOUT) :: base_nc_typep ! nc_type in C
598  Integer(KIND=C_SIZE_T), Intent(INOUT) :: base_sizep, num_membersp
599  Character(KIND=C_CHAR), Intent(INOUT) :: name(*)
600 
601  Integer(KIND=C_INT) :: nc_inq_enum
602 
603  End Function nc_inq_enum
604 End Interface
605 !------------------------------- nc_inq_enum_member ---------------------------
606 Interface
607  Function nc_inq_enum_member(ncid, xtype, idx, name, value) BIND(C)
608 
609  USE iso_c_binding, ONLY: c_int, c_char
610 
611  Integer(KIND=C_INT), VALUE :: ncid, idx
612  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
613  Character(KIND=C_CHAR), Intent(OUT) :: value(*)
614  Character(KIND=C_CHAR), Intent(INOUT) :: name(*)
615 
616  Integer(KIND=C_INT) :: nc_inq_enum_member
617 
618  End Function nc_inq_enum_member
619 End Interface
620 !------------------------------- nc_inq_enum_ident ----------------------------
621 Interface
622  Function nc_inq_enum_ident(ncid, xtype, val, name) BIND(C)
623 
624  USE iso_c_binding, ONLY: c_int, c_long_long, c_char
625 
626  Integer(KIND=C_INT), VALUE :: ncid
627  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
628  Integer(KIND=C_LONG_LONG), VALUE :: val
629  Character(KIND=C_CHAR), Intent(INOUT) :: name(*)
630 
631  Integer(KIND=C_INT) :: nc_inq_enum_ident
632 
633  End Function nc_inq_enum_ident
634 End Interface
635 !------------------------------- nc_def_opaque --------------------------------
636 Interface
637  Function nc_def_opaque(ncid, isize, name, xtypep) BIND(C)
638 
639  USE iso_c_binding, ONLY: c_int, c_size_t, c_char
640 
641  Integer(KIND=C_INT), VALUE :: ncid
642  Integer(KIND=C_SIZE_T), VALUE :: isize
643  Character(KIND=C_CHAR), Intent(IN) :: name(*)
644  Integer(KIND=C_INT), Intent(OUT) :: xtypep ! nc_type in C
645 
646  Integer(KIND=C_INT) :: nc_def_opaque
647 
648  End Function nc_def_opaque
649 End Interface
650 !------------------------------- nc_inq_opaque --------------------------------
651 Interface
652  Function nc_inq_opaque(ncid, xtype, name, sizep) BIND(C)
653 
654  USE iso_c_binding, ONLY: c_int, c_size_t, c_char
655 
656  Integer(KIND=C_INT), VALUE :: ncid
657  Integer(KIND=C_INT), VALUE :: xtype ! nc_type in C
658  Integer(KIND=C_SIZE_T), Intent(OUT) :: sizep
659  Character(KIND=C_CHAR), Intent(OUT) :: name(*)
660 
661  Integer(KIND=C_INT) :: nc_inq_opaque
662 
663  End Function nc_inq_opaque
664 End Interface
665 !------------------------------- nc_def_var_fill ------------------------------
666 Interface
667  Function nc_def_var_fill(ncid, varid, no_fill, cfill_value_p) BIND(C)
668 
669  USE iso_c_binding, ONLY: c_int, c_ptr
670 
671  Integer(KIND=C_INT), VALUE :: ncid, varid, no_fill
672  Type(c_ptr), VALUE :: cfill_value_p
673 
674  Integer(KIND=C_INT) :: nc_def_var_fill
675 
676  End Function nc_def_var_fill
677 End Interface
678 !------------------------------- nc_inq_var_fill ------------------------------
679 Interface
680  Function nc_inq_var_fill(ncid, varid, no_fill, fill_value) BIND(C)
681 
682  USE iso_c_binding, ONLY: c_int, c_char
683 
684  Integer(KIND=C_INT), VALUE :: ncid, varid
685  Integer(KIND=C_INT), Intent(INOUT) :: no_fill
686  Character(KIND=C_CHAR), Intent(INOUT) :: fill_value(*)
687 
688  Integer(KIND=C_INT) :: nc_inq_var_fill
689 
690  End Function nc_inq_var_fill
691 End Interface
692 !------------------------------- nc_inq_var_szip ------------------------------
693 Interface
694  Function nc_inq_var_szip(ncid, varid, options_mask, pixels_per_block) BIND(C)
695 
696  USE iso_c_binding, ONLY: c_int
697 
698  Integer(KIND=C_INT), VALUE :: ncid, varid
699  Integer(KIND=C_INT), Intent(INOUT) :: options_mask, pixels_per_block
700 
701  Integer(KIND=C_INT) :: nc_inq_var_szip
702 
703  End Function nc_inq_var_szip
704 End Interface
705 !------------------------------- nc_def_var_fletcher32 ------------------------
706 Interface
707  Function nc_def_var_fletcher32(ncid, varid, fletcher32) BIND(C)
708 
709  USE iso_c_binding, ONLY: c_int
710 
711  Integer(KIND=C_INT), VALUE :: ncid, varid, fletcher32
712 
713  Integer(KIND=C_INT) :: nc_def_var_fletcher32
714 
715  End Function nc_def_var_fletcher32
716 End Interface
717 !------------------------------- nc_inq_var_fletcher32 ------------------------
718 Interface
719  Function nc_inq_var_fletcher32(ncid, varid, fletcher32) BIND(C)
720 
721  USE iso_c_binding, ONLY: c_int
722 
723  Integer(KIND=C_INT), VALUE :: ncid, varid
724  Integer(KIND=C_INT), Intent(INOUT) :: fletcher32
725 
726  Integer(KIND=C_INT) :: nc_inq_var_fletcher32
727 
728  End Function nc_inq_var_fletcher32
729 End Interface
730 !------------------------------- nc_def_var_deflate ---------------------------
731 Interface
732  Function nc_def_var_deflate(ncid, varid, shuffle, deflate, deflate_level) BIND(C)
733 
734  USE iso_c_binding, ONLY: c_int
735 
736  Integer(KIND=C_INT), VALUE :: ncid, varid, shuffle, deflate, deflate_level
737 
738  Integer(KIND=C_INT) :: nc_def_var_deflate
739 
740  End Function nc_def_var_deflate
741 End Interface
742 !------------------------------- nc_inq_var_deflate ---------------------------
743 Interface
744  Function nc_inq_var_deflate(ncid, varid, shuffle, deflate, deflate_level) BIND(C)
745 
746  USE iso_c_binding, ONLY: c_int
747 
748  Integer(KIND=C_INT), VALUE :: ncid, varid
749  Integer(KIND=C_INT), Intent(INOUT) :: shuffle, deflate, deflate_level
750 
751  Integer(KIND=C_INT) :: nc_inq_var_deflate
752 
753  End Function nc_inq_var_deflate
754 End Interface
755 !------------------------------- nc_def_var_chunking --------------------------
756 Interface
757  Function nc_def_var_chunking(ncid, varid, contiguousp, chunksizesp) BIND(C)
758 
759  USE iso_c_binding, ONLY: c_int, c_size_t
760 
761  Integer(KIND=C_INT), VALUE :: ncid, varid, contiguousp
762  Integer(KIND=C_SIZE_T), Intent(INOUT) :: chunksizesp
763 
764  Integer(KIND=C_INT) :: nc_def_var_chunking
765 
766  End Function nc_def_var_chunking
767 End Interface
768 !------------------------------- nc_inq_var_chunking --------------------------
769 Interface
770  Function nc_inq_var_chunking(ncid, varid, contiguousp, chunksizesp) BIND(C)
771 
772  USE iso_c_binding, ONLY: c_int, c_size_t
773 
774  Integer(KIND=C_INT), VALUE :: ncid, varid
775  Integer(KIND=C_INT), Intent(INOUT) :: contiguousp
776  Integer(KIND=C_SIZE_T), Intent(INOUT) :: chunksizesp(*)
777 
778  Integer(KIND=C_INT) :: nc_inq_var_chunking
779 
780  End Function nc_inq_var_chunking
781 End Interface
782 !------------------------------- nc_def_var_chunking_ints ---------------------
783 Interface
784  Function nc_def_var_chunking_ints(ncid, varid, contiguousp, chunksizesp) BIND(C)
785 
786  USE iso_c_binding, ONLY: c_int, c_ptr
787 
788  Integer(KIND=C_INT), VALUE :: ncid, varid, contiguousp
789  Type(c_ptr), VALUE :: chunksizesp
790 
791  Integer(KIND=C_INT) :: nc_def_var_chunking_ints
792 
793  End Function nc_def_var_chunking_ints
794 End Interface
795 !------------------------------- nc_inq_var_chunking_ints ---------------------
796 Interface
797  Function nc_inq_var_chunking_ints(ncid, varid, contiguousp, chunksizesp) BIND(C)
798 
799  USE iso_c_binding, ONLY: c_int
800 
801  Integer(KIND=C_INT), VALUE :: ncid, varid
802  Integer(KIND=C_INT), Intent(INOUT) :: contiguousp
803  Integer(KIND=C_INT), Intent(INOUT) :: chunksizesp(*)
804 
805  Integer(KIND=C_INT) :: nc_inq_var_chunking_ints
806 
807  End Function nc_inq_var_chunking_ints
808 End Interface
809 !------------------------------- nc_def_var_endian --------------------------
810 Interface
811  Function nc_def_var_endian(ncid, varid, endiann) BIND(C)
812 
813  USE iso_c_binding, ONLY: c_int
814 
815  Integer(KIND=C_INT), VALUE :: ncid, varid, endiann
816 
817  Integer(KIND=C_INT) :: nc_def_var_endian
818 
819  End Function nc_def_var_endian
820 End Interface
821 !------------------------------- nc_inq_var_endian --------------------------
822 Interface
823  Function nc_inq_var_endian(ncid, varid, endiann) BIND(C)
824 
825  USE iso_c_binding, ONLY: c_int
826 
827  Integer(KIND=C_INT), VALUE :: ncid, varid
828  Integer(KIND=C_INT), Intent(INOUT) :: endiann
829 
830  Integer(KIND=C_INT) :: nc_inq_var_endian
831 
832  End Function nc_inq_var_endian
833 End Interface
834 !------------------------------- nc_put_att -----------------------------------
835 Interface
836  Function nc_put_att(ncid, varid, name, xtype, nlen, op) BIND(C)
837 
838  USE iso_c_binding, ONLY: c_int, c_char, c_size_t, c_ptr
839 
840  Integer(KIND=C_INT), VALUE :: ncid, varid, xtype
841  Integer(KIND=C_SIZE_T), VALUE :: nlen
842  Character(KIND=C_CHAR), Intent(IN) :: name(*)
843  Type(c_ptr), VALUE :: op
844 
845  Integer(KIND=C_INT) :: nc_put_att
846 
847  End Function nc_put_att
848 End Interface
849 !------------------------------- nc_get_att -----------------------------------
850 Interface
851  Function nc_get_att(ncid, varid, name, op) BIND(C)
852 
853  USE iso_c_binding, ONLY: c_int, c_char
854 
855  Integer(KIND=C_INT), VALUE :: ncid, varid
856  Character(KIND=C_CHAR), Intent(IN) :: name(*)
857  Character(KIND=C_CHAR), Intent(OUT) :: op(*)
858 
859  Integer(KIND=C_INT) :: nc_get_att
860 
861  End Function nc_get_att
862 End Interface
863 !------------------------------- nc_put_vlen_element --------------------------
864 Interface
865  Function nc_put_vlen_element(ncid, xtype, vlen_element, nlen, op) BIND(C)
866 
867  USE iso_c_binding, ONLY: c_int, c_size_t, c_ptr, c_char
868 
869  Integer(KIND=C_INT), VALUE :: ncid, xtype
870  Integer(KIND=C_SIZE_T), VALUE :: nlen
871  Character(KIND=C_CHAR), INTENT(INOUT) :: vlen_element(*)
872  Type(c_ptr), VALUE :: op
873 
874  Integer(KIND=C_INT) :: nc_put_vlen_element
875 
876  End Function nc_put_vlen_element
877 End Interface
878 !------------------------------- nc_get_vlen_element --------------------------
879 Interface
880  Function nc_get_vlen_element(ncid, xtype, vlen_element, nlen, op) BIND(C)
881 
882  USE iso_c_binding, ONLY: c_int, c_char, c_size_t, c_ptr
883 
884  Integer(KIND=C_INT), VALUE :: ncid, xtype
885  Integer(KIND=C_SIZE_T), Intent(INOUT) :: nlen
886  Character(KIND=C_CHAR), INTENT(INOUT) :: vlen_element(*)
887  Character(KIND=C_CHAR), Intent(INOUT) :: op(*)
888 
889  Integer(KIND=C_INT) :: nc_get_vlen_element
890 
891  End Function nc_get_vlen_element
892 End Interface
893 !------------------------------- nc_free_vlen ---------------------------------
894 Interface
895  Function nc_free_vlen(vl) BIND(C)
896 
897  USE iso_c_binding, ONLY: c_ptr, c_int
898 
899  Type(c_ptr), VALUE :: vl
900 
901  Integer(KIND=C_INT) :: nc_free_vlen
902 
903  End Function nc_free_vlen
904 End Interface
905 !------------------------------- nc_free_vlens -------------------------------
906 Interface
907  Function nc_free_vlens(len, vl) BIND(C)
908 
909  USE iso_c_binding, ONLY: c_ptr, c_int, c_size_t
910 
911  Integer(C_SIZE_T), Intent(IN) :: len
912  Type(c_ptr), VALUE :: vl
913 
914  Integer(KIND=C_INT) :: nc_free_vlens
915 
916  End Function nc_free_vlens
917 End Interface
918 !------------------------------- nc_free_string ------------------------------
919 Interface
920  Function nc_free_string(len, vl) BIND(C)
921 
922  USE iso_c_binding, ONLY: c_ptr, c_int, c_size_t
923 
924  Integer(C_SIZE_T), Intent(IN) :: len
925  Type(c_ptr), VALUE :: vl
926 
927  Integer(KIND=C_INT) :: nc_free_string
928 
929  End Function nc_free_string
930 End Interface
931 !------------------------------- nc_put_var1_longlong -------------------------
932 Interface
933  Function nc_put_var1_longlong(ncid, varid, indexp, op) BIND(C)
934 
935  USE iso_c_binding, ONLY: c_int, c_long_long, c_ptr
936 
937  Integer(KIND=C_INT), VALUE :: ncid, varid
938  Type(c_ptr), VALUE :: indexp
939  Integer(KIND=C_LONG_LONG), Intent(IN) :: op
940 
941  Integer(KIND=C_INT) :: nc_put_var1_longlong
942 
943  End Function nc_put_var1_longlong
944 End Interface
945 !------------------------------- nc_get_var1_longlong -------------------------
946 Interface
947  Function nc_get_var1_longlong(ncid, varid, indexp, ip) BIND(C)
948 
949  USE iso_c_binding, ONLY: c_int, c_long_long, c_ptr
950 
951  Integer(KIND=C_INT), VALUE :: ncid, varid
952  Type(c_ptr), VALUE :: indexp
953  Integer(KIND=C_LONG_LONG), Intent(OUT) :: ip
954 
955  Integer(KIND=C_INT) :: nc_get_var1_longlong
956 
957  End Function nc_get_var1_longlong
958 End Interface
959 !--------------------------------- nc_put_vara_longlong -----------------------
960 Interface
961  Function nc_put_vara_longlong(ncid, varid, startp, countp, op) BIND(C)
962 
963  USE iso_c_binding, ONLY: c_int, c_long_long, c_ptr
964 
965  Integer(KIND=C_INT), VALUE :: ncid, varid
966  Type(c_ptr), VALUE :: startp, countp
967  Integer(KIND=C_LONG_LONG), Intent(IN) :: op(*)
968 
969  Integer(KIND=C_INT) :: nc_put_vara_longlong
970 
971  End Function nc_put_vara_longlong
972 End Interface
973 !--------------------------------- nc_get_vara_longlong -----------------------
974 Interface
975  Function nc_get_vara_longlong(ncid, varid, startp, countp, ip) BIND(C)
976 
977  USE iso_c_binding, ONLY: c_int, c_long_long, c_ptr
978 
979  Integer(KIND=C_INT), VALUE :: ncid, varid
980  Type(c_ptr), VALUE :: startp, countp
981  Integer(KIND=C_LONG_LONG), Intent(OUT) :: ip(*)
982 
983  Integer(KIND=C_INT) :: nc_get_vara_longlong
984 
985  End Function nc_get_vara_longlong
986 End Interface
987 !--------------------------------- nc_put_varm_longlong ----------------------
988 Interface
989  Function nc_put_varm_longlong(ncid, varid, startp, countp, stridep, imapp, &
990  op) bind(c)
991 
992  USE iso_c_binding, ONLY: c_int, c_ptr, c_long_long
993 
994  Integer(KIND=C_INT), VALUE :: ncid, varid
995  Type(c_ptr), VALUE :: startp, countp, stridep, imapp
996  Integer(KIND=C_LONG_LONG), Intent(IN) :: op(*)
997 
998  Integer(KIND=C_INT) :: nc_put_varm_longlong
999 
1000  End Function nc_put_varm_longlong
1001 End Interface
1002 !--------------------------------- nc_get_varm_longlong -----------------------
1003 Interface
1004  Function nc_get_varm_longlong(ncid, varid, startp, countp, stridep, imapp, &
1005  ip) bind(c)
1006 
1007  USE iso_c_binding, ONLY: c_int, c_ptr, c_long_long
1008 
1009  Integer(KIND=C_INT), VALUE :: ncid, varid
1010  Type(c_ptr), VALUE :: startp, countp, stridep, imapp
1011  Integer(KIND=C_LONG_LONG), Intent(OUT) :: ip(*)
1012 
1013  Integer(KIND=C_INT) :: nc_get_varm_longlong
1014 
1015  End Function nc_get_varm_longlong
1016 End Interface
1017 !--------------------------------- nc_put_vars_longlong -----------------------
1018 Interface
1019  Function nc_put_vars_longlong(ncid, varid, startp, countp, stridep, op) BIND(C)
1020 
1021  USE iso_c_binding, ONLY: c_int, c_ptr, c_long_long
1022 
1023  Integer(KIND=C_INT), VALUE :: ncid, varid
1024  Type(c_ptr), VALUE :: startp, countp, stridep
1025  Integer(KIND=C_LONG_LONG), Intent(IN) :: op(*)
1026 
1027  Integer(KIND=C_INT) :: nc_put_vars_longlong
1028 
1029  End Function nc_put_vars_longlong
1030 End Interface
1031 !--------------------------------- nc_get_vars_longlong -----------------------
1032 Interface
1033  Function nc_get_vars_longlong(ncid, varid, startp, countp, stridep, ip) BIND(C)
1034 
1035  USE iso_c_binding, ONLY: c_int, c_ptr, c_long_long
1036 
1037  Integer(KIND=C_INT), VALUE :: ncid, varid
1038  Type(c_ptr), VALUE :: startp, countp, stridep
1039  Integer(KIND=C_LONG_LONG), Intent(OUT) :: ip(*)
1040 
1041  Integer(KIND=C_INT) :: nc_get_vars_longlong
1042 
1043  End Function nc_get_vars_longlong
1044 End Interface
1045 !------------------------------- nc_put_var_longlong --------------------------
1046 Interface
1047  Function nc_put_var_longlong(ncid, varid, op) BIND(C)
1048 
1049  USE iso_c_binding, ONLY: c_int, c_long_long
1050 
1051  Integer(KIND=C_INT), VALUE :: ncid, varid
1052  Integer(KIND=C_LONG_LONG), Intent(IN) :: op(*)
1053 
1054  Integer(KIND=C_INT) :: nc_put_var_longlong
1055 
1056  End Function nc_put_var_longlong
1057 End Interface
1058 !------------------------------- nc_get_var_longlong --------------------------
1059 Interface
1060  Function nc_get_var_longlong(ncid, varid, ip) BIND(C)
1061 
1062  USE iso_c_binding, ONLY: c_int, c_long_long
1063 
1064  Integer(KIND=C_INT), VALUE :: ncid, varid
1065  Integer(KIND=C_LONG_LONG), Intent(OUT) :: ip(*)
1066 
1067  Integer(KIND=C_INT) :: nc_get_var_longlong
1068 
1069  End Function nc_get_var_longlong
1070 End Interface
1071 !------------------------------- nc_set_chunk_cache_ints ----------------------
1072 Interface
1073  Function nc_set_chunk_cache_ints(size, nelems, preemption) BIND(C)
1074 
1075  USE iso_c_binding, ONLY: c_int
1076 
1077  Integer(KIND=C_INT), VALUE :: size, nelems, preemption
1078 
1079  Integer(KIND=C_INT) :: nc_set_chunk_cache_ints
1080 
1081  End Function nc_set_chunk_cache_ints
1082 End Interface
1083 !------------------------------- nc_get_chunk_cache_ints ----------------------
1084 Interface
1085  Function nc_get_chunk_cache_ints(size, nelems, preemption) BIND(C)
1086 
1087  USE iso_c_binding, ONLY: c_int
1088 
1089  Integer(KIND=C_INT), Intent(INOUT) :: size, nelems, preemption
1090 
1091  Integer(KIND=C_INT) :: nc_get_chunk_cache_ints
1092 
1093  End Function nc_get_chunk_cache_ints
1094 End Interface
1095 !------------------------------- nc_set_var_chunk_cache_ints ------------------
1096 Interface
1097  Function nc_set_var_chunk_cache_ints(ncid, varid, size, nelems, preemption) BIND(C)
1098 
1099  USE iso_c_binding, ONLY: c_int
1100 
1101  Integer(KIND=C_INT), VALUE :: ncid, varid, size, nelems, preemption
1102 
1103  Integer(KIND=C_INT) :: nc_set_var_chunk_cache_ints
1104 
1105  End Function nc_set_var_chunk_cache_ints
1106 End Interface
1107 !------------------------------- nc_get_var_chunk_cache_ints ------------------
1108 Interface
1109  Function nc_get_var_chunk_cache_ints(ncid, varid, size, nelems, preemption) BIND(C)
1110 
1111  USE iso_c_binding, ONLY: c_int
1112 
1113  Integer(KIND=C_INT), VALUE :: ncid, varid
1114  Integer(KIND=C_INT), Intent(INOUT) :: size, nelems, preemption
1115  Integer(KIND=C_INT) :: nc_get_var_chunk_cache_ints
1116 
1117  End Function nc_get_var_chunk_cache_ints
1118 End Interface
1119 !------------------------------- nc_set_chunk_cache ---------------------------
1120 Interface
1121  Function nc_set_chunk_cache(size, nelems, preemption) BIND(C)
1122 
1123  USE iso_c_binding, ONLY: c_size_t, c_float, c_int
1124 
1125  Integer(KIND=C_SIZE_T), VALUE :: size, nelems
1126  Real(KIND=C_FLOAT), VALUE :: preemption
1127 
1128  Integer(KIND=C_INT) :: nc_set_chunk_cache
1129 
1130  End Function nc_set_chunk_cache
1131 End Interface
1132 !------------------------------- nc_get_chunk_cache ---------------------------
1133 Interface
1134  Function nc_get_chunk_cache(size, nelems, preemption) BIND(C)
1135 
1136  USE iso_c_binding, ONLY: c_size_t, c_float, c_int
1137 
1138  Integer(KIND=C_SIZE_T), Intent(INOUT) :: size, nelems
1139  Real(KIND=C_FLOAT), Intent(INOUT) :: preemption
1140 
1141  Integer(KIND=C_INT) :: nc_get_chunk_cache
1142 
1143  End Function nc_get_chunk_cache
1144 End Interface
1145 !---------------------------------- nc_put_var --------------------------------
1146 Interface
1147  Function nc_put_var(ncid, varid, op) BIND(C)
1148 
1149  USE iso_c_binding, ONLY: c_int, c_ptr
1150 
1151  Integer(KIND=C_INT), VALUE :: ncid, varid
1152  Type(c_ptr), VALUE :: op
1153 
1154  Integer(KIND=C_INT) :: nc_put_var
1155 
1156  End Function nc_put_var
1157 End Interface
1158 !---------------------------------- nc_get_var --------------------------------
1159 Interface
1160  Function nc_get_var(ncid, varid, ip) BIND(C)
1161 
1162  USE iso_c_binding, ONLY: c_int, c_char
1163 
1164  Integer(KIND=C_INT), VALUE :: ncid, varid
1165  Character(KIND=C_CHAR), Intent(INOUT) :: ip(*)
1166 
1167  Integer(KIND=C_INT) :: nc_get_var
1168 
1169  End Function nc_get_var
1170 End Interface
1171 
1172 !--------------------------End of Module netcdf4_c_interfaces -----------------
1173 End Module netcdf4_nc_interfaces

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