1 Module netcdf_fortv2_c_interfaces
36 USE netcdf_nc_interfaces
57 USE iso_c_binding
, ONLY: c_int
59 Integer(KIND=C_INT),
VALUE :: val
67 USE iso_c_binding
, ONLY: c_int
69 Integer(KIND=C_INT),
Intent(OUT) :: val
75 Function c_nccre(pathname, clobmode, rcode) BIND(C)
77 USE iso_c_binding
, ONLY: c_int, c_char
79 Character(KIND=C_CHAR),
Intent(IN) :: pathname(*)
80 Integer(KIND=C_INT),
VALUE :: clobmode
81 Integer(KIND=C_INT),
Intent(OUT) :: rcode
89 Function c_ncopn(pathname, rwmode, rcode) BIND(C)
91 USE iso_c_binding
, ONLY: c_int, c_char
93 Character(KIND=C_CHAR),
Intent(IN) :: pathname(*)
94 Integer(KIND=C_INT),
VALUE :: rwmode
95 Integer(KIND=C_INT),
Intent(OUT) :: rcode
103 Function c_ncddef(ncid, dimname, dimlen, rcode) BIND(C)
105 USE iso_c_binding
, ONLY: c_int, c_char
107 Integer(KIND=C_INT),
VALUE :: ncid, dimlen
108 Character(KIND=C_CHAR),
Intent(IN) :: dimname(*)
109 Integer(KIND=C_INT),
Intent(OUT) :: rcode
117 Function c_ncdid(ncid, dimname, rcode) BIND(C)
119 USE iso_c_binding
, ONLY: c_int, c_char
121 Integer(KIND=C_INT),
VALUE :: ncid
122 Character(KIND=C_CHAR),
Intent(IN) :: dimname(*)
123 Integer(KIND=C_INT),
Intent(OUT) :: rcode
131 Function c_ncvdef(ncid, varname, datatype, ndims, dimids, rcode) BIND(C)
133 USE iso_c_binding
, ONLY: c_int, c_char
135 Integer(KIND=C_INT),
VALUE :: ncid
136 Character(KIND=C_CHAR),
Intent(IN) :: varname(*)
137 Integer(KIND=C_INT),
VALUE :: datatype
138 Integer(KIND=C_INT),
VALUE :: ndims
139 Integer(KIND=C_INT),
Intent(IN) :: dimids(*)
140 Integer(KIND=C_INT),
Intent(OUT) :: rcode
148 Function c_ncvid(ncid, varname, rcode) BIND(C)
150 USE iso_c_binding
, ONLY: c_int, c_char
152 Integer(KIND=C_INT),
VALUE :: ncid
153 Character(KIND=C_CHAR),
Intent(IN) :: varname(*)
154 Integer(KIND=C_INT),
Intent(OUT) :: rcode
164 USE iso_c_binding
, ONLY: c_int
166 Integer(KIND=C_INT),
VALUE :: datatype
167 Integer(KIND=C_INT),
Intent(OUT) :: rcode
177 USE iso_c_binding
, ONLY: c_int
179 Integer(KIND=C_INT),
VALUE :: ncid
180 Integer(KIND=C_INT),
Intent(OUT) :: rcode
188 USE iso_c_binding
, ONLY: c_int
190 Integer(KIND=C_INT),
VALUE :: ncid
191 Integer(KIND=C_INT),
Intent(OUT) :: rcode
199 USE iso_c_binding
, ONLY: c_int
201 Integer(KIND=C_INT),
VALUE :: ncid
202 Integer(KIND=C_INT),
Intent(OUT) :: rcode
208 Subroutine c_ncinq(ncid, indims, invars, inatts, irecdim, rcode) BIND(C)
210 USE iso_c_binding
, ONLY: c_int
212 Integer(KIND=C_INT),
VALUE :: ncid
213 Integer(KIND=C_INT),
Intent(OUT) :: indims, invars, inatts, irecdim, rcode
221 USE iso_c_binding
, ONLY: c_int
223 Integer(KIND=C_INT),
VALUE :: ncid
224 Integer(KIND=C_INT),
Intent(OUT) :: rcode
232 USE iso_c_binding
, ONLY: c_int
234 Integer(KIND=C_INT),
VALUE :: ncid
235 Integer(KIND=C_INT),
Intent(OUT) :: rcode
241 Subroutine c_ncdinq(ncid, dimid, dimname, size, rcode) BIND(C)
243 USE iso_c_binding
, ONLY: c_int, c_char
245 Integer(KIND=C_INT),
VALUE :: ncid , dimid
246 Character(KIND=C_CHAR),
Intent(OUT) :: dimname(*)
247 Integer(KIND=C_INT),
Intent(OUT) :: size, rcode
253 Subroutine c_ncdren(ncid, dimid, dimname, rcode) BIND(C)
255 USE iso_c_binding
, ONLY: c_int, c_char
257 Integer(KIND=C_INT),
VALUE :: ncid , dimid
258 Character(KIND=C_CHAR),
Intent(IN) :: dimname(*)
259 Integer(KIND=C_INT),
Intent(OUT) :: rcode
265 Subroutine c_ncvinq(ncid, varid, varname, datatype, indims, dimarray, &
266 inatts, rcode) bind(c)
268 USE iso_c_binding
, ONLY: c_int, c_char
270 Integer(KIND=C_INT),
VALUE :: ncid , varid
271 Character(KIND=C_CHAR),
Intent(INOUT) :: varname(*)
272 Integer(KIND=C_INT),
Intent(OUT) :: datatype
273 Integer(KIND=C_INT),
Intent(OUT) :: dimarray(*)
274 Integer(KIND=C_INT),
Intent(OUT) :: indims, inatts, rcode
280 Subroutine c_ncvpt1(ncid, varid, indices, value, rcode) BIND(C)
282 USE iso_c_binding
, ONLY: c_int, c_ptr
284 Integer(KIND=C_INT),
VALUE :: ncid , varid
285 TYPE(c_ptr),
VALUE :: indices
286 Type(c_ptr),
VALUE :: value
287 Integer(KIND=C_INT),
Intent(OUT) :: rcode
293 Subroutine c_ncvp1c(ncid, varid, indices, value, rcode) BIND(C)
295 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
297 Integer(KIND=C_INT),
VALUE :: ncid , varid
298 TYPE(c_ptr),
VALUE :: indices
299 Character(KIND=C_CHAR),
Intent(IN) ::
value(*)
300 Integer(KIND=C_INT),
Intent(OUT) :: rcode
306 Subroutine c_ncvpt(ncid, varid, start, count, value, rcode) BIND(C)
308 USE iso_c_binding
, ONLY: c_int, c_ptr
310 Integer(KIND=C_INT),
VALUE :: ncid , varid
311 Type(c_ptr),
VALUE :: start, count
312 Type(c_ptr),
VALUE :: value
313 Integer(KIND=C_INT),
Intent(OUT) :: rcode
319 Subroutine c_ncvptc(ncid, varid, start, count, value, lenstr, rcode) BIND(C)
321 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
323 Integer(KIND=C_INT),
VALUE :: ncid , varid, lenstr
324 Type(c_ptr),
VALUE :: start, count
325 Character(KIND=C_CHAR),
Intent(IN) ::
value(*)
326 Integer(KIND=C_INT),
Intent(OUT) :: rcode
332 Subroutine c_ncvptg(ncid, varid, start, count, strides, imap, value, &
335 USE iso_c_binding
, ONLY: c_int, c_ptr
337 Integer(KIND=C_INT),
VALUE :: ncid , varid
338 Type(c_ptr),
VALUE :: start, count, strides, imap
339 Type(c_ptr),
VALUE :: value
340 Integer(KIND=C_INT),
Intent(OUT) :: rcode
346 Subroutine c_ncvpgc(ncid, varid, start, count, strides, imap, value, &
349 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
351 Integer(KIND=C_INT),
VALUE :: ncid , varid
352 Type(c_ptr),
VALUE :: start, count, strides, imap
353 Character(KIND=C_CHAR),
Intent(IN) ::
value(*)
354 Integer(KIND=C_INT),
Intent(OUT) :: rcode
360 Subroutine c_ncvgt1(ncid, varid, indices, value, rcode) BIND(C)
362 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
364 Integer(KIND=C_INT),
VALUE :: ncid , varid
365 Type(c_ptr),
VALUE :: indices
366 Character(KIND=C_CHAR),
Intent(OUT) ::
value(*)
367 Integer(KIND=C_INT),
Intent(OUT) :: rcode
373 Subroutine c_ncvg1c(ncid, varid, indices, value, rcode) BIND(C)
375 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
377 Integer(KIND=C_INT),
VALUE :: ncid , varid
378 Type(c_ptr),
VALUE :: indices
379 Character(KIND=C_CHAR),
Intent(INOUT) ::
value(*)
380 Integer(KIND=C_INT),
Intent(OUT) :: rcode
386 Subroutine c_ncvgt(ncid, varid, start, count, value, rcode) BIND(C)
388 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
390 Integer(KIND=C_INT),
VALUE :: ncid , varid
391 Type(c_ptr),
VALUE :: start, count
392 Character(KIND=C_CHAR),
Intent(OUT) ::
value(*)
393 Integer(KIND=C_INT),
Intent(OUT) :: rcode
399 Subroutine c_ncvgtc(ncid, varid, start, count, value, lenstr, rcode) BIND(C)
401 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
403 Integer(KIND=C_INT),
VALUE :: ncid , varid, lenstr
404 Type(c_ptr),
VALUE :: start, count
405 Character(KIND=C_CHAR),
Intent(INOUT) ::
value(*)
406 Integer(KIND=C_INT),
Intent(OUT) :: rcode
412 Subroutine c_ncvgtg(ncid, varid, start, count, strides, imap, value, &
415 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
417 Integer(KIND=C_INT),
VALUE :: ncid , varid
418 Type(c_ptr),
VALUE :: start, count, strides, imap
419 Character(KIND=C_CHAR),
Intent(OUT) ::
value(*)
420 Integer(KIND=C_INT),
Intent(OUT) :: rcode
426 Subroutine c_ncvggc(ncid, varid, start, count, strides, imap, value, &
429 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
431 Integer(KIND=C_INT),
VALUE :: ncid , varid
432 Type(c_ptr),
VALUE :: start, count, strides, imap
433 Character(KIND=C_CHAR),
Intent(OUT) ::
value(*)
434 Integer(KIND=C_INT),
Intent(OUT) :: rcode
440 Subroutine c_ncvren(ncid, varid, varname, rcode) BIND(C)
442 USE iso_c_binding
, ONLY: c_int, c_char
444 Integer(KIND=C_INT),
VALUE :: ncid , varid
445 Character(KIND=C_CHAR),
Intent(IN) :: varname(*)
446 Integer(KIND=C_INT),
Intent(OUT) :: rcode
452 Subroutine c_ncapt(ncid, varid, attname, datatype, attlen, value, &
455 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char, c_ptr
457 Integer(KIND=C_INT),
VALUE :: ncid , varid
458 Character(KIND=C_CHAR),
Intent(IN) :: attname(*)
459 Integer(KIND=C_INT),
VALUE :: datatype
460 Integer(KIND=C_SIZE_T),
VALUE :: attlen
461 Type(c_ptr),
VALUE ::
value 462 Integer(KIND=C_INT),
Intent(OUT) :: rcode
468 Subroutine c_ncaptc(ncid, varid, attname, datatype, attlen, string, &
471 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char
473 Integer(KIND=C_INT),
VALUE :: ncid , varid
474 Character(KIND=C_CHAR),
Intent(IN) :: attname(*)
475 Integer(KIND=C_INT),
VALUE :: datatype
476 Integer(KIND=C_SIZE_T),
VALUE :: attlen
477 Character(KIND=C_CHAR),
Intent(IN) :: string(*)
478 Integer(KIND=C_INT),
Intent(OUT) :: rcode
484 Subroutine c_ncainq(ncid, varid, attname, datatype, attlen, rcode) BIND(C)
486 USE iso_c_binding
, ONLY: c_int, c_char
488 Integer(KIND=C_INT),
VALUE :: ncid , varid
489 Character(KIND=C_CHAR),
Intent(IN) :: attname(*)
490 Integer(KIND=C_INT),
Intent(OUT) :: datatype
491 Integer(KIND=C_INT),
Intent(OUT) :: attlen
492 Integer(KIND=C_INT),
Intent(OUT) :: rcode
498 Subroutine c_ncagt(ncid, varid, attname, value, rcode) BIND(C)
500 USE iso_c_binding
, ONLY: c_int, c_char
502 Integer(KIND=C_INT),
VALUE :: ncid , varid
503 Character(KIND=C_CHAR),
Intent(IN) :: attname(*)
504 Character(KIND=C_CHAR),
Intent(OUT) ::
value(*)
505 Integer(KIND=C_INT),
Intent(OUT) :: rcode
511 Subroutine c_ncagtc(ncid, varid, attname, value, attlen, rcode) BIND(C)
513 USE iso_c_binding
, ONLY: c_int, c_char
515 Integer(KIND=C_INT),
VALUE :: ncid , varid, attlen
516 Character(KIND=C_CHAR),
Intent(IN) :: attname(*)
517 Character(KIND=C_CHAR),
Intent(OUT) ::
value(*)
518 Integer(KIND=C_INT),
Intent(OUT) :: rcode
524 Subroutine c_ncacpy(inncid, invarid, attname, outncid, outvarid, &
527 USE iso_c_binding
, ONLY: c_int, c_char
529 Integer(KIND=C_INT),
VALUE :: inncid , invarid, outncid, outvarid
530 Character(KIND=C_CHAR),
Intent(IN) :: attname(*)
531 Integer(KIND=C_INT),
Intent(OUT) :: rcode
537 Subroutine c_ncanam(ncid, varid, attnum, newname, rcode) BIND(C)
539 USE iso_c_binding
, ONLY: c_int, c_char
541 Integer(KIND=C_INT),
VALUE :: ncid , varid, attnum
542 Character(KIND=C_CHAR),
Intent(INOUT) :: newname(*)
543 Integer(KIND=C_INT),
Intent(OUT) :: rcode
549 Subroutine c_ncaren(ncid, varid, attnam, newname, rcode) BIND(C)
551 USE iso_c_binding
, ONLY: c_int, c_char
553 Integer(KIND=C_INT),
VALUE :: ncid , varid
554 Character(KIND=C_CHAR),
Intent(IN) :: attnam(*), newname(*)
555 Integer(KIND=C_INT),
Intent(OUT) :: rcode
561 Subroutine c_ncadel(ncid, varid, attname, rcode) BIND(C)
563 USE iso_c_binding
, ONLY: c_int, c_char
565 Integer(KIND=C_INT),
VALUE :: ncid , varid
566 Character(KIND=C_CHAR),
Intent(IN) :: attname(*)
567 Integer(KIND=C_INT),
Intent(OUT) :: rcode
575 USE iso_c_binding
, ONLY: c_int
577 Integer(KIND=C_INT),
VALUE :: ncid , fillmode
578 Integer(KIND=C_INT),
Intent(OUT) :: rcode
590 USE iso_c_binding
, ONLY: c_int, c_size_t
592 Integer(KIND=C_INT),
VALUE :: datatype
600 Subroutine convert_v2_imap(cncid, cvarid, fmap, cmap, inullp)
617 Integer(KIND=C_INT),
Intent(IN) :: cncid, cvarid
618 Integer(KIND=C_INT),
Intent(IN) :: fmap(*)
619 Integer(KIND=C_PTRDIFF_T),
Intent(INOUT) :: cmap(*)
620 Integer,
Intent(OUT) :: inullp
622 Integer(KIND=C_INT) :: rank, datatype, cstat1, cstat2, cstat3, cstat4
623 Integer(KIND=C_SIZE_T) :: total, length, csize
624 Integer(KIND=C_INT) :: dimids(nc_max_var_dims)
637 If (cstat1/=nc_noerr)
Then 641 If (cstat2/=nc_noerr)
Then 652 If (cstat3 /= nc_noerr)
Then 662 If (cstat4 /= nc_noerr)
Then 668 If (inullp==1)
Return 683 cmap(1:rank) = fmap(rank:1:-1) / csize
687 End Subroutine convert_v2_imap
690 End Module netcdf_fortv2_c_interfaces