54 USE iso_c_binding
, ONLY: c_int
56 Integer(C_INT),
VALUE :: val
64 USE iso_c_binding
, ONLY: c_int
66 Integer(C_INT),
Intent(OUT) :: val
72 Function c_nccre(pathname, clobmode, rcode) BIND(C)
74 USE iso_c_binding
, ONLY: c_int, c_char
76 Character(KIND=C_CHAR),
Intent(IN) :: pathname(*)
77 Integer(C_INT),
VALUE :: clobmode
78 Integer(C_INT),
Intent(OUT) :: rcode
80 Integer(C_INT) :: c_nccre
86 Function c_ncopn(pathname, rwmode, rcode) BIND(C)
88 USE iso_c_binding
, ONLY: c_int, c_char
90 Character(KIND=C_CHAR),
Intent(IN) :: pathname(*)
91 Integer(C_INT),
VALUE :: rwmode
92 Integer(C_INT),
Intent(OUT) :: rcode
94 Integer(C_INT) :: c_ncopn
100 Function c_ncddef(ncid, dimname, dimlen, rcode) BIND(C)
102 USE iso_c_binding
, ONLY: c_int, c_char
104 Integer(C_INT),
VALUE :: ncid, dimlen
105 Character(KIND=C_CHAR),
Intent(IN) :: dimname(*)
106 Integer(C_INT),
Intent(OUT) :: rcode
108 Integer(C_INT) :: c_ncddef
114 Function c_ncdid(ncid, dimname, rcode) BIND(C)
116 USE iso_c_binding
, ONLY: c_int, c_char
118 Integer(C_INT),
VALUE :: ncid
119 Character(KIND=C_CHAR),
Intent(IN) :: dimname(*)
120 Integer(C_INT),
Intent(OUT) :: rcode
122 Integer(C_INT) :: c_ncdid
128 Function c_ncvdef(ncid, varname, datatype, ndims, dimidp, rcode) BIND(C)
130 USE iso_c_binding
, ONLY: c_int, c_char, c_ptr
132 Integer(C_INT),
VALUE :: ncid
133 Character(KIND=C_CHAR),
Intent(IN) :: varname(*)
134 Integer(C_INT),
VALUE :: datatype
135 Integer(C_INT),
VALUE :: ndims
136 Type(c_ptr),
VALUE :: dimidp
137 Integer(C_INT),
Intent(OUT) :: rcode
139 Integer(C_INT) :: c_ncvdef
145 Function c_ncvid(ncid, varname, rcode) BIND(C)
147 USE iso_c_binding
, ONLY: c_int, c_char
149 Integer(C_INT),
VALUE :: ncid
150 Character(KIND=C_CHAR),
Intent(IN) :: varname(*)
151 Integer(C_INT),
Intent(OUT) :: rcode
153 Integer(C_INT) :: c_ncvid
161 USE iso_c_binding
, ONLY: c_int
163 Integer(C_INT),
VALUE :: datatype
164 Integer(C_INT),
Intent(OUT) :: rcode
166 Integer(C_INT) :: c_nctlen
174 USE iso_c_binding
, ONLY: c_int
176 Integer(C_INT),
VALUE :: ncid
177 Integer(C_INT),
Intent(OUT) :: rcode
185 USE iso_c_binding
, ONLY: c_int
187 Integer(C_INT),
VALUE :: ncid
188 Integer(C_INT),
Intent(OUT) :: rcode
196 USE iso_c_binding
, ONLY: c_int
198 Integer(C_INT),
VALUE :: ncid
199 Integer(C_INT),
Intent(OUT) :: rcode
205 Subroutine c_ncinq(ncid, indims, invars, inatts, irecdim, rcode) BIND(C)
207 USE iso_c_binding
, ONLY: c_int
209 Integer(C_INT),
VALUE :: ncid
210 Integer(C_INT),
Intent(OUT) :: indims, invars, inatts, irecdim, rcode
218 USE iso_c_binding
, ONLY: c_int
220 Integer(C_INT),
VALUE :: ncid
221 Integer(C_INT),
Intent(OUT) :: rcode
229 USE iso_c_binding
, ONLY: c_int
231 Integer(C_INT),
VALUE :: ncid
232 Integer(C_INT),
Intent(OUT) :: rcode
238 Subroutine c_ncdinq(ncid, dimid, dimname, size, rcode) BIND(C)
240 USE iso_c_binding
, ONLY: c_int, c_char
242 Integer(C_INT),
VALUE :: ncid , dimid
243 Character(KIND=C_CHAR),
Intent(OUT) :: dimname(*)
244 Integer(C_INT),
Intent(OUT) :: size, rcode
250 Subroutine c_ncdren(ncid, dimid, dimname, rcode) BIND(C)
252 USE iso_c_binding
, ONLY: c_int, c_char
254 Integer(C_INT),
VALUE :: ncid , dimid
255 Character(KIND=C_CHAR),
Intent(IN) :: dimname(*)
256 Integer(C_INT),
Intent(OUT) :: rcode
262 Subroutine c_ncvinq(ncid, varid, varname, datatype, indims, dimarray, &
263 inatts, rcode) bind(c)
265 USE iso_c_binding
, ONLY: c_int, c_char
267 Integer(C_INT),
VALUE :: ncid , varid
268 Character(KIND=C_CHAR),
Intent(INOUT) :: varname(*)
269 Integer(C_INT),
Intent(OUT) :: datatype
270 Integer(C_INT),
Intent(OUT) :: dimarray(*)
271 Integer(C_INT),
Intent(OUT) :: indims, inatts, rcode
277 Subroutine c_ncvpt1(ncid, varid, indices, value, rcode) BIND(C)
279 USE iso_c_binding
, ONLY: c_int, c_ptr
281 Integer(C_INT),
VALUE :: ncid , varid
282 TYPE(c_ptr),
VALUE :: indices
283 Type(c_ptr),
VALUE :: value
284 Integer(C_INT),
Intent(OUT) :: rcode
290 Subroutine c_ncvp1c(ncid, varid, indices, value, rcode) BIND(C)
292 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
294 Integer(C_INT),
VALUE :: ncid , varid
295 TYPE(c_ptr),
VALUE :: indices
296 Character(KIND=C_CHAR),
Intent(IN) ::
value(*)
297 Integer(C_INT),
Intent(OUT) :: rcode
303 Subroutine c_ncvpt(ncid, varid, start, count, value, rcode) BIND(C)
305 USE iso_c_binding
, ONLY: c_int, c_ptr
307 Integer(C_INT),
VALUE :: ncid , varid
308 Type(c_ptr),
VALUE :: start, count
309 Type(c_ptr),
VALUE :: value
310 Integer(C_INT),
Intent(OUT) :: rcode
316 Subroutine c_ncvptc(ncid, varid, start, count, value, lenstr, rcode) BIND(C)
318 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
320 Integer(C_INT),
VALUE :: ncid , varid, lenstr
321 Type(c_ptr),
VALUE :: start, count
322 Character(KIND=C_CHAR),
Intent(IN) ::
value(*)
323 Integer(C_INT),
Intent(OUT) :: rcode
329 Subroutine c_ncvptg(ncid, varid, start, count, strides, imap, value, &
332 USE iso_c_binding
, ONLY: c_int, c_ptr
334 Integer(C_INT),
VALUE :: ncid , varid
335 Type(c_ptr),
VALUE :: start, count, strides, imap
336 Type(c_ptr),
VALUE :: value
337 Integer(C_INT),
Intent(OUT) :: rcode
343 Subroutine c_ncvpgc(ncid, varid, start, count, strides, imap, value, &
346 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
348 Integer(C_INT),
VALUE :: ncid , varid
349 Type(c_ptr),
VALUE :: start, count, strides, imap
350 Character(KIND=C_CHAR),
Intent(IN) ::
value(*)
351 Integer(C_INT),
Intent(OUT) :: rcode
357 Subroutine c_ncvgt1(ncid, varid, indices, value, rcode) BIND(C)
359 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
361 Integer(C_INT),
VALUE :: ncid , varid
362 Type(c_ptr),
VALUE :: indices
363 Character(KIND=C_CHAR),
Intent(OUT) ::
value(*)
364 Integer(C_INT),
Intent(OUT) :: rcode
370 Subroutine c_ncvg1c(ncid, varid, indices, value, rcode) BIND(C)
372 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
374 Integer(C_INT),
VALUE :: ncid , varid
375 Type(c_ptr),
VALUE :: indices
376 Character(KIND=C_CHAR),
Intent(INOUT) ::
value(*)
377 Integer(C_INT),
Intent(OUT) :: rcode
383 Subroutine c_ncvgt(ncid, varid, start, count, value, rcode) BIND(C)
385 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
387 Integer(C_INT),
VALUE :: ncid , varid
388 Type(c_ptr),
VALUE :: start, count
389 Character(KIND=C_CHAR),
Intent(OUT) ::
value(*)
390 Integer(C_INT),
Intent(OUT) :: rcode
396 Subroutine c_ncvgtc(ncid, varid, start, count, value, lenstr, rcode) BIND(C)
398 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
400 Integer(C_INT),
VALUE :: ncid , varid, lenstr
401 Type(c_ptr),
VALUE :: start, count
402 Character(KIND=C_CHAR),
Intent(INOUT) ::
value(*)
403 Integer(C_INT),
Intent(OUT) :: rcode
409 Subroutine c_ncvgtg(ncid, varid, start, count, strides, imap, value, &
412 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
414 Integer(C_INT),
VALUE :: ncid , varid
415 Type(c_ptr),
VALUE :: start, count, strides, imap
416 Character(KIND=C_CHAR),
Intent(OUT) ::
value(*)
417 Integer(C_INT),
Intent(OUT) :: rcode
423 Subroutine c_ncvggc(ncid, varid, start, count, strides, imap, value, &
426 USE iso_c_binding
, ONLY: c_int, c_ptr, c_char
428 Integer(C_INT),
VALUE :: ncid , varid
429 Type(c_ptr),
VALUE :: start, count, strides, imap
430 Character(KIND=C_CHAR),
Intent(OUT) ::
value(*)
431 Integer(C_INT),
Intent(OUT) :: rcode
437 Subroutine c_ncvren(ncid, varid, varname, rcode) BIND(C)
439 USE iso_c_binding
, ONLY: c_int, c_char
441 Integer(C_INT),
VALUE :: ncid , varid
442 Character(KIND=C_CHAR),
Intent(IN) :: varname(*)
443 Integer(C_INT),
Intent(OUT) :: rcode
449 Subroutine c_ncapt(ncid, varid, attname, datatype, attlen, value, &
452 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char, c_ptr
454 Integer(C_INT),
VALUE :: ncid , varid
455 Character(KIND=C_CHAR),
Intent(IN) :: attname(*)
456 Integer(C_INT),
VALUE :: datatype
457 Integer(C_SIZE_T),
VALUE :: attlen
458 Type(c_ptr),
VALUE ::
value 459 Integer(C_INT),
Intent(OUT) :: rcode
465 Subroutine c_ncaptc(ncid, varid, attname, datatype, attlen, string, &
468 USE iso_c_binding
, ONLY: c_int, c_size_t, c_char
470 Integer(C_INT),
VALUE :: ncid , varid
471 Character(KIND=C_CHAR),
Intent(IN) :: attname(*)
472 Integer(C_INT),
VALUE :: datatype
473 Integer(C_SIZE_T),
VALUE :: attlen
474 Character(KIND=C_CHAR),
Intent(IN) :: string(*)
475 Integer(C_INT),
Intent(OUT) :: rcode
481 Subroutine c_ncainq(ncid, varid, attname, datatype, attlen, rcode) BIND(C)
483 USE iso_c_binding
, ONLY: c_int, c_char
485 Integer(C_INT),
VALUE :: ncid , varid
486 Character(KIND=C_CHAR),
Intent(IN) :: attname(*)
487 Integer(C_INT),
Intent(OUT) :: datatype
488 Integer(C_INT),
Intent(OUT) :: attlen
489 Integer(C_INT),
Intent(OUT) :: rcode
495 Subroutine c_ncagt(ncid, varid, attname, value, rcode) BIND(C)
497 USE iso_c_binding
, ONLY: c_int, c_char
499 Integer(C_INT),
VALUE :: ncid , varid
500 Character(KIND=C_CHAR),
Intent(IN) :: attname(*)
501 Character(KIND=C_CHAR),
Intent(OUT) ::
value(*)
502 Integer(C_INT),
Intent(OUT) :: rcode
508 Subroutine c_ncagtc(ncid, varid, attname, value, attlen, rcode) BIND(C)
510 USE iso_c_binding
, ONLY: c_int, c_char
512 Integer(C_INT),
VALUE :: ncid , varid, attlen
513 Character(KIND=C_CHAR),
Intent(IN) :: attname(*)
514 Character(KIND=C_CHAR),
Intent(OUT) ::
value(*)
515 Integer(C_INT),
Intent(OUT) :: rcode
521 Subroutine c_ncacpy(inncid, invarid, attname, outncid, outvarid, &
524 USE iso_c_binding
, ONLY: c_int, c_char
526 Integer(C_INT),
VALUE :: inncid , invarid, outncid, outvarid
527 Character(KIND=C_CHAR),
Intent(IN) :: attname(*)
528 Integer(C_INT),
Intent(OUT) :: rcode
534 Subroutine c_ncanam(ncid, varid, attnum, newname, rcode) BIND(C)
536 USE iso_c_binding
, ONLY: c_int, c_char
538 Integer(C_INT),
VALUE :: ncid , varid, attnum
539 Character(KIND=C_CHAR),
Intent(INOUT) :: newname(*)
540 Integer(C_INT),
Intent(OUT) :: rcode
546 Subroutine c_ncaren(ncid, varid, attnam, newname, rcode) BIND(C)
548 USE iso_c_binding
, ONLY: c_int, c_char
550 Integer(C_INT),
VALUE :: ncid , varid
551 Character(KIND=C_CHAR),
Intent(IN) :: attnam(*), newname(*)
552 Integer(C_INT),
Intent(OUT) :: rcode
558 Subroutine c_ncadel(ncid, varid, attname, rcode) BIND(C)
560 USE iso_c_binding
, ONLY: c_int, c_char
562 Integer(C_INT),
VALUE :: ncid , varid
563 Character(KIND=C_CHAR),
Intent(IN) :: attname(*)
564 Integer(C_INT),
Intent(OUT) :: rcode
572 USE iso_c_binding
, ONLY: c_int
574 Integer(C_INT),
VALUE :: ncid , fillmode
575 Integer(C_INT),
Intent(OUT) :: rcode
577 Integer(C_INT) :: c_ncsfil
587 USE iso_c_binding
, ONLY: c_int, c_size_t
589 Integer(C_INT),
VALUE :: datatype
590 Integer(C_SIZE_T) :: v2data_size
607 Integer(C_INT),
Intent(IN) :: cncid, cvarid
608 Integer(C_INT),
Intent(IN) :: fmap(*)
609 Integer(C_PTRDIFF_T),
Intent(INOUT) :: cmap(:)
610 Integer,
Intent(OUT) :: inullp
612 Integer(C_INT) :: rank, datatype, cstat1, cstat2, cstat3, cstat4
613 Integer(C_SIZE_T) :: total, length, csize
616 Integer(C_INT),
ALLOCATABLE :: dimids(:)
627 If (cstat1/=nc_noerr)
Then 631 If (cstat2/=nc_noerr)
Then 641 ALLOCATE(dimids(rank))
646 If (cstat3 /= nc_noerr)
Then 656 If (cstat4 /= nc_noerr)
Then 662 If (inullp==1)
Return 677 cmap(1:rank) = fmap(rank:1:-1) / csize
subroutine convert_v2_imap(cncid, cvarid, fmap, cmap, inullp)