Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.

[netcdfgroup] Accessing a NetCDF and HDF5 file at the same time corrupts the HDF file

Hi,

I'm trying to write to a NetCDF file and an HDF5 file at the same time. When I 
call nc_close() the HDF5 file identifier gets corrupted:

#include <netcdf.h>
#include <hdf5.h>

#define H5_FILE "test.h5"
#define NC_FILE "test.nc"

int main (void)
{
  hid_t h5file;
  int ncid;

  h5file = H5Fcreate(H5_FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);

  nc_create (NC_FILE, NC_CLOBBER, &ncid);
  nc_close (ncid);

  /** Code to write data to the HDF5 file removed for simplicity **/

  H5Fclose (h5file);
  return 0;
}

Using NetCDF 4.1.1 and HDF5 1.8.5, I get the following error when calling 
H5Fclose and the resulting HDF file is empty:

HDF5-DIAG: Error detected in HDF5 (1.8.5) thread 0:
  #000: H5F.c line 1943 in H5Fclose(): invalid file identifier
    major: Invalid arguments to routine
    minor: Inappropriate type

Calling H5Fclose() _before_ nc_close() makes the problem go away. The problem 
also does not occur when linking against NetCDF 3.6.3. Is this possibly a bug 
in nc_close()?

Any help appreciated.

/oliver



  • 2010 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: