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.
Hi Jennifer, > I have successfully built the C version of netcdf-4.2 with lots of > important features enabled, here is the output from nc-config: > > # /opt/netcdf/4.2/gnu/4.1.2/bin/nc-config --all > > This netCDF 4.2 has been built with the following features: > --cc -> /usr/bin/gcc > --cflags -> -I/opt/netcdf/4.2/gnu/4.1.2/include > -I/opt/hdf5/1.8.8/intel/11.1.064/include > -I/opt/hdf/4.2.6/intel/11.1.064/include -I/opt/szip/2.1/include > --libs -> -L/opt/netcdf/4.2/gnu/4.1.2/lib -lnetcdf > --cxx -> @CXX@ > --has-c++ -> @HAS_CXX@ > --fc -> @FC@ > --fflags -> @FFLAGS@ @MOD_FLAG@/opt/netcdf/4.2/gnu/4.1.2/include > --flibs -> -L/opt/netcdf/4.2/gnu/4.1.2/lib @NC_FLIBS@ > --has-f77 -> @HAS_F77@ > --has-f90 -> @HAS_F90@ > --has-dap -> yes > --has-nc2 -> yes > --has-nc4 -> yes > --has-hdf5 -> yes > --has-hdf4 -> yes > --has-pnetcdf-> no > --has-szlib -> > --prefix -> /opt/netcdf/4.2/gnu/4.1.2 > --includedir-> /opt/netcdf/4.2/gnu/4.1.2/include > --version -> netCDF 4.2 > > We use a module system to set paths and the right environment, here is > the output from the 'env | grep netcdf' command: > > PATH=/opt/netcdf/4.2/gnu/4.1.2/bin:/opt/hdf/4.2.6/intel/11.1.064/bin:/opt/hdf5/1.8.8/intel/11.1.064/bin:/opt/intel/compiler/11.1.064/bin/intel64:/homes/jma/bin:/homes/jma/ncl-6.0.0/bin:/homes/colagds/bin:/usr/local/grads/2.0:/usr/local/grads:/usr/kerberos/bin:/usr/java/default/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:. > PWD=/opt/netcdf/4.2/intel/11.1.064 > LD_LIBRARY_PATH=/opt/netcdf/4.2/gnu/4.1.2/lib:/opt/szip/2.1/gnu/4.1.2/lib:/opt/hdf/4.2.6/intel/11.1.064/lib:/opt/hdf5/1.8.8/intel/11.1.064/lib:/opt/intel/compiler/11.1.064/ipp/em64t/sharedlib:/opt/intel/compiler/11.1.064/mkl/lib/em64t:/opt/intel/compiler/11.1.064/tbb/intel64/cc4.1.0_libc2.4_kernel2.6.16.21/lib:/opt/intel/compiler/11.1.064/lib/intel64:/opt/udunits/2.1.23/lib > MANPATH=/opt/netcdf/4.2/gnu/4.1.2/share/man:/opt/intel/compiler/11.1.064/mkl/man:/opt/intel/compiler/11.1.064/man:/usr/java/default/man: > LOADEDMODULES=intel/11.1.064:hdf5/1.8.8/intel/11.1.064:hdf/4.2.6/intel/11.1.064:szip/2.1/gnu/4.1.2:netcdf/4.2/gnu/4.1.2 > INCLUDE=/opt/netcdf/4.2/gnu/4.1.2/include:/opt/szip/2.1/gnu/4.1.2/include:/opt/hdf/4.2.6/intel/11.1.064/include:/opt/hdf5/1.8.8/intel/11.1.064/include:/opt/intel/compiler/11.1.064/ipp/em64t/include:/opt/intel/compiler/11.1.064/mkl/include > INFOPATH=/opt/netcdf/4.2/gnu/4.1.2/share/info > LIBRARY_PATH=/opt/netcdf/4.2/gnu/4.1.2/lib:/opt/szip/2.1/gnu/4.1.2/lib:/opt/hdf/4.2.6/intel/11.1.064/lib:/opt/hdf5/1.8.8/intel/11.1.064/lib:/opt/intel/compiler/11.1.064/ipp/em64t/lib:/opt/intel/compiler/11.1.064/mkl/lib/em64t:/opt/intel/compiler/11.1.064/tbb/intel64/cc4.1.0_libc2.4_kernel2.6.16.21/lib > NETCDF=/opt/netcdf/4.2/gnu/4.1.2 > NETCDF_HOME=/opt/netcdf/4.2/gnu/4.1.2 > _LMFILES_=/opt/Modules/modulefiles/intel/11.1.064:/opt/Modules/modulefiles/hdf5/1.8.8/intel/11.1.064:/opt/Modules/modulefiles/hdf/4.2.6/intel/11.1.064:/opt/Modules/modulefiles/szip/2.1/gnu/4.1.2:/opt/Modules/modulefiles/netcdf/4.2/gnu/4.1.2 > > > Now I am trying to build the fortran version of 4.2. We have the intel > fortran compiler, ifort, version 11.1.064. Before I begin I set three > environment vars, then run ./configure with only the --prefix option: > > setenv FC ifort > setenv CPPFLAGS -I/opt/netcdf/4.2/gnu/4.1.2/include > setenv LDFLAGS -I/opt/netcdf/4.2/gnu/4.1.2/lib > ./configure --prefix=/opt/netcdf/4.2/intel/11.1.064 > > Configure and make all work fine, but nf-config says I don't have nc4 > support: > > is6[jma]:/opt/netcdf/4.2/intel/11.1.064/src # ../bin/nf-config --all > This netCDF-Fortran 4.2 has been built with the following features: > --cc -> /usr/bin/gcc > --cflags -> -I/opt/netcdf/4.2/intel/11.1.064/include > -I/opt/netcdf/4.2/gnu/4.1.2/include > --libs -> -L/opt/netcdf/4.2/intel/11.1.064/lib > -I/opt/netcdf/4.2/gnu/4.1.2/lib -lnetcdf > --fc -> ifort > --fflags -> -g -I/opt/netcdf/4.2/intel/11.1.064/include > --flibs -> -L/opt/netcdf/4.2/intel/11.1.064/lib -lnetcdff > -I/opt/netcdf/4.2/gnu/4.1.2/lib -lnetcdf > --has-f90 -> yes > --has-nc2 -> no > --has-nc4 -> no > --prefix -> /opt/netcdf/4.2/intel/11.1.064 > --includedir-> /opt/netcdf/4.2/intel/11.1.064/include > --version -> netCDF-Fortran 4.2 > > It doesn't say whether the fortran library is dap-enabled, but I need > that too. The --enable-netcdf-4 option does not appear to be valid with > the fortran version of the configure script. I am primarily a C > programmer, not all that experienced in building fortran code. Can you > see what I am doing wrong here? Let me know if you need any more > information... These are symptoms of bugs in nc-config and nf-config, not calling each other to determine what features are supported. We need to get out a bug-fix release for netcdf-fortran soon, because I think these bugs are fixed in the current snapshot. Unfortunately, there's no bundled snapshot release of netcdf-fortran yet, only an svn source tree. The issue for tracking is here: https://www.unidata.ucar.edu/jira/browse/NCF-165 I believe running "make check" for the Fortran release should verify that you actually have support for version 2 interfaces and for the netCDF-4 APIs. Let me know if your "make check" for Fortran does not include these lines: *** Testing netCDF v2 api for F77. *** SUCCESS! PASS: tst_f77_v2 *** Testing definition of netCDF-4 vars from Fortran 77. *** SUCCESS! PASS: ftst_vars *** Testing netCDF-4 vars from F77 with new types. *** SUCCESS! PASS: ftst_vars2 *** Testing enum and opaque types. *** SUCCESS! PASS: ftst_vars3 *** Testing VLEN types. *** SUCCESS! PASS: ftst_vars4 *** Testing compound types. *** SUCCESS! PASS: ftst_vars5 If you see all those, then that verifies "nf-config --all" is wrong about the supported features. Also, DAP access is supported in the Fortran APIs as a consequence of support in the separate C library, but I see it's not explicitly tested for when "make check" is run. The current versions of nc-config.in for the C release and nf-config.in for the Fortran release are available here: http://svn.unidata.ucar.edu/repos/netcdf/trunk/nc-config.in http://svn.unidata.ucar.edu/repos/netcdf-fortran/trunk/nf-config.in Unfortunately to fix nc-config and nf-config requires starting over by copying the two files above into the top source directory of the respective releases, rerunning configure, make check, make install for the C release, then rerunning configure, make check, make install for the Fortran release. Please let us know if that doesn't fix the problems with nf-config returning the wrong information, and thanks for reporting the bugs! --Russ Russ Rew UCAR Unidata Program address@hidden http://www.unidata.ucar.edu Ticket Details =================== Ticket ID: ASX-279014 Department: Support netCDF Priority: Normal Status: Closed