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 Russ, > > I have successfully installed both C and Fortran libraries on my Mac, and on > this website > http://www.unidata.ucar.edu/software/netcdf/docs/netcdf-fortran-install.html > it says > > Now you will only need to use something like > > -L{DIR1}/lib -lnetcdff > > > to link Fortran software with the installed netCDF Fortran and C libraries. > > But it returns > > bash-3.2$ -L/usr/local/lib -lnetcdff > bash: -L/usr/local/lib: No such file or directory > > Is this linking step necessary? How do I do this right? If you have a Fortran program that calls netCDF functions, for example the sample program simple_xy_wr.f90 here: http://www.unidata.ucar.edu/netcdf/examples/programs/simple_xy_wr.f90 You should be able to compile and link it like this: gfortran -I/usr/local/include simple_xy_wr.f90 -o simple_xy_wr -L/usr/local/lib -lnetcdff where the -I option tells gfortran where to look for the netcdf.mod file and the -L option specifies where the library will be found. You can also use the "nf-config" program installed in /usr/local/bin for this purpose with something that uses the nf-config program to provide the necessary -I and -L options, like this: gfortran simple_xy_wr.f90 -o simple_xy_wr `nf-config --fflags --flibs` (Note the use of back-quotes "`" rather than quotes "'".) Either way, you should end up with an executable program "simple_xy_wr". If you try invoking it and it still can't find libraries, try putting the library directory in the environment variable DYLD_LIBRARY_PATH, as in export DYLD_LIBRARY_PATH=/usr/local/lib ./simple_xy_wr There are ways to avoid using the DYLD_LIBRARY_PATH environment variable which were displayed at the end of the output from "make install". --Russ > On Mar 25, 2013, at 9:50 PM, Unidata netCDF Support > <address@hidden<mailto:address@hidden>> > wrote: > > Please find the config.log attached. > > Thank you very much! > Yanshi. > > OK, here are the relevant lines from config.log: > > configure:17833: gfortran -g -O2 -c conftestf.f > configure:17836: $? = 0 > configure:17839: gfortran -o conftest -g -O2 conftestf.o conftest.o > ld: warning: ignoring file conftest.o, file was built for unsupported file > format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 1 0x > 0 0x 0 0x 0 ) which is not the architecture being linked (i386): conftest.o > Undefined symbols for architecture i386: > "_sub_", referenced from: > _MAIN__ in conftestf.o > ld: symbol(s) not found for architecture i386 > > Your gfortran is compiling for i386, a 32-bit architecture, but your gcc is > apparently compiling for a different architecture, probably 64-bit x86_64. > You have to use the same architecture if you want to link the software > together. > You could do this by either using the right flags for gcc, for example -m32 or > maybe -arch i386, or use a flag for gfortran, maybe -m64 or -arch x86_64. If > you installed netcdf-fortran from MacPorts, you may have a gfortran that > produces > 64-bit objects with a long name something like > /opt/local/bin/x86_64-apple-darwin-gfortran-mp-4.7 > but it might be easier to just use the gfortran you have and make gcc produce > 32-bit objects. > > --Russ > > On Mar 25, 2013, at 4:57 PM, Unidata netCDF Support > <address@hidden<mailto:address@hidden>> > wrote: > > Hi Russ, > > I don't have problem installing C library with --disable-netcdf-4. And I > followed instructions at > http://www.unidata.ucar.edu/software/netcdf/docs/netcdf-fortran-install.html > > But still I get error for './configure --prefix=/usr/local' as below: > checking what FC is set to... gfortran > checking for special C compiler options needed for large files... no > checking for _FILE_OFFSET_BITS value needed for large files... no > configure: displaying some results > checking for /Applications/Xcode.app/Contents/Developer/usr/bin/nm... > /Applications/Xcode.app/Contents/Developer/usr/bin/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"... configure: error: Could not > link conftestf.o and conftest.o > > Any idea how to fix this? > Thank you! > Yanshi. > > There's not enough information to tell just looking at the error > message above. The error message means a simple Fortran program > compiled to conftestf.o can't be linked to a simple C program > compiled into conftest.o, so that the Fortran program can call a > function defined in the C program. > > If you look at config.log towards the end of the file, the Fortran > and C programs being compiled are shown, when the error occurs. > The extra error information in config.log may be helpful in > diagnosing the problem. > > What I see in config.log, using compatible versions of gcc and > gfortran, is ouput like this, indicating successful linking: > > configure:19027: checking if Fortran "byte" is C "signed char" > configure:19037: gcc -c -I/usr/local/include -g -O2 conftest.c > conftest.c: In function 'sub_': > conftest.c:4:3: warning: incompatible implicit declaration of built-in > function 'exit' > configure:19040: $? = 0 > configure:19043: gfortran -g -O0 -fno-inline -c conftestf.f > configure:19046: $? = 0 > configure:19049: gfortran -o conftest -g -O0 -fno-inline conftestf.o > conftest.o > configure:19052: $? = 0 > configure:19055: ./conftest > configure:19058: $? = 0 > configure:19060: result: yes > ... > > If you can't figure it out from looking at config.log, send the whole > config.log > file to us and we'll see if we can help, but it may take several days ... > > --Russ > > On Mar 24, 2013, at 4:22 PM, Unidata netCDF Support > <address@hidden<mailto:address@hidden><mailto:address@hidden>> > wrote: > > Hi Yanshi, > > I am trying to install netCDF on my MACOS X 10.8.6. > I have installed the netCDF-4.2.1.1 without error by > > ./configure --disable-netcdf-4 > make > make check > make install > > However, I could not find the the netcdf.mod and typesizes.mod under > /usr/local/ > > The netCDF-4.2.1.1 package only installs the C library. To install the > Fortran netCDF libaries, > which have been in a separate distribution since C version 4.1.3, you need to > download the > Fortran distribution (either the stable release or the beta test) from here: > > http://www.unidata.ucar.edu/downloads/netcdf/netcdf-fortran/ > > and follow these instructions: > > http://www.unidata.ucar.edu/software/netcdf/docs/netcdf-fortran-install.html > > Alternatively, you could use the MacPorts system (see > www.macports.org<http://www.macports.org>) and have the full netCDF-4 > library installed, including netCDF-Fortran, using > > sudo port install netcdf-fortran > > Note, that may take a while, as it may also download and install compatible > versions of gcc and > gfortran ... > > --Russ > > So, I continued to install netCDF-fortran-4.2, and ./configure returns > …... > checking for Fortran "byte"... yes > checking for Fortran "integer*2"... yes > checking if Fortran "byte" is C "signed char"... configure: error: Could not > link conftestf.o and conftest.o > > Any idea how to fix this? > Thank you so much! > Yanshi. > > > Russ Rew UCAR Unidata Program > address@hidden<mailto:address@hidden> > http://www.unidata.ucar.edu > > > > Ticket Details > =================== > Ticket ID: FVK-122895 > Department: Support netCDF > Priority: Normal > Status: Closed > > > > > > Russ Rew UCAR Unidata Program > address@hidden<mailto:address@hidden> > http://www.unidata.ucar.edu > > > > Ticket Details > =================== > Ticket ID: FVK-122895 > Department: Support netCDF > Priority: Normal > Status: Closed > > > > > > Russ Rew UCAR Unidata Program > address@hidden<mailto:address@hidden> > http://www.unidata.ucar.edu > > > > Ticket Details > =================== > Ticket ID: FVK-122895 > Department: Support netCDF > Priority: Normal > Status: Closed > > > > > Russ Rew UCAR Unidata Program address@hidden http://www.unidata.ucar.edu Ticket Details =================== Ticket ID: FVK-122895 Department: Support netCDF Priority: Normal Status: Closed