1 Module netcdf4_nc_interfaces
33 USE netcdf_nc_interfaces
58 USE iso_c_binding
, ONLY: c_int, c_char
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
72 USE iso_c_binding
, ONLY: c_int, c_char
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
86 USE iso_c_binding
, ONLY: c_int
88 Integer(KIND=C_INT),
VALUE :: ncid, varid, par_access
98 USE iso_c_binding
, ONLY: c_int, c_char
100 Integer(KIND=C_INT),
VALUE :: ncid
101 Character(KIND=C_CHAR),
Intent(IN) :: name(*)
102 Integer(KIND=C_INT),
Intent(INOUT) :: grp_ncid
112 USE iso_c_binding
, ONLY: c_int
114 Integer(KIND=C_INT),
VALUE :: ncid
115 Integer(KIND=C_INT),
Intent(INOUT) :: numgrps
116 Integer(KIND=C_INT),
Intent(INOUT) :: ncids(*)
126 USE iso_c_binding
, ONLY: c_int, c_char
128 Integer(KIND=C_INT),
VALUE :: ncid
129 Character(KIND=C_CHAR),
Intent(INOUT) :: name(*)
139 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char
141 Integer(KIND=C_INT),
VALUE :: ncid
142 Integer(KIND=C_SIZE_T),
Intent(INOUT) :: nlen
143 Character(KIND=C_CHAR),
Intent(INOUT) :: name(*)
153 USE iso_c_binding
, ONLY: c_int, c_size_t
155 Integer(KIND=C_INT),
VALUE :: ncid
156 Integer(KIND=C_SIZE_T),
Intent(INOUT) :: nlen
166 USE iso_c_binding
, ONLY: c_int, c_char
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(*)
180 USE iso_c_binding
, ONLY: c_int
182 Integer(KIND=C_INT),
VALUE :: ncid
183 Integer(KIND=C_INT),
Intent(INOUT) :: parent_ncid
193 USE iso_c_binding
, ONLY: c_int, c_char
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
207 USE iso_c_binding
, ONLY: c_int
209 Integer(KIND=C_INT),
VALUE :: ncid
210 Integer(KIND=C_INT),
Intent(INOUT) :: nvars
211 Integer(KIND=C_INT),
Intent(INOUT) :: varids(*)
221 USE iso_c_binding
, ONLY: c_int
223 Integer(KIND=C_INT),
VALUE :: ncid, parent
224 Integer(KIND=C_INT),
Intent(INOUT) :: ndims
225 Integer(KIND=C_INT),
Intent(INOUT) :: dimids(*)
235 USE iso_c_binding
, ONLY: c_int
237 Integer(KIND=C_INT),
VALUE :: ncid
238 Integer(KIND=C_INT),
Intent(INOUT) :: ntypes
239 Integer(KIND=C_INT),
Intent(INOUT) :: typeids(*)
249 USE iso_c_binding
, ONLY: c_int, c_char
251 Integer(KIND=C_INT),
VALUE :: ncid
252 Character(KIND=C_CHAR),
Intent(IN) :: name(*)
253 Integer(KIND=C_INT),
Intent(INOUT) :: typeid
263 USE iso_c_binding
, ONLY: c_int, c_char
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
277 USE iso_c_binding
, ONLY: c_int, c_char
279 Integer(KIND=C_INT),
VALUE :: grpid
280 Character(KIND=C_CHAR),
Intent(IN) :: name(*)
290 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char
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
305 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char
307 Integer(KIND=C_INT),
VALUE :: ncid
308 Integer(KIND=C_INT),
VALUE :: xtype, field_typeid
309 Integer(KIND=C_SIZE_T),
VALUE :: offset
310 Character(KIND=C_CHAR),
Intent(IN) :: name(*)
319 ndims, dim_sizes) bind(c)
321 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char
323 Integer(KIND=C_INT),
VALUE :: ncid, ndims
324 Integer(KIND=C_INT),
VALUE :: xtype, field_typeid
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(*)
337 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char
339 Integer(KIND=C_INT),
VALUE :: ncid
340 Integer(KIND=C_INT),
VALUE :: xtype
341 Character(KIND=C_CHAR),
Intent(IN) :: name(*)
342 Integer(KIND=C_SIZE_T),
Intent(INOUT) :: isize
352 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char
354 Integer(KIND=C_INT),
VALUE :: ncid
355 Integer(KIND=C_INT),
VALUE :: xtype
356 Character(KIND=C_CHAR),
Intent(INOUT) :: name(*)
357 Integer(KIND=C_SIZE_T),
Intent(INOUT) :: isize, nfieldsp
367 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char
369 Integer(KIND=C_INT),
VALUE :: ncid
370 Integer(KIND=C_INT),
VALUE :: xtype
371 Character(KIND=C_CHAR),
Intent(INOUT) :: name(*)
381 USE iso_c_binding
, ONLY: c_int, c_size_t
383 Integer(KIND=C_INT),
VALUE :: ncid
384 Integer(KIND=C_INT),
VALUE :: xtype
385 Integer(KIND=C_SIZE_T),
Intent(INOUT) :: isize
395 USE iso_c_binding
, ONLY: c_int, c_size_t
397 Integer(KIND=C_INT),
VALUE :: ncid
398 Integer(KIND=C_INT),
VALUE :: xtype
399 Integer(KIND=C_SIZE_T),
Intent(INOUT) :: nfieldsp
408 field_typeidp, ndimsp, dim_sizesp) bind(c)
410 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char
412 Integer(KIND=C_INT),
VALUE :: ncid, fieldid
413 Integer(KIND=C_INT),
VALUE :: xtype
414 Integer(KIND=C_INT),
Intent(INOUT) :: field_typeidp
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(*)
428 USE iso_c_binding
, ONLY: c_int, c_size_t
430 Integer(KIND=C_INT),
VALUE :: ncid, fieldid
431 Integer(KIND=C_INT),
VALUE :: xtype
432 Integer(KIND=C_SIZE_T),
Intent(INOUT) :: offsetp
442 USE iso_c_binding
, ONLY: c_int, c_char
444 Integer(KIND=C_INT),
VALUE :: ncid, fieldid
445 Integer(KIND=C_INT),
VALUE :: xtype
446 Character(KIND=C_CHAR),
Intent(INOUT) :: name(*)
456 USE iso_c_binding
, ONLY: c_int, c_char
458 Integer(KIND=C_INT),
VALUE :: ncid
459 Integer(KIND=C_INT),
VALUE :: xtype
460 Character(KIND=C_CHAR),
Intent(IN) :: name(*)
461 Integer(KIND=C_INT),
Intent(INOUT) :: fieldidp
471 USE iso_c_binding
, ONLY: c_int
473 Integer(KIND=C_INT),
VALUE :: ncid, fieldid
474 Integer(KIND=C_INT),
VALUE :: xtype
475 Integer(KIND=C_INT),
Intent(INOUT) :: field_typeidp
485 USE iso_c_binding
, ONLY: c_int
487 Integer(KIND=C_INT),
VALUE :: ncid, fieldid
488 Integer(KIND=C_INT),
VALUE :: xtype
489 Integer(KIND=C_INT),
Intent(INOUT) :: ndimsp
499 USE iso_c_binding
, ONLY: c_int
501 Integer(KIND=C_INT),
VALUE :: ncid, fieldid
502 Integer(KIND=C_INT),
VALUE :: xtype
503 Integer(KIND=C_INT),
Intent(INOUT) :: dim_sizes(*)
513 USE iso_c_binding
, ONLY: c_int, c_char
515 Integer(KIND=C_INT),
VALUE :: ncid
516 Integer(KIND=C_INT),
VALUE :: base_typeid
517 Integer(KIND=C_INT),
Intent(INOUT) :: xtypep
518 Character(KIND=C_CHAR),
Intent(IN) :: name(*)
526 Function nc_inq_vlen(ncid, xtype, name, datum_sizep, base_nc_typep) BIND(C)
528 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char
530 Integer(KIND=C_INT),
VALUE :: ncid
531 Integer(KIND=C_INT),
VALUE :: xtype
532 Integer(KIND=C_SIZE_T),
Intent(INOUT) :: datum_sizep
533 Integer(KIND=C_INT),
Intent(INOUT) :: base_nc_typep
534 Character(KIND=C_CHAR),
Intent(INOUT) :: name(*)
543 nfieldsp, classp) bind(c)
545 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char
547 Integer(KIND=C_INT),
VALUE :: ncid
548 Integer(KIND=C_INT),
VALUE :: xtype
549 Integer(KIND=C_SIZE_T),
Intent(INOUT) :: isize , nfieldsp
550 Integer(KIND=C_INT),
Intent(INOUT) :: base_nc_typep
551 Integer(KIND=C_INT),
Intent(INOUT) :: classp
552 Character(KIND=C_CHAR),
Intent(INOUT) :: name(*)
562 USE iso_c_binding
, ONLY: c_int, c_char
564 Integer(KIND=C_INT),
VALUE :: ncid
565 Integer(KIND=C_INT),
VALUE :: base_typeid
566 Integer(KIND=C_INT),
Intent(OUT) :: typeidp
567 Character(KIND=C_CHAR),
Intent(IN) :: name(*)
577 USE iso_c_binding
, ONLY: c_int, c_char, c_ptr
579 Integer(KIND=C_INT),
VALUE :: ncid
580 Integer(KIND=C_INT),
VALUE :: xtype
581 Type(c_ptr),
VALUE :: values
582 Character(KIND=C_CHAR),
Intent(IN) :: name(*)
590 Function nc_inq_enum(ncid, xtype, name, base_nc_typep, base_sizep, &
591 num_membersp) bind(c)
593 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char
595 Integer(KIND=C_INT),
VALUE :: ncid
596 Integer(KIND=C_INT),
VALUE :: xtype
597 Integer(KIND=C_INT),
Intent(INOUT) :: base_nc_typep
598 Integer(KIND=C_SIZE_T),
Intent(INOUT) :: base_sizep, num_membersp
599 Character(KIND=C_CHAR),
Intent(INOUT) :: name(*)
609 USE iso_c_binding
, ONLY: c_int, c_char
611 Integer(KIND=C_INT),
VALUE :: ncid, idx
612 Integer(KIND=C_INT),
VALUE :: xtype
613 Character(KIND=C_CHAR),
Intent(OUT) ::
value(*)
614 Character(KIND=C_CHAR),
Intent(INOUT) :: name(*)
624 USE iso_c_binding
, ONLY: c_int, c_long_long, c_char
626 Integer(KIND=C_INT),
VALUE :: ncid
627 Integer(KIND=C_INT),
VALUE :: xtype
628 Integer(KIND=C_LONG_LONG),
VALUE :: val
629 Character(KIND=C_CHAR),
Intent(INOUT) :: name(*)
639 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char
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
654 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char
656 Integer(KIND=C_INT),
VALUE :: ncid
657 Integer(KIND=C_INT),
VALUE :: xtype
658 Integer(KIND=C_SIZE_T),
Intent(OUT) :: sizep
659 Character(KIND=C_CHAR),
Intent(OUT) :: name(*)
669 USE iso_c_binding
, ONLY: c_int, c_ptr
671 Integer(KIND=C_INT),
VALUE :: ncid, varid, no_fill
672 Type(c_ptr),
VALUE :: cfill_value_p
682 USE iso_c_binding
, ONLY: c_int, c_char
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(*)
696 USE iso_c_binding
, ONLY: c_int
698 Integer(KIND=C_INT),
VALUE :: ncid, varid
699 Integer(KIND=C_INT),
Intent(INOUT) :: options_mask, pixels_per_block
709 USE iso_c_binding
, ONLY: c_int
711 Integer(KIND=C_INT),
VALUE :: ncid, varid, fletcher32
721 USE iso_c_binding
, ONLY: c_int
723 Integer(KIND=C_INT),
VALUE :: ncid, varid
724 Integer(KIND=C_INT),
Intent(INOUT) :: fletcher32
734 USE iso_c_binding
, ONLY: c_int
736 Integer(KIND=C_INT),
VALUE :: ncid, varid, shuffle, deflate, deflate_level
746 USE iso_c_binding
, ONLY: c_int
748 Integer(KIND=C_INT),
VALUE :: ncid, varid
749 Integer(KIND=C_INT),
Intent(INOUT) :: shuffle, deflate, deflate_level
759 USE iso_c_binding
, ONLY: c_int, c_size_t
761 Integer(KIND=C_INT),
VALUE :: ncid, varid, contiguousp
762 Integer(KIND=C_SIZE_T),
Intent(INOUT) :: chunksizesp
772 USE iso_c_binding
, ONLY: c_int, c_size_t
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(*)
786 USE iso_c_binding
, ONLY: c_int, c_ptr
788 Integer(KIND=C_INT),
VALUE :: ncid, varid, contiguousp
789 Type(c_ptr),
VALUE :: chunksizesp
799 USE iso_c_binding
, ONLY: c_int
801 Integer(KIND=C_INT),
VALUE :: ncid, varid
802 Integer(KIND=C_INT),
Intent(INOUT) :: contiguousp
803 Integer(KIND=C_INT),
Intent(INOUT) :: chunksizesp(*)
813 USE iso_c_binding
, ONLY: c_int
815 Integer(KIND=C_INT),
VALUE :: ncid, varid, endiann
825 USE iso_c_binding
, ONLY: c_int
827 Integer(KIND=C_INT),
VALUE :: ncid, varid
828 Integer(KIND=C_INT),
Intent(INOUT) :: endiann
836 Function nc_put_att(ncid, varid, name, xtype, nlen, op) BIND(C)
838 USE iso_c_binding
, ONLY: c_int, c_char, c_size_t, c_ptr
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
853 USE iso_c_binding
, ONLY: c_int, c_char
855 Integer(KIND=C_INT),
VALUE :: ncid, varid
856 Character(KIND=C_CHAR),
Intent(IN) :: name(*)
857 Character(KIND=C_CHAR),
Intent(OUT) :: op(*)
867 USE iso_c_binding
, ONLY: c_int, c_size_t, c_ptr, c_char
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
882 USE iso_c_binding
, ONLY: c_int, c_char, c_size_t, c_ptr
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(*)
897 USE iso_c_binding
, ONLY: c_ptr, c_int
899 Type(c_ptr),
VALUE :: vl
909 USE iso_c_binding
, ONLY: c_ptr, c_int, c_size_t
911 Integer(C_SIZE_T),
Intent(IN) :: len
912 Type(c_ptr),
VALUE :: vl
922 USE iso_c_binding
, ONLY: c_ptr, c_int, c_size_t
924 Integer(C_SIZE_T),
Intent(IN) :: len
925 Type(c_ptr),
VALUE :: vl
935 USE iso_c_binding
, ONLY: c_int, c_long_long, c_ptr
937 Integer(KIND=C_INT),
VALUE :: ncid, varid
938 Type(c_ptr),
VALUE :: indexp
939 Integer(KIND=C_LONG_LONG),
Intent(IN) :: op
949 USE iso_c_binding
, ONLY: c_int, c_long_long, c_ptr
951 Integer(KIND=C_INT),
VALUE :: ncid, varid
952 Type(c_ptr),
VALUE :: indexp
953 Integer(KIND=C_LONG_LONG),
Intent(OUT) :: ip
963 USE iso_c_binding
, ONLY: c_int, c_long_long, c_ptr
965 Integer(KIND=C_INT),
VALUE :: ncid, varid
966 Type(c_ptr),
VALUE :: startp, countp
967 Integer(KIND=C_LONG_LONG),
Intent(IN) :: op(*)
977 USE iso_c_binding
, ONLY: c_int, c_long_long, c_ptr
979 Integer(KIND=C_INT),
VALUE :: ncid, varid
980 Type(c_ptr),
VALUE :: startp, countp
981 Integer(KIND=C_LONG_LONG),
Intent(OUT) :: ip(*)
992 USE iso_c_binding
, ONLY: c_int, c_ptr, c_long_long
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(*)
1007 USE iso_c_binding
, ONLY: c_int, c_ptr, c_long_long
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(*)
1021 USE iso_c_binding
, ONLY: c_int, c_ptr, c_long_long
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(*)
1035 USE iso_c_binding
, ONLY: c_int, c_ptr, c_long_long
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(*)
1049 USE iso_c_binding
, ONLY: c_int, c_long_long
1051 Integer(KIND=C_INT),
VALUE :: ncid, varid
1052 Integer(KIND=C_LONG_LONG),
Intent(IN) :: op(*)
1062 USE iso_c_binding
, ONLY: c_int, c_long_long
1064 Integer(KIND=C_INT),
VALUE :: ncid, varid
1065 Integer(KIND=C_LONG_LONG),
Intent(OUT) :: ip(*)
1075 USE iso_c_binding
, ONLY: c_int
1077 Integer(KIND=C_INT),
VALUE :: size, nelems, preemption
1087 USE iso_c_binding
, ONLY: c_int
1089 Integer(KIND=C_INT),
Intent(INOUT) :: size, nelems, preemption
1099 USE iso_c_binding
, ONLY: c_int
1101 Integer(KIND=C_INT),
VALUE :: ncid, varid, size, nelems, preemption
1111 USE iso_c_binding
, ONLY: c_int
1113 Integer(KIND=C_INT),
VALUE :: ncid, varid
1114 Integer(KIND=C_INT),
Intent(INOUT) :: size, nelems, preemption
1123 USE iso_c_binding
, ONLY: c_size_t, c_float, c_int
1125 Integer(KIND=C_SIZE_T),
VALUE :: size, nelems
1126 Real(KIND=C_FLOAT),
VALUE :: preemption
1136 USE iso_c_binding
, ONLY: c_size_t, c_float, c_int
1138 Integer(KIND=C_SIZE_T),
Intent(INOUT) :: size, nelems
1139 Real(KIND=C_FLOAT),
Intent(INOUT) :: preemption
1149 USE iso_c_binding
, ONLY: c_int, c_ptr
1151 Integer(KIND=C_INT),
VALUE :: ncid, varid
1152 Type(c_ptr),
VALUE :: op
1162 USE iso_c_binding
, ONLY: c_int, c_char
1164 Integer(KIND=C_INT),
VALUE :: ncid, varid
1165 Character(KIND=C_CHAR),
Intent(INOUT) :: ip(*)
1173 End Module netcdf4_nc_interfaces