[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netCDF #BVS-485205]: Ticket ID: GLX-497823
- Subject: [netCDF #BVS-485205]: Ticket ID: GLX-497823
- Date: Thu, 21 Mar 2013 14:07:43 -0600
> > Yes, you definitely needed to use -lnetcdff -lnetcdf, because the netCDF
> > Fortran library is
> > separate from the netCDF C library and needs to call functions in the C
> > library.
>
> I understood what you are saying but I have a simple question.
> I could compile our program, wrf_to_gmt without -lnetcdff option on
> the our linux machine.
Maybe your linux machine had netCDF version 4.1.3 or earlier and was installed
as
static libraries rather than shared libraries. If you use version 4.2 or later
or
you install shared libraries (now the default), the Fortran library is separate
from the C library. If you install the Fortran library as shared, you can link
applications with just -lnetcdff, because the Fortran shared library "knows" the
location of the C library.
> > That looks like a problem that could occur if the gfortran you are using is
> > not
> > working with the C runtime library that the gcc compiler uses. Since
> > MacOS-X
> > doesn't come with a gfortran compiler, but does come with a special version
> > of
> > gcc, you either have to use a gcc compatible with the gfortran you
> > downloaded,
> > or you have to use a gfortran built specifically for use with the gcc that
> > comes
> > with the Apple XTools.
> >
> > You might try downloading or building gfortran from source, as described
> > here:
>
> Are saying to install gfortran-4.6.2-x86_64-Lion.dmg?
> I did use it but I tried it again. However, I got same results.
>
> As matter of facts, I am upgraded my gcc to gcc 4.7.
>
> Are you suggesting reinstall gfortran and gcc again?
Maybe that's not the problem, but the missing _iargc_ function, which should be
in the runtime library that the compiler knows about, indicates some problem
with
the way gfortran is configured that is independent of netCDF. You can check
this
by trying to build a Fortran main program that takes an argument from the
command
line and that also calls a C function, and see if you get the same error.
I've just checked the MacPorts package system (www.macports.org), and it has a
"netcdf-fortran" package that seems to work. It builds everything it needs
from
source. You first have to install the "port" command, but then when I ran the
command
sudo port install netcdf-fortran
it eventually installed everything, including versions 4.5.4 of gfortran-mp-4.5
and
gcc-mp-4.5 configured for OSX Lion. I just tested that it also installs the
program
nf-config, which shows the flags needed for compiling a Fortran program that
calls
netCDF:
$ nf-config --all
This netCDF-Fortran 4.2 has been built with the following features:
--cc -> /opt/local/bin/gcc-mp-4.5
--cflags -> -I/opt/local/include -I/opt/local/include -DNDEBUG
-DpgiFortran
--libs -> -L/opt/local/lib -L/opt/local/lib -lnetcdf -lnetcdf
--fc -> /opt/local/bin/gfortran-mp-4.5
--fflags -> -pipe -O2 -I/opt/local/include
--flibs -> -L/opt/local/lib -lnetcdff -L/opt/local/lib -lnetcdf -lnetcdf
--has-f90 -> yes
--has-nc2 -> yes
--has-nc4 -> yes
--prefix -> /opt/local
--includedir-> /opt/local/include
--version -> netCDF-Fortran 4.2
Using nf-config, I can see what's needed to compile and link a Fortran program:
$ nf-config --fc --fflags --flibs
/opt/local/bin/gfortran-mp-4.5
-pipe -O2 -I/opt/local/include
-L/opt/local/lib -lnetcdff -L/opt/local/lib -lnetcdf -lnetcdf
I can even use nf-confg inside `` (backquotes) to compile an example netCDF
program
to see that it works:
$ `nf-config --fc` sfc_pres_temp_wr.f90 -o sfc_pres_tmp_wr `nf-config
--fflags --flibs`
$ ./sfc_pres_tmp_wr
*** SUCCESS writing example file sfc_pres_temp.nc!
so you could do the same with wrf_to_gmt.
Alternatively, you could try to get and install gcc and gfortran 4.5, but using
"port"
is definitely easier on OSX. In any case, you need to get compatible versions
of gcc
and gfortran, because gfortran is a "front-end" for gcc.
--Russ
Russ Rew UCAR Unidata Program
address@hidden http://www.unidata.ucar.edu
Ticket Details
===================
Ticket ID: BVS-485205
Department: Support netCDF
Priority: Normal
Status: Closed