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.
Jinyou, [I've included relevant parts of your original email so that it can be found in our user-support email archive. Go to the bottom of this email to see my response.] > To: address@hidden > cc: address@hidden > From: Jinyou Liang <address@hidden> > Subject: Fail in make test of netCDF 3.5.1-beta10 > Organization: ? > Keywords: netCDF PG compilers The above message contained the following: > Linux ygg.arb.ca.gov 2.4.9-34smp #1 SMP Sat Jun 1 06:15:25 EDT 2002 i686 > unknown > 3.5.1-beta10 ... > M4FLAGS = -B10000 > CPP = pgCC -E > CPPFLAGS = $(INCLUDES) $(DEFINES) -Mlfs -DNDEBUG -DpgiFortran > FPP = > FPPFLAGS = -DNDEBUG > CXXCPPFLAGS = $(CPPFLAGS) > > > # Compilation: > CC = pgcc > CXX = pgCC > FC = pgf90 > F90 = pgf90 > CFLAGS = -Mlfs -O -DpgiFortran > CXXFLAGS = -Mlfs -O -DpgiFortran > FFLAGS = -Mlfs -O > F90FLAGS = -Mlfs -O ... > /usr/pgi/linux86/bin/pgcc > /usr/pgi/linux86/bin/pgCC > /usr/pgi/linux86/bin/pgf90 > creating cache ./config.cache > checking for top-level source-directory > /home/jliang/netcdf/netcdf-3.5.1-beta10/src > checking for m4 preprocessor > checking for m4... m4 > checking m4 flags... -B10000 > checking C compiler "pgcc"... works > checking how to make dependencies... false > checking for pgCC... pgCC > checking C++ compiler "pgCC"... works > checking how to run the C preprocessor... pgCC -E > checking user-defined Fortran-77 compiler "pgf90"... works > checking for Fortran .F compiler... > checking if Fortran-77 compiler handles *.F files... yes > checking user-defined Fortran-90 compiler "pgf90"... works > checking for nm utility > checking for nm... nm > checking nm flags... > checking for C-equivalent to Fortran routine "SUB"... sub_ > checking for Fortran "byte"... yes > checking for Fortran "integer*2"... yes > checking if Fortran "byte" is C "signed char"... yes > checking if Fortran "byte" is C "short"... no > checking if Fortran "byte" is C "int"... no > checking if Fortran "byte" is C "long"... no > checking if Fortran "integer*2" is C "short"... yes > checking if Fortran "integer*2" is C "int"... no > checking if Fortran "integer*2" is C "long"... no > checking if Fortran "integer" is C "int"... yes > checking if Fortran "real" is C "float"... yes > checking if Fortran "doubleprecision" is C "double"... yes > checking for Fortran-equivalent to netCDF "byte"... byte > checking for Fortran-equivalent to netCDF "short"... integer*2 > checking for math library > checking for tanh in -lc... yes > checking for ar utility > checking for ar... ar > checking ar flags... cru > checking for nm utility > checking for nm... (cached) nm > checking nm flags... > checking for ranlib... ranlib > checking for stdlib.h... yes > checking for sys/types.h... yes > checking for strerror... yes > checking for working ftruncate()... yes > checking for working alloca.h... yes > checking for alloca... yes > checking for st_blksize in struct stat... yes > checking for IEEE floating point format... yes > checking for ANSI C header files... yes > checking for size_t... yes > checking for off_t... yes > checking for ssize_t... yes > checking for ptrdiff_t... yes > checking for uchar... no > checking whether char is unsigned... no > checking whether byte ordering is bigendian... no > checking size of short... 2 > checking size of int... 4 > checking size of long... 4 > checking size of float... 4 > checking size of double... 8 > checking size of off_t... 4 > checking size of size_t... 4 > checking for manual-page index command... > checking binary distribution directory... /home/ftp/pub/binary/dummy_system > updating cache ./config.cache > creating ./config.status > creating macros.make > udcreating fortran/nfconfig.inc > creating libsrc/ncconfig.h ... > Making `all' in directory /home/jliang/netcdf/netcdf-3.5.1-beta10/src/libsrc > > make[2]: Entering directory > `/home/jliang/netcdf/netcdf-3.5.1-beta10/src/libsrc' > pgcc -c -Mlfs -O -DpgiFortran -I. -Mlfs -DNDEBUG -DpgiFortran attr.c > pgcc -c -Mlfs -O -DpgiFortran -I. -Mlfs -DNDEBUG -DpgiFortran dim.c > pgcc -c -Mlfs -O -DpgiFortran -I. -Mlfs -DNDEBUG -DpgiFortran error.c > pgcc -c -Mlfs -O -DpgiFortran -I. -Mlfs -DNDEBUG -DpgiFortran > -DVERSION=`cat ../VERSION` libvers.c > pgcc -c -Mlfs -O -DpgiFortran -I. -Mlfs -DNDEBUG -DpgiFortran nc.c > pgcc -c -Mlfs -O -DpgiFortran -I. -Mlfs -DNDEBUG -DpgiFortran ncio.c > pgcc -c -Mlfs -O -DpgiFortran -I. -Mlfs -DNDEBUG -DpgiFortran ncx.c > pgcc -c -Mlfs -O -DpgiFortran -I. -Mlfs -DNDEBUG -DpgiFortran putget.c > PGC-W-0142-Assignment to const object not allowed (putget.c: 373) > PGC-W-0142-Assignment to const object not allowed (putget.c: 11527) > PGC-W-0142-Assignment to const object not allowed (putget.c: 11532) > PGC/x86 Linux/x86 4.1-2: compilation completed with warnings > pgcc -c -Mlfs -O -DpgiFortran -I. -Mlfs -DNDEBUG -DpgiFortran string.c > pgcc -c -Mlfs -O -DpgiFortran -I. -Mlfs -DNDEBUG -DpgiFortran v1hpg.c > pgcc -c -Mlfs -O -DpgiFortran -I. -Mlfs -DNDEBUG -DpgiFortran v2i.c > pgcc -c -Mlfs -O -DpgiFortran -I. -Mlfs -DNDEBUG -DpgiFortran var.c > ar cru libnetcdf.a attr.o dim.o error.o libvers.o nc.o ncio.o ncx.o putget.o > string.o v1hpg.o v2i.o var.o > ranlib libnetcdf.a > make[2]: Leaving directory > `/home/jliang/netcdf/netcdf-3.5.1-beta10/src/libsrc' ... > Making `test' in directory /home/jliang/netcdf/netcdf-3.5.1-beta10/src/libsrc > > make[2]: Entering directory > `/home/jliang/netcdf/netcdf-3.5.1-beta10/src/libsrc' > pgcc -c -Mlfs -O -DpgiFortran -I. -Mlfs -DNDEBUG -DpgiFortran t_nc.c > ar cru libnetcdf.a attr.o dim.o error.o libvers.o nc.o ncio.o ncx.o putget.o > string.o v1hpg.o v2i.o var.o > ranlib libnetcdf.a > pgcc -o t_nc -Mlfs -O -DpgiFortran t_nc.o -L. -lnetcdf > ./t_nc > dimrename: IXX > nc_close ret = 0 > > reopen id = 3 for filename test.nc > NC done > GATTR VAR VATTR > VATTR > VATTR > VATTR > VATTR > VATTR > fill_seq indices 1 2 3 75.000000 != 2.718282 > Done > got val = 3.250000 > got val = 0.000000 > got val = 2.718282 > got val = 82555 > got val = 97 > got NC_CHAR val = A (0x41) > got NC_CHAR val = B (0x42) > got NC_CHAR val = "The red death had long devastated the country." > got val = A (0x41) > got val = B (0x42) > got val = "The red death had long devastated the country." > got vals = 0.000000 ... 447.000000 > re nc_close ret = 0 > cmp test.nc test_nc.sav > *** Success *** > make[2]: Leaving directory > `/home/jliang/netcdf/netcdf-3.5.1-beta10/src/libsrc' > > Returning to directory /home/jliang/netcdf/netcdf-3.5.1-beta10/src > > make[1]: Leaving directory `/home/jliang/netcdf/netcdf-3.5.1-beta10/src' > make[1]: Entering directory `/home/jliang/netcdf/netcdf-3.5.1-beta10/src' > > Making `test' in directory /home/jliang/netcdf/netcdf-3.5.1-beta10/src/nc_test > > make[2]: Entering directory > `/home/jliang/netcdf/netcdf-3.5.1-beta10/src/nc_test' > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > nc_test.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > error.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > test_get.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > test_put.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > test_read.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > test_write.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran util.c > pgcc -o nc_test -Mlfs -O -DpgiFortran nc_test.o error.o test_get.o > test_put.o test_read.o test_write.o util.o -L../libsrc -lnetcdf > ./nc_test -c > ./nc_test > *** Testing nc_strerror ... ok > *** Testing nc_open ... ok > *** Testing nc_close ... ok > *** Testing nc_inq ... ok > *** Testing nc_inq_dimid ... ok > *** Testing nc_inq_dim ... ok > *** Testing nc_inq_dimlen ... ok > *** Testing nc_inq_dimname ... ok > *** Testing nc_inq_varid ... ok > *** Testing nc_inq_var ... ok > *** Testing nc_inq_natts ... ok > *** Testing nc_inq_ndims ... ok > *** Testing nc_inq_nvars ... ok > *** Testing nc_inq_unlimdim ... ok > *** Testing nc_inq_vardimid ... ok > *** Testing nc_inq_varname ... ok > *** Testing nc_inq_varnatts ... ok > *** Testing nc_inq_varndims ... ok > *** Testing nc_inq_vartype ... ok > *** Testing nc_get_var_text ... 179 good comparisons. ok > *** Testing nc_get_var_uchar ... 264 good comparisons. ok > *** Testing nc_get_var_schar ... 269 good comparisons. ok > *** Testing nc_get_var_short ... 682 good comparisons. ok > *** Testing nc_get_var_int ... 1189 good comparisons. ok > *** Testing nc_get_var_long ... 1189 good comparisons. ok > *** Testing nc_get_var_float ... 1194 good comparisons. ok > *** Testing nc_get_var_double ... 1207 good comparisons. ok > *** Testing nc_get_var1_text ... 179 good comparisons. ok > *** Testing nc_get_var1_uchar ... 264 good comparisons. ok > *** Testing nc_get_var1_schar ... 269 good comparisons. ok > *** Testing nc_get_var1_short ... 682 good comparisons. ok > *** Testing nc_get_var1_int ... 1189 good comparisons. ok > *** Testing nc_get_var1_long ... 1189 good comparisons. ok > *** Testing nc_get_var1_float ... 1194 good comparisons. ok > *** Testing nc_get_var1_double ... 1207 good comparisons. ok > *** Testing nc_get_vara_text ... 179 good comparisons. ok > *** Testing nc_get_vara_uchar ... 264 good comparisons. ok > *** Testing nc_get_vara_schar ... 269 good comparisons. ok > *** Testing nc_get_vara_short ... 682 good comparisons. ok > *** Testing nc_get_vara_int ... 1189 good comparisons. ok > *** Testing nc_get_vara_long ... 1189 good comparisons. ok > *** Testing nc_get_vara_float ... 1194 good comparisons. ok > *** Testing nc_get_vara_double ... 1207 good comparisons. ok > *** Testing nc_get_vars_text ... 179 good comparisons. ok > *** Testing nc_get_vars_uchar ... 264 good comparisons. ok > *** Testing nc_get_vars_schar ... 269 good comparisons. ok > *** Testing nc_get_vars_short ... 682 good comparisons. ok > *** Testing nc_get_vars_int ... 1189 good comparisons. ok > *** Testing nc_get_vars_long ... 1189 good comparisons. ok > *** Testing nc_get_vars_float ... 1194 good comparisons. ok > *** Testing nc_get_vars_double ... 1207 good comparisons. ok > *** Testing nc_get_varm_text ... 179 good comparisons. ok > *** Testing nc_get_varm_uchar ... 264 good comparisons. ok > *** Testing nc_get_varm_schar ... 269 good comparisons. ok > *** Testing nc_get_varm_short ... 682 good comparisons. ok > *** Testing nc_get_varm_int ... 1189 good comparisons. ok > *** Testing nc_get_varm_long ... 1189 good comparisons. ok > *** Testing nc_get_varm_float ... 1194 good comparisons. ok > *** Testing nc_get_varm_double ... 1207 good comparisons. ok > *** Testing nc_get_att_text ... 7 good comparisons. ok > *** Testing nc_get_att_uchar ... 5 good comparisons. ok > *** Testing nc_get_att_schar ... 7 good comparisons. ok > *** Testing nc_get_att_short ... 15 good comparisons. ok > *** Testing nc_get_att_int ... 19 good comparisons. ok > *** Testing nc_get_att_long ... 19 good comparisons. ok > *** Testing nc_get_att_float ... 21 good comparisons. ok > *** Testing nc_get_att_double ... 27 good comparisons. ok > *** Testing nc_inq_att ... ok > *** Testing nc_inq_attname ... ok > *** Testing nc_inq_attid ... ok > *** Testing nc_inq_attlen ... ok > *** Testing nc_inq_atttype ... ok > *** Testing nc_create ... ok > *** Testing nc_redef ... 1386 good comparisons. 34 good comparisons. ok > *** Testing nc_sync ... 34 good comparisons. 1386 good comparisons. ok > *** Testing nc_abort ... 1386 good comparisons. 34 good comparisons. ok > *** Testing nc_def_dim ... ok > *** Testing nc_rename_dim ... ok > *** Testing nc_def_var ... ok > *** Testing nc_put_var_text ... 179 good comparisons. ok > *** Testing nc_put_var_uchar ... 264 good comparisons. ok > *** Testing nc_put_var_schar ... 269 good comparisons. ok > *** Testing nc_put_var_short ... 682 good comparisons. ok > *** Testing nc_put_var_int ... 1189 good comparisons. ok > *** Testing nc_put_var_long ... 1189 good comparisons. ok > *** Testing nc_put_var_float ... 1194 good comparisons. ok > *** Testing nc_put_var_double ... 1207 good comparisons. ok > *** Testing nc_put_var1_text ... 179 good comparisons. ok > *** Testing nc_put_var1_uchar ... 264 good comparisons. ok > *** Testing nc_put_var1_schar ... 269 good comparisons. ok > *** Testing nc_put_var1_short ... 682 good comparisons. ok > *** Testing nc_put_var1_int ... 1189 good comparisons. ok > *** Testing nc_put_var1_long ... 1189 good comparisons. ok > *** Testing nc_put_var1_float ... 1194 good comparisons. ok > *** Testing nc_put_var1_double ... 1207 good comparisons. ok > *** Testing nc_put_vara_text ... 179 good comparisons. ok > *** Testing nc_put_vara_uchar ... 264 good comparisons. ok > *** Testing nc_put_vara_schar ... 269 good comparisons. ok > *** Testing nc_put_vara_short ... 682 good comparisons. ok > *** Testing nc_put_vara_int ... 1189 good comparisons. ok > *** Testing nc_put_vara_long ... 1189 good comparisons. ok > *** Testing nc_put_vara_float ... 1194 good comparisons. ok > *** Testing nc_put_vara_double ... 1207 good comparisons. ok > *** Testing nc_put_vars_text ... 179 good comparisons. ok > *** Testing nc_put_vars_uchar ... 264 good comparisons. ok > *** Testing nc_put_vars_schar ... 269 good comparisons. ok > *** Testing nc_put_vars_short ... 682 good comparisons. ok > *** Testing nc_put_vars_int ... 1189 good comparisons. ok > *** Testing nc_put_vars_long ... 1189 good comparisons. ok > *** Testing nc_put_vars_float ... 1194 good comparisons. ok > *** Testing nc_put_vars_double ... 1207 good comparisons. ok > *** Testing nc_put_varm_text ... 179 good comparisons. ok > *** Testing nc_put_varm_uchar ... 264 good comparisons. ok > *** Testing nc_put_varm_schar ... 269 good comparisons. ok > *** Testing nc_put_varm_short ... 682 good comparisons. ok > *** Testing nc_put_varm_int ... 1189 good comparisons. ok > *** Testing nc_put_varm_long ... 1189 good comparisons. ok > *** Testing nc_put_varm_float ... 1194 good comparisons. ok > *** Testing nc_put_varm_double ... 1207 good comparisons. ok > *** Testing nc_rename_var ... 1386 good comparisons. ok > *** Testing nc_put_att_text ... 7 good comparisons. ok > *** Testing nc_put_att_uchar ... 5 good comparisons. ok > *** Testing nc_put_att_schar ... 7 good comparisons. ok > *** Testing nc_put_att_short ... 15 good comparisons. ok > *** Testing nc_put_att_int ... 19 good comparisons. ok > *** Testing nc_put_att_long ... 19 good comparisons. ok > *** Testing nc_put_att_float ... 21 good comparisons. ok > *** Testing nc_put_att_double ... 27 good comparisons. ok > *** Testing nc_copy_att ... 34 good comparisons. ok > *** Testing nc_rename_att ... 34 good comparisons. ok > *** Testing nc_del_att ... ok > *** Testing nc_set_fill ... 2796 good comparisons. ok > > Total number of failures: 0 > *** Success *** > make[2]: Leaving directory > `/home/jliang/netcdf/netcdf-3.5.1-beta10/src/nc_test' > > Returning to directory /home/jliang/netcdf/netcdf-3.5.1-beta10/src > > make[1]: Leaving directory `/home/jliang/netcdf/netcdf-3.5.1-beta10/src' > make[1]: Entering directory `/home/jliang/netcdf/netcdf-3.5.1-beta10/src' > > Making `test' in directory /home/jliang/netcdf/netcdf-3.5.1-beta10/src/nctest > > make[2]: Entering directory > `/home/jliang/netcdf/netcdf-3.5.1-beta10/src/nctest' > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > varget.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > vargetg.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > varput.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > varputg.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > vardef.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > vartests.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > vputget.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > vputgetg.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > driver.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > cdftests.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > dimtests.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran rec.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > atttests.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > misctest.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran add.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > error.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > emalloc.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran val.c > pgcc -c -Mlfs -O -DpgiFortran -I../libsrc -Mlfs -DNDEBUG -DpgiFortran > slabs.c > pgcc -o nctest -Mlfs -O -DpgiFortran varget.o vargetg.o varput.o varputg.o > vardef.o vartests.o vputget.o vputgetg.o driver.o cdftests.o dimtests.o rec.o > atttests.o misctest.o add.o error.o emalloc.o val.o slabs.o -L../libsrc > -lnetcdf > ./nctest > *** Testing nccreate ... ok *** > *** Testing ncopen ... ok *** > *** Testing ncredef ... ok *** > *** Testing ncendef ... ok *** > *** Testing ncclose ... ok *** > *** Testing ncinquire ... ok *** > *** Testing ncsync ... ok *** > *** Testing ncabort ... ok *** > *** Testing ncdimdef ... ok *** > *** Testing ncdimid ... ok *** > *** Testing ncdiminq ... ok *** > *** Testing ncdimrename ... ok *** > *** Testing ncvardef ... ok *** > *** Testing ncvarid ... ok *** > *** Testing ncvarinq ... ok *** > *** Testing ncvarput1 ... ok *** > *** Testing ncvarget1 ... ok *** > *** Testing ncvarput ... ok *** > *** Testing ncvarget ... *** test_slabs: ncvarget got wrong value for > point > *** test_slabs: ncvarget got wrong value for vector > *** test_slabs: ncvarget got wrong value for vector > *** test_slabs: ncvarget got wrong value for vector ... I believe that your problem is due to a bug in the Portland Group C compiler. More information on this can be found at http://www.unidata.ucar.edu/cgi-bin/msgout?/glimpse/netcdf/5036 The workaround is to use gcc (the GNU C compiler) instead of pgcc. Please try the following: 1. Go to the top-level source directory. 2. Perform steps 3 through 5 described near the end of the file INSTALL.html. 3. Ensure that the environment variable CC is set to the absolute pathname of the GNU C compiler. 4. Ensure that the environment variable CPPFLAGS contains the string "-DpgiFortran". 5. Perform steps 6 through 9 described near the end of the file INSTALL.html. Regards, Steve Emmerson