Index: /issm/trunk-jpl/src/c/shared/Alloc/xNewDelete.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Alloc/xNewDelete.h	(revision 13450)
+++ /issm/trunk-jpl/src/c/shared/Alloc/xNewDelete.h	(revision 13451)
@@ -13,5 +13,5 @@
 // C++ style memory management
 #define USE_CXX_MEMORY_MANAGMENT_FOR_NON_POD_TYPES
-// but for speed on may alternatively use C memory managment
+// but for speed on may alternatively use C memory management
 // but can do so safely only for T that are at most 
 // plain old data structures (POD)
@@ -69,4 +69,24 @@
   assert(aT_p);
   return aT_p;
+#endif
+}
+
+template <class T>
+T** xNewZeroInit(unsigned int dim1, unsigned int dim2) {
+#ifdef USE_CXX_MEMORY_MANAGMENT_FOR_NON_POD_TYPES
+  T** aT_pp=xNew<T>(dim1,dim2);
+  for (unsigned int i=0; i<dim1*dim2;++i)
+    *aT_pp[i]=(T)0;
+  return aT_pp;
+#else
+  T* buf=(T*)calloc(dim1*dim2*sizeof(T));
+  assert(buf );
+  T** aT_pp =(T**)malloc(dim1*sizeof(T*));
+  assert(aT_pp );
+  for (unsigned int i=0;i<dim1;++i) {
+    aT_pp [i]=buf;
+    buf+=dim2;
+  }
+  return aT_pp ;
 #endif
 }
