- To: Constantine Khroulev <c.khroulev@xxxxxxxxx>
- Subject: Re: [netcdfgroup] NetCDF 4.0.1 with --enable-netcdf-4 conflicts with Open MPI by redefining MPI_Comm, etc
- From: Ted Mansell <Ted.Mansell@xxxxxxxx>
- Date: Mon, 05 Oct 2009 15:38:06 -0500
You can use non-MPI netcdf with an MPI program as long as you don't
try to use parallel IO. At least it works for me with Fortran with
the netcdf module ("USE NETCDF"). I guess you are using C?
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*’===
- Follow-Ups:
- Re: [netcdfgroup] NetCDF 4.0.1 with --enable-netcdf-4 conflicts with Open MPI by redefining MPI_Comm, etc
- From: Constantine Khroulev
- Re: [netcdfgroup] NetCDF 4.0.1 with --enable-netcdf-4 conflicts with Open MPI by redefining MPI_Comm, etc
- References:
- [netcdfgroup] NetCDF 4.0.1 with --enable-netcdf-4 conflicts with Open MPI by redefining MPI_Comm, etc
- From: Constantine Khroulev
- [netcdfgroup] NetCDF 4.0.1 with --enable-netcdf-4 conflicts with Open MPI by redefining MPI_Comm, etc