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.
Dumas, > To: address@hidden > From: Dumas Patrice <address@hidden> > Subject: compile netcdf with gfortran > Organization: ? > Keywords: netCDF gfortran The above message contained the following: > I have a linux redhat 9. > I am trying to compile netcdf with fortran 90, using gfortran. I'm not aware of anyone ever using gfortran with the netCDF package. g77 has been used, however. > I found that > compiler in the gcc CVS, in the tree-ssa-20020619-branch and installed > it as explained on http://gcc-g95.sourceforge.net/. > I use the gcc suite installed as part of the redhat 9 for the other > languages. > > It fails during make. Here are the commands I ran: > $ export F90=/opt/data/dumas/gcc/bin/gfortran > $ ./configure --prefix=/usr/local > configure.log 2>&1 > $ make > make.log 2>&1 > > Here are the informations requested for installation failure: > > $ uname -a > Linux zeus 2.4.20-18.9 #1 Thu May 29 07:08:16 EDT 2003 i686 i686 i386 > GNU/Linux > > $ cat VERSION > 3.5.1-beta13 > > $ which c89 > /usr/bin/c89 > $ which c++ > /usr/bin/c++ > $ which f77 > /usr/bin/f77 > > I attached configure.log, make.log, macros.make, config.log. > > Hope it helps ! > > Pat > creating cache ./config.cache > checking for top-level source-directory > /opt/data/src/netcdf-3.5.1-beta13/src > checking for m4 preprocessor > checking for m4... m4 > checking m4 flags... -B10000 > checking for xlc... no > checking for c89... c89 > checking C compiler "c89"... works > checking how to make dependencies... false > checking for CC... no > checking for cxx... no > checking for c++... c++ > checking C++ compiler "c++"... works > checking how to run the C preprocessor... c89 -E > checking "/opt/data/dumas/gcc/bin/gfortran" as Fortran-77 compiler... failed > to compile test program It appears from the above that gfortran IS NOT a Fortran-77 compiler. > checking for f77... f77 > checking for Fortran .F compiler... > checking if Fortran-77 compiler handles *.F files... yes > checking user-defined Fortran-90 compiler > "/opt/data/dumas/gcc/bin/gfortran"... works It appears from the above that gfortran IS a Fortran-90 compiler. ... > Making `all' in directory /opt/data/src/netcdf-3.5.1-beta13/src/fortran > > make[2]: Entre dans le r=E9pertoire `/cired/zeus/data/src/netcdf-3.5.1-beta= > 13/src/fortran' > c89 -c -O -I../libsrc -DNDEBUG fort-attio.c > Dans le fichier inclus =E0 partir de ncfortran.h:13, > =E0 partir de 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. - Al= > pha VMS DEC C 1.3 and DEC FORTRAN 6.0. - Alph= > a 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 S= > UPER-UX - CONVEX = > - Sun = > - PowerStation For= > tran with Visual C++ - HP9000s300/s700/s8= > 00 Latest test with: HP-UX A.08.07 A 9000/730 - LynxOS: cc or gcc wi= > th f2c. - VAXUltrix: vcc,cc or g= > cc with f2c. gcc or cc with f77. - f77 with vcc = > works; but missing link magic for f77 I/O. - NO fort. None o= > f gcc, cc or vcc generate required names. - f2c : Use #define f2cF= > ortran, or cc -Df2cFortran - NAG f90: Use #define NAGf90For= > tran, or cc -DNAGf90Fortran - Absoft UNIX F77: Use #define Abs= > oftUNIXFortran or cc -DAbsoftUNIXFortran - Absoft Pro Fortran: Use #def= > ine AbsoftProFortran - Portland Group Fortran: Use #define pgiFortran" > make[2]: *** [fort-attio.o] Erreur 1 > make[2]: Quitte le r=E9pertoire `/cired/zeus/data/src/netcdf-3.5.1-beta13/s= > rc/fortran' > make[1]: *** [subdir_target] Erreur 1 > make[1]: Quitte le r=E9pertoire `/cired/zeus/data/src/netcdf-3.5.1-beta13/s= > rc' > make: *** [fortran/all] Erreur 2 The above indicates that the C compiler didn't know what Fortran argument-passing conventions to use. This information must be given to it manually by defining a certain C macro in the CPPFLAGS environment variable before executing the configure script. Assuming that gfortran uses the same argument-passing conventions that g77 uses (if it doesn't, then the "make test" will fail) then 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. Define the C macro "f2cFortran" in the environment variable CPPFLAGS: export CPPFLAGS=-Df2cFortran or setenv CPPFLAGS -Df2cFortran depending on your user-shell. 4. Perform steps 6 through 9 described near the end of the file INSTALL.html. Regards, Steve Emmerson