Hi, chemguy-ga:
The NetCDF library (source code and binary) is freely available for
downloading at Unidata, a multidisciplinary program center sponsored
by the National Science Foundation. Software developed by Unidata is
licensed "as is" under the Lesser GNU Public License (LGPL) or similar
model:
[Unidata Participation Policy: Provision of Software]
(about 2/3rds of the way down the page)
http://my.unidata.ucar.edu/content/legal/participation.html
The NetCDF application is "copyrighted by UCAR and [is] intended to be
freely available with very minimal restriction."
[Unidata netCDF Copyright Notice]
http://www.unidata.ucar.edu/packages/netcdf/copyright.html
[NetCDF Copyright Agreement
http://my.unidata.ucar.edu/content/software/netcdf/copyright.html
Only limited support can be provided to individual developers, mostly
in the form of FAQs, mailing lists, and support archives (see
Participation Policy above).
As previously mentioned, I would start here for both source
code/makefiles to a Microsoft VC 6.0 implementation, and a binary
(DLL) for version 3.5.0 (beta 3.5.1):
http://www.unidata.ucar.edu/packages/netcdf/faq.html#win
To build the library yourself, get the makefile:
ftp://ftp.unidata.ucar.edu/pub/netcdf/contrib/win32/netcdf-3.5.0.win32make.VC6.zip
and the source code:
ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf.zip
First unzip the source code where you want it, preserving the
subdirectory structure. Then copy netcdf-3.5.0.win32make.VC6.zip into
the netcdf-3.5.0/src directory, and unzip it from there. Read
WIN32_INSTALL.txt for directions on the commandline (nmake) build
process. No Visual Studio project is provided because of
incompatibilities with directory structures for UNIX makefiles.
To use the pre-built binary, get the file:
ftp://ftp.unidata.ucar.edu/pub/netcdf/contrib/win32/netcdf-3.5.0.win32bin.zip
Of the online documentation links:
[NetCDF (Network Common Data Form)]
http://www.unidata.ucar.edu/packages/netcdf/docs.html
the most useful for C applications is this:
[NetCDF User's Guide for C, ver. 3]
http://www.unidata.ucar.edu/packages/netcdf/guidec/
There is Appendix C, Summary of C Interface, which shows the library
function declarations at a glance. The single biggest difficulty in
making these calls from Visual Basic is dealing with the lack of a
pointer among Visual Basic datatypes. The workaround techniques are
somewhat well known:
[HOWTO: Write C DLLs and Call Them from Visual Basic]
http://support.microsoft.com/default.aspx?scid=KB;en-us;q106553
[Passing VB Strings to a DLL Procedure]
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbconpassingstringstodllprocedure.asp
[HOWTO: Pass a String between Visual Basic and Your C DLL]
http://support.microsoft.com/default.aspx?scid=KB;en-us;q187912
The general idea is that Visual Basic tries to pass most things "by
reference" to an external routine, and so passes a pointer. However
the String datatype in Visual Basic is already a pointer, so these are
to be passed "By Val".
Callback functions would be another "imponderable" but I didn't spot
anything in the user's guide that looked like one to me.
For more specific approaches we should probably pick a library
function or two to discuss in depth.
regards, mathtalk-ga
Search Strategy
Keywords: NetCDF copyright
://www.google.com/search?hl=en&lr=&ie=UTF-8&oe=UTF-8&q=%22NetCDF%22+copyright&btnG=Google+Search
Keywords: NetCDF "source code"
://www.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q=NetCDF+%22source+code%22&btnG=Google+Search
Keywords: "Visual Basic" "C DLL" pointer
://www.google.com/search?hl=en&lr=&ie=UTF-8&oe=UTF-8&q=%22Visual+Basic%22+%22C+DLL%22+pointer&btnG=Google+Search |