Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Dakota/CreateParametersDakota.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Dakota/CreateParametersDakota.cpp	(revision 12450)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Dakota/CreateParametersDakota.cpp	(revision 12451)
@@ -136,5 +136,5 @@
 				
 				/*Free ressources:*/
-				xDelete<int>(dakota_parameter);
+				xDelete<double>(dakota_parameter);
 			}
 		}
@@ -214,5 +214,5 @@
 		xDelete<char*>(variabledescriptors);
 		xDelete<int>(part);
-		xDelete<int>(dpart);
+		xDelete<double>(dpart);
 		xDelete<char>(qmuinname);
 		xDelete<char>(qmuerrname);
Index: /issm/trunk-jpl/src/c/objects/Params/DoubleMatArrayParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/DoubleMatArrayParam.cpp	(revision 12450)
+++ /issm/trunk-jpl/src/c/objects/Params/DoubleMatArrayParam.cpp	(revision 12451)
@@ -36,7 +36,7 @@
 	M=in_M;
 	if(M){
-		array=(double**)xmalloc(M*sizeof(double*));
-		mdim_array=(int*)xmalloc(M*sizeof(int));
-		ndim_array=(int*)xmalloc(M*sizeof(int));
+		array=xNew<double*>(M);
+		mdim_array=xNew<int>(M);
+		ndim_array=xNew<int>(M);
 
 		for(i=0;i<M;i++){
@@ -48,5 +48,5 @@
 
 			if(m*n){
-				matrix=(double*)xmalloc(m*n*sizeof(double));
+				matrix=xNew<double>(m*n);
 				memcpy(matrix,in_array[i],m*n*sizeof(double));
 			}
@@ -70,13 +70,13 @@
 	double* matrix=NULL;
 
-	xfree((void**)&mdim_array);
-	xfree((void**)&ndim_array);
+	xDelete<int>(mdim_array);
+	xDelete<int>(ndim_array);
 
 	for(i=0;i<M;i++){
 		matrix=array[i];
-		xfree((void**)&matrix);
-	}
-	
-	xfree((void**)&array);
+		xDelete<double>(matrix);
+	}
+	
+	xDelete<double*>(array);
 	return;
 }
@@ -159,7 +159,7 @@
 	out_M=this->M;
 	if(out_M){
-		out_array=(double**)xmalloc(M*sizeof(double*));
-		out_mdim_array=(int*)xmalloc(M*sizeof(int));
-		out_ndim_array=(int*)xmalloc(M*sizeof(int));
+		out_array=xNew<double*>(M);
+		out_mdim_array=xNew<int>(M);
+		out_ndim_array=xNew<int>(M);
 
 		memcpy(out_mdim_array,this->mdim_array,M*sizeof(int));
@@ -172,5 +172,5 @@
 
 			if(m*n){
-				out_matrix=(double*)xmalloc(m*n*sizeof(double));
+				out_matrix=xNew<double>(m*n);
 				memcpy(out_matrix,matrix,m*n*sizeof(double));
 			}
@@ -209,17 +209,17 @@
 
 	/*avoid leak: */
-	xfree((void**)&mdim_array);
-	xfree((void**)&ndim_array);
+	xDelete<int>(mdim_array);
+	xDelete<int>(ndim_array);
 	for(i=0;i<M;i++){
 		matrix=array[i];
-		xfree((void**)&matrix);
-	}
-	xfree((void**)&array);
+		xDelete<double>(matrix);
+	}
+	xDelete<double*>(array);
 
 	/*copy data: */
 	this->M=in_M;
-	this->array=(double**)xmalloc(M*sizeof(double*));
-	this->mdim_array=(int*)xmalloc(M*sizeof(int));
-	this->ndim_array=(int*)xmalloc(M*sizeof(int));
+	this->array=xNew<double*>(M);
+	this->mdim_array=xNew<int>(M);
+	this->ndim_array=xNew<int>(M);
 	
 	memcpy(this->mdim_array,in_mdim_array,M*sizeof(double));
@@ -231,5 +231,5 @@
 		n=in_ndim_array[i];
 
-		matrix=(double*)xmalloc(m*n*sizeof(double));
+		matrix=xNew<double>(m*n);
 		memcpy(matrix,in_matrix,m*n*sizeof(double));
 
Index: /issm/trunk-jpl/src/c/objects/Params/DoubleMatParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/DoubleMatParam.cpp	(revision 12450)
+++ /issm/trunk-jpl/src/c/objects/Params/DoubleMatParam.cpp	(revision 12451)
@@ -33,5 +33,5 @@
 	N=in_N;
 
-	value=(double*)xmalloc(M*N*sizeof(double));
+	value=xNew<double>(M*N);
 	memcpy(value,in_value,M*N*sizeof(double));
 }
@@ -98,5 +98,5 @@
 	double* output=NULL;
 
-	output=(double*)xmalloc((int)(M*N*sizeof(double)));
+	output=xNew<double>(M*N);
 	memcpy(output,value,M*N*sizeof(double));
 
@@ -123,5 +123,5 @@
 	xfree((void**)&this->value);
 
-	this->value=(double*)xmalloc(in_M*in_N*sizeof(double));
+	this->value=xNew<double>(in_M*in_N);
 	memcpy(this->value,doublearray,in_M*in_N*sizeof(double));
 
Index: /issm/trunk-jpl/src/c/objects/Params/IntMatParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/IntMatParam.cpp	(revision 12450)
+++ /issm/trunk-jpl/src/c/objects/Params/IntMatParam.cpp	(revision 12451)
@@ -33,5 +33,5 @@
 	N=in_N;
 
-	value=(int*)xmalloc(M*N*sizeof(int));
+	value=xNew<int>(M*N);
 	memcpy(value,in_value,M*N*sizeof(int));
 }
@@ -39,5 +39,5 @@
 /*FUNCTION IntMatParam::~IntMatParam(){{{*/
 IntMatParam::~IntMatParam(){
-	xfree((void**)&value);
+	xDelete<int>(value);
 	return;
 }
@@ -98,5 +98,5 @@
 	int* output=NULL;
 
-	output=(int*)xmalloc((int)(M*N*sizeof(int)));
+	output=xNew<int>(M*N);
 	memcpy(output,value,M*N*sizeof(int));
 
@@ -116,7 +116,7 @@
 
 	/*avoid leak: */
-	xfree((void**)&this->value);
+	xDelete<int>(this->value);
 
-	this->value=(int*)xmalloc(in_M*in_N*sizeof(int));
+	this->value=xNew<int>(in_M*in_N);
 	memcpy(this->value,intarray,in_M*in_N*sizeof(int));
 
Index: /issm/trunk-jpl/src/c/objects/Params/IntVecParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/IntVecParam.cpp	(revision 12450)
+++ /issm/trunk-jpl/src/c/objects/Params/IntVecParam.cpp	(revision 12451)
@@ -33,5 +33,5 @@
 
 	if(M){
-		values=(int*)xmalloc(M*sizeof(int));
+		values=xNew<int>(M);
 		memcpy(values,in_values,M*sizeof(int));
 	}
@@ -46,5 +46,5 @@
 
 	if(M){
-		values=(int*)xmalloc(M*sizeof(int));
+		values=xNew<int>(M);
 		for(int i=0;i<in_M;i++) values[i]=(int)in_values[i];
 	}
@@ -54,5 +54,5 @@
 /*FUNCTION IntVecParam::~IntVecParam(){{{*/
 IntVecParam::~IntVecParam(){
-	xfree((void**)&values);
+	xDelete<int>(values);
 	return;
 }
@@ -112,5 +112,5 @@
 
 	if(M){
-		output=(int*)xmalloc(M*sizeof(int));
+		output=xNew<int>(M);
 		memcpy(output,values,M*sizeof(int));
 	}
@@ -130,8 +130,8 @@
 
 	/*avoid leak: */
