37 #include "nfconfig.inc" 46 #define NCOPTS FINT2CINT 47 #define PNCOPTS PCINT2FINT 48 #define CLOBMODE FINT2CINT 49 #define PRCODE PCINT2FINT 50 #define RWMODE FINT2CINT 51 #define DIMLEN FINT2CINT 52 #define PDIMLEN PCINT2FINT 53 #define LENSTR FINT2CINT 54 #define ATTLEN FINT2CINT 55 #define PATTLEN PCINT2FINT 56 #define FILLMODE FINT2CINT 58 #define V2IMAP_cfINT(N,A,B,X,Y,Z) DOUBLE_cfINT(N,A,B,X,Y,Z) 59 #define V2IMAPVVVVVVV_cfTYPE NF_INTEGER 60 #define V2IMAP_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,V2IMAP,A,B,C,D,E) 61 #define V2IMAP_cfH(S,U,B) 62 #define V2IMAP_cfQ(B) ptrdiff_t B[MAX_NC_DIMS]; 63 #define V2IMAP_cfT(M,I,A,B,D) f2c_v2imap(*fncid, *fvarid-1, A, B) 64 #define V2IMAP_cfR(A,B,D) 71 f2c_v2imap(
int ncid,
int varid,
const int* fimap, ptrdiff_t* cimap)
76 if (nc_inq_vartype(ncid, varid, &datatype) ||
77 nc_inq_varndims(ncid, varid, &rank) || rank <= 0)
89 int dimids[NC_MAX_VAR_DIMS];
93 if (nc_inq_vardimid(ncid, varid, dimids) != NC_NOERR)
96 for (total = 1, idim = rank - 1; idim >= 0; --idim)
102 if (nc_inq_dimlen(ncid, dimids[idim], &length) != NC_NOERR)
124 # if NF_INT1_IS_C_SIGNED_CHAR 125 size =
sizeof(
signed char);
126 # elif NF_INT1_IS_C_SHORT 127 size =
sizeof(short);
128 # elif NF_INT1_IS_C_INT 130 # elif NF_INT1_IS_C_LONG 135 # if NF_INT2_IS_C_SHORT 136 size =
sizeof(short);
137 # elif NF_INT2_IS_C_INT 139 # elif NF_INT2_IS_C_LONG 146 # elif NF_INT_IS_C_LONG 151 # if NF_REAL_IS_C_FLOAT 152 size =
sizeof(float);
153 # elif NF_REAL_IS_C_DOUBLE 154 size =
sizeof(double);
158 # if NF_DOUBLEPRECISION_IS_C_FLOAT 159 size =
sizeof(float);
160 # elif NF_DOUBLEPRECISION_IS_C_DOUBLE 161 size =
sizeof(double);
168 for (idim = 0; idim < rank; ++idim)
169 cimap[idim] = fimap[rank - 1 - idim] / size;
185 for (i = 0; i < rank; ++i)
230 const
char *pathname,
237 if (pathname == NULL)
241 *rcode = ((ncid =
nccreate (pathname, clobmode)) == -1)
248 nc_advise(
"NCCRE", *rcode,
"");
265 const
char *pathname,
277 nc_advise(
"NCOPN", *rcode,
278 "bad flag, did you forget to include netcdf.inc?");
282 if (pathname == NULL) {
287 *rcode = ((ncid = ncopen (pathname, rwmode)) == -1)
294 nc_advise(
"NCOPN", *rcode,
"");
320 if ((dimid = ncdimdef (ncid, dimname, (
long)dimlen)) == -1)
348 if ((dimid = ncdimid (ncid, dimname)) == -1)
379 if ((status = nc_def_var(ncid, varname, datatype, ndims, dimids, &varid)))
381 nc_advise(
"NCVDEF", status,
"");
396 NCID,STRING,TYPE,NDIMS,DIMIDS,
PRCODE)
411 if ((varid = ncvarid (ncid, varname)) == -1)
438 *rcode = ((itype = (int) nctypelen (datatype)) == -1)
459 *rcode = ncclose(ncid) == -1
478 *rcode = ncredef(ncid) == -1
497 *rcode = ncendef (ncid) == -1
520 *rcode = ncinquire(ncid, indims, invars, inatts, irecdim) == -1
540 *rcode = ncsync (ncid) == -1
561 *rcode = ncabort(ncid) == -1
585 if (ncdiminq (ncid, dimid, dimname, &siz) == -1)
610 *rcode = ncdimrename(ncid, dimid, dimname) == -1
635 *rcode = ncvarinq(ncid, varid, varname, datatype, indims,
636 dimarray, inatts) == -1
653 const
size_t* indices,
661 if ((status = nc_inq_vartype(ncid, varid, &datatype)) == 0)
669 # if NF_INT1_IS_C_SIGNED_CHAR 670 status = nc_put_var1_schar(ncid, varid, indices,
671 (
const signed char*)value);
672 # elif NF_INT1_IS_C_SHORT 673 status = nc_put_var1_short(ncid, varid, indices,
674 (
const short*)value);
675 # elif NF_INT1_IS_C_INT 676 status = nc_put_var1_int(ncid, varid, indices,
678 # elif NF_INT1_IS_C_LONG 679 status = nc_put_var1_long(ncid, varid, indices,
684 # if NF_INT2_IS_C_SHORT 685 status = nc_put_var1_short(ncid, varid, indices,
686 (
const short*)value);
687 # elif NF_INT2_IS_C_INT 688 status = nc_put_var1_int(ncid, varid, indices,
690 # elif NF_INT2_IS_C_LONG 691 status = nc_put_var1_long(ncid, varid, indices,
697 status = nc_put_var1_int(ncid, varid, indices,
699 # elif NF_INT_IS_C_LONG 700 status = nc_put_var1_long(ncid, varid, indices,
705 # if NF_REAL_IS_C_FLOAT 706 status = nc_put_var1_float(ncid, varid, indices,
707 (
const float*)value);
708 # elif NF_REAL_IS_C_DOUBLE 709 status = nc_put_var1_double(ncid, varid, indices,
710 (
const double*)value);
714 # if NF_DOUBLEPRECISION_IS_C_FLOAT 715 status = nc_put_var1_float(ncid, varid, indices,
716 (
const float*)value);
717 # elif NF_DOUBLEPRECISION_IS_C_DOUBLE 718 status = nc_put_var1_double(ncid, varid, indices,
719 (
const double*)value);
729 nc_advise(
"NCVPT1", status,
"");
736 NCID,VARID,COORDS,PVOID,
PRCODE)
746 const
size_t* indices,
754 if ((status = nc_inq_vartype(ncid, varid, &datatype)) == 0)
756 status = datatype != NC_CHAR
758 : nc_put_var1_text(ncid, varid, indices, value);
765 nc_advise(
"NCVP1C", status,
"");
772 NCID,VARID,COORDS,CBUF,
PRCODE)
792 if ((status = nc_inq_vartype(ncid, varid, &datatype)) == 0)
800 # if NF_INT1_IS_C_SIGNED_CHAR 801 status = nc_put_vara_schar(ncid, varid, start, count,
802 (
const signed char*)value);
803 # elif NF_INT1_IS_C_SHORT 804 status = nc_put_vara_short(ncid, varid, start, count,
805 (
const short*)value);
806 # elif NF_INT1_IS_C_INT 807 status = nc_put_vara_int(ncid, varid, start, count,
809 # elif NF_INT1_IS_C_LONG 810 status = nc_put_vara_long(ncid, varid, start, count,
815 # if NF_INT2_IS_C_SHORT 816 status = nc_put_vara_short(ncid, varid, start, count,
817 (
const short*)value);
818 # elif NF_INT2_IS_C_INT 819 status = nc_put_vara_int(ncid, varid, start, count,
821 # elif NF_INT2_IS_C_LONG 822 status = nc_put_vara_long(ncid, varid, start, count,
828 status = nc_put_vara_int(ncid, varid, start, count,
830 # elif NF_INT_IS_C_LONG 831 status = nc_put_vara_long(ncid, varid, start, count,
836 # if NF_REAL_IS_C_FLOAT 837 status = nc_put_vara_float(ncid, varid, start, count,
838 (
const float*)value);
839 # elif NF_REAL_IS_C_DOUBLE 840 status = nc_put_vara_double(ncid, varid, start, count,
841 (
const double*)value);
845 # if NF_DOUBLEPRECISION_IS_C_FLOAT 846 status = nc_put_vara_float(ncid, varid, start, count,
847 (
const float*)value);
848 # elif NF_DOUBLEPRECISION_IS_C_DOUBLE 849 status = nc_put_vara_double(ncid, varid, start, count,
850 (
const double*)value);
860 nc_advise(
"NCVPT", status,
"");
868 NCID,VARID,COORDS,COUNTS,PVOID,
PRCODE)
888 if ((status = nc_inq_vartype(ncid, varid, &datatype)) == 0)
890 if (datatype != NC_CHAR)
896 status = nc_inq_varndims(ncid, varid, &rank);
899 if (
dimprod(count, rank) > (
size_t)lenstr)
902 status = nc_put_vara_text(ncid, varid, start, count, value);
911 nc_advise(
"NCVPTC", status,
"");
932 const ptrdiff_t* strides,
933 const ptrdiff_t* imap,
942 if ((status = nc_inq_vartype(ncid, varid, &datatype)) == 0 &&
943 (status = nc_inq_varndims(ncid, varid, &rank)) == 0)
951 # if NF_INT1_IS_C_SIGNED_CHAR 952 status = nc_put_varm_schar(ncid, varid, start, count,
954 (
const signed char*)value);
955 # elif NF_INT1_IS_C_SHORT 956 status = nc_put_varm_short(ncid, varid, start, count,
958 (
const short*)value);
959 # elif NF_INT1_IS_C_INT 960 status = nc_put_varm_int(ncid, varid, start, count,
963 # elif NF_INT1_IS_C_LONG 964 status = nc_put_varm_long(ncid, varid, start, count,
970 # if NF_INT2_IS_C_SHORT 971 status = nc_put_varm_short(ncid, varid, start, count,
973 (
const short*)value);
974 # elif NF_INT2_IS_C_INT 975 status = nc_put_varm_int(ncid, varid, start, count,
978 # elif NF_INT2_IS_C_LONG 979 status = nc_put_varm_long(ncid, varid, start, count,
986 status = nc_put_varm_int(ncid, varid, start, count,
989 # elif NF_INT_IS_C_LONG 990 status = nc_put_varm_long(ncid, varid, start, count,
996 # if NF_REAL_IS_C_FLOAT 997 status = nc_put_varm_float(ncid, varid, start, count,
999 (
const float*)value);
1000 # elif NF_REAL_IS_C_DOUBLE 1001 status = nc_put_varm_double(ncid, varid, start, count,
1003 (
const double*)value);
1007 # if NF_DOUBLEPRECISION_IS_C_FLOAT 1008 status = nc_put_varm_float(ncid, varid, start, count,
1010 (
const float*)value);
1011 # elif NF_DOUBLEPRECISION_IS_C_DOUBLE 1012 status = nc_put_varm_double(ncid, varid, start, count,
1014 (
const double*)value);
1024 nc_advise(
"NCVPTG", status,
"");
1032 NCID,VARID,COORDS,COUNTS,STRIDES,V2IMAP,PVOID,
PRCODE)
1043 const
size_t* start,
1044 const
size_t* count,
1045 const ptrdiff_t* strides,
1046 const ptrdiff_t* imap,
1055 if ((status = nc_inq_vartype(ncid, varid, &datatype)) == 0 &&
1056 (status = nc_inq_varndims(ncid, varid, &rank)) == 0)
1061 status = nc_put_varm_text(ncid, varid, start, count,
1075 nc_advise(
"NCVPGC", status,
"");
1083 NCID,VARID,COORDS,COUNTS,STRIDES,V2IMAP,CBUF,
PRCODE)
1093 const
size_t* indices,
1101 if ((status = nc_inq_vartype(ncid, varid, &datatype)) == 0)
1109 # if NF_INT1_IS_C_SIGNED_CHAR 1110 status = nc_get_var1_schar(ncid, varid, indices,
1111 (
signed char*)value);
1112 # elif NF_INT1_IS_C_SHORT 1113 status = nc_get_var1_short(ncid, varid, indices,
1115 # elif NF_INT1_IS_C_INT 1116 status = nc_get_var1_int(ncid, varid, indices,
1118 # elif NF_INT1_IS_C_LONG 1119 status = nc_get_var1_long(ncid, varid, indices,
1124 # if NF_INT2_IS_C_SHORT 1125 status = nc_get_var1_short(ncid, varid, indices,
1127 # elif NF_INT2_IS_C_INT 1128 status = nc_get_var1_int(ncid, varid, indices,
1130 # elif NF_INT2_IS_C_LONG 1131 status = nc_get_var1_long(ncid, varid, indices,
1136 # if NF_INT_IS_C_INT 1137 status = nc_get_var1_int(ncid, varid, indices,
1139 # elif NF_INT_IS_C_LONG 1140 status = nc_get_var1_long(ncid, varid, indices,
1145 # if NF_REAL_IS_C_FLOAT 1146 status = nc_get_var1_float(ncid, varid, indices,
1148 # elif NF_REAL_IS_C_DOUBLE 1149 status = nc_get_var1_double(ncid, varid, indices,
1154 # if NF_DOUBLEPRECISION_IS_C_FLOAT 1155 status = nc_get_var1_float(ncid, varid, indices,
1157 # elif NF_DOUBLEPRECISION_IS_C_DOUBLE 1158 status = nc_get_var1_double(ncid, varid, indices,
1169 nc_advise(
"NCVGT1", status,
"");
1177 NCID,VARID,COORDS,PVOID,
PRCODE)
1188 const
size_t* indices,
1196 if ((status = nc_inq_vartype(ncid, varid, &datatype)) == 0)
1201 status = nc_get_var1_text(ncid, varid, indices, value);
1213 nc_advise(
"NCVG1C", status,
"");
1221 NCID,VARID,COORDS,CBUF,
PRCODE)
1232 const
size_t* start,
1233 const
size_t* count,
1241 if ((status = nc_inq_vartype(ncid, varid, &datatype)) == 0)
1249 # if NF_INT1_IS_C_SIGNED_CHAR 1250 status = nc_get_vara_schar(ncid, varid, start, count,
1251 (
signed char*)value);
1252 # elif NF_INT1_IS_C_SHORT 1253 status = nc_get_vara_short(ncid, varid, start, count,
1255 # elif NF_INT1_IS_C_INT 1256 status = nc_get_vara_int(ncid, varid, start, count,
1258 # elif NF_INT1_IS_C_LONG 1259 status = nc_get_vara_long(ncid, varid, start, count,
1264 # if NF_INT2_IS_C_SHORT 1265 status = nc_get_vara_short(ncid, varid, start, count,
1267 # elif NF_INT2_IS_C_INT 1268 status = nc_get_vara_int(ncid, varid, start, count,
1270 # elif NF_INT2_IS_C_LONG 1271 status = nc_get_vara_long(ncid, varid, start, count,
1276 # if NF_INT_IS_C_INT 1277 status = nc_get_vara_int(ncid, varid, start, count,
1279 # elif NF_INT_IS_C_LONG 1280 status = nc_get_vara_long(ncid, varid, start, count,
1285 # if NF_REAL_IS_C_FLOAT 1286 status = nc_get_vara_float(ncid, varid, start, count,
1288 # elif NF_REAL_IS_C_DOUBLE 1289 status = nc_get_vara_double(ncid, varid, start, count,
1294 # if NF_DOUBLEPRECISION_IS_C_FLOAT 1295 status = nc_get_vara_float(ncid, varid, start, count,
1297 # elif NF_DOUBLEPRECISION_IS_C_DOUBLE 1298 status = nc_get_vara_double(ncid, varid, start, count,
1309 nc_advise(
"NCVGT", status,
"");
1317 NCID,VARID,COORDS,COUNTS,PVOID,
PRCODE)
1327 const
size_t* start,
1328 const
size_t* count,
1337 if ((status = nc_inq_vartype(ncid, varid, &datatype)) == 0)
1339 if (datatype != NC_CHAR)
1341 else if ((status = nc_get_vara_text(ncid, varid, start, count, value))
1346 if ((status = nc_inq_varndims(ncid, varid, &rank)) == 0)
1348 size_t total =
dimprod(count, rank);
1350 (void) memset(value+total,
' ', lenstr - total);
1359 nc_advise(
"NCVGTC", status,
"");
1377 const
size_t* start,
1378 const
size_t* count,
1379 const ptrdiff_t* strides,
1380 const ptrdiff_t* imap,
1389 if ((status = nc_inq_vartype(ncid, varid, &datatype)) == 0 &&
1390 (status = nc_inq_varndims(ncid, varid, &rank)) == 0)
1398 # if NF_INT1_IS_C_SIGNED_CHAR 1399 status = nc_get_varm_schar(ncid, varid, start, count,
1401 (
signed char*)value);
1402 # elif NF_INT1_IS_C_SHORT 1403 status = nc_get_varm_short(ncid, varid, start, count,
1406 # elif NF_INT1_IS_C_INT 1407 status = nc_get_varm_int(ncid, varid, start, count,
1410 # elif NF_INT1_IS_C_LONG 1411 status = nc_get_varm_long(ncid, varid, start, count,
1417 # if NF_INT2_IS_C_SHORT 1418 status = nc_get_varm_short(ncid, varid, start, count,
1421 # elif NF_INT2_IS_C_INT 1422 status = nc_get_varm_int(ncid, varid, start, count,
1425 # elif NF_INT2_IS_C_LONG 1426 status = nc_get_varm_long(ncid, varid, start, count,
1432 # if NF_INT_IS_C_INT 1433 status = nc_get_varm_int(ncid, varid, start, count,
1436 # elif NF_INT_IS_C_LONG 1437 status = nc_get_varm_long(ncid, varid, start, count,
1443 # if NF_REAL_IS_C_FLOAT 1444 status = nc_get_varm_float(ncid, varid, start, count,
1447 # elif NF_REAL_IS_C_DOUBLE 1448 status = nc_get_varm_double(ncid, varid, start, count,
1454 # if NF_DOUBLEPRECISION_IS_C_FLOAT 1455 status = nc_get_varm_float(ncid, varid, start, count,
1458 # elif NF_DOUBLEPRECISION_IS_C_DOUBLE 1459 status = nc_get_varm_double(ncid, varid, start, count,
1471 nc_advise(
"NCVGTG", status,
"");
1478 NCID,VARID,COORDS,COUNTS,STRIDES,V2IMAP,PVOID,
PRCODE)
1489 const
size_t* start,
1490 const
size_t* count,
1491 const ptrdiff_t* strides,
1492 const ptrdiff_t* imap,
1501 if ((status = nc_inq_vartype(ncid, varid, &datatype)) == 0 &&
1502 (status = nc_inq_varndims(ncid, varid, &rank)) == 0)
1507 status = nc_get_varm_text(ncid, varid, start, count,
1521 nc_advise(
"NCVGGC", status,
"");
1528 NCID,VARID,COORDS,COUNTS,STRIDES,V2IMAP,CBUF,
PRCODE)
1538 const
char* varname,
1542 *rcode = ncvarrename (ncid, varid, varname) == -1
1549 NCID,VARID,STRING,
PRCODE)
1560 const
char* attname,
1575 # if NF_INT1_IS_C_SIGNED_CHAR 1576 status = nc_put_att_schar(ncid, varid, attname, datatype,
1577 attlen, (
const signed char*)value);
1578 # elif NF_INT1_IS_C_SHORT 1579 status = nc_put_att_short(ncid, varid, attname, datatype,
1580 attlen, (
const short*)value);
1581 # elif NF_INT1_IS_C_INT 1582 status = nc_put_att_int(ncid, varid, attname, datatype,
1583 attlen, (
const int*)value);
1584 # elif NF_INT1_IS_C_LONG 1585 status = nc_put_att_long(ncid, varid, attname, datatype,
1586 attlen, (
const long*)value);
1590 # if NF_INT2_IS_C_SHORT 1591 status = nc_put_att_short(ncid, varid, attname, datatype,
1592 attlen, (
const short*)value);
1593 # elif NF_INT2_IS_C_INT 1594 status = nc_put_att_int(ncid, varid, attname, datatype,
1595 attlen, (
const int*)value);
1596 # elif NF_INT2_IS_C_LONG 1597 status = nc_put_att_long(ncid, varid, attname, datatype,
1598 attlen, (
const long*)value);
1602 # if NF_INT_IS_C_INT 1603 status = nc_put_att_int(ncid, varid, attname, datatype,
1604 attlen, (
const int*)value);
1605 # elif NF_INT_IS_C_LONG 1606 status = nc_put_att_long(ncid, varid, attname, datatype,
1607 attlen, (
const long*)value);
1611 # if NF_REAL_IS_C_FLOAT 1612 status = nc_put_att_float(ncid, varid, attname, datatype,
1613 attlen, (
const float*)value);
1614 # elif NF_REAL_IS_C_DOUBLE 1615 status = nc_put_att_double(ncid, varid, attname, datatype,
1616 attlen, (
const double*)value);
1620 # if NF_DOUBLEPRECISION_IS_C_FLOAT 1621 status = nc_put_att_float(ncid, varid, attname, datatype,
1622 attlen, (
const float*)value);
1623 # elif NF_DOUBLEPRECISION_IS_C_DOUBLE 1624 status = nc_put_att_double(ncid, varid, attname, datatype,
1625 attlen, (
const double*)value);
1634 nc_advise(
"NCAPT", status,
"");
1641 NCID,VARID,STRING,TYPE,COUNT,PVOID,
PRCODE)
1651 const
char* attname,
1660 if (datatype != NC_CHAR)
1663 status = nc_put_att_text(ncid, varid, attname, attlen, value);
1669 nc_advise(
"NCAPTC", status,
"");
1676 NCID,VARID,STRING,TYPE,COUNT,CBUF,
PRCODE)
1687 const
char* attname,
1693 *rcode = ncattinq(ncid, varid, attname, datatype, attlen)
1711 const
char* attname,
1719 if ((status = nc_inq_atttype(ncid, varid, attname, &datatype)) == 0)
1727 # if NF_INT1_IS_C_SIGNED_CHAR 1728 status = nc_get_att_schar(ncid, varid, attname,
1729 (
signed char*)value);
1730 # elif NF_INT1_IS_C_SHORT 1731 status = nc_get_att_short(ncid, varid, attname,
1733 # elif NF_INT1_IS_C_INT 1734 status = nc_get_att_int(ncid, varid, attname,
1736 # elif NF_INT1_IS_C_LONG 1737 status = nc_get_att_long(ncid, varid, attname,
1742 # if NF_INT2_IS_C_SHORT 1743 status = nc_get_att_short(ncid, varid, attname,
1745 # elif NF_INT2_IS_C_INT 1746 status = nc_get_att_int(ncid, varid, attname,
1748 # elif NF_INT2_IS_C_LONG 1749 status = nc_get_att_long(ncid, varid, attname,
1754 # if NF_INT_IS_C_INT 1755 status = nc_get_att_int(ncid, varid, attname,
1757 # elif NF_INT_IS_C_LONG 1758 status = nc_get_att_long(ncid, varid, attname,
1763 # if NF_REAL_IS_C_FLOAT 1764 status = nc_get_att_float(ncid, varid, attname,
1766 # elif NF_REAL_IS_C_DOUBLE 1767 status = nc_get_att_double(ncid, varid, attname,
1772 # if NF_DOUBLEPRECISION_IS_C_FLOAT 1773 status = nc_get_att_float(ncid, varid, attname,
1775 # elif NF_DOUBLEPRECISION_IS_C_DOUBLE 1776 status = nc_get_att_double(ncid, varid, attname,
1787 nc_advise(
"NCAGT", status,
"");
1794 NCID,VARID,STRING,PVOID,
PRCODE)
1805 const
char* attname,
1814 if ((status = nc_inq_atttype(ncid, varid, attname, &datatype)) == 0)
1816 if (datatype != NC_CHAR)
1822 status = nc_inq_attlen(ncid, varid, attname, &len);
1829 status = nc_get_att_text(ncid, varid, attname,
1832 (void) memset(value+len,
' ', attlen - len);
1842 nc_advise(
"NCAGTC", status,
"");
1859 const
char* attname,
1865 *rcode = ncattcopy(inncid, invarid, attname, outncid, outvarid)
1889 *rcode = ncattname(ncid, varid, attnum, attname) == -1
1906 const
char* attname,
1907 const
char* newname,
1911 *rcode = ncattrename(ncid, varid, attname, newname) == -1
1918 NCID,VARID,STRING,STRING,
PRCODE)
1928 const
char* attname,
1932 *rcode = ncattdel(ncid, varid, attname) == -1
1939 NCID,VARID,STRING,
PRCODE)
1954 *rcode = ((retval = ncsetfill(ncid, fillmode)) == -1)
void c_ncaren(int ncid, int varid, const char *attname, const char *newname, int *rcode)
subroutine ncvgtc(ncid, varid, start, counts, string, lenstr, rcode)
subroutine ncvpt1(ncid, varid, mindex, values, rcode)
subroutine ncvgt(ncid, varid, start, counts, values, rcode)
subroutine ncsnc(ncid, rcode)
FCALLSCSUB2(c_ncclos, NCCLOS, ncclos, NCID, PRCODE)
subroutine ncdren(ncid, dimid, dimname, rcode)
subroutine ncanam(ncid, varid, attnum, attnam, rcode)
int c_ncvdef(int ncid, const char *varname, nc_type datatype, int ndims, int *dimids, int *rcode)
int c_nctlen(nc_type datatype, int *rcode)
void c_ncvpt(int ncid, int varid, const size_t *start, const size_t *count, const void *value, int *rcode)
subroutine ncabor(ncid, rcode)
void c_ncvp1c(int ncid, int varid, const size_t *indices, const char *value, int *rcode)
subroutine ncendf(ncid, rcode)
FCALLSCFUN2(NF_INT, c_nctlen, NCTLEN, nctlen, TYPE, PRCODE)
void c_ncvptc(int ncid, int varid, const size_t *start, const size_t *count, const char *value, int lenstr, int *rcode)
subroutine ncvpt(ncid, varid, start, counts, values, rcode)
subroutine ncacpy(ncid, varid, attnam, outcdf, outvar, rcode)
void c_ncredf(int ncid, int *rcode)
subroutine ncagt(ncid, varid, attnam, values, rcode)
subroutine ncaren(ncid, varid, attnam, newnam, rcode)
subroutine ncvgt1(ncid, varid, mindex, values, rcode)
subroutine ncredf(ncid, rcode)
void c_ncabor(int ncid, int *rcode)
subroutine ncadel(ncid, varid, attnam, rcode)
void c_ncacpy(int inncid, int invarid, const char *attname, int outncid, int outvarid, int *rcode)
void c_ncanam(int ncid, int varid, int attnum, char *attname, int *rcode)
subroutine ncaptc(ncid, varid, attnam, attype, lenstr, string, rcode)
int c_ncvid(int ncid, const char *varname, int *rcode)
void c_ncvg1c(int ncid, int varid, const size_t *indices, char *value, int *rcode)
static void c_ncpopt(int val)
integer function ncvid(ncid, varname, rcode)
void c_ncainq(int ncid, int varid, const char *attname, nc_type *datatype, int *attlen, int *rcode)
void c_ncvren(int ncid, int varid, const char *varname, int *rcode)
FCALLSCSUB7(c_ncvptc, NCVPTC, ncvptc, NCID, VARID, COORDS, COUNTS, CBUF, LENSTR, PRCODE)
subroutine ncvren(ncid, varid, newnam, rcode)
void c_ncapt(int ncid, int varid, const char *attname, nc_type datatype, size_t attlen, const void *value, int *rcode)
FCALLSCFUN4(NF_INT, c_ncddef, NCDDEF, ncddef, NCID, STRING, DIMLEN, PRCODE)
subroutine ncvptc(ncid, varid, start, counts, strings, lenstr, rcode)
static size_t dimprod(const size_t *count, int rank)
int c_ncdid(int ncid, const char *dimname, int *rcode)
FCALLSCSUB8(c_ncvinq, NCVINQ, ncvinq, NCID, VARID, PSTRING, PTYPE, PNDIMS, PDIMIDS, PNATTS, PRCODE)
FCALLSCSUB1(c_ncpopt, NCPOPT, ncpopt, NCOPTS)
void c_ncvgtc(int ncid, int varid, const size_t *start, const size_t *count, char *value, int lenstr, int *rcode)
int c_ncsfil(int ncid, int fillmode, int *rcode)
integer, parameter nccreate
subroutine ncclos(ncid, rcode)
integer function ncsfil(ncid, fillmode, rcode)
static ptrdiff_t * f2c_v2imap(int ncid, int varid, const int *fimap, ptrdiff_t *cimap)
Convert a Version 2 Fortran IMAP vector into a Version 3 C imap vector.
void c_ncvpt1(int ncid, int varid, const size_t *indices, const void *value, int *rcode)
int c_nccre(const char *pathname, int clobmode, int *rcode)
subroutine ncvpgc(ncid, varid, start, counts, strides, imap, string, rcode)
void c_ncsnc(int ncid, int *rcode)
integer function nccre(filename, cmode, rcode)
void c_ncagtc(int ncid, int varid, const char *attname, char *value, int attlen, int *rcode)
subroutine ncvptg(ncid, varid, start, counts, strides, imap, values, rcode)
int c_ncopn(const char *pathname, int rwmode, int *rcode)
FCALLSCFUN3(NF_INT, c_nccre, NCCRE, nccre, STRING, CLOBMODE, PRCODE)
subroutine ncgopt(ncopts)
void c_ncagt(int ncid, int varid, const char *attname, void *value, int *rcode)
void c_ncaptc(int ncid, int varid, const char *attname, nc_type datatype, size_t attlen, const char *value, int *rcode)
integer function ncopn(filename, rwmode, rcode)
subroutine ncvgtg(ncid, varid, start, counts, strides, imap, values, rcode)
subroutine ncinq(ncid, ndims, nvars, natts, recdim, rcode)
int c_ncddef(int ncid, const char *dimname, int dimlen, int *rcode)
FCALLSCSUB6(c_ncinq, NCINQ, ncinq, NCID, PNDIMS, PNVARS, PNATTS, PDIMID, PRCODE)
void c_ncdren(int ncid, int dimid, const char *dimname, int *rcode)
integer function ncddef(ncid, dimname, dimlen, rcode)
subroutine ncvinq(ncid, varid, varname, vartype, nvdims, vdims, nvatts, rcode)
subroutine ncvp1c(ncid, varid, mindex, strings, rcode)
void c_ncclos(int ncid, int *rcode)
subroutine ncpopt(ncopts)
void c_ncvggc(int ncid, int varid, const size_t *start, const size_t *count, const ptrdiff_t *strides, const ptrdiff_t *imap, char *value, int *rcode)
void c_ncendf(int ncid, int *rcode)
void c_ncadel(int ncid, int varid, const char *attname, int *rcode)
FCALLSCSUB5(c_ncdinq, NCDINQ, ncdinq, NCID, DIMID, PSTRING, PDIMLEN, PRCODE)
subroutine ncagtc(ncid, varid, attnam, string, lenstr, rcode)
void c_ncvpgc(int ncid, int varid, const size_t *start, const size_t *count, const ptrdiff_t *strides, const ptrdiff_t *imap, const char *value, int *rcode)
subroutine ncapt(ncid, varid, attnam, attype, attlen, value, rcode)
void c_ncvinq(int ncid, int varid, char *varname, nc_type *datatype, int *indims, int *dimarray, int *inatts, int *rcode)
subroutine ncvggc(ncid, varid, start, counts, strides, imap, string, rcode)
integer function nctlen(datatype, rcode)
FCALLSCFUN6(NF_INT, c_ncvdef, NCVDEF, ncvdef, NCID, STRING, TYPE, NDIMS, DIMIDS, PRCODE)
subroutine ncdinq(ncid, dimid, dimname, dimlen, rcode)
void c_ncdinq(int ncid, int dimid, char *dimname, int *size, int *rcode)
void c_ncinq(int ncid, int *indims, int *invars, int *inatts, int *irecdim, int *rcode)
FCALLSCSUB4(c_ncdren, NCDREN, ncdren, NCID, DIMID, STRING, PRCODE)
subroutine ncvg1c(ncid, varid, mindex, string, rcode)
void c_ncvgtg(int ncid, int varid, const size_t *start, const size_t *count, const ptrdiff_t *strides, const ptrdiff_t *imap, void *value, int *rcode)
integer function ncvdef(ncid, varname, vartype, nvdims, vdims, rcode)
subroutine ncainq(ncid, varid, attnam, attype, attlen, rcode)
void c_ncvgt1(int ncid, int varid, const size_t *indices, void *value, int *rcode)
void c_ncvgt(int ncid, int varid, const size_t *start, const size_t *count, void *value, int *rcode)
void c_ncvptg(int ncid, int varid, const size_t *start, const size_t *count, const ptrdiff_t *strides, const ptrdiff_t *imap, const void *value, int *rcode)
integer function ncdid(ncid, dimname, rcode)