[netcdfgroup] change in include files for netcdf-4 C API parallel I/O users...

Howdy all!

Ignore this email unless you use parallel I/O with netCDF-4 from the C
library. (Fortran users are unaffected by this change).

For those who are still reading, there is an important change in the way
you must use netCDF with your C programs. Your parallel programs must
now include the new header file netcdf_par.h instead of (or before)
netcdf.h. 

For example:

#include <netcdf.h>

becomes:

#include <netcdf_par.h>

It is OK to also include netcdf.h, but you must not include netcdf.h
BEFORE netcdf_par.h, or you will get a compile-time error.

This change is motivated by complex use scenarios which over-strain the
method by which MPI_Comm and MPI_Info types are handled in
netcdf.h. (These types are defined in mpi.h). The separation of
functions which use these types allows for a more straightforward and
consistent way of dealing with these types.

Basically, I got a little too tricky with the way netCDF-4 handled those
types, and that caused problems. Now the trickery will end.

The unfortunate side-effect is that parallel programmers must now
include netcdf_par.h instead of netcdf.h. If you forget, you will find
that there are no prototypes for nc_create_par, nc_open_par, and
nc_par_access in netcdf.h.

Anyone who has been (perhaps unsuccessfully) trying to use netcdf-4 in a
sequential way from a parallel program will find that this change makes
everything work as expected.

The use of the new header file is in the current daily snapshot, and
will take full effect for the upcoming 4.1.2 release. Its use can be
seen in any of the parallel tests which are enabled with configure
option --enable-parallel-tests, such as nc_test4/tst_parallel.c.

Feedback is welcome as always.

Thanks,

Ed

-- 
Ed Hartnett  -- ed@xxxxxxxxxxxxxxxx



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