-	xfree((void**)&this->values);
+	xDelete<int>(this->values);
 
 	if(in_M){
-		this->values=(int*)xmalloc(in_M*sizeof(int));
+		this->values=xNew<int>(in_M);
 		memcpy(this->values,intarray,in_M*sizeof(int));
 	}
Index: /issm/trunk-jpl/src/c/objects/Params/StringArrayParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/StringArrayParam.cpp	(revision 12450)
+++ /issm/trunk-jpl/src/c/objects/Params/StringArrayParam.cpp	(revision 12451)
@@ -36,9 +36,9 @@
 
 	if(numstrings){
-		value=(char**)xmalloc(numstrings*sizeof(char*));
+		value=xNew<char*>(numstrings);
 		for(i=0;i<numstrings;i++){
 			char* string=NULL;
 			size=strlen(in_values[i])+1;
-			string=(char*)xmalloc(size*sizeof(char));
+			string=xNew<char>(size);
 			memcpy(string,in_values[i],size*sizeof(char));
 			value[i]=string;
@@ -57,7 +57,7 @@
 	for(i=0;i<this->numstrings;i++){
 		string=value[i];
-		xfree((void**)&string);
+		xDelete<char>(string);
 	}
-	xfree((void**)&value);
+	xDelete<char*>(value);
 }
 /*}}}*/
@@ -120,5 +120,5 @@
 	M=this->numstrings;
 	if(this->numstrings){
-		outstrings=(char**)xmalloc(this->numstrings*sizeof(char*));
+		outstrings=xNew<char*>(this->numstrings);
 
 		for(i=0;i<this->numstrings;i++){
@@ -126,5 +126,5 @@
 			stringsize=strlen(string)+1;
 
-			string2=(char*)xmalloc(stringsize*sizeof(char));
+			string2=xNew<char>(stringsize);
 			memcpy(string2,string,stringsize*sizeof(char));
 
@@ -155,16 +155,16 @@
 	for(i=0;i<this->numstrings;i++){
 		string=this->value[i];
-		xfree((void**)&string);
+		xDelete<char>(string);
 	}
-	xfree((void**)&this->value);
+	xDelete<char*>(this->value);
 
 	/*copy: */
 	this->numstrings=M;
-	this->value=(char**)xmalloc(this->numstrings*sizeof(char*));
+	this->value=xNew<char*>(this->numstrings);
 	for(i=0;i<this->numstrings;i++){
 		string=stringarray[i];
 		stringsize=strlen(string)+1;
 
-		string2=(char*)xmalloc(stringsize*sizeof(char));
+		string2=xNew<char>(stringsize);
 		memcpy(string2,string,stringsize*sizeof(char));
 
Index: /issm/trunk-jpl/src/c/objects/Params/StringParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/StringParam.cpp	(revision 12450)
+++ /issm/trunk-jpl/src/c/objects/Params/StringParam.cpp	(revision 12451)
@@ -30,5 +30,5 @@
 
 	enum_type=in_enum_type;
-	value=(char*)xmalloc((strlen(in_value)+1)*sizeof(char));
+	value=xNew<char>(strlen(in_value)+1);
 	memcpy(value,in_value,(strlen(in_value)+1)*sizeof(char));
 
@@ -38,5 +38,5 @@
 /*FUNCTION StringParam::~StringParam(){{{*/
 StringParam::~StringParam(){
-	xfree((void**)&value);
+	xDelete<char>(value);
 }
 /*}}}*/
@@ -88,5 +88,5 @@
 	stringsize=strlen(this->value)+1;
 
-	outstring=(char*)xmalloc(stringsize*sizeof(char));
+	outstring=xNew<char>(stringsize);
 	memcpy(outstring,this->value,stringsize*sizeof(char));
 
@@ -106,9 +106,9 @@
 	
 	/*avoid leak: */
-	xfree((void**)&this->value);
+	xDelete<char>(this->value);
 
 	/*copy: */
 	stringsize=strlen(string)+1;
-	this->value=(char*)xmalloc(stringsize*sizeof(char));
+	this->value=xNew<char>(stringsize);
 	memcpy(this->value,string,stringsize*sizeof(char));
 
