NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

Re: [netcdfgroup] netcdf-4.1.2 released... Visual C compilation

Dear All,

This mail could be interesting for Windows users. I have compiled
necdf-4.1.2 static library; DLL compilation needs only DEF file: list of
exported functions, I have no time for this.
New version compilation is necessary to move from 4.0.1: previous
release (4.1.1) had a nasty bug.

Unfortunately new release is rather raw, even compilation needs some
changes in the source!
Here are my actions:

1) Take config.h from Linux compilation and change the following lines
(only modified are listed):
#define HAVE_ALLOCA 0
#define HAVE_ALLOCA_H 0
#define HAVE_DECL_ISFINITE 0
#define HAVE_DECL_SIGNBIT 0
#define HAVE_DLFCN_H 0
#define HAVE_FSYNC 0
#define HAVE_GETOPT_H 0
#define HAVE_GETRLIMIT 0
#define HAVE_GETTIMEOFDAY 0
#define HAVE_LIBZ 0
#define HAVE_LOCALE_H 0
#define HAVE_MEMORY_H 0
#define HAVE_PTRDIFF_T 0
// #define HAVE_RPC_TYPES_H /**/
// #define HAVE_RPC_XDR_H /**/
#define HAVE_SNPRINTF 0
// #define HAVE_SSIZE_T 1
// #define HAVE_STDBOOL_H 1
#define HAVE_STRCASECMP 0
#define HAVE_STRINGS_H 0
#define HAVE_STRTOLL 0
#define HAVE_STRUCT_STAT_ST_BLKSIZE 0
// #define HAVE_ST_BLKSIZE 1
// #define HAVE_UNISTD_H 1
#define SIZEOF_OFF_T 4
#undef USE_DAP
#define USE_FSYNC 0
#undef USE_HDF4
#undef USE_PARALLEL
#undef USE_PARALLEL_MPIO
#undef USE_PARALLEL_POSIX
#undef USE_PNETCDF
#undef USE_SZIP                       // if not using SZIP
#undef WORDS_BIGENDIAN
#undef f2cFortran
#undef gFortran
#undef pgiFortran
Note: some defs must be commented out: setting to 0 doesn't work!
Actually many defs are not used at all.

I have to add one new def:
#define uint unsigned

Put config.h into include directory and add two files (usually they are
included in some other package on PC): inttypes.h and stdint.h.

2) Rename two files (object file name must be unique in VC):
        libsrc/dim.c => dim3.c
        libsrc/var.c => var3.c

3) Make project and add all C files from the following directories:
        libdispath
        liblib
        libsrc
        libsrc4
Insert these directories and inlude into "Additional Include
Directories".

4) Add HDF5 include path and libraries.

5) Comment line 57 in libsrc/lookup3.c:
// #include <sys/param.h>  /* attempt to define endianness */

6) Correct two mistakes (C++ stuff in C file).
File libdispatch/nc_url.c, line 329:
        NClist* values = (NClist*)nclistget(params,i+1);
        values must be declared at the start of block.

File libsrc4/nc4file.c: swap lines 2880 and 2881.

**************

Press F7 or whatever to compile. That's all!!!

Regards,
Sergei

-----Original Message-----
From: netcdfgroup-bounces@xxxxxxxxxxxxxxxx
[mailto:netcdfgroup-bounces@xxxxxxxxxxxxxxxx] On Behalf Of Ed Hartnett
Sent: 30 March 2011 03:07
To: netcdfgroup@xxxxxxxxxxxxxxxx
Subject: [netcdfgroup] netcdf-4.1.2 released...


Howdy all!

The Unidata NetCDF group is pleased to announce the 4.1.2 release of the
netCDF C/Fortran libraries. This release contains bug fixes and internal
refactoring.

(Users of parallel I/O with netCDF-4 please note: starting with the
4.1.2 release the parallel I/O functions are prototyped in netcdf_par.h,
not netcdf.h. You must include netcdf_par.h BEFORE netcdf.h to use
parallel I/O with netCDF-4.)

This release contains the following:

    * Rewrite netCDF-4 attribute put code for a large speedup when
      writing lots of attributes.
    * Fix nc-config --libs when static dependent libraries are not
      installed in the same directory as netCDF libraries (thanks to
      Jeff Whitaker).
    * Build shared libraries by default, requiring separate Fortran
      library. Static libraries now built only with --disable-shared.
    * Refactor of HDF5 file metadata scan for large speedup in opening
      files, especially large files.
    * Complete rewrite of the handling of character datalist
      constants. The heuristics are documented in ncgen.1.
    * Eliminate use of NC_MAX_DIMS and NC_MAX_VARS in ncdump and nccopy,
      allocating memory as needed and reducing their memory footprint.
    * Add documentation for new nc_inq_path() function.
    * Use hashing to speedup lookups by name for files with lots of
      dimensions and variables (thanks to Greg Sjaardema).
    * Add options to nccopy to support uniform compression of variables
      in output, shuffling, and fixing unlimited dimensions. Add option
      to support specifying chunking in output in terms of dimension
      names.
    * Modified opendap constraint parser to be more compatible with a
      java version of the parser.
    * Modified ncgen to utilize iterators internally; should be no user
      visible effect.
    * An internal refactoring of the C library allows for easier
      maintainance and extension of the netCDF library. This
      restructuring of the library code is invisible to the
      end-user. Two new directories have been added to the netCDF build:
      libdispatch, which decides whether to call a netcdf classic,
      netcdf-4, or opendap version of each function in the API, and
      liblib, where, depending on the configure choices, the final
      netCDF library is assembled from convenience libraries created in
      other directories.
    * Fix for make bug which caused documentation to be unnecessarily
      rebuilt after make clean.
    * Fix for bug in accessing a multidimensional variable with more
      than 4 billion values on a 32-bit platform.
    * Fix for memory performance problems in parallel I/O. The automatic
      use of HDF5 buffers in parallel programs with netCDF-4 resulted in
      large memory use.
    * Fix netCDF-4 bug caused when doing enddef/redef and then defining
      coordinate variable out of order.
    * Refactoring of netCDF-4 internals to reduce memory use and end
      dependence on size of NC_MAX_DIMS and NC_MAX_NAME.
    * Fix "ncdump -c" bug identifying coordinate variables in groups.
    * Fix bug in libsrc/posixio.c when providing sizehint larger than
      default, which then doesn't get used (thanks to Harald Anlauf).
    * The netCDF C/Fortran/C++ source code has been moved to Unidata's
      subversion server. Interested users can now examine the netCDF
      code in its full glory and gory internals at
      http://svn.unidata.ucar.edu/netcdf.
    * Documentation improvements, especially relating to creating
      netCDF-4 compatible files with HDF5 only. 

The 4.1.2 release source code is available from the following URL.
ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4.1.2.tar.gz or
ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4.1.2.tar.Z

Build it according to these instructions:
http://www.unidata.ucar.edu/software/netcdf/docs/netcdf-install.html#Qui
ck-Instructions

Report problems to the support email address:
support-netcdf@xxxxxxxxxxxxxxxx 

Thanks!

Ed
-- 
Ed Hartnett  -- ed@xxxxxxxxxxxxxxxx



  • 2011 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: