NetCDF-Fortran  4.4.3
module_netcdf4_nf_interfaces.F90
1 Module netcdf4_nf_interfaces
2 
3 ! Explicit interfaces for Netcdf4 FORTRAN 2003 nf FORTRAN interface routines
4 
5 ! We exclude functions for netCDF4 that pass data of any type to/from void
6 ! pointers in C using a C_CHAR string array. We do provide external statements
7 ! for these routines
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 ! The author grants to the University Center for Atmospheric Research
15 ! (UCAR), Boulder, CO, USA the right to revise and extend the software
16 ! without restriction. However, the author retains all copyrights and
17 ! intellectual property rights explicitly stated in or implied by the
18 ! Apache license
19 
20 ! Version 1. April 2009 - Initial module based on netCDF 4.0.1 interfaces
21 ! A separate module is required to avoid a
22 ! module dependency problem
23 ! Version 2. April 2010 - Updated to Netcdf 4.1.1
24 ! Version 3. Aug. 2013 - Made nf_def_var_fill and nf_inq_var_fill external
25 ! to support new nf90_ non-integer fill characters
26 ! Added interface for new nf_rename_grp function
27 ! Changed interface type defs to USE netcdf_nf_data
28 
29 ! Most legacy programs don't need to use this module. However, I've created
30 ! it to support FORTRAN programmers who like to provide explicit interfaces
31 ! for all subroutines and functions in their codes. Therefore, this module is
32 ! is primarily for people writing new programs.
33 
34 ! Explicit interfaces to netCDF 4 specific FORTRAN functions
35 
36 !-------------------------------- nf_create_par -------------------------------
37 Interface
38  Function nf_create_par (path, cmode, comm, info, ncid) RESULT(status)
39 
40  Integer, Intent(IN) :: cmode, comm, info
41  Character(LEN=*), Intent(IN) :: path
42  Integer, Intent(OUT) :: ncid
43  Integer :: status
44 
45  End Function nf_create_par
46 End Interface
47 !-------------------------------- nf_open_par --------------------------------
48 Interface
49  Function nf_open_par (path, mode, comm, info, ncid) RESULT(status)
50 
51  Integer, Intent(IN) :: mode, comm, info
52  Character(LEN=*), Intent(IN) :: path
53  Integer, Intent(OUT) :: ncid
54  Integer :: status
55 
56  End Function nf_open_par
57 End Interface
58 !-------------------------------- nf_var_par_access -------------------------
59 Interface
60  Function nf_var_par_access( ncid, varid, iaccess) RESULT (status)
61 
62  Integer, Intent(IN) :: ncid, varid, iaccess
63  Integer :: status
64 
65  End Function nf_var_par_access
66 End Interface
67 !-------------------------------- nf_inq_ncid ---------------------------------
68 Interface
69  Function nf_inq_ncid( ncid, name, groupid) RESULT (status)
70 
71  Integer, Intent(IN) :: ncid
72  Character(LEN=*), Intent(IN) :: name
73  Integer, Intent(OUT) :: groupid
74  Integer :: status
75 
76  End Function nf_inq_ncid
77 End Interface
78 !-------------------------------- nf_inq_grps ---------------------------------
79 Interface
80  Function nf_inq_grps( ncid, numgrps, ncids) RESULT (status)
81 
82  Integer, Intent(IN) :: ncid
83  Integer, Intent(OUT) :: numgrps
84  Integer, Intent(INOUT) :: ncids(*)
85  Integer :: status
86 
87  End Function nf_inq_grps
88 End Interface
89 !-------------------------------- nf_inq_grpname ------------------------------
90 Interface
91  Function nf_inq_grpname( ncid, name) RESULT (status)
92 
93  Integer, Intent(IN) :: ncid
94  Character(LEN=*), Intent(OUT) :: name
95  Integer :: status
96 
97  End Function nf_inq_grpname
98 End Interface
99 !-------------------------------- nf_inq_grpname_full -------------------------
100 Interface
101  Function nf_inq_grpname_full( ncid, nlen, name) RESULT (status)
102 
103  Integer, Intent(IN) :: ncid
104  Integer, Intent(OUT) :: nlen
105  Character(LEN=*), Intent(OUT) :: name
106  Integer :: status
107 
108  End Function nf_inq_grpname_full
109 End Interface
110 !-------------------------------- nf_inq_grpname_len -------------------------
111 Interface
112  Function nf_inq_grpname_len( ncid, nlen) RESULT (status)
113 
114  Integer, Intent(IN) :: ncid
115  Integer, Intent(OUT) :: nlen
116  Integer :: status
117 
118  End Function nf_inq_grpname_len
119 End Interface
120 !-------------------------------- nf_inq_grp_parent ---------------------------
121 Interface
122  Function nf_inq_grp_parent( ncid,parent_ncid) RESULT (status)
123 
124  Integer, Intent(IN) :: ncid
125  Integer, Intent(INOUT) :: parent_ncid
126  Integer :: status
127 
128  End Function nf_inq_grp_parent
129 End Interface
130 !-------------------------------- nf_inq_grp_full_ncid ------------------------
131 Interface
132  Function nf_inq_grp_full_ncid( ncid, grp_name, grp_ncid) RESULT (status)
133 
134  Integer, Intent(IN) :: ncid
135  Character(LEN=*), Intent(IN) :: grp_name
136  Integer, Intent(INOUT) :: grp_ncid
137  Integer :: status
138 
139  End Function nf_inq_grp_full_ncid
140 End Interface
141 !-------------------------------- nf_inq_grp_ncid -----------------------------
142 Interface
143  Function nf_inq_grp_ncid( ncid, grp_name, parent_ncid) RESULT (status)
144 
145  Integer, Intent(IN) :: ncid
146  Character(LEN=*), Intent(IN) :: grp_name
147  Integer, Intent(INOUT) :: parent_ncid
148  Integer :: status
149 
150  End Function nf_inq_grp_ncid
151 End Interface
152 !-------------------------------- nf_inq_varids -------------------------------
153 Interface
154  Function nf_inq_varids( ncid, nvars, varids) RESULT (status)
155 
156  Integer, Intent(IN) :: ncid
157  Integer, Intent(OUT) :: nvars
158  Integer, Intent(INOUT) :: varids(*)
159  Integer :: status
160 
161  End Function nf_inq_varids
162 End Interface
163 !-------------------------------- nf_inq_dimids -------------------------------
164 Interface
165  Function nf_inq_dimids( ncid, ndims, dimids, include_parents) RESULT (status)
166 
167  Integer, Intent(IN) :: ncid, include_parents
168  Integer, Intent(OUT) :: ndims
169  Integer, Intent(INOUT) :: dimids(*)
170  Integer :: status
171 
172  End Function nf_inq_dimids
173 End Interface
174 !-------------------------------- nf_inq_typeids ------------------------------
175 Interface
176  Function nf_inq_typeids( ncid, ntypes, typeids) RESULT (status)
177 
178  Integer, Intent(IN) :: ncid
179  Integer, Intent(OUT) :: ntypes
180  Integer, Intent(INOUT) :: typeids(*)
181  Integer :: status
182 
183  End Function nf_inq_typeids
184 End Interface
185 !-------------------------------- nf_inq_typeid ------------------------------
186 Interface
187  Function nf_inq_typeid(ncid, name, typeid) RESULT (status)
188 
189  Integer, Intent(IN) :: ncid
190  Character(LEN=*), Intent(IN) :: name
191  Integer, Intent(OUT) :: typeid
192  Integer :: status
193 
194  End Function nf_inq_typeid
195 End Interface
196 !-------------------------------- nf_def_grp ---------------------------------
197 Interface
198  Function nf_def_grp( parent_ncid, name, new_ncid) RESULT (status)
199 
200  Integer, Intent(IN) :: parent_ncid
201  Character(LEN=*), Intent(IN) :: name
202  Integer, Intent(OUT) :: new_ncid
203  Integer :: status
204 
205  End Function nf_def_grp
206 End Interface
207 !-------------------------------- nf_rename_grp -------------------------------
208 Interface
209  Function nf_rename_grp( grpid, name) RESULT (status)
210 
211 ! rename previously defined group
212 
213  USE netcdf4_nc_interfaces
214 
215  Implicit NONE
216 
217  Integer, Intent(IN) :: grpid
218  Character(LEN=*), Intent(IN) :: name
219  Integer :: status
220 
221  End Function nf_rename_grp
222 End Interface
223 !-------------------------------- nf_def_compound -----------------------------
224 Interface
225  Function nf_def_compound( ncid, isize, name, typeid) RESULT (status)
226 
227  Integer, Intent(IN) :: ncid, isize
228  Character(LEN=*), Intent(IN) :: name
229  Integer, Intent(OUT) :: typeid
230  Integer :: status
231 
232  End Function nf_def_compound
233 End Interface
234 !-------------------------------- nf_insert_compound --------------------------
235 Interface
236  Function nf_insert_compound( ncid, xtype, name, offset, field_typeid) &
237  result(status)
238 
239  Integer, Intent(IN) :: ncid, xtype, field_typeid, offset
240  Character(LEN=*), Intent(IN) :: name
241  Integer :: status
242 
243  End Function nf_insert_compound
244 End Interface
245 !-------------------------------- nf_insert_array_compound --------------------
246 Interface
247  Function nf_insert_array_compound( ncid, xtype, name, offset, field_typeid, &
248  ndims, dim_sizes) result(status)
249 
250  Integer, Intent(IN) :: ncid, xtype, field_typeid, offset, ndims
251  Integer, Intent(INOUT) :: dim_sizes(*)
252  Character(LEN=*), Intent(IN) :: name
253  Integer :: status
254 
255  End Function nf_insert_array_compound
256 End Interface
257 !-------------------------------- nf_inq_type ---------------------------------
258 Interface
259  Function nf_inq_type( ncid, xtype, name, isize) RESULT (status)
260 
261  Integer, Intent(IN) :: ncid, xtype
262  Character(LEN=*), Intent(IN) :: name
263  Integer, Intent(OUT) :: isize
264  Integer :: status
265 
266  End Function nf_inq_type
267 End Interface
268 !-------------------------------- nf_inq_compound -----------------------------
269 Interface
270  Function nf_inq_compound( ncid, xtype, name, isize, nfields) RESULT (status)
271 
272  Integer, Intent(IN) :: ncid, xtype
273  Character(LEN=*), Intent(INOUT) :: name
274  Integer, Intent(INOUT) :: isize, nfields
275  Integer :: status
276 
277  End Function nf_inq_compound
278 End Interface
279 !-------------------------------- nf_inq_compound_name ------------------------
280 Interface
281  Function nf_inq_compound_name( ncid, xtype, name) RESULT (status)
282 
283  Integer, Intent(IN) :: ncid, xtype
284  Character(LEN=*), Intent(OUT) :: name
285  Integer :: status
286 
287  End Function nf_inq_compound_name
288 End Interface
289 !-------------------------------- nf_inq_compound_size -------------------------
290 Interface
291  Function nf_inq_compound_size( ncid, xtype, isize) RESULT (status)
292 
293  Integer, Intent(IN) :: ncid, xtype
294  Integer, Intent(INOUT) :: isize
295  Integer :: status
296 
297  End Function nf_inq_compound_size
298 End Interface
299 !-------------------------------- nf_inq_compound_nfields ----------------------
300 Interface
301  Function nf_inq_compound_nfields( ncid, xtype, nfields) RESULT (status)
302 
303  Integer, Intent(IN) :: ncid, xtype
304  Integer, Intent(INOUT) :: nfields
305  Integer :: status
306 
307  End Function nf_inq_compound_nfields
308 End Interface
309 !-------------------------------- nf_inq_compound_field -----------------------
310 Interface
311  Function nf_inq_compound_field( ncid, xtype, fieldid, name, offset, &
312  field_typeid, ndims, dim_sizes) result(status)
313 
314  Integer, Intent(IN) :: ncid, xtype, fieldid
315  Character(LEN=*), Intent(OUT) :: name
316  Integer, Intent(OUT) :: offset, field_typeid, ndims
317  Integer, Intent(OUT) :: dim_sizes(*)
318  Integer :: status
319 
320  End Function nf_inq_compound_field
321 End Interface
322 !-------------------------------- nf_inq_compound_fieldname -------------------
323 Interface
324  Function nf_inq_compound_fieldname(ncid, xtype, fieldid, name) RESULT(status)
325 
326  Integer, Intent(IN) :: ncid, xtype, fieldid
327  Character(LEN=*), Intent(OUT) :: name
328  Integer :: status
329 
330  End Function nf_inq_compound_fieldname
331 End Interface
332 !-------------------------------- nf_inq_compound_fieldindex ------------------
333 Interface
334  Function nf_inq_compound_fieldindex( ncid, xtype, name, fieldid) &
335  result(status)
336 
337  Integer, Intent(IN) :: ncid, xtype
338  Character(LEN=*), Intent(IN) :: name
339  Integer, Intent(OUT) :: fieldid
340  Integer :: status
341 
342  End Function nf_inq_compound_fieldindex
343 End Interface
344 !-------------------------------- nf_inq_compound_fieldoffset ----------------
345 Interface
346  Function nf_inq_compound_fieldoffset( ncid, xtype, fieldid, offset) &
347  result(status)
348 
349  Integer, Intent(IN) :: ncid, xtype, fieldid
350  Integer, Intent(OUT) :: offset
351  Integer :: status
352 
353  End Function nf_inq_compound_fieldoffset
354 End Interface
355 !-------------------------------- nf_inq_compound_fieldtype -------------------
356 Interface
357  Function nf_inq_compound_fieldtype( ncid, xtype, fieldid, field_typeid) &
358  result(status)
359 
360  Integer, Intent(IN) :: ncid, xtype, fieldid
361  Integer, Intent(OUT) :: field_typeid
362  Integer :: status
363 
364  End Function nf_inq_compound_fieldtype
365 End Interface
366 !-------------------------------- nf_inq_compound_fieldndims ------------------
367 Interface
368  Function nf_inq_compound_fieldndims( ncid, xtype, fieldid, ndims) &
369  result(status)
370 
371  Integer, Intent(IN) :: ncid, xtype, fieldid
372  Integer, Intent(OUT) :: ndims
373  Integer :: status
374 
375  End Function nf_inq_compound_fieldndims
376 End Interface
377 !-------------------------------- nf_inq_compound_fielddim_sizes --------------
378 Interface
379  Function nf_inq_compound_fielddim_sizes( ncid, xtype, fieldid, dim_sizes) &
380  result(status)
381 
382  Integer, Intent(IN) :: ncid, xtype, fieldid
383  Integer, Intent(INOUT) :: dim_sizes(*)
384  Integer :: status
385 
386  End Function nf_inq_compound_fielddim_sizes
387 End Interface
388 !-------------------------------- nf_def_vlen ---------------------------------
389 Interface
390  Function nf_def_vlen( ncid, name, base_typeid, xtype) RESULT (status)
391 
392  Integer, Intent(IN) :: ncid, base_typeid
393  Character(LEN=*), Intent(IN) :: name
394  Integer, Intent(OUT) :: xtype
395  Integer :: status
396 
397  End Function nf_def_vlen
398 End Interface
399 !-------------------------------- nf_inq_vlen ---------------------------------
400 Interface
401  Function nf_inq_vlen( ncid, xtype, name, datum_size, base_type) RESULT(status)
402 
403  Integer, Intent(IN) :: ncid, xtype
404  Character(LEN=*), Intent(OUT) :: name
405  Integer, Intent(OUT) :: datum_size, base_type
406  Integer :: status
407 
408  End Function nf_inq_vlen
409 End Interface
410 !-------------------------------- nf_inq_user_type ----------------------------
411 Interface
412  Function nf_inq_user_type( ncid, xtype, name, isize, base_type, nfields, &
413  iclass) result(status)
414 
415  Integer, Intent(IN) :: ncid, xtype
416  Character(LEN=*), Intent(INOUT) :: name
417  Integer, Intent(OUT) :: isize, nfields, base_type, iclass
418  Integer :: status
419 
420  End Function nf_inq_user_type
421 End Interface
422 !-------------------------------- nf_def_enum ---------------------------------
423 Interface
424  Function nf_def_enum( ncid, base_typeid, name, typeid) RESULT (status)
425 
426  Integer, Intent(IN) :: ncid, base_typeid
427  Character(LEN=*), Intent(IN) :: name
428  Integer, Intent(OUT) :: typeid
429  Integer :: status
430 
431  End Function nf_def_enum
432 End Interface
433 !-------------------------------- nf_insert_enum -------------------------------
434 ! Commented out for now since we pass to/from a void pointer using
435 ! a C_CHAR string which will be non-compatible with different data
436 ! types being passed
437 !Interface
438 ! Function nf_insert_enum( ncid, xtype, name, value) RESULT (status)
439 
440 ! USE netcdf_nf_data
441 
442 ! Integer, Intent(IN) :: ncid, xtype
443 ! Character(LEN=*), Intent(IN) :: name
444 ! Character(KIND=C_CHAR), Intent(IN), TARGET :: value(*)
445 ! Integer :: status
446 
447 ! End Function nf_insert_enum
448 !End Interface
449 !-------------------------------- nf_inq_enum ---------------------------------
450 Interface
451  Function nf_inq_enum( ncid, xtype, name, base_nf_type, base_size, &
452  num_members) result(status)
453 
454 ! USE netcdf_nf_data
455 
456  Integer, Intent(IN) :: ncid, xtype
457  Character(LEN=*), Intent(INOUT) :: name
458  Integer, Intent(INOUT) :: base_nf_type, base_size, num_members
459  Integer :: status
460 
461  End Function nf_inq_enum
462 End Interface
463 !-------------------------------- nf_inq_enum_member --------------------------
464 ! Commented out for now since we pass to/from a void pointer using
465 ! a C_CHAR string which will be non-compatible with different data
466 ! types being passed
467 !Interface
468 ! Function nf_inq_enum_member( ncid, xtype, idx, name, value) RESULT (status)
469 
470 ! USE netcdf_nf_data
471 
472 ! Integer, Intent(IN) :: ncid, xtype, idx
473 ! Character(LEN=*), Intent(OUT) :: name
474 ! Character(KIND=C_CHAR), Intent(OUT) :: value(*)
475 ! Integer :: status
476 
477 ! End Function nf_inq_enum_member
478 !End Interface
479 !-------------------------------- nf_inq_enum_ident --------------------------
480 Interface
481  Function nf_inq_enum_ident( ncid, xtype, value, name) RESULT (status)
482 
483  Integer, Intent(IN) :: ncid, xtype, value
484  Character(LEN=*), Intent(INOUT) :: name
485  Integer :: status
486 
487  End Function nf_inq_enum_ident
488 End Interface
489 !-------------------------------- nf_def_opaque -------------------------------
490 Interface
491  Function nf_def_opaque( ncid, isize, name, xtype) RESULT (status)
492 
493  Integer, Intent(IN) :: ncid, isize
494  Character(LEN=*), Intent(IN) :: name
495  Integer, Intent(OUT) :: xtype
496  Integer :: status
497 
498  End Function nf_def_opaque
499 End Interface
500 !-------------------------------- nf_inq_opaque -------------------------------
501 Interface
502  Function nf_inq_opaque( ncid, xtype, name, isize) RESULT (status)
503 
504  Integer, Intent(IN) :: ncid, xtype
505  Character(LEN=*), Intent(INOUT) :: name
506  Integer, Intent(OUT) :: isize
507  Integer :: status
508 
509  End Function nf_inq_opaque
510 End Interface
511 !-------------------------------- nf_def_var_chunking -------------------------
512 Interface
513  Function nf_def_var_chunking( ncid, varid, contiguous, chunksizes) &
514  result(status)
515 
516  Integer, Intent(IN) :: ncid, varid, contiguous
517  Integer, Intent(INOUT) :: chunksizes(*)
518  Integer :: status
519 
520  End Function nf_def_var_chunking
521 End Interface
522 !-------------------------------- nf_inq_var_chunking -------------------------
523 Interface
524  Function nf_inq_var_chunking( ncid, varid, contiguous, chunksizes) &
525  result(status)
526 
527  Integer, Intent(IN) :: ncid, varid
528  Integer, Intent(INOUT) :: contiguous
529  Integer, Intent(INOUT) :: chunksizes(*)
530  Integer :: status
531 
532  End Function nf_inq_var_chunking
533 End Interface
534 !-------------------------------- nf_def_var_deflate --------------------------
535 Interface
536  Function nf_def_var_deflate( ncid, varid, shuffle, deflate, deflate_level) &
537  result(status)
538 
539  Integer, Intent(IN) :: ncid, varid, shuffle, deflate, deflate_level
540  Integer :: status
541 
542  End Function nf_def_var_deflate
543 End Interface
544 !-------------------------------- nf_inq_var_deflate -------------------------
545 Interface
546  Function nf_inq_var_deflate( ncid, varid, shuffle, deflate, deflate_level) &
547  result(status)
548 
549  Integer, Intent(IN) :: ncid, varid
550  Integer, Intent(OUT) :: shuffle, deflate, deflate_level
551  Integer :: status
552 
553  End Function nf_inq_var_deflate
554 End Interface
555 !-------------------------------- nf_inq_var_szip -----------------------------
556 Interface
557  Function nf_inq_var_szip(ncid, varid, options_mask, pixels_per_block) RESULT(status)
558 
559  Implicit NONE
560 
561  Integer, Intent(IN) :: ncid, varid
562  Integer, Intent(INOUT) :: options_mask, pixels_per_block
563  Integer :: status
564 
565  End Function nf_inq_var_szip
566 End Interface
567 !-------------------------------- nf_def_var_fletcher32 ------------------------
568 Interface
569  Function nf_def_var_fletcher32( ncid, varid, fletcher32) RESULT(status)
570 
571  Integer, Intent(IN) :: ncid, varid, fletcher32
572  Integer :: status
573 
574  End Function nf_def_var_fletcher32
575 End Interface
576 !-------------------------------- nf_inq_var_fletcher32 ------------------------
577 Interface
578  Function nf_inq_var_fletcher32( ncid, varid, fletcher32) RESULT(status)
579 
580  Integer, Intent(IN) :: ncid, varid
581  Integer, Intent(OUT) :: fletcher32
582  Integer :: status
583 
584  End Function nf_inq_var_fletcher32
585 End Interface
586 !-------------------------------- nf_def_var_fill -----------------------------
587 !Interface
588 ! Function nf_def_var_fill( ncid, varid, no_fill, fill_value) RESULT(status)
589 
590 ! Integer, Intent(IN) :: ncid, varid, no_fill
591 ! Integer, Intent(IN) :: fill_value
592 ! Integer :: status
593 
594 ! End Function nf_def_var_fill
595 !End Interface
596 !-------------------------------- nf_inq_var_fill -----------------------------
597 !Interface
598 ! Function nf_inq_var_fill( ncid, varid, no_fill, fill_value) RESULT(status)
599 
600 ! Integer, Intent(IN) :: ncid, varid
601 ! Integer, Intent(OUT) :: no_fill
602 ! Integer, Intent(INOUT) :: fill_value
603 ! Integer :: status
604 
605 ! End Function nf_inq_var_fill
606 !End Interface
607 !-------------------------------- nf_def_var_endian ---------------------------
608 Interface
609  Function nf_def_var_endian( ncid, varid, endiann) RESULT(status)
610 
611  Integer, Intent(IN) :: ncid, varid, endiann
612  Integer :: status
613 
614  End Function nf_def_var_endian
615 End Interface
616 !-------------------------------- nf_inq_var_endian ---------------------------
617 Interface
618  Function nf_inq_var_endian( ncid, varid, endiann) RESULT(status)
619 
620  Integer, Intent(IN) :: ncid, varid
621  Integer, Intent(OUT) :: endiann
622  Integer :: status
623 
624  End Function nf_inq_var_endian
625 End Interface
626 !--------------------------------- nf_put_att --------------------------------
627 ! Commented out because we use C_CHAR array to pass data of different
628 ! type to a C void pointer
629 !Interface
630 ! Function nf_put_att(ncid, varid, name, xtype, nlen, value) RESULT(status)
631 
632 ! USE netcdf_nf_data
633 
634 ! Integer, Intent(IN) :: ncid, varid, nlen, xtype
635 ! Character(LEN=*), Intent(IN) :: name
636 ! Character(KIND=C_CHAR), Intent(IN), TARGET :: value(*)
637 ! Integer :: status
638 
639 ! End Function nf_put_att
640 !--------------------------------- nf_get_att --------------------------------
641 ! Commented out because we use C_CHAR array to pass data of different
642 ! type to a C void pointer
643 !Interface
644 ! Function nf_get_att(ncid, varid, name, value) RESULT(status)
645 
646 ! USE netcdf_nf_data
647 
648 ! Implicit NONE
649 
650 ! Integer, Intent(IN) :: ncid, varid
651 ! Character(LEN=*), Intent(IN) :: name
652 ! Character(KIND=C_CHAR), Intent(INOUT) :: value(*)
653 ! Integer :: status
654 
655 ! End Function nf_get_att
656 !End Interface
657 !--------------------------------- nf_put_vlen_element ------------------------
658 ! Commented out because we use C_CHAR array to pass data of different
659 ! type to a C void pointer
660 !Interface
661 ! Function nf_put_vlen_element(ncid, xtype, vlen_element, nlen, value)&
662 ! RESULT(status)
663 
664 ! USE netcdf_nf_data
665 
666 ! Integer, Intent(IN) :: ncid, xtype, nlen
667 ! Character(LEN=*), Intent(INOUT), TARGET :: vlen_element
668 ! Character(KIND=C_CHAR), Intent(IN), TARGET :: value(*)
669 ! Integer :: status
670 
671 ! End Function nf_put_vlen_element
672 !End Interface
673 !--------------------------------- nf_get_vlen_element ------------------------
674 ! Commented out because we use C_CHAR array to pass data of different
675 ! type to a C void pointer
676 !Interface
677 ! Function nf_get_vlen_element(ncid, xtype, vlen_element, nlen, value) &
678 ! RESULT(status)
679 
680 ! USE netcdf_nf_data
681 
682 ! Implicit NONE
683 
684 ! Integer, Intent(IN) :: ncid, xtype
685 ! Integer, Intent(INOUT) :: nlen
686 ! Character(LEN=*), Intent(INOUT), TARGET :: vlen_element
687 ! Character(KIND=C_CHAR), Intent(INOUT) :: value(*)
688 ! Integer :: status
689 
690 ! End Function nf_get_vlen_element
691 !End Interface
692 !--------------------------------- nf_free_vlenn -------------------------------
693 ! Commented out because we use C_CHAR array to pass data of different
694 ! type to a C void pointer
695 !Interface
696 ! Function nf_free_vlen(vl) RESULT(status)
697 
698 ! Character(KIND=C_CHAR), Intent(IN), TARGET :: vl(*)
699 ! Integer :: status
700 
701 ! End Function nf_free_vlen
702 !End Interface
703 !--------------------------------- nf_put_var ---------------------------------
704 ! Commented out because we use C_CHAR array to pass data of different
705 ! type to a C void pointer
706 !Interface
707 ! Function nf_put_var(ncid, varid, values) RESULT(status)
708 
709 ! USE netcdf_nf_data
710 
711 ! Integer, Intent(IN) :: ncid, varid
712 ! Character(KIND=C_CHAR), Intent(IN), TARGET :: values(*)
713 ! Integer :: status
714 
715 ! End Function nf_put_var
716 !End Interface
717 !--------------------------------- nf_get_var ---------------------------------
718 ! Commented out because we use C_CHAR array to pass data of different
719 ! type to a C void pointer
720 !Interface
721 ! Function nf_get_var(ncid, varid, values) RESULT(status)
722 
723 ! USE netcdf_nf_data
724 
725 ! Integer, Intent(IN) :: ncid, varid
726 ! Character(KIND=C_CHAR), Intent(INOUT), :: values(*)
727 ! Integer :: status
728 
729 ! End Function nf_get_var
730 !End Interface
731 !--------------------------------- nf_put_var1_int64 --------------------------
732 Interface
733  Function nf_put_var1_int64(ncid, varid, ndex, ival) RESULT(status)
734 
735  USE netcdf_nf_data, ONLY: ik8
736 
737  Integer, Intent(IN) :: ncid, varid
738  Integer, Intent(IN) :: ndex(*)
739  Integer(KIND=IK8), Intent(IN) :: ival
740  Integer :: status
741 
742  End Function nf_put_var1_int64
743 End Interface
744 !--------------------------------- nf_put_vara_int64 --------------------------
745 Interface
746  Function nf_put_vara_int64(ncid, varid, start, counts, ivals) RESULT(status)
747 
748  USE netcdf_nf_data, ONLY: ik8
749 
750  Integer, Intent(IN) :: ncid, varid
751  Integer, Intent(IN) :: start(*), counts(*)
752  Integer(KIND=IK8), Intent(IN) :: ivals(*)
753  Integer :: status
754 
755  End Function nf_put_vara_int64
756 End Interface
757 !--------------------------------- nf_put_vars_int64 --------------------------
758 Interface
759  Function nf_put_vars_int64(ncid, varid, start, counts, strides, ivals) &
760  result(status)
761 
762  USE netcdf_nf_data, ONLY: ik8
763 
764  Integer, Intent(IN) :: ncid, varid
765  Integer, Intent(IN) :: start(*), counts(*), strides(*)
766  Integer(KIND=IK8), Intent(IN) :: ivals(*)
767  Integer :: status
768 
769  End Function nf_put_vars_int64
770 End Interface
771 !--------------------------------- nf_put_varm_int64 -------------------------
772 Interface
773  Function nf_put_varm_int64(ncid, varid, start, counts, strides, maps, &
774  ivals) result(status)
775 
776  USE netcdf_nf_data, ONLY: ik8
777 
778  Integer, Intent(IN) :: ncid, varid
779  Integer, Intent(IN) :: start(*), counts(*), strides(*), maps(*)
780  Integer(KIND=IK8), Intent(IN) :: ivals(*)
781  Integer :: status
782 
783  End Function nf_put_varm_int64
784 End Interface
785 !--------------------------------- nf_put_var_int64 --------------------------
786 Interface
787  Function nf_put_var_int64(ncid, varid, ivals) RESULT(status)
788 
789  USE netcdf_nf_data, ONLY: ik8
790 
791  Integer, Intent(IN) :: ncid, varid
792  Integer(KIND=IK8), Intent(IN) :: ivals(*)
793  Integer :: status
794 
795  End Function nf_put_var_int64
796 End Interface
797 !--------------------------------- nf_get_var1_int64 -------------------------
798 Interface
799  Function nf_get_var1_int64(ncid, varid, ndex, ival) RESULT(status)
800 
801  USE netcdf_nf_data, ONLY: ik8
802 
803  Integer, Intent(IN) :: ncid, varid
804  Integer, Intent(IN) :: ndex(*)
805  Integer(KIND=IK8), Intent(OUT) :: ival
806  Integer :: status
807 
808  End Function nf_get_var1_int64
809 End Interface
810 !--------------------------------- nf_get_vara_int -------------------------
811 Interface
812  Function nf_get_vara_int64(ncid, varid, start, counts, ivals) RESULT(status)
813 
814  USE netcdf_nf_data, ONLY: ik8
815 
816  Integer, Intent(IN) :: ncid, varid
817  Integer, Intent(IN) :: start(*), counts(*)
818  Integer(KIND=IK8), Intent(OUT) :: ivals(*)
819  Integer :: status
820 
821  End Function nf_get_vara_int64
822 End Interface
823 !--------------------------------- nf_get_vars_int64 --------------------------
824 Interface
825  Function nf_get_vars_int64(ncid, varid, start, counts, strides, ivals) &
826  result(status)
827 
828  USE netcdf_nf_data, ONLY: ik8
829 
830  Integer, Intent(IN) :: ncid, varid
831  Integer, Intent(IN) :: start(*), counts(*), strides(*)
832  Integer(KIND=IK8), Intent(OUT) :: ivals(*)
833  Integer :: status
834 
835  End Function nf_get_vars_int64
836 End Interface
837 !--------------------------------- nf_get_varm_int64 -------------------------
838 Interface
839  Function nf_get_varm_int64(ncid, varid, start, counts, strides, maps, &
840  ivals) result(status)
841 
842  USE netcdf_nf_data, ONLY: ik8
843 
844  Integer, Intent(IN) :: ncid, varid
845  Integer, Intent(IN) :: start(*), counts(*), strides(*), maps(*)
846  Integer(KIND=IK8), Intent(OUT) :: ivals(*)
847  Integer :: status
848 
849  End Function nf_get_varm_int64
850 End Interface
851 !--------------------------------- nf_get_var_int64 --------------------------
852 Interface
853  Function nf_get_var_int64(ncid, varid, ivals) RESULT(status)
854 
855  USE netcdf_nf_data, ONLY: ik8
856 
857  Integer, Intent(IN) :: ncid, varid
858  Integer(KIND=IK8), Intent(OUT) :: ivals(*)
859  Integer :: status
860 
861  End Function nf_get_var_int64
862 End Interface
863 !--------------------------------- nf_set_chunk_cache -------------------------
864 Interface
865  Function nf_set_chunk_cache(chunk_size, nelems, preemption) RESULT(status)
866 
867  Integer, Intent(IN) :: chunk_size, nelems, preemption
868  Integer :: status
869 
870  End Function nf_set_chunk_cache
871 End Interface
872 !--------------------------------- nf_get_chunk_cache -------------------------
873 Interface
874  Function nf_get_chunk_cache(chunk_size, nelems, preemption) RESULT(status)
875 
876  Integer, Intent(INOUT) :: chunk_size, nelems, preemption
877  Integer :: status
878 
879  End Function nf_get_chunk_cache
880 End Interface
881 !--------------------------------- nf_set_var_chunk_cache ---------------------
882 Interface
883  Function nf_set_var_chunk_cache(ncid, varid, chunk_size, nelems, preemption) RESULT(status)
884 
885 ! USE netcdf_nf_data
886 
887  Implicit NONE
888 
889  Integer, Intent(IN) :: ncid, varid, chunk_size, nelems, preemption
890  Integer :: status
891 
892  End Function nf_set_var_chunk_cache
893 End Interface
894 !--------------------------------- nf_get_var_chunk_cache ---------------------
895 Interface
896  Function nf_get_var_chunk_cache(ncid, varid, chunk_size, nelems, preemption) RESULT(status)
897 
898 ! get chunk cache size. Note this follows the fort-nc4 version which uses
899 ! uses nc_get_var_chunk_cache_ints to avoid size_t issues with fortran.
900 
901 ! USE netcdf_nf_data
902 
903  Implicit NONE
904 
905  Integer, Intent(IN) :: ncid, varid
906  Integer, Intent(INOUT) :: chunk_size, nelems, preemption
907  Integer :: status
908 
909  End Function nf_get_var_chunk_cache
910 End Interface
911 
912 ! Declare external values for functions that use C_CHAR strings to pass
913 ! data of different types
914 
915  Integer, External :: nf_insert_enum
916  Integer, External :: nf_inq_enum_member
917  Integer, External :: nf_put_att
918  Integer, External :: nf_get_att
919  Integer, External :: nf_put_vlen_element
920  Integer, External :: nf_get_vlen_element
921  Integer, External :: nf_free_vlen
922  Integer, External :: nf_free_vlens
923  Integer, External :: nf_free_string
924  Integer, External :: nf_put_var
925  Integer, External :: nf_get_var
926  Integer, External :: nf_def_var_fill
927  Integer, External :: nf_inq_var_fill
928 
929 End Module netcdf4_nf_interfaces

Return to the Main Unidata NetCDF page.
Generated on Sun Mar 27 2016 13:46:12 for NetCDF-Fortran. NetCDF is a Unidata library.