This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Hello, > Hi! > > Per Jansson, PhD student, physical oceanography at UiT, Norway, here. > > (On a brand new workstation with ubuntu 14.04 LTS.) > > I'm trying to build netcdf-4.3.2 C-libraries with support for parallel and > netcdf-4, but ran into problems; > > I have successfully installed hdf5 (1.8.13) (make check install-->ok). like > this; > export LD_LIBRARYS_PATH="/home/per/local/lib /usr/local/lib" > export CPPFLAGS="-I/home/per/local/include" I don't know if it is relevant, but LD_LIBRARYS_PATH should, I believe, be: LD_LIBRARY_PATH="/home/per/local/lib:/usr/local/lib" I have not seen 'LD_LIBRARYS_PATH' before, and a google search is not showing me any information about it. Section 3.3.1 of the following document describes how to use LD_LIBRARY_PATH. http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html > export LDFLAGS="-L/home/per/local/lib" > export LIBS="-lz -ldl" > export CC=mpicc > ./configure --prefix=/home/per/local/ -with-zlib=/home/per/local > -enable-parallel Unless this is a typo in the email, I believe you should use '--enable-parallel', with two dashes, not '-enable-parallel', as you have above. What is happening is that configure is not finding parallel symbols in libhdf5, and so 'USE_PARALLEL' is not being defined. As a result, MPI_Comm is being defined in ncdispatch.h; this is guarded by an "#ifndef USE_PARALLEL" block. Looking at the config.log file you provided, it confirms that no parallel symbols are found. Can you confirm that libhdf5 actually built with parallel functionality? Thanks, -Ward > make check > make install > > Then I try to build the netcdf-4.3.2 C-libraries like this; > export LD_LIBRARYS_PATH="/home/per/local/lib /usr/local/lib" Again, I'm not sure if it is relevant, but this should be changed as described above. > export CPPFLAGS="-I/home/per/local/include" > export LDFLAGS="-L/home/per/local/lib" > export LIBS="-lz -ldl" > export CC=mpicc > ./configure --prefix=/home/per/local --enable-netcdf-4 > --enable-parallel-tests --disable-shared --disable-dap > so far ok > make check > produces; (this is end-bit of the output...) > ============================================================================ > Testsuite summary for netCDF 4.3.2 > ============================================================================ > # TOTAL: 26 > # PASS: 26 > # SKIP: 0 > # XFAIL: 0 > # FAIL: 0 > # XPASS: 0 > # ERROR: 0 > ============================================================================ > make[3]: Leaving directory `/home/per/software/netcdf-4.3.2/h5_test' > make[2]: Leaving directory `/home/per/software/netcdf-4.3.2/h5_test' > make[1]: Leaving directory `/home/per/software/netcdf-4.3.2/h5_test' > Making check in libdispatch > make[1]: Entering directory `/home/per/software/netcdf-4.3.2/libdispatch' > make[1]: Nothing to be done for `check'. > make[1]: Leaving directory `/home/per/software/netcdf-4.3.2/libdispatch' > Making check in libsrc > make[1]: Entering directory `/home/per/software/netcdf-4.3.2/libsrc' > make[1]: Nothing to be done for `check'. > make[1]: Leaving directory `/home/per/software/netcdf-4.3.2/libsrc' > Making check in libsrc4 > make[1]: Entering directory `/home/per/software/netcdf-4.3.2/libsrc4' > /bin/bash ../libtool --tag=CC --mode=compile mpicc -DHAVE_CONFIG_H -I. > -I.. -I../include -I/home/per/local/include -g -O2 -MT > libnetcdf4_la-nc4attr.lo -MD -MP -MF .deps/libnetcdf4_la-nc4attr.Tpo -c -o > libnetcdf4_la-nc4attr.lo `test -f 'nc4attr.c' || echo './'`nc4attr.c > libtool: compile: mpicc -DHAVE_CONFIG_H -I. -I.. -I../include > -I/home/per/local/include -g -O2 -MT libnetcdf4_la-nc4attr.lo -MD -MP -MF > .deps/libnetcdf4_la-nc4attr.Tpo -c nc4attr.c -o libnetcdf4_la-nc4attr.o > In file included from nc4dispatch.h:15:0, > from nc4attr.c:17: > ../include/ncdispatch.h:90:13: error: conflicting types for 'MPI_Comm' > typedef int MPI_Comm; > ^ > In file included from /home/per/local/include/H5public.h:61:0, > from /home/per/local/include/hdf5.h:24, > from ../include/nc4internal.h:18, > from nc4attr.c:15: > /home/per/local/include/mpi.h:324:37: note: previous declaration of > 'MPI_Comm' was here > typedef struct ompi_communicator_t *MPI_Comm; > ^ > In file included from nc4dispatch.h:15:0, > from nc4attr.c:17: > ../include/ncdispatch.h:91:13: error: conflicting types for 'MPI_Info' > typedef int MPI_Info; > ^ > In file included from /home/per/local/include/H5public.h:61:0, > from /home/per/local/include/hdf5.h:24, > from ../include/nc4internal.h:18, > from nc4attr.c:15: > /home/per/local/include/mpi.h:331:29: note: previous declaration of > 'MPI_Info' was here > typedef struct ompi_info_t *MPI_Info; > ^ > In file included from nc4dispatch.h:15:0, > from nc4attr.c:17: > ../include/ncdispatch.h:92:0: warning: "MPI_COMM_WORLD" redefined [enabled by > default] > #define MPI_COMM_WORLD 0 > ^ > In file included from /home/per/local/include/H5public.h:61:0, > from /home/per/local/include/hdf5.h:24, > from ../include/nc4internal.h:18, > from nc4attr.c:15: > /home/per/local/include/mpi.h:1016:0: note: this is the location of the > previous definition > #define MPI_COMM_WORLD OMPI_PREDEFINED_GLOBAL( MPI_Comm, ompi_mpi_comm_world) > ^ > In file included from nc4dispatch.h:15:0, > from nc4attr.c:17: > ../include/ncdispatch.h:93:0: warning: "MPI_INFO_NULL" redefined [enabled by > default] > #define MPI_INFO_NULL 0 > ^ > In file included from /home/per/local/include/H5public.h:61:0, > from /home/per/local/include/hdf5.h:24, > from ../include/nc4internal.h:18, > from nc4attr.c:15: > /home/per/local/include/mpi.h:743:0: note: this is the location of the > previous definition > #define MPI_INFO_NULL OMPI_PREDEFINED_GLOBAL(MPI_Info, ompi_mpi_info_null) > ^ > make[1]: *** [libnetcdf4_la-nc4attr.lo] Error 1 > make[1]: Leaving directory `/home/per/software/netcdf-4.3.2/libsrc4' > make: *** [check-recursive] Error 1 > per@per-HP-Z620-Workstation:~/software/netcdf-4.3.2$ > > What is happening? If it's any help, I have attached the config.log file... > I need the netcdf-4 to be able to install netcdf-fortran-4.4.0, which I need > to install ROMS (regional Ocean Model System). > > > Best regards! > Per > > Ticket Details =================== Ticket ID: TRL-392354 Department: Support netCDF Priority: Normal Status: Closed