This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
>To: address@hidden >From: Daniel Cohan <address@hidden> >Subject: netcdf error number -31 >Organization: UCAR/Unidata >Keywords: 200308081358.h78DwoLd017320 Hi Dan, > I am running the Community Multiscale Air Quality (CMAQ) model on a Linux > machine, and it frequently (but not always) is crashing with netCDF error > number > -31. The timing of the crashes is not consistent; for example, the following > error messages are after the model had been outputting normally for 29 hours > of > simulation. I am running a modified version of CMAQ that outputs more netCDF > output files than standard CMAQ, but I also sometimes get similar crashes with > error -31 when running standard CMAQ. > > What do these errors mean, and how can I keep them from occuring? You can find out what they mean by calling the netCDF function nc_strerror() from C programs or the equivalent nf_strerror() function from Fortran programs, giving the error as the only argument to the functions. They return a string that provides a human-readable error message. In the case of error -31, this might be the not-very-helpful "system error", which indicates that the system-level write() call fails with an error. This could occur if you were writing to a full disk, there was a media error, you were writing across a network connection and the network link or the system at the other end of the link went down, a disk write quota was exceeded, etc. In other words, this could occur from any error that might occur from a system-level write() call. You still might get more information by printing out the string resulting from the nf_strerror(-31) call, because in the case of a system error, it tries to determine which system error and substitute an appropriate message, like "disk full", for the returned error message string, if possible. --Russ > Thank you, > Dan Cohan > > > Timestep written to CTM_CONC_BC for date and time 2000225:110000 > NCVPT: : Input/output error > > > >>> WARNING in subroutine WRVARS <<< > Error writing variable NO2_PT343001 to file CTM_SENS_BC > netCDF error number -31