NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
The current setup in configure.ac for netcdf-4 is to check to see if HDF5 was configured with mpi, and if so, then to use '#include <mpi.h>' in netcdf.h that is installed. If hdf5 is not configured for mpi, then it is necessary to include those fake declarations (e.g. #define MPI_Comm int) to allow other procedures in netcdf.h to be compiled. If you write a program that includes mpi.h then indeed you will get conflicts; so the question is: why are you including mpi.h in your netcf programs? Does it work ok if you remove the '#include <mpi.h>' ? =Dennis Heimbigner Constantine Khroulev wrote:
Hello,I have a problem: NetCDF 4.0.1 adds the following lines to netcdf.h (HDF5 is, in fact, built without parallel I/O support.):===/* These defs added by netCDF configure because parallel HDF5 is not present. */#define MPI_Comm int #define MPI_Info int #define MPI_COMM_WORLD 0 #define MPI_INFO_NULL 0 ===This (it seems to me) makes it impossible to use MPI (or PETSc) with NetCDF, producing warnings like=== /opt/local/include/netcdf.h:43:1: warning: "MPI_COMM_WORLD" redefinedIn file included from /Users/constantine/Documents/PISM/petsc-3.0.0-p0/include/petsc.h:137, from /Users/constantine/Documents/PISM/petsc-3.0.0-p0/include/petscis.h:7, from /Users/constantine/Documents/PISM/petsc-3.0.0-p0/include/petscvec.h:9, from /Users/constantine/Documents/PISM/petsc-3.0.0-p0/include/petscda.h:7,from ../src/base/grid.cc:20: === and errors similar to ===../src/base/grid.cc:64: error: invalid conversion from ‘int’ to ‘ompi_communicator_t*’=== NetCDF 4.0.1 built without --enable-netcdf-4 works fine with the same code.Please let me know if this is the intended behavior, if I'm doing something wrong, etc.Thank you!
netcdfgroup
archives: