Re: [netcdfgroup] NetCDF 4.0.1 with --enable-netcdf-4 conflicts with Open MPI by redefining MPI_Comm, etc

  • 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" redefined
In 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*’
===




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