On Wed, Sep 02, 2009 at 04:50:29PM -0400, Carlos Moffat wrote:
> Hello,
>
> I'm trying to compile NetCDF v4.0.1 to run the ROMS model
> (http://www.myroms.org) in a parallel configuration.
>
> What I've done so far is to install MPICH2 with the configuration
>
> ./configure --enable-f90 --with-mpe --with-romio --prefix=/usr/local
looks good
> and HDF5 (v1.8.3) with the options:
>
> CC=mpicc LIBS="-lm -lz" CPPFLAGS="-DpgiFortran" ./configure
> --enable-parallel --enable-fortran --prefix=/usr/local
>
> (I believe the "LIBS" options are not necessary here but they don't
> hurt). A 'make check' works nicely here.
yup, this looks good too.
> I have the intel fortran compiler installed (v11.0). When I compile
> netcdf v4.0.1 with:
>
> CC=mpicc CPPFLAGS="-DpgiFortran" LIBS="-lm -lz -lhdf5" ./configure
> --enable-netcdf-4 --prefix=/usr/local
>
> using 'make check', the the build fails with the output I've pasted
> below. It looks like the HDF5 libraries were compiled without the
> necessary MPI support, but my understanding is that the
> '--enable-parallel' flag should do this. Am I missing something?
Actually the errors you get *confirm* that HDF5 was compiled with MPI
support: it's the HDF5 library that is requesting MPI symbols, but
there is no mpi library in your link command.
> libtool: link: ifort -I../fortran -I../libsrc4 -I../f90 -g -o nf_test
> test_get.o test_put.o nf_error.o nf_test.o test_read.o test_write.o
> util.o fortlib.o ../libsrc4/.libs/libnetcdf.a -lhdf5_hl -lm -lz -lhdf5
> ../libsrc4/.libs/libnetcdf.a(nc4file.o): In function `nc_check_for_hdf5':
> /home/cmoffat/Sandbox/netcdf-4.0.1/libsrc4/nc4file.c:141: undefined
> reference to `MPI_File_open'
I don't know why libtool wants to link with ifort here. I think instead you
need to link with mpif90. If you would prefer to link "by hand", then
you will have to add the '-L/path/to/mpi -lmpich2' commands to your
link step.
you could also compile/link with the 'h5pcc' script, but that's
essentially the mpi wrapper scripts with one or two more HDF5
libraries in there. You've accomplished the same thing with your
'LIBS=' line when compiling netcdf4.
Maybe if you try setting the fortran compiler to mpif90 when you configure
netcdf 4 that will make things work better?
==rob
--
Rob Latham
Mathematics and Computer Science Division
Argonne National Lab, IL USA