⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 v2i.c

📁 一个用来实现偏微分方程中网格的计算库
💻 C
📖 第 1 页 / 共 2 页
字号:
    int		ncid,    int		dimid,    const char*	name){	const int status = nc_rename_dim(ncid, dimid, name);	if(status != NC_NOERR)	{		nc_advise("ncdimrename", status, "ncid %d", ncid);		return -1;	}	return dimid;}intncvardef(    int		ncid,    const char*	name,    nc_type	datatype,     int		ndims,    const int*	dim){	int varid = -1;	const int status = nc_def_var(ncid, name, datatype, ndims, dim, &varid);	if(status != NC_NOERR)	{		nc_advise("ncvardef", status, "ncid %d", ncid);		return -1;	}	return varid;}intncvarid(    int		ncid,    const char*	name){	int varid = -1;	const int status = nc_inq_varid(ncid, name, &varid);	if(status != NC_NOERR)	{		nc_advise("ncvarid", status, "ncid %d", ncid);		return -1;	}	return varid;}intncvarinq(    int		ncid,    int		varid,    char*	name,    nc_type*	datatype,    int*	ndims,    int*	dim,    int*	natts){	int nd, na;	const int status = nc_inq_var(ncid, varid, name, datatype,		 &nd, dim, &na);	if(status != NC_NOERR)	{		nc_advise("ncvarinq", status, "ncid %d", ncid);		return -1;	}	/* else */		if(ndims != NULL)		*ndims = (int) nd;	if(natts != NULL)		*natts = (int) na;	return varid;}intncvarput1(    int		ncid,    int		varid,    const long*	index,    const void*	value){	NDIMS_DECL	A_DECL(coordp, size_t, ndims, index);	A_INIT(coordp, size_t, ndims, index);	{	const int status = nc_put_var1(ncid, varid, coordp, value);	A_FREE(coordp);	if(status != NC_NOERR)	{		nc_advise("ncvarput1", status, "ncid %d", ncid);		return -1;	}	}	return 0;}intncvarget1(    int		ncid,    int		varid,    const long*	index,    void*	value){	NDIMS_DECL	A_DECL(coordp, size_t, ndims, index);	A_INIT(coordp, size_t, ndims, index);	{	const int status = nc_get_var1(ncid, varid, coordp, value);	A_FREE(coordp);	if(status != NC_NOERR)	{		nc_advise("ncdimid", status, "ncid %d", ncid);		return -1;	}	}	return 0;}intncvarput(    int		ncid,    int		varid,    const long*	start,    const long*	count,     const void*	value){	NDIMS_DECL	A_DECL(stp, size_t, ndims, start);	A_DECL(cntp, size_t, ndims, count);	A_INIT(stp, size_t, ndims, start);	A_INIT(cntp, size_t, ndims, count);	{	const int status = nc_put_vara(ncid, varid, stp, cntp, value);	A_FREE(cntp);	A_FREE(stp);	if(status != NC_NOERR)	{		nc_advise("ncvarput", status, "ncid %d", ncid);		return -1;	}	}	return 0;}intncvarget(    int		ncid,    int		varid,    const long*	start,    const long*	count,     void*	value){	NDIMS_DECL	A_DECL(stp, size_t, ndims, start);	A_DECL(cntp, size_t, ndims, count);	A_INIT(stp, size_t, ndims, start);	A_INIT(cntp, size_t, ndims, count);	{	const int status = nc_get_vara(ncid, varid, stp, cntp, value);	A_FREE(cntp);	A_FREE(stp);	if(status != NC_NOERR)	{		nc_advise("ncvarget", status, "ncid %d; varid %d", ncid, varid);		return -1;	}	}	return 0;}intncvarputs(    int		ncid,    int		varid,    const long*	start,    const long*	count,    const long*	stride,    const void*	value){	if(stride == NULL)		return ncvarput(ncid, varid, start, count, value);	/* else */	{	NDIMS_DECL	A_DECL(stp, size_t, ndims, start);	A_DECL(cntp, size_t, ndims, count);	A_DECL(strdp, ptrdiff_t, ndims, stride);	A_INIT(stp, size_t, ndims, start);	A_INIT(cntp, size_t, ndims, count);	A_INIT(strdp, ptrdiff_t, ndims, stride);	{	const int status = nc_put_vars(ncid, varid, stp, cntp, strdp, value);	A_FREE(strdp);	A_FREE(cntp);	A_FREE(stp);	if(status != NC_NOERR)	{		nc_advise("ncvarputs", status, "ncid %d", ncid);		return -1;	}	}	return 0;	}}intncvargets(    int		ncid,    int		varid,    const long*	start,    const long*	count,    const long*	stride,    void*	value){	if(stride == NULL)		return ncvarget(ncid, varid, start, count, value);	/* else */	{	NDIMS_DECL	A_DECL(stp, size_t, ndims, start);	A_DECL(cntp, size_t, ndims, count);	A_DECL(strdp, ptrdiff_t, ndims, stride);	A_INIT(stp, size_t, ndims, start);	A_INIT(cntp, size_t, ndims, count);	A_INIT(strdp, ptrdiff_t, ndims, stride);	{	const int status = nc_get_vars(ncid, varid, stp, cntp, strdp, value);	A_FREE(strdp);	A_FREE(cntp);	A_FREE(stp);	if(status != NC_NOERR)	{		nc_advise("ncvargets", status, "ncid %d", ncid);		return -1;	}	}	return 0;	}}intncvarputg(    int		ncid,    int		varid,    const long*	start,    const long*	count,    const long*	stride,    const long*	map,    const void* value){	if(map == NULL)		return ncvarputs(ncid, varid, start, count, stride, value);	/* else */	{	NDIMS_DECL	A_DECL(stp, size_t, ndims, start);	A_DECL(cntp, size_t, ndims, count);	A_DECL(strdp, ptrdiff_t, ndims, stride);	A_DECL(imp, ptrdiff_t, ndims, map);	A_INIT(stp, size_t, ndims, start);	A_INIT(cntp, size_t, ndims, count);	A_INIT(strdp, ptrdiff_t, ndims, stride);	A_INIT(imp, ptrdiff_t, ndims, map);	{	const int status = nc_put_varm(ncid, varid,			 stp, cntp, strdp, imp, value);	A_FREE(imp);	A_FREE(strdp);	A_FREE(cntp);	A_FREE(stp);	if(status != NC_NOERR)	{		nc_advise("ncvarputg", status, "ncid %d", ncid);		return -1;	}	}	return 0;	}}intncvargetg(    int		ncid,    int		varid,    const long*	start,    const long*	count,    const long*	stride,    const long*	map,    void*	value){	if(map == NULL)		return ncvargets(ncid, varid, start, count, stride, value);	/* else */	{	NDIMS_DECL	A_DECL(stp, size_t, ndims, start);	A_DECL(cntp, size_t, ndims, count);	A_DECL(strdp, ptrdiff_t, ndims, stride);	A_DECL(imp, ptrdiff_t, ndims, map);	A_INIT(stp, size_t, ndims, start);	A_INIT(cntp, size_t, ndims, count);	A_INIT(strdp, ptrdiff_t, ndims, stride);	A_INIT(imp, ptrdiff_t, ndims, map);	{	const int status = nc_get_varm(ncid, varid,			stp, cntp, strdp, imp, value);	A_FREE(imp);	A_FREE(strdp);	A_FREE(cntp);	A_FREE(stp);	if(status != NC_NOERR)	{		nc_advise("ncvargetg", status, "ncid %d", ncid);		return -1;	}	}	return 0;	}}intncvarrename(    int		ncid,    int		varid,    const char*	name){	const int status = nc_rename_var(ncid, varid, name);	if(status != NC_NOERR)	{		nc_advise("ncvarrename", status, "ncid %d", ncid);		return -1;	}	return varid;}intncattput(    int		ncid,    int		varid,    const char*	name,     nc_type	datatype,    int		len,    const void*	value){	const int status = nc_put_att(ncid, varid, name, datatype, len, value);	if(status != NC_NOERR)	{		nc_advise("ncattput", status, "ncid %d", ncid);		return -1;	}	return 0;}intncattinq(    int		ncid,    int		varid,    const char*	name,     nc_type*	datatype,    int*	len){	size_t ll;	const int status = nc_inq_att(ncid, varid, name, datatype, &ll);	if(status != NC_NOERR)	{		nc_advise("ncattinq", status,		    "ncid %d; varid %d; attname \"%s\"",		    ncid, varid, name);		return -1;	}		if(len != NULL)		*len = (int) ll;	return 1;}intncattget(    int		ncid,    int		varid,    const char*	name,     void*	value){	const int status = nc_get_att(ncid, varid, name, value);	if(status != NC_NOERR)	{		nc_advise("ncattget", status, "ncid %d", ncid);		return -1;	}	return 1;}intncattcopy(    int		ncid_in,    int		varid_in,    const char*	name,     int		ncid_out,    int		varid_out){	const int status = nc_copy_att(ncid_in, varid_in, name, ncid_out, varid_out);	if(status != NC_NOERR)	{		nc_advise("ncattcopy", status, "%s", name);		return -1;	}	return 0;}intncattname(    int		ncid,    int		varid,    int		attnum,    char*	name){	const int status = nc_inq_attname(ncid, varid, attnum, name);	if(status != NC_NOERR)	{		nc_advise("ncattname", status, "ncid %d", ncid);		return -1;	}	return attnum;}intncattrename(    int		ncid,    int		varid,    const char*	name,     const char*	newname){	const int status = nc_rename_att(ncid, varid, name, newname);	if(status != NC_NOERR)	{		nc_advise("ncattrename", status, "ncid %d", ncid);		return -1;	}	return 1;}intncattdel(    int		ncid,    int		varid,    const char*	name){	 const int status = nc_del_att(ncid, varid, name);	if(status != NC_NOERR)	{		nc_advise("ncattdel", status, "ncid %d", ncid);		return -1;	}	return 1;}#endif /* NO_NETCDF_2 */#ifndef NO_NETCDF_2intncsetfill(    int		ncid,    int		fillmode){	int oldmode = -1;	const int status = nc_set_fill(ncid, fillmode, &oldmode);	if(status != NC_NOERR)	{		nc_advise("ncsetfill", status, "ncid %d", ncid);		return -1;	}	return oldmode;}intncrecinq(    int		ncid,    int*	nrecvars,    int*	recvarids,    long*	recsizes){	size_t nrv = 0;	size_t rs[NC_MAX_VARS]; /* TODO */	const int status = nc_inq_rec(ncid, &nrv, recvarids, rs);	if(status != NC_NOERR)	{		nc_advise("ncrecinq", status, "ncid %d", ncid);		return -1;	}	if(nrecvars != NULL)		*nrecvars = (int) nrv;	if(recsizes != NULL)	{		size_t ii;		for(ii = 0; ii < nrv; ii++)		{			recsizes[ii] = (long) rs[ii];		}	}	return (int) nrv;}intncrecget(    int		ncid,    long	recnum,    void**	datap){	const int status = nc_get_rec(ncid, (size_t)recnum, datap);	if(status != NC_NOERR)	{		nc_advise("ncrecget", status, "ncid %d", ncid);		return -1;	}	return 0;}intncrecput(    int		ncid,    long	recnum,    void* const* datap){	const int status = nc_put_rec(ncid, (size_t)recnum, datap);	if(status != NC_NOERR)	{		nc_advise("ncrecput", status, "ncid %d", ncid);		return -1;	}	return 0;}#endif /* NO_NETCDF_2 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -