1 #include "nfconfig.inc" 47 Integer,
Intent(IN) :: ncid, varid
48 Integer,
Intent(IN) :: start(*), counts(*), strides(*)
49 Character(LEN=*),
Intent(IN) :: text
53 Integer(C_INT) :: cncid, cvarid, cndims, cstat1, cstatus
54 Type(c_ptr) :: cstartptr, ccountsptr, cstridesptr
57 Integer(C_SIZE_T),
ALLOCATABLE,
TARGET :: cstart(:), ccounts(:)
58 Integer(C_PTRDIFF_T),
ALLOCATABLE,
TARGET :: cstrides(:)
65 cstartptr = c_null_ptr
66 ccountsptr = c_null_ptr
67 cstridesptr = c_null_ptr
72 ALLOCATE(cstart(ndims))
73 ALLOCATE(ccounts(ndims))
74 ALLOCATE(cstrides(ndims))
75 cstart(1:ndims) = start(ndims:1:-1) - 1
76 ccounts(1:ndims) = counts(ndims:1:-1)
77 cstrides(1:ndims) = strides(ndims:1:-1)
78 cstartptr = c_loc(cstart)
79 ccountsptr = c_loc(ccounts)
80 cstridesptr = c_loc(cstrides)
101 Integer,
Intent(IN) :: ncid, varid
102 Integer,
Intent(IN) :: start(*), counts(*), strides(*)
103 Character(LEN=1),
Intent(IN) :: text(*)
107 Integer(C_INT) :: cncid, cvarid, cndims, cstat1, cstatus
108 Type(c_ptr) :: cstartptr, ccountsptr, cstridesptr
111 Integer(C_SIZE_T),
ALLOCATABLE,
TARGET :: cstart(:), ccounts(:)
112 Integer(C_PTRDIFF_T),
ALLOCATABLE,
TARGET :: cstrides(:)
119 cstartptr = c_null_ptr
120 ccountsptr = c_null_ptr
121 cstridesptr = c_null_ptr
126 ALLOCATE(cstart(ndims))
127 ALLOCATE(ccounts(ndims))
128 ALLOCATE(cstrides(ndims))
129 cstart(1:ndims) = start(ndims:1:-1) - 1
130 ccounts(1:ndims) = counts(ndims:1:-1)
131 cstrides(1:ndims) = strides(ndims:1:-1)
132 cstartptr = c_loc(cstart)
133 ccountsptr = c_loc(ccounts)
134 cstridesptr = c_loc(cstrides)
153 Integer,
Intent(IN) :: ncid, varid
154 Integer,
Intent(IN) :: start(*), counts(*), strides(*)
155 Integer(NFINT1),
Intent(IN) :: i1vals(*)
159 Integer(C_INT) :: cncid, cvarid, cndims, cstat1, cstatus
160 Type(c_ptr) :: cstartptr, ccountsptr, cstridesptr
163 Integer(C_SIZE_T),
ALLOCATABLE,
TARGET :: cstart(:), ccounts(:)
164 Integer(C_PTRDIFF_T),
ALLOCATABLE,
TARGET :: cstrides(:)
166 If (c_signed_char < 0)
Then 176 cstartptr = c_null_ptr
177 ccountsptr = c_null_ptr
178 cstridesptr = c_null_ptr
183 ALLOCATE(cstart(ndims))
184 ALLOCATE(ccounts(ndims))
185 ALLOCATE(cstrides(ndims))
186 cstart(1:ndims) = start(ndims:1:-1) - 1
187 ccounts(1:ndims) = counts(ndims:1:-1)
188 cstrides(1:ndims) = strides(ndims:1:-1)
189 cstartptr = c_loc(cstart)
190 ccountsptr = c_loc(ccounts)
191 cstridesptr = c_loc(cstrides)
195 #if NF_INT1_IS_C_SIGNED_CHAR 198 #elif NF_INT1_IS_C_SHORT 201 #elif NF_INT1_IS_C_INT 204 #elif NF_INT1_IS_C_LONG 213 cstartptr = c_null_ptr
214 ccountsptr = c_null_ptr
215 cstridesptr = c_null_ptr
216 If (
ALLOCATED(cstrides))
DEALLOCATE(cstrides)
217 If (
ALLOCATED(ccounts))
DEALLOCATE(ccounts)
218 If (
ALLOCATED(cstart))
DEALLOCATE(cstart)
231 Integer,
Intent(IN) :: ncid, varid
232 Integer,
Intent(IN) :: start(*), counts(*), strides(*)
233 Integer(NFINT2),
Intent(IN) :: i2vals(*)
237 Integer(C_INT) :: cncid, cvarid, cndims, cstat1, cstatus
238 Type(c_ptr) :: cstartptr, ccountsptr, cstridesptr
241 Integer(C_SIZE_T),
ALLOCATABLE,
TARGET :: cstart(:), ccounts(:)
242 Integer(C_PTRDIFF_T),
ALLOCATABLE,
TARGET :: cstrides(:)
244 If (c_short < 0)
Then 254 cstartptr = c_null_ptr
255 ccountsptr = c_null_ptr
256 cstridesptr = c_null_ptr
261 ALLOCATE(cstart(ndims))
262 ALLOCATE(ccounts(ndims))
263 ALLOCATE(cstrides(ndims))
264 cstart(1:ndims) = start(ndims:1:-1) - 1
265 ccounts(1:ndims) = counts(ndims:1:-1)
266 cstrides(1:ndims) = strides(ndims:1:-1)
267 cstartptr = c_loc(cstart)
268 ccountsptr = c_loc(ccounts)
269 cstridesptr = c_loc(cstrides)
273 #if NF_INT2_IS_C_SHORT 276 #elif NF_INT2_IS_C_INT 279 #elif NF_INT2_IS_C_LONG 288 cstartptr = c_null_ptr
289 ccountsptr = c_null_ptr
290 cstridesptr = c_null_ptr
291 If (
ALLOCATED(cstrides))
DEALLOCATE(cstrides)
292 If (
ALLOCATED(ccounts))
DEALLOCATE(ccounts)
293 If (
ALLOCATED(cstart))
DEALLOCATE(cstart)
306 Integer,
Intent(IN) :: ncid, varid
307 Integer,
Intent(IN) :: start(*), counts(*), strides(*)
308 Integer(NFINT),
Intent(IN) :: ivals(*)
312 Integer(C_INT) :: cncid, cvarid, cndims, cstat1, cstatus
313 Type(c_ptr) :: cstartptr, ccountsptr, cstridesptr
316 Integer(C_SIZE_T),
ALLOCATABLE,
TARGET :: cstart(:), ccounts(:)
317 Integer(C_PTRDIFF_T),
ALLOCATABLE,
TARGET :: cstrides(:)
324 cstartptr = c_null_ptr
325 ccountsptr = c_null_ptr
326 cstridesptr = c_null_ptr
331 ALLOCATE(cstart(ndims))
332 ALLOCATE(ccounts(ndims))
333 ALLOCATE(cstrides(ndims))
334 cstart(1:ndims) = start(ndims:1:-1) - 1
335 ccounts(1:ndims) = counts(ndims:1:-1)
336 cstrides(1:ndims) = strides(ndims:1:-1)
337 cstartptr = c_loc(cstart)
338 ccountsptr = c_loc(ccounts)
339 cstridesptr = c_loc(cstrides)
346 #elif NF_INT_IS_C_LONG 355 cstartptr = c_null_ptr
356 ccountsptr = c_null_ptr
357 cstridesptr = c_null_ptr
358 If (
ALLOCATED(cstrides))
DEALLOCATE(cstrides)
359 If (
ALLOCATED(ccounts))
DEALLOCATE(ccounts)
360 If (
ALLOCATED(cstart))
DEALLOCATE(cstart)
373 Integer,
Intent(IN) :: ncid, varid
374 Integer,
Intent(IN) :: start(*), counts(*), strides(*)
375 Real(NFREAL),
Intent(IN) :: rvals(*)
379 Integer(C_INT) :: cncid, cvarid, cndims, cstat1, cstatus
380 Type(c_ptr) :: cstartptr, ccountsptr, cstridesptr
383 Integer(C_SIZE_T),
ALLOCATABLE,
TARGET :: cstart(:), ccounts(:)
384 Integer(C_PTRDIFF_T),
ALLOCATABLE,
TARGET :: cstrides(:)
391 cstartptr = c_null_ptr
392 ccountsptr = c_null_ptr
393 cstridesptr = c_null_ptr
398 ALLOCATE(cstart(ndims))
399 ALLOCATE(ccounts(ndims))
400 ALLOCATE(cstrides(ndims))
401 cstart(1:ndims) = start(ndims:1:-1) - 1
402 ccounts(1:ndims) = counts(ndims:1:-1)
403 cstrides(1:ndims) = strides(ndims:1:-1)
404 cstartptr = c_loc(cstart)
405 ccountsptr = c_loc(ccounts)
406 cstridesptr = c_loc(cstrides)
410 #if NF_REAL_IS_C_DOUBLE 422 cstartptr = c_null_ptr
423 ccountsptr = c_null_ptr
424 cstridesptr = c_null_ptr
425 If (
ALLOCATED(cstrides))
DEALLOCATE(cstrides)
426 If (
ALLOCATED(ccounts))
DEALLOCATE(ccounts)
427 If (
ALLOCATED(cstart))
DEALLOCATE(cstart)
440 Integer,
Intent(IN) :: ncid, varid
441 Integer,
Intent(IN) :: start(*), counts(*), strides(*)
442 Real(RK8),
Intent(IN) :: dvals(*)
446 Integer(C_INT) :: cncid, cvarid, cndims, cstat1, cstatus
447 Type(c_ptr) :: cstartptr, ccountsptr, cstridesptr
450 Integer(C_SIZE_T),
ALLOCATABLE,
TARGET :: cstart(:), ccounts(:)
451 Integer(C_PTRDIFF_T),
ALLOCATABLE,
TARGET :: cstrides(:)
458 cstartptr = c_null_ptr
459 ccountsptr = c_null_ptr
460 cstridesptr = c_null_ptr
465 ALLOCATE(cstart(ndims))
466 ALLOCATE(ccounts(ndims))
467 ALLOCATE(cstrides(ndims))
468 cstart(1:ndims) = start(ndims:1:-1) - 1
469 ccounts(1:ndims) = counts(ndims:1:-1)
470 cstrides(1:ndims) = strides(ndims:1:-1)
471 cstartptr = c_loc(cstart)
472 ccountsptr = c_loc(ccounts)
473 cstridesptr = c_loc(cstrides)
484 cstartptr = c_null_ptr
485 ccountsptr = c_null_ptr
486 cstridesptr = c_null_ptr
487 If (
ALLOCATED(cstrides))
DEALLOCATE(cstrides)
488 If (
ALLOCATED(ccounts))
DEALLOCATE(ccounts)
489 If (
ALLOCATED(cstart))
DEALLOCATE(cstart)
493 Function nf_put_vars(ncid, varid, start, counts, strides, values) &
504 Integer,
Intent(IN) :: ncid, varid
505 Integer,
Intent(IN) :: start(*), counts(*), strides(*)
506 Character(KIND=C_CHAR),
Intent(IN),
TARGET :: values(*)
509 Integer(C_INT) :: cncid, cvarid, cndims, cstat1, cstatus
510 Type(c_ptr) :: cstartptr, ccountsptr, cstridesptr, cvaluesptr
513 Integer(C_SIZE_T),
ALLOCATABLE,
TARGET :: cstart(:), ccounts(:)
514 Integer(C_PTRDIFF_T),
ALLOCATABLE,
TARGET :: cstrides(:)
521 cstartptr = c_null_ptr
522 ccountsptr = c_null_ptr
523 cstridesptr = c_null_ptr
528 ALLOCATE(cstart(ndims))
529 ALLOCATE(ccounts(ndims))
530 ALLOCATE(cstrides(ndims))
531 cstart(1:ndims) = start(ndims:1:-1) - 1
532 ccounts(1:ndims) = counts(ndims:1:-1)
533 cstrides(1:ndims) = strides(ndims:1:-1)
534 cstartptr = c_loc(cstart)
535 ccountsptr = c_loc(ccounts)
536 cstridesptr = c_loc(cstrides)
540 cvaluesptr = c_loc(values)
542 cstatus =
nc_put_vars(cncid, cvarid, cstartptr, ccountsptr, &
543 cstridesptr, cvaluesptr)
549 cstartptr = c_null_ptr
550 ccountsptr = c_null_ptr
551 cstridesptr = c_null_ptr
552 If (
ALLOCATED(cstrides))
DEALLOCATE(cstrides)
553 If (
ALLOCATED(ccounts))
DEALLOCATE(ccounts)
554 If (
ALLOCATED(cstart))
DEALLOCATE(cstart)
567 Integer,
Intent(IN) :: ncid, varid
568 Integer,
Intent(IN) :: start(*), counts(*), strides(*)
569 Character(LEN=*),
Intent(OUT) :: text
573 Integer(C_INT) :: cncid, cvarid, cndims, cstat1, cstatus
574 Type(c_ptr) :: cstartptr, ccountsptr, cstridesptr
577 Integer(C_SIZE_T),
ALLOCATABLE,
TARGET :: cstart(:), ccounts(:)
578 Integer(C_PTRDIFF_T),
ALLOCATABLE,
TARGET :: cstrides(:)
582 text = repeat(
" ", len(text))
586 cstartptr = c_null_ptr
587 ccountsptr = c_null_ptr
588 cstridesptr = c_null_ptr
593 ALLOCATE(cstart(ndims))
594 ALLOCATE(ccounts(ndims))
595 ALLOCATE(cstrides(ndims))
596 cstart(1:ndims) = start(ndims:1:-1) - 1
597 ccounts(1:ndims) = counts(ndims:1:-1)
598 cstrides(1:ndims) = strides(ndims:1:-1)
599 cstartptr = c_loc(cstart)
600 ccountsptr = c_loc(ccounts)
601 cstridesptr = c_loc(cstrides)
612 cstartptr = c_null_ptr
613 ccountsptr = c_null_ptr
614 cstridesptr = c_null_ptr
615 If (
ALLOCATED(cstrides))
DEALLOCATE(cstrides)
616 If (
ALLOCATED(ccounts))
DEALLOCATE(ccounts)
617 If (
ALLOCATED(cstart))
DEALLOCATE(cstart)
630 Integer,
Intent(IN) :: ncid, varid
631 Integer,
Intent(IN) :: start(*), counts(*), strides(*)
632 Character(LEN=1),
Intent(OUT) :: text(*)
636 Integer(C_INT) :: cncid, cvarid, cndims, cstat1, cstatus
637 Type(c_ptr) :: cstartptr, ccountsptr, cstridesptr
640 Integer(C_SIZE_T),
ALLOCATABLE,
TARGET :: cstart(:), ccounts(:)
641 Integer(C_PTRDIFF_T),
ALLOCATABLE,
TARGET :: cstrides(:)
648 cstartptr = c_null_ptr
649 ccountsptr = c_null_ptr
650 cstridesptr = c_null_ptr
655 ALLOCATE(cstart(ndims))
656 ALLOCATE(ccounts(ndims))
657 ALLOCATE(cstrides(ndims))
658 cstart(1:ndims) = start(ndims:1:-1) - 1
659 ccounts(1:ndims) = counts(ndims:1:-1)
660 cstrides(1:ndims) = strides(ndims:1:-1)
661 cstartptr = c_loc(cstart)
662 ccountsptr = c_loc(ccounts)
663 cstridesptr = c_loc(cstrides)
674 cstartptr = c_null_ptr
675 ccountsptr = c_null_ptr
676 cstridesptr = c_null_ptr
677 If (
ALLOCATED(cstrides))
DEALLOCATE(cstrides)
678 If (
ALLOCATED(ccounts))
DEALLOCATE(ccounts)
679 If (
ALLOCATED(cstart))
DEALLOCATE(cstart)
692 Integer,
Intent(IN) :: ncid, varid
693 Integer,
Intent(IN) :: start(*), counts(*), strides(*)
694 Integer(NFINT1),
Intent(OUT) :: i1vals(*)
698 Integer(C_INT) :: cncid, cvarid, cndims, cstat1, cstatus
699 Type(c_ptr) :: cstartptr, ccountsptr, cstridesptr
702 Integer(C_SIZE_T),
ALLOCATABLE,
TARGET :: cstart(:), ccounts(:)
703 Integer(C_PTRDIFF_T),
ALLOCATABLE,
TARGET :: cstrides(:)
705 If (c_signed_char < 0)
Then 715 cstartptr = c_null_ptr
716 ccountsptr = c_null_ptr
717 cstridesptr = c_null_ptr
722 ALLOCATE(cstart(ndims))
723 ALLOCATE(ccounts(ndims))
724 ALLOCATE(cstrides(ndims))
725 cstart(1:ndims) = start(ndims:1:-1) - 1
726 ccounts(1:ndims) = counts(ndims:1:-1)
727 cstrides(1:ndims) = strides(ndims:1:-1)
728 cstartptr = c_loc(cstart)
729 ccountsptr = c_loc(ccounts)
730 cstridesptr = c_loc(cstrides)
734 #if NF_INT1_IS_C_SIGNED_CHAR 737 #elif NF_INT1_IS_C_SHORT 740 #elif NF_INT1_IS_C_INT 743 #elif NF_INT1_IS_C_LONG 752 cstartptr = c_null_ptr
753 ccountsptr = c_null_ptr
754 cstridesptr = c_null_ptr
755 If (
ALLOCATED(cstrides))
DEALLOCATE(cstrides)
756 If (
ALLOCATED(ccounts))
DEALLOCATE(ccounts)
757 If (
ALLOCATED(cstart))
DEALLOCATE(cstart)
770 Integer,
Intent(IN) :: ncid, varid
771 Integer,
Intent(IN) :: start(*), counts(*), strides(*)
772 Integer(NFINT2),
Intent(OUT) :: i2vals(*)
776 Integer(C_INT) :: cncid, cvarid, cndims, cstat1, cstatus
777 Type(c_ptr) :: cstartptr, ccountsptr, cstridesptr
780 Integer(C_SIZE_T),
ALLOCATABLE,
TARGET :: cstart(:), ccounts(:)
781 Integer(C_PTRDIFF_T),
ALLOCATABLE,
TARGET :: cstrides(:)
783 If (c_short < 0)
Then 793 cstartptr = c_null_ptr
794 ccountsptr = c_null_ptr
795 cstridesptr = c_null_ptr
800 ALLOCATE(cstart(ndims))
801 ALLOCATE(ccounts(ndims))
802 ALLOCATE(cstrides(ndims))
803 cstart(1:ndims) = start(ndims:1:-1) - 1
804 ccounts(1:ndims) = counts(ndims:1:-1)
805 cstrides(1:ndims) = strides(ndims:1:-1)
806 cstartptr = c_loc(cstart)
807 ccountsptr = c_loc(ccounts)
808 cstridesptr = c_loc(cstrides)
812 #if NF_INT2_IS_C_SHORT 815 #elif NF_INT2_IS_C_INT 818 #elif NF_INT2_IS_C_LONG 827 cstartptr = c_null_ptr
828 ccountsptr = c_null_ptr
829 cstridesptr = c_null_ptr
830 If (
ALLOCATED(cstrides))
DEALLOCATE(cstrides)
831 If (
ALLOCATED(ccounts))
DEALLOCATE(ccounts)
832 If (
ALLOCATED(cstart))
DEALLOCATE(cstart)
845 Integer,
Intent(IN) :: ncid, varid
846 Integer,
Intent(IN) :: start(*), counts(*), strides(*)
847 Integer(NFINT),
Intent(OUT) :: ivals(*)
851 Integer(C_INT) :: cncid, cvarid, cndims, cstat1, cstatus
852 Type(c_ptr) :: cstartptr, ccountsptr, cstridesptr
855 Integer(C_SIZE_T),
ALLOCATABLE,
TARGET :: cstart(:), ccounts(:)
856 Integer(C_PTRDIFF_T),
ALLOCATABLE,
TARGET :: cstrides(:)
863 cstartptr = c_null_ptr
864 ccountsptr = c_null_ptr
865 cstridesptr = c_null_ptr
870 ALLOCATE(cstart(ndims))
871 ALLOCATE(ccounts(ndims))
872 ALLOCATE(cstrides(ndims))
873 cstart(1:ndims) = start(ndims:1:-1) - 1
874 ccounts(1:ndims) = counts(ndims:1:-1)
875 cstrides(1:ndims) = strides(ndims:1:-1)
876 cstartptr = c_loc(cstart)
877 ccountsptr = c_loc(ccounts)
878 cstridesptr = c_loc(cstrides)
885 #elif NF_INT_IS_C_LONG 894 cstartptr = c_null_ptr
895 ccountsptr = c_null_ptr
896 cstridesptr = c_null_ptr
897 If (
ALLOCATED(cstrides))
DEALLOCATE(cstrides)
898 If (
ALLOCATED(ccounts))
DEALLOCATE(ccounts)
899 If (
ALLOCATED(cstart))
DEALLOCATE(cstart)
912 Integer,
Intent(IN) :: ncid, varid
913 Integer,
Intent(IN) :: start(*), counts(*), strides(*)
914 Real(NFREAL),
Intent(OUT) :: rvals(*)
918 Integer(C_INT) :: cncid, cvarid, cndims, cstat1, cstatus
919 Type(c_ptr) :: cstartptr, ccountsptr, cstridesptr
922 Integer(C_SIZE_T),
ALLOCATABLE,
TARGET :: cstart(:), ccounts(:)
923 Integer(C_PTRDIFF_T),
ALLOCATABLE,
TARGET :: cstrides(:)
930 cstartptr = c_null_ptr
931 ccountsptr = c_null_ptr
932 cstridesptr = c_null_ptr
937 ALLOCATE(cstart(ndims))
938 ALLOCATE(ccounts(ndims))
939 ALLOCATE(cstrides(ndims))
940 cstart(1:ndims) = start(ndims:1:-1) - 1
941 ccounts(1:ndims) = counts(ndims:1:-1)
942 cstrides(1:ndims) = strides(ndims:1:-1)
943 cstartptr = c_loc(cstart)
944 ccountsptr = c_loc(ccounts)
945 cstridesptr = c_loc(cstrides)
949 #if NF_REAL_IS_C_DOUBLE 961 cstartptr = c_null_ptr
962 ccountsptr = c_null_ptr
963 cstridesptr = c_null_ptr
964 If (
ALLOCATED(cstrides))
DEALLOCATE(cstrides)
965 If (
ALLOCATED(ccounts))
DEALLOCATE(ccounts)
966 If (
ALLOCATED(cstart))
DEALLOCATE(cstart)
979 Integer,
Intent(IN) :: ncid, varid
980 Integer,
Intent(IN) :: start(*), counts(*), strides(*)
981 Real(RK8),
Intent(OUT) :: dvals(*)
985 Integer(C_INT) :: cncid, cvarid, cndims, cstat1, cstatus
986 Type(c_ptr) :: cstartptr, ccountsptr, cstridesptr
989 Integer(C_SIZE_T),
ALLOCATABLE,
TARGET :: cstart(:), ccounts(:)
990 Integer(C_PTRDIFF_T),
ALLOCATABLE,
TARGET :: cstrides(:)
997 cstartptr = c_null_ptr
998 ccountsptr = c_null_ptr
999 cstridesptr = c_null_ptr
1004 ALLOCATE(cstart(ndims))
1005 ALLOCATE(ccounts(ndims))
1006 ALLOCATE(cstrides(ndims))
1007 cstart(1:ndims) = start(ndims:1:-1) - 1
1008 ccounts(1:ndims) = counts(ndims:1:-1)
1009 cstrides(1:ndims) = strides(ndims:1:-1)
1010 cstartptr = c_loc(cstart)
1011 ccountsptr = c_loc(ccounts)
1012 cstridesptr = c_loc(cstrides)
1023 cstartptr = c_null_ptr
1024 ccountsptr = c_null_ptr
1025 cstridesptr = c_null_ptr
1026 If (
ALLOCATED(cstrides))
DEALLOCATE(cstrides)
1027 If (
ALLOCATED(ccounts))
DEALLOCATE(ccounts)
1028 If (
ALLOCATED(cstart))
DEALLOCATE(cstart)
1032 Function nf_get_vars(ncid, varid, start, counts, strides, values) &
1043 Integer,
Intent(IN) :: ncid, varid
1044 Integer,
Intent(IN) :: start(*), counts(*), strides(*)
1045 Character(KIND=C_CHAR),
Intent(INOUT) :: values
1049 Integer(C_INT) :: cncid, cvarid, cndims, cstat1, cstatus
1050 Type(c_ptr) :: cstartptr, ccountsptr, cstridesptr
1053 Integer(C_SIZE_T),
ALLOCATABLE,
TARGET :: cstart(:), ccounts(:)
1054 Integer(C_PTRDIFF_T),
ALLOCATABLE,
TARGET :: cstrides(:)
1061 cstartptr = c_null_ptr
1062 ccountsptr = c_null_ptr
1063 cstridesptr = c_null_ptr
1068 ALLOCATE(cstart(ndims))
1069 ALLOCATE(ccounts(ndims))
1070 ALLOCATE(cstrides(ndims))
1071 cstart(1:ndims) = start(ndims:1:-1) - 1
1072 ccounts(1:ndims) = counts(ndims:1:-1)
1073 cstrides(1:ndims) = strides(ndims:1:-1)
1074 cstartptr = c_loc(cstart)
1075 ccountsptr = c_loc(ccounts)
1076 cstridesptr = c_loc(cstrides)
1080 cstatus =
nc_get_vars(cncid, cvarid, cstartptr, ccountsptr, &
1081 cstridesptr, values)
1087 cstartptr = c_null_ptr
1088 ccountsptr = c_null_ptr
1089 cstridesptr = c_null_ptr
1090 If (
ALLOCATED(cstrides))
DEALLOCATE(cstrides)
1091 If (
ALLOCATED(ccounts))
DEALLOCATE(ccounts)
1092 If (
ALLOCATED(cstart))
DEALLOCATE(cstart)
function nf_put_vars_double(ncid, varid, start, counts, strides, dvals)
function nf_put_vars_text(ncid, varid, start, counts, strides, text)
function nf_get_vars_int1(ncid, varid, start, counts, strides, i1vals)
function nf_get_vars_real(ncid, varid, start, counts, strides, rvals)
function nf_put_vars_int(ncid, varid, start, counts, strides, ivals)
function nf_put_vars_real(ncid, varid, start, counts, strides, rvals)
function nf_get_vars_text(ncid, varid, start, counts, strides, text)
function nf_get_vars_double(ncid, varid, start, counts, strides, dvals)
function nf_put_vars_int2(ncid, varid, start, counts, strides, i2vals)
function nf_get_vars(ncid, varid, start, counts, strides, values)
function nf_put_vars_text_a(ncid, varid, start, counts, strides, text)
function nf_get_vars_text_a(ncid, varid, start, counts, strides, text)
integer(c_int), parameter nc_ebadtype
integer(c_int), parameter nc_noerr
function nf_put_vars(ncid, varid, start, counts, strides, values)
function nf_get_vars_int(ncid, varid, start, counts, strides, ivals)
function nf_get_vars_int2(ncid, varid, start, counts, strides, i2vals)
function nf_put_vars_int1(ncid, varid, start, counts, strides, i1vals)