view src/of-netcdf-1-fixes.patch @ 4037:85abb6c3ec8b

of-netcdf: patch for --enable-64 (Bug #46060) * src/of-netcdf-1-fixes.patch: new file * dist-files.mk: add of-netcdf-1-fixes.patch
author John Donoghue <john.donoghue@ieee.org>
date Tue, 29 Sep 2015 19:43:19 -0400
parents
children
line wrap: on
line source

diff -ur netcdf.orig/src/__netcdf__.cc netcdf/src/__netcdf__.cc
--- netcdf.orig/src/__netcdf__.cc	2015-09-26 07:53:37.710240236 -0400
+++ netcdf/src/__netcdf__.cc	2015-09-26 13:58:27.115208120 -0400
@@ -551,8 +551,14 @@
   check_err(nc_inq_unlimdims(ncid, &nunlimdims, NULL));
   Array<int> unlimdimids = Array<int>(dim_vector(1,nunlimdims));
   check_err(nc_inq_unlimdims(ncid, &nunlimdims, unlimdimids.fortran_vec()));
+
+  Array<double> d_unlimdimids = Array<double>(dim_vector(1,nunlimdims));
+  for (octave_idx_type idx=0;idx<d_unlimdimids.numel();idx++)
+    {
+      d_unlimdimids(idx) = unlimdimids(idx);
+    }
     
-  return octave_value(unlimdimids);
+  return octave_value(d_unlimdimids);
 }
 
 
@@ -1840,7 +1846,14 @@
   Array<int> varids = Array<int>(dim_vector(1,nvars));
   check_err(nc_inq_varids(ncid, &nvars, varids.fortran_vec()));
 
-  return octave_value(varids);
+  Array<double> d_varids = Array<double>(dim_vector(1,nvars));
+  for (octave_idx_type idx=0;idx<d_varids.numel();idx++)
+    {
+      d_varids(idx) = varids(idx);
+    }
+ 
+
+  return octave_value(d_varids);
 }
 
 DEFUN_DLD(netcdf_inqVar, args,, 
@@ -1996,8 +2009,14 @@
   check_err(nc_inq_ndims(ncid, &ndims));
   Array<int> dimids = Array<int>(dim_vector(1,ndims));
   check_err(nc_inq_dimids(ncid, &ndims, dimids.fortran_vec(),include_parents));
+
+  Array<double> d_dimids = Array<double>(dim_vector(1,ndims));
+  for (octave_idx_type idx=0;idx<d_dimids.numel();idx++)
+    {
+      d_dimids(idx) = dimids(idx);
+    }
     
-  return octave_value(dimids);
+  return octave_value(d_dimids);
 }
 
 
@@ -2067,8 +2086,14 @@
 
   Array<int> ncids = Array<int>(dim_vector(1,numgrps));
   check_err(nc_inq_grps(ncid, NULL, ncids.fortran_vec()));
-    
-  return octave_value(ncids);
+
+  Array<double> d_ncids = Array<double>(dim_vector(1,numgrps));
+  for (octave_idx_type idx=0;idx<d_ncids.numel();idx++)
+    {
+      d_ncids(idx) = ncids(idx);
+    }
+  
+  return octave_value(d_ncids);
 }
 
 //int nc_inq_grpname(int ncid, char *name);