netcdf 4.0 lib not linking
Jochen Küpper
kuepper.jochen at googlemail.com
Thu Mar 19 15:53:44 PDT 2009
On 18.03.2009, at 18:33, Yolande Serra wrote:
> I just wanted to let the list know I fixed the problem with linking
> my netcdf 4.0 library to a fortran program. Note, the macports
> netcdf install works fine with C code calling netcdf routines, only
> fortran code seemed to be an issue (even with the +g95 variant).
> The steps I took were the following:
>
> build szlib as standard installation from macports
> build openmpi with the +gcc43 variant so that fortran is enabled
> build hdf5-18 with the +gcc43 variant, again so that fortran is
> enabled
> build netcdf using gcc43 with fortran enabled - I wrote my own
> Portfile to do this as I wanted netcdf 4 capabilities. The macports
> netcdf installation does not activate netcdf-4 (in which case you
> might as well just install netcdf-3.x).
>
> Then, when compiling code that references libnetcdf.a use
>
> >> gfortran -fsecond-underscore -I/opt/local/include program.f -o
> program -L/opt/local/lib -lnetcdf
>
> The -fsecond-underscore is critical, at least for my setup.
> Otherwise the code will not link to the netcdf library, which has
> second underscores. I suppose you could also build the netcdf
> library with FFLAG -fno-second-underscore. I did not try this. I'm
> curious why the gcc43 compiler suite built the netcdf library with
> second underscores but does not build my .f code with them.
Is gfortran actually gfortran-mp-4.3?
> my Portfile (used macports netcdf portfile as a template):
>
> PortSystem 1.0
> name netcdf
> version 4.0
> maintainers serra at atmo.arizona.edu
> platforms darwin
> categories science
>
> description NetCDF - Network Common Data Form
> long_description NetCDF is an interface \
> for array-oriented data access and a library
> that \
> provides an implementation of the interface.
> The \
> netCDF library also defines a machine-
> independent \
> format for representing scientific data.
> Together, \
> the interface, library, and format support
> the \
> creation, access, and sharing of scientific
> data. \
> The netCDF software was developed at the
> Unidata \
> Program Center in Boulder, Colorado.
>
> homepage http://unidata.ucar.edu/packages/netcdf/
>
> master_sites ftp://ftp.unidata.ucar.edu/pub/netcdf/ \
> http://www.gfd-dennou.org/arch/netcdf/unidata-mirror/ \
> ftp://www.gfd-dennou.org/arch/netcdf/unidata-mirror/
> checksums sha1 bea99846265e55e54be2c200ae004acc3a221c0a
>
> depends_lib port:hdf5 \
> port:szip
>
> configure.cppflags "-DNDEBUG -Df2cFortran"
> configure.cxxflags "-O2 -fno-common"
> configure.cflags "-O2 -fno-common"
> configure.args --disable-f77 \
> # --enable-shared \
> --enable-netcdf-4 \
> --with-zlib=${prefix}/lib \
> --with-szlib=${prefix}/lib \
> --with-hdf5=${prefix}/lib
>
> test.run yes
> test.target check
>
> destroot.destdir prefix=${destroot}${prefix} \
> MANDIR=\\\${prefix}/share/man
>
> post-destroot {
> file delete -force ${destroot}${prefix}/share/man/whatis.db
> }
>
> variant g95 {
> depends_lib port:g95
> configure.args-delete --disable-f77
> configure.fc ${prefix}/bin/g95
> configure.env-append FCFLAGS=-O2
> }
>
> variant gfortran43 {
> depends_lib port:gcc43
> configure.args-delete --disable-f77
> configure.cc ${prefix}/bin/gcc-mp-4.3
> configure.cxx ${prefix}/bin/g++-mp-4.3
> configure.fc ${prefix}/bin/gfortran-mp-4.3
> }
>
>
>
>
> On Mar 16, 2009, at 12:15 PM, Yolande Serra wrote:
>
>> I've written previously about this issue and got no reply. I'm
>> trying again after trying everything I could think of to get my
>> netcdf 4.0 library installed with macport to work with the gcc43
>> also installed with macport. I made a local port for netcdf in
>> which I compiled it with gcc43 after having installed gcc43 from
>> macport. The build worked and I configured it with gfortran so
>> that the fortran libs were also installed with my netcdf libs. I
>> selected to not have separate fortran libraries and did not
>> configure with shared libraries so everything is in libnetcdf.a. I
>> checked using otool and all the right references are in
>> libnetcdf.a, at least if I compare it to a working version of
>> netcdf 4.0 on my old powerpc mac. No netcdf 4.0 options were
>> turned on so I did not have to install netcdf with hdf5, zlib or
>> szlib (as this is what I tried at first and did not get it to work).
>>
>> So, the question is why do I get linking errors when I try to
>> compile fortran code that calls the netcdf libs? I compile the
>> code with gfortran-mp-4.3 and use the same options as when I built
>> netcdf 4.0 (-fno-second-underscore -O2 -g). I also have provided
>> the location of the include file and library explicitly in the
>> compile command line (-I/opt/local/include and -L/opt/local/lib -
>> lnetcdf). I also call some udunits functions which do not give any
>> errors and udunits was also installed using macports and is in /opt/
>> local.
>>
>> Do I need to recompile the gcc43 using the same options (-fno-
>> second-underscore)?? I tried compiling netcdf libs without this
>> option, but this also did not work. I tried compiling my code
>> without that option as well and it did not work. I also tried -fno-
>> underscoring - no luck. I have a netcdf 4.0 library installed on my
>> powerpc mac and can use gcc4.3 with that library with no problem
>> but neither of these packages were installed with macports. I'd
>> like to use macports for the new mac (intel), as it seems more
>> convenient than building source code myself all the time. However,
>> I desperately need a working netcdf library as all my data is
>> stored this way.
>>
>> Thanks for any help, Yolande
>>
>>
>> _______________________________________________
>> macports-users mailing list
>> macports-users at lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo.cgi/macports-users
>
> _______________________________________________
> macports-users mailing list
> macports-users at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macports-users
Schöne Grüße,
Jochen
--
Einigkeit und Recht und Freiheit http://www.Jochen-Kuepper.de
Liberté, Égalité, Fraternité GnuPG key: CC1B0B4D
Sex, drugs and rock-n-roll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 194 bytes
Desc: This is a digitally signed message part
URL: <http://lists.macosforge.org/pipermail/macports-users/attachments/20090319/8ea7bcea/attachment.bin>
More information about the macports-users
mailing list