[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
20020508: Using netCDF v3.5 (f90 interface) and HDF4 together
- Subject: 20020508: Using netCDF v3.5 (f90 interface) and HDF4 together
- Date: Wed, 08 May 2002 16:09:23 -0600
Paul,
> To: address@hidden
> From: Paul Van Delst <address@hidden>
> Subject: Using netCDF v3.5 (f90 interface) and HDF4 together.
> Organization: CIMSS@NOAA/NCEP/EMC
> Keywords: 200205082122.g48LMCa15014 netCDF 3.5 HDF4.1r3
The above message contained the following:
> I looked through the support email archive but couldn't find an answer
> (after about 30 minutes of looking) so I hope you don't mind this email
> if this is in a FAQ.
>
> I need to read HDF4 data files, play with the data, and output netCDF
> files. I use the netCDF v3.5 fortran-90 interface and the HDF 4.1r3
> install. When I get to the link stage I get a humungous pile of
> warnings such as:
>
> /usr2/wd20pd/local/hdf4/lib/libmfhdf.a(error.o): In function `NCadvise':
> error.o(.text+0x134): multiple definition of `NCadvise'
> /usr2/wd20pd/local/netcdf/lib/libnetcdf.a(v2i.o)(.text+0xa8): first defined
> here
> /usr/bin/ld: Warning: size of symbol `NCadvise' changed from 26 to 144 in
> error.o
> /usr2/wd20pd/local/hdf4/lib/libmfhdf.a(array.o): In function `nctypelen':
> array.o(.text+0x190): multiple definition of `nctypelen'
> /usr2/wd20pd/local/netcdf/lib/libnetcdf.a(v2i.o)(.text+0x9ac): first defined
> here
> /usr/bin/ld: Warning: size of symbol `nctypelen' changed from 77 to 120 in
> array.o
> /usr2/wd20pd/local/hdf4/lib/libmfhdf.a(attr.o): In function `NC_findattr':
> attr.o(.text+0x200): multiple definition of `NC_findattr'
> /usr2/wd20pd/local/netcdf/lib/libnetcdf.a(attr.o)(.text+0x364): first defined
> here
> /usr/bin/ld: Warning: size of symbol `NC_findattr' changed from 137 to 148 in
> attr.o
> /usr2/wd20pd/local/hdf4/lib/libmfhdf.a(attr.o): In function `ncattput':
> attr.o(.text+0x5f0): multiple definition of `ncattput'
> /usr2/wd20pd/local/netcdf/lib/libnetcdf.a(v2i.o)(.text+0x7d0): first defined
> here
> /usr/bin/ld: Warning: size of symbol `ncattput' changed from 66 to 156 in
> attr.o
> /usr2/wd20pd/local/hdf4/lib/libmfhdf.a(attr.o): In function `ncattname':
> ......etc....
I would expect the above because HDF 4 supplies a netCD interface for
reading HDF 4 files and the functions in that interface would clash with
the functions of the same name in the netCDF library.
> Can I "strip out" parts of the libnetcdf.a library (via ar) and create
> the "Fortran-90 only" version so that only the stuff that is not
> already defined in the HDF libraries remains?
I doubt it because the netCDF-3 Fortran-90 implementation uses the
netCDF-3 Fortran-77 implementation, and that implementation uses the
netCDF-3 C implementation. So you'd still have name classes amonst the
netCDF-3 C functions.
> I tried removing just the
> netcdf.o and typeSizes.o members and put them in their own library but
> then I got a bunch of undefined reference link errors (which didn't
> surprise me - I was just trying it to see if it would work).
>
> Or can I do the opposite? E.g. strip out the netCDF bits of the HDF libraries?
That might be a better way to go -- assuming that you can do without
accessing an HDF 4 file via the netCDF interface.
> If neither is possible (or a bad idea generally), do you have any
> suggestions on how to make netcdf v3.5 and hdf v4.1r3 play nice
> together when I link into the libraries?
I've never attempted this so I'm afraid I don't have any good ideas. I
did find a couple of emails on this topic in our support-email archive:
http://www.unidata.ucar.edu/glimpse/netcdf/2947
http://www.unidata.ucar.edu/glimpse/netcdf/2883
You might look at them for some ideas. I found them by searching the
netCDF archive using the string "HDF 4".
Another possibility is posting a query to the netcdfgroup mailing-list.
> thanks,
>
> paulv
>
> --
> Paul van Delst Religious and cultural
> CIMSS @ NOAA/NCEP/EMC purity is a fundamentalist
> Ph: (301)763-8000 x7274 fantasy
> Fax:(301)763-8545 V.S.Naipaul
Goood luck.
Regards,
Steve Emmerson <http://www.unidata.ucar.edu>