I am having the same issue. On several of our codes, we output a
file-per-processor, so the HDF5 is built in serial mode, but the
application that the library is linked into is built with mpi. I have
to remove the MPI defines from netcdf.h or it corrupts the build.
--Greg Sjaardema
Dennis Heimbigner wrote:
> 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" 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*’
>> ===
>>
>> 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 mailing list
> netcdfgroup@xxxxxxxxxxxxxxxx
> For list information or to unsubscribe, visit:
> http://www.unidata.ucar.edu/mailing_lists/
>
>