Next: nc_rename_att, Previous: nc_get_att_ type, Up: Attributes
The function nc_copy_att copies an attribute from one open netCDF dataset to another. It can also be used to copy an attribute from one variable to another within the same netCDF.
int nc_copy_att (int ncid_in, int varid_in, const char *name, int ncid_out, int varid_out);
ncid_in
varid_in
name
ncid_out
varid_out
nc_copy_att returns the value NC_NOERR if no errors occurred. Otherwise, the returned status indicates an error. Possible causes of errors include:
Here is an example using nc_copy_att to copy the variable attribute units from the variable rh in an existing netCDF dataset named foo.nc to the variable avgrh in another existing netCDF dataset named bar.nc, assuming that the variable avgrh already exists, but does not yet have a units attribute:
#include <netcdf.h> ... int status; /* error status */ int ncid1, ncid2; /* netCDF IDs */ int rh_id, avgrh_id; /* variable IDs */ ... status = nc_open("foo.nc", NC_NOWRITE, ncid1); if (status != NC_NOERR) handle_error(status); status = nc_open("bar.nc", NC_WRITE, ncid2); if (status != NC_NOERR) handle_error(status); ... status = nc_inq_varid (ncid1, "rh", &rh_id); if (status != NC_NOERR) handle_error(status); status = nc_inq_varid (ncid2, "avgrh", &avgrh_id); if (status != NC_NOERR) handle_error(status); ... status = nc_redef(ncid2); /* enter define mode */ if (status != NC_NOERR) handle_error(status); /* copy variable attribute from "rh" to "avgrh" */ status = nc_copy_att(ncid1, rh_id, "units", ncid2, avgrh_id); if (status != NC_NOERR) handle_error(status); ... status = nc_enddef(ncid2); /* leave define mode */ if (status != NC_NOERR) handle_error(status);