diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4e25985edc..2a691170af 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -233,6 +233,14 @@ IF(MSVC)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
ENDIF()
+#####
+# System inspection checks
+#####
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/oc2)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/libsrc)
+SET(CMAKE_REQUIRED_INCLUDES ${CMAKE_SOURCE_DIR}/libsrc)
+
################################
# End Compiler Configuration
################################
@@ -986,13 +994,6 @@ MARK_AS_ADVANCED(ENABLE_DOXYGEN_BUILD_RELEASE_DOCS DOXYGEN_ENABLE_TASKS ENABLE_D
# Option checks
################################
-#####
-# System inspection checks
-#####
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/oc2)
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/libsrc)
-SET(CMAKE_REQUIRED_INCLUDES ${CMAKE_SOURCE_DIR}/libsrc)
#
# Library include checks
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index 22047ee208..52ee3552ce 100755
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -7,6 +7,8 @@ This file contains a high-level description of this package's evolution. Release
## 4.4.0 Released TBD
+* Updated documentation to reference the new `NodeJS` interface to netcdf4, by Sven Willner. It is available from [https://www.npmjs.com/package/netcdf4](https://www.npmjs.com/package/netcdf4) or from the GitHub repository at [https://github.com/swillner/netcdf4-js](https://github.com/swillner/netcdf4-js).
+
* Incorporated pull request https://github.com/Unidata/netcdf-c/pull/150 from Greg Sjaardema to remove the internal hard-wired use of `NC_MAX_DIMS`, instead using a dynamic memory allocation.
### 4.4.0-RC5 Released - November 11, 2015
diff --git a/docs/software.md b/docs/software.md
index 2e100aadf7..67bb5f9964 100644
--- a/docs/software.md
+++ b/docs/software.md
@@ -215,10 +215,8 @@ site](http://www-c4.ucsd.edu/~cids/software/visual.html).
CSIRO MATLAB/netCDF interface {#CSIRO-MATLAB}
------------------------------------------------------------
-The [CSIRO MATLAB/netCDF
-interface](http://www.marine.csiro.au/sw/matlab-netcdf.html) is now
-available from the [CSIRO Marine
-Laboratories](http://www.marine.csiro.au).
+The [CSIRO MATLAB/netCDF interface](http://www.marine.csiro.au/sw/matlab-netcdf.html) is now
+available from the [CSIRO Marine Laboratories](http://www.marine.csiro.au).
The CSIRO MATLAB/netCDF interface is run from within MATLAB and has a
simple syntax. It has options for automatically handling missing values,
scale factors, and permutation of hyperslabs. It is, however, limited to
@@ -1203,6 +1201,10 @@ The source may be downloaded from .
For more information, please contact the author, David W. Pierce at
.
+netcdf4-js {#netcdf4-js}
+-------------------------------
+[netcdf4-js](https://www.npmjs.com/package/netcdf4) is a NodeJS addon for reading and writing the files in the Network Common Data Form (NetCDF) version <= 4, built upon the C-library for netcdf. It isavailable from npmjs at the link above, or directly from the [GitHub Repository](https://github.com/swillner/netcdf4-js).
+
NetCDF Toolbox for MATLAB-5 {#matlab5}
----------------------------------------------------
@@ -2383,6 +2385,8 @@ implement a MATLAB/netCDF interface are available:
reader](http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=15177&objectType=file),
and [fanmat](/software/netcdf/Contrib.html).
+
+
Noesys {#Neosys}
-------------------------------
diff --git a/libdap2/ncd2dispatch.c b/libdap2/ncd2dispatch.c
index b33f2114af..6b1336c5cf 100644
--- a/libdap2/ncd2dispatch.c
+++ b/libdap2/ncd2dispatch.c
@@ -1165,14 +1165,15 @@ fprintf(stderr,"conflict: %s[%lu] %s[%lu]\n",
PANIC1("missing dim names: %s",dim1->ocname);
/* search backward so we can delete duplicates */
for(j=nclistlength(basedims)-1;j>i;j--) {
- CDFnode* dim2 = (CDFnode*)nclistget(basedims,j);
- if(strcmp(dim1->ncfullname,dim2->ncfullname)==0) {
+ if(!dim1->ncfullname) continue;
+ CDFnode* dim2 = (CDFnode*)nclistget(basedims,j);
+ if(strcmp(dim1->ncfullname,dim2->ncfullname)==0) {
/* complain and suppress one of them */
fprintf(stderr,"duplicate dim names: %s[%lu] %s[%lu]\n",
- dim1->ncfullname,(unsigned long)dim1->dim.declsize,
- dim2->ncfullname,(unsigned long)dim2->dim.declsize);
+ dim1->ncfullname,(unsigned long)dim1->dim.declsize,
+ dim2->ncfullname,(unsigned long)dim2->dim.declsize);
nclistremove(basedims,j);
- }
+ }
}
}