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.
Could there be an ifndef to check if MPI is in use before defining those vars in netcdf.h? Like:
#ifndef MPI_COMM_WORLD #define MPI_Comm int #define MPI_Info int #define MPI_COMM_WORLD 0 #define MPI_INFO_NULL 0 #endif And make sure that netcdf.h comes after mpi.h.An alternative would be to turn off the create_par and open_par in the header and code.
-- Ted On Oct 5, 2009, at 3:08 PM, 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*’===
netcdfgroup
archives: