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.

[netcdfgroup] Patches for netcdf-4.1.1

Hi,
I would like to submit a couple of patches to fix issue I found in
netcdf-4.1.1. Namely:
 * fix building with openmpi-1.4.3[1]
 * fix implicit function declaration
 * fix parallel build failure for fortran part[2]
I hope you'll accept it before final 4.1.2 release.
Best regards,
Kacper Kowalik

[1] http://bugs.gentoo.org/show_bug.cgi?id=347893
[2] http://bugs.gentoo.org/show_bug.cgi?id=296174
Fix implicit function declarations

--- libsrc/nc.c
+++ libsrc/nc.c
@@ -15,7 +15,7 @@
 #  include <mpp/shmem.h>
 #  include <intrinsics.h>
 #endif
-#ifdef HAVE_UNISTD
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 
--- fortran/fort-nc4.c
+++ fortran/fort-nc4.c
@@ -30,6 +30,14 @@
 /* These are in libsrc4/nc4vars.c... */
 int nc_inq_var_chunking_ints(int ncid, int varid, int *contiguousp, int 
*chunksizesp);
 int nc_def_var_chunking_ints(int ncid, int varid, int contiguous, int 
*chunksizes);
+int nc_set_var_chunk_cache_ints(int ncid, int varid, int size, int nelems, int 
preemption);
+int nc_get_var_chunk_cache_ints(int ncid, int varid, int *sizep, int *nelemsp, 
int *preemptionp);
+
+/* These are in libsrc4/nc4file.c... */
+int nc_set_chunk_cache_ints(int size, int nelems, int preemption);
+int nc_get_chunk_cache_ints(int *sizep, int *nelemsp, int *preemptionp);
+int nc_create_par_fortran(const char *path, int cmode, int comm, int info, int 
*ncidp);
+int nc_open_par_fortran(const char *path, int mode, int comm, int info, int 
*ncidp);
 
 FCALLSCFUN5(NF_INT, nc_create_par_fortran, NF_CREATE_PAR, nf_create_par,
            STRING, FINT2CINT, FINT2CINT, FINT2CINT, PCINT2FINT)
--- libncdap3/oc/daplex.c
+++ libncdap3/oc/daplex.c
@@ -86,6 +86,8 @@
 SCAN_PROG
 };
 
+int daperror(DAPparsestate* state, const char* msg);
+
 /**************************************************/
 
 int
--- libncdap3/oc/ocinternal.c
+++ libncdap3/oc/ocinternal.c
@@ -37,6 +37,8 @@
 #endif
 
 extern OCnode* makeunlimiteddimension(void);
+int occurlopen(CURL** curlp);
+void occurlclose(CURL* curl);
 
 #ifdef WIN32
 #include <fcntl.h>
--- libncdap3/oc/dapparse.c
+++ libncdap3/oc/dapparse.c
@@ -11,6 +11,7 @@
 static OCtype octypefor(Object etype);
 static char* scopeduplicates(OClist* list);
 static int check_int32(char* val, long* value);
+void setwordchars(DAPlexstate* lexstate, int kind);
 
 /****************************************************/
 
--- libncdap3/ncdap3.c
+++ libncdap3/ncdap3.c
@@ -4,6 +4,7 @@
  *   $Header: 
/var/cvsroot/gentoo-x86/sci-libs/netcdf/files/netcdf-4.1.1-implicits.patch,v 
1.2 2010/12/05 11:38:45 xarthisius Exp $
  *********************************************************************/
 #include "config.h"
+#include "netcdf3.h"
 #include "ncdap3.h"
 #include "dispatch3.h"
 #include "dapdispatch3.h"
--- libncdap3/oc/dapparselex.h
+++ libncdap3/oc/dapparselex.h
@@ -88,4 +88,5 @@
 extern void daplexinit(char* input, DAPlexstate** lexstatep);
 extern void daplexcleanup(DAPlexstate** lexstatep);
 
+void dassetup(DAPparsestate* state);
 #endif /*DAPPARSELEX_H*/
Ensure hdf5.h is included before netcdf.h to avoid build error with openmpi >= 
1.4.1

--- libsrc4/nc4internal.h
+++ libsrc4/nc4internal.h
@@ -8,13 +8,13 @@
 
 #include <config.h>
 #include <stdio.h>
+#include <hdf5.h>
 #include "error.h"
 #include <stdlib.h>
 #include <ctype.h>
 #include <stdarg.h>
 #include <string.h>
 #include "netcdf3.h"
-#include <hdf5.h>
 #include <netcdf.h>
 
 #ifdef USE_PARALLEL
--- libncdap4/ncdap4.h
+++ libncdap4/ncdap4.h
@@ -12,9 +12,9 @@
 #include <stdio.h>
 
 #include "config.h"
+#include "nc4internal.h"
 #include "netcdf.h"
 #include "nc.h"
-#include "nc4internal.h"
 #include "ncdap.h"
 #include "getvara.h"
 #include "constraints3.h"
Avoid building fortran modules twice, just install them instead.

https://bugs.gentoo.org/296174

--- netcdf-4.1.1/f90/Makefile.am
+++ netcdf-4.1.1/f90/Makefile.am
@@ -101,17 +101,23 @@
 # Some fortran compilers change the file names of .mod files to all
 # uppercase. Just to be special.
 if UPPER_CASE_MOD
-nodist_include_HEADERS = TYPESIZES.mod NETCDF.mod
-TYPESIZES.mod: typeSizes.o
-NETCDF.mod: $(NETCDF_O)
-BUILT_SOURCES = TYPESIZES.mod
+NETCDF_MODULES = TYPESIZES.mod NETCDF.mod
 else
-nodist_include_HEADERS = typesizes.mod netcdf.mod 
-typesizes.mod: typeSizes.o
-netcdf.mod: $(NETCDF_O)
-BUILT_SOURCES = typesizes.mod
+NETCDF_MODULES = typesizes.mod netcdf.mod 
 endif
 
+install-data-local:
+       test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
+       @list='$(NETCDF_MODULES)'; test -n "$(includedir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
+       done
+
 # This is what we are building: a convenience library of F90 functions.
 noinst_LTLIBRARIES = libnetcdff90.la
 

Attachment: signature.asc
Description: OpenPGP digital signature

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