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.
>From: Boyin Huang <address@hidden> >Organization: The Center for Research on the Changing Earth System (CRCES) >Keywords: 200310201658.h9KGwWOb009709 netCDF PGI Fortran Linux Boyin, >I installed netcdf in my linux computer. It looks OK >when I used ncdump command. > >I tried to compile a fortran file to read a netCDF >file, but got an error message: >PGFTN-S-0017-Unable to open include file: netcdf.inc >(read_nc.F: 12) > >I don't know why the file netcdf.inc is missing. OK. >Therefore, I tried to reinstore the ntCDF at a new >directory, but failed when using "make" The make.log file that you include below shows that the build failed because your environment was not recognized. This came from not correctly/fully defining your enviornment variables. When using the PGI Fortran compiler, you need to define CPPFLAGS to include the '-DpgiFortran' flag. Here is the list of example settings when using the PGI Fortran compiler from our 'Installing netCDF' web page: http://my.unidata.ucar.edu/content/software/netcdf/INSTALL.html CC=/usr/bin/gcc CPPFLAGS='-DNDEBUG -DpgiFortran' CFLAGS=-O FC=/opt/pgi/linux86/bin/pgf90 FFLAGS='-O -w' CXX=/usr/bin/g++ So, you need to do the folling steps in order: 1) define CPPFLAGS as indicated above 2) run 'make distclean' 3) rerun 'configure' 4) rerun 'make' Please let us know if this does not solve your problem. Cheers, Tom Yoksas >Here are information from step A-F: > >(A) Linux indus.crces.org 2.4.18-26.8.0 #1 Mon Feb 24 >10:21:42 EST 2003 i686 i686 i386 GNU/Linux > >(B) 3.5.0 > >(C) > >CC=/usr/bin/cc >CFLAGS=-O >CPPFLAGS=-DNDEBUG >FC=/usr/pgi/linux86/5.0/bin/pgf77 >FFLAGS=-O >CXX=/usr/bin/g++ >CXXFLAGS=-O >F90=/usr/pgi/linux86/5.0/bin/pgf90 >F90FLAGS=-O > >(D) configure.log attached >(E) config.log attached >(F) make.log attached > > >Thank you very much > >===== >Boyin Huang >The Center for Research on the Changing Earth System (CRCES) >10211 Wincopin Circle, Suite 240 >Columbia, Maryland 21044 >Tel. 410-992-5300/819 (O), 410-737-4557(H) >Fax. 410-992-5944, Email. address@hidden >http://byh.crces.org -- configure.log -- creating cache ./config.cache checking for top-level source-directory /home/byh/tmp/netcdf-3.5.0/src checking for m4 preprocessor checking for m4... m4 checking m4 flags... -B10000 checking C compiler "/usr/bin/cc"... works checking how to make dependencies... false checking for /usr/bin/g++... /usr/bin/g++ checking C++ compiler "/usr/bin/g++"... configure: warning: /usr/bin/g++ failed on test program configure: warning: Could not find working C++ compiler configure: warning: Setting CXX to the empty string configure: warning: The C++ interface will not be built checking how to run the C preprocessor... /usr/bin/cc -E checking user-defined Fortran-77 compiler "/usr/pgi/linux86/5.0/bin/pgf77"... works checking for Fortran .F compiler... checking if Fortran-77 compiler handles *.F files... yes checking user-defined Fortran-90 compiler "/usr/pgi/linux86/5.0/bin/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... no checking for tanh in -lm... 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 -- config.log -- This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. configure:928: checking for top-level source-directory configure:938: checking for m4 preprocessor configure:945: checking for m4 configure:1012: checking m4 flags configure:1085: checking C compiler "/usr/bin/cc" configure:1094: /usr/bin/cc -c -O -DNDEBUG conftest.c 1>&5 configure:1121: checking how to make dependencies configure:1189: checking for /usr/bin/g++ configure:1225: checking C++ compiler "/usr/bin/g++" configure:1243: /usr/bin/g++ -o conftest -O -DNDEBUG conftest.C 1>&5 In file included from /usr/include/c++/3.2/backward/iostream.h:31, from configure:1235: /usr/include/c++/3.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated. In file included from /usr/include/c++/3.2/cstdlib:52, from /usr/include/c++/3.2/bits/stl_algobase.h:67, from /usr/include/c++/3.2/memory:54, from /usr/include/c++/3.2/string:48, from /usr/include/c++/3.2/bits/localefwd.h:49, from /usr/include/c++/3.2/ios:48, from /usr/include/c++/3.2/ostream:45, from /usr/include/c++/3.2/iostream:45, from /usr/include/c++/3.2/backward/iostream.h:32, from configure:1235: /usr/include/stdlib.h:612: declaration of `void exit(int) throw ()' throws different exceptions configure:1232: than previous declaration `void exit(int)' configure: failed program was: #line 1230 "configure" #include "confdefs.h" #ifdef __cplusplus extern "C" void exit(int); #endif #include <iostream.h> int main() { cout << ""; return 0; } configure:1294: checking how to run the C preprocessor configure:1315: /usr/bin/cc -E -DNDEBUG conftest.c >/dev/null 2>conftest.out configure:1383: checking user-defined Fortran-77 compiler "/usr/pgi/linux86/5.0/bin/pgf77" configure:1389: /usr/pgi/linux86/5.0/bin/pgf77 -c -O conftest.f configure:1548: checking for Fortran .F compiler configure:1558: checking if Fortran-77 compiler handles *.F files configure:1569: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O conftest.F configure:1608: checking user-defined Fortran-90 compiler "/usr/pgi/linux86/5.0/bin/pgf90" configure:1615: /usr/pgi/linux86/5.0/bin/pgf90 -c -O conftest.f90 configure:1751: checking for nm utility configure:1758: checking for nm configure:1825: checking nm flags configure:1841: checking for C-equivalent to Fortran routine "SUB" configure:1847: /usr/pgi/linux86/5.0/bin/pgf77 -c -O conftest.f configure:1876: checking for Fortran "byte" configure:1883: /usr/pgi/linux86/5.0/bin/pgf77 -c -O conftest.f configure:1900: checking for Fortran "integer*2" configure:1907: /usr/pgi/linux86/5.0/bin/pgf77 -c -O conftest.f configure:1933: checking if Fortran "byte" is C "signed char" configure:1942: /usr/bin/cc -c -DNDEBUG -O conftest.c configure:1944: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f configure:1946: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O conftestf.o conftest.o configure:1948: ./conftest configure:1981: checking if Fortran "byte" is C "short" configure:1990: /usr/bin/cc -c -DNDEBUG -O conftest.c configure:1992: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f configure:1994: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O conftestf.o conftest.o configure:1996: ./conftest configure:2029: checking if Fortran "byte" is C "int" configure:2038: /usr/bin/cc -c -DNDEBUG -O conftest.c configure:2040: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f configure:2042: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O conftestf.o conftest.o configure:2044: ./conftest configure:2077: checking if Fortran "byte" is C "long" configure:2086: /usr/bin/cc -c -DNDEBUG -O conftest.c configure:2088: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f configure:2090: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O conftestf.o conftest.o configure:2092: ./conftest configure:2129: checking if Fortran "integer*2" is C "short" configure:2138: /usr/bin/cc -c -DNDEBUG -O conftest.c configure:2140: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f configure:2142: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O conftestf.o conftest.o configure:2144: ./conftest configure:2177: checking if Fortran "integer*2" is C "int" configure:2186: /usr/bin/cc -c -DNDEBUG -O conftest.c configure:2188: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f configure:2190: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O conftestf.o conftest.o configure:2192: ./conftest configure:2225: checking if Fortran "integer*2" is C "long" configure:2234: /usr/bin/cc -c -DNDEBUG -O conftest.c configure:2236: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f configure:2238: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O conftestf.o conftest.o configure:2240: ./conftest configure:2275: checking if Fortran "integer" is C "int" configure:2284: /usr/bin/cc -c -DNDEBUG -O conftest.c configure:2286: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f configure:2288: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O conftestf.o conftest.o configure:2290: ./conftest configure:2323: checking if Fortran "real" is C "float" configure:2332: /usr/bin/cc -c -DNDEBUG -O conftest.c configure:2334: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f configure:2336: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O conftestf.o conftest.o configure:2338: ./conftest configure:2371: checking if Fortran "doubleprecision" is C "double" configure:2380: /usr/bin/cc -c -DNDEBUG -O conftest.c configure:2382: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f configure:2384: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O conftestf.o conftest.o configure:2386: ./conftest configure:2413: checking for Fortran-equivalent to netCDF "byte" configure:2420: /usr/pgi/linux86/5.0/bin/pgf77 -c -O conftest.f configure:2435: checking for Fortran-equivalent to netCDF "short" configure:2442: /usr/pgi/linux86/5.0/bin/pgf77 -c -O conftest.f configure:2462: checking for math library configure:2466: checking for tanh in -lc configure:2485: /usr/bin/cc -o conftest -O -DNDEBUG conftest.c -lc 1>&5 /tmp/cc87nyDa.o: In function `main': /tmp/cc87nyDa.o(.text+0xa): undefined reference to `tanh' collect2: ld returned 1 exit status configure: failed program was: #line 2474 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char tanh(); int main() { tanh() ; return 0; } configure:2504: checking for tanh in -lm configure:2523: /usr/bin/cc -o conftest -O -DNDEBUG conftest.c -lm 1>&5 configure:2555: checking for ar utility configure:2562: checking for ar configure:2629: checking ar flags configure:2638: checking for nm utility configure:2680: checking for nm configure:2712: checking nm flags configure:2722: checking for ranlib configure:2751: checking for stdlib.h configure:2761: /usr/bin/cc -E -DNDEBUG conftest.c >/dev/null 2>conftest.out configure:2788: checking for sys/types.h configure:2798: /usr/bin/cc -E -DNDEBUG conftest.c >/dev/null 2>conftest.out configure:2824: checking for strerror configure:2852: /usr/bin/cc -o conftest -O -DNDEBUG conftest.c 1>&5 configure:2877: checking for working ftruncate() configure:2930: /usr/bin/cc -o conftest -O -DNDEBUG conftest.c 1>&5 /tmp/ccKD2ldB.o: In function `main': /tmp/ccKD2ldB.o(.text+0x15): the use of `tmpnam' is dangerous, better use `mkstemp' configure:2952: checking for working alloca.h configure:2964: /usr/bin/cc -o conftest -O -DNDEBUG conftest.c 1>&5 configure:2985: checking for alloca configure:3018: /usr/bin/cc -o conftest -O -DNDEBUG conftest.c 1>&5 configure:3184: checking for st_blksize in struct stat configure:3197: /usr/bin/cc -c -O -DNDEBUG conftest.c 1>&5 configure:3219: checking for IEEE floating point format configure:3257: /usr/bin/cc -o conftest -O -DNDEBUG conftest.c 1>&5 configure:3278: checking for ANSI C header files configure:3291: /usr/bin/cc -E -DNDEBUG conftest.c >/dev/null 2>conftest.out configure:3358: /usr/bin/cc -o conftest -O -DNDEBUG conftest.c 1>&5 configure:3382: checking for size_t configure:3415: checking for off_t configure:3448: checking for ssize_t configure:3481: checking for ptrdiff_t configure:3514: checking for uchar configure:3547: checking whether char is unsigned configure:3586: /usr/bin/cc -o conftest -O -DNDEBUG conftest.c 1>&5 configure: failed program was: #line 3576 "configure" #include "confdefs.h" /* volatile prevents gcc2 from optimizing the test away on sparcs. */ #if !defined(__STDC__) || __STDC__ != 1 #define volatile #endif main() { volatile char c = 255; exit(c < 0); } configure:3610: checking whether byte ordering is bigendian configure:3628: /usr/bin/cc -c -O -DNDEBUG conftest.c 1>&5 configure:3643: /usr/bin/cc -c -O -DNDEBUG conftest.c 1>&5 configure: In function `main': configure:3638: `not' undeclared (first use in this function) configure:3638: (Each undeclared identifier is reported only once configure:3638: for each function it appears in.) configure:3638: parse error before "big" configure: failed program was: #line 3632 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/param.h> int main() { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } configure:3700: checking size of short configure:3719: /usr/bin/cc -o conftest -O -DNDEBUG conftest.c 1>&5 configure:3739: checking size of int configure:3758: /usr/bin/cc -o conftest -O -DNDEBUG conftest.c 1>&5 configure:3778: checking size of long configure:3797: /usr/bin/cc -o conftest -O -DNDEBUG conftest.c 1>&5 configure:3817: checking size of float configure:3836: /usr/bin/cc -o conftest -O -DNDEBUG conftest.c 1>&5 configure:3856: checking size of double configure:3875: /usr/bin/cc -o conftest -O -DNDEBUG conftest.c 1>&5 configure:3895: checking size of off_t configure:3918: /usr/bin/cc -o conftest -O -DNDEBUG conftest.c 1>&5 configure:3938: checking size of size_t configure:3961: /usr/bin/cc -o conftest -O -DNDEBUG conftest.c 1>&5 configure:4062: checking for manual-page index command configure:4066: checking binary distribution directory -- make.log -- make[1]: Entering directory `/home/byh/tmp/netcdf-3.5.0/src' Making `all' in directory /home/byh/tmp/netcdf-3.5.0/src/libsrc make[2]: Entering directory `/home/byh/tmp/netcdf-3.5.0/src/libsrc' /usr/bin/cc -c -O -I. -DNDEBUG attr.c /usr/bin/cc -c -O -I. -DNDEBUG dim.c /usr/bin/cc -c -O -I. -DNDEBUG error.c /usr/bin/cc -c -O -I. -DNDEBUG -DVERSION=`cat ../VERSION` libvers.c /usr/bin/cc -c -O -I. -DNDEBUG nc.c /usr/bin/cc -c -O -I. -DNDEBUG ncio.c /usr/bin/cc -c -O -I. -DNDEBUG ncx.c /usr/bin/cc -c -O -I. -DNDEBUG putget.c /usr/bin/cc -c -O -I. -DNDEBUG string.c /usr/bin/cc -c -O -I. -DNDEBUG v1hpg.c /usr/bin/cc -c -O -I. -DNDEBUG v2i.c /usr/bin/cc -c -O -I. -DNDEBUG 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/byh/tmp/netcdf-3.5.0/src/libsrc' Returning to directory /home/byh/tmp/netcdf-3.5.0/src make[1]: Leaving directory `/home/byh/tmp/netcdf-3.5.0/src' make[1]: Entering directory `/home/byh/tmp/netcdf-3.5.0/src' Making `all' in directory /home/byh/tmp/netcdf-3.5.0/src/fortran make[2]: Entering directory `/home/byh/tmp/netcdf-3.5.0/src/fortran' /usr/bin/cc -c -O -I../libsrc -DNDEBUG fort-attio.c In file included from ncfortran.h:13, from fort-attio.c:6: cfortran.h:134:3: #error "cfortran.h: Can't find your environment among: - MIPS cc and f77 2.0. (e.g. Silicon Graphics, DECstations, ...) - IBM AIX XL C and FORTRAN Compiler/6000 Version 01.01.0000.0000 - VAX VMS CC 3.1 and FORTRAN 5.4. - Alpha VMS DEC C 1.3 and DEC FORTRAN 6.0. - Alpha OSF DEC C and DEC Fortran for OSF/1 AXP Version 1.2 - Apollo DomainOS 10.2 (sys5.3) with f77 10.7 and cc 6.7. - CRAY - NEC SX-4 SUPER-UX - CONVEX - Sun - PowerStation Fortran with Visual C++ - HP9000s300/s700/s800 Latest test with: HP-UX A.08.07 A 9000/730 - LynxOS: cc or gcc with f2c. - VAXUltrix: vcc,cc or gcc with f2c. gcc or cc with f77. - f77 with vcc works; but missing link magic for f77 I/O. - NO fort. None of gcc, cc or vcc generate required names. - f2c : Use #define f2cFortran, or cc -Df2cFortran - NAG f90: Use #define NAGf90Fortran, or cc -DNAGf90Fortran - Absoft UNIX F77: Use #define AbsoftUNIXFortran or cc -DAbsoftUNIXFortran - Absoft Pro Fortran: Use #define AbsoftProFortran - Portland Group Fortran: Use #define pgiFortran" make[2]: *** [fort-attio.o] Error 1 make[2]: Leaving directory `/home/byh/tmp/netcdf-3.5.0/src/fortran' make[1]: *** [subdir_target] Error 1 make[1]: Leaving directory `/home/byh/tmp/netcdf-3.5.0/src' make: *** [fortran/all] Error 2 Tom Yoksas