Index: /issm/trunk-jpl/src/modules/TriMeshProcessRifts/TriMeshProcessRifts.cpp
===================================================================
--- /issm/trunk-jpl/src/modules/TriMeshProcessRifts/TriMeshProcessRifts.cpp	(revision 12084)
+++ /issm/trunk-jpl/src/modules/TriMeshProcessRifts/TriMeshProcessRifts.cpp	(revision 12085)
@@ -196,35 +196,38 @@
 
 	/*Output : */
-	pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);
-	mxSetM(pmxa_array,3);
-	mxSetN(pmxa_array,nel);
-	mxSetPr(pmxa_array,index_in);
-	mexCallMATLAB( 1, &plhs[0], 1, &pmxa_array, "transpose");
-
-	pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);
-	mxSetM(pmxa_array,1);
-	mxSetN(pmxa_array,nods);
-	mxSetPr(pmxa_array,x_in);
-	mexCallMATLAB( 1, &plhs[1], 1, &pmxa_array, "transpose");
-
-	pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);
-	mxSetM(pmxa_array,1);
-	mxSetN(pmxa_array,nods);
-	mxSetPr(pmxa_array,y_in);
-	mexCallMATLAB( 1, &plhs[2], 1, &pmxa_array, "transpose");
-
-	
-	pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);
-	mxSetM(pmxa_array,3);
-	mxSetN(pmxa_array,num_seg);
-	mxSetPr(pmxa_array,segments_in);
-	mexCallMATLAB( 1, &plhs[3], 1, &pmxa_array, "transpose");
-	
-
-	pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);
-	mxSetM(pmxa_array,1);
-	mxSetN(pmxa_array,num_seg);
-	mxSetPr(pmxa_array,segmentmarkers_in);
-	mexCallMATLAB( 1, &plhs[4], 1, &pmxa_array, "transpose");
+	WriteData(&plhs[0],index_in,nel,3);
+	//pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);
+	//mxSetM(pmxa_array,3);
+	//mxSetN(pmxa_array,nel);
+	//mxSetPr(pmxa_array,index_in);
+	//mexCallMATLAB( 1, &plhs[0], 1, &pmxa_array, "transpose");
+
+	WriteData(&plhs[1],x_in,nods,1);
+	//pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);
+	//mxSetM(pmxa_array,1);
+	//mxSetN(pmxa_array,nods);
+	//mxSetPr(pmxa_array,x_in);
+	//mexCallMATLAB( 1, &plhs[1], 1, &pmxa_array, "transpose");
+
+	WriteData(&plhs[2],y_in,nods,1);
+	//pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);
+	//mxSetM(pmxa_array,1);
+	//mxSetN(pmxa_array,nods);
+	//mxSetPr(pmxa_array,y_in);
+	//mexCallMATLAB( 1, &plhs[2], 1, &pmxa_array, "transpose");
+
+	WriteData(&plhs[3],segments_in,num_seg,3);
+//pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);
+//mxSetM(pmxa_array,3);
+//mxSetN(pmxa_array,num_seg);
+//mxSetPr(pmxa_array,segments_in);
+//mexCallMATLAB( 1, &plhs[3], 1, &pmxa_array, "transpose");
+
+	WriteData(&plhs[4],segmentmarkers_in,num_seg,1);
+	//pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);
+	//mxSetM(pmxa_array,1);
+	//mxSetN(pmxa_array,num_seg);
+	//mxSetPr(pmxa_array,segmentmarkers_in);
+	//mexCallMATLAB( 1, &plhs[4], 1, &pmxa_array, "transpose");
 
 	if(riftflag){
@@ -247,21 +250,22 @@
 		
 		for (i=0;i<out_numrifts;i++){
+
 			/*Segments: */
-			pmxa_array2= mxCreateDoubleMatrix(0,0,mxREAL);
-			mxSetM(pmxa_array2,3);
-			mxSetN(pmxa_array2,out_riftsnumsegments[i]);
-			mxSetPr(pmxa_array2,out_riftssegments[i]);
-			mexCallMATLAB( 1, &pmxa_array3, 1, &pmxa_array2, "transpose");
-			
+			WriteData(&pmxa_array3,out_riftssegments[i],out_riftsnumsegments[i],3);
+			//pmxa_array2= mxCreateDoubleMatrix(0,0,mxREAL);
+			//mxSetM(pmxa_array2,3);
+			//mxSetN(pmxa_array2,out_riftsnumsegments[i]);
+			//mxSetPr(pmxa_array2,out_riftssegments[i]);
+			//mexCallMATLAB( 1, &pmxa_array3, 1, &pmxa_array2, "transpose");
 			mxSetField(pmxa_array,i,"segments",pmxa_array3);
 			mxSetField(pmxa_array,i,"numsegs",mxCreateDoubleScalar((double)out_riftsnumsegments[i]));
 
 			/*Element pairs: */
-			pmxa_array2= mxCreateDoubleMatrix(0,0,mxREAL);
-			mxSetM(pmxa_array2,2);
-			mxSetN(pmxa_array2,out_riftsnumpairs[i]);
-			mxSetPr(pmxa_array2,out_riftspairs[i]);
-			mexCallMATLAB( 1, &pmxa_array3, 1, &pmxa_array2, "transpose");
-			
+			WriteData(&pmxa_array3,out_riftspairs[i],out_riftsnumpairs[i],2);
+			//pmxa_array2= mxCreateDoubleMatrix(0,0,mxREAL);
+			//mxSetM(pmxa_array2,2);
+			//mxSetN(pmxa_array2,out_riftsnumpairs[i]);
+			//mxSetPr(pmxa_array2,out_riftspairs[i]);
+			//mexCallMATLAB( 1, &pmxa_array3, 1, &pmxa_array2, "transpose");
 			mxSetField(pmxa_array,i,"pairs",pmxa_array3);
 
@@ -269,5 +273,5 @@
 			pmxa_array2= mxCreateDoubleMatrix(0,0,mxREAL);
 			mxSetM(pmxa_array2,1);
-			pair=(double*)xmalloc(2*sizeof(double));
+			pair=(double*)mxMalloc(2*sizeof(double));
 			pair[0]=*(out_riftstips+2*i+0);
 			pair[1]=*(out_riftstips+2*i+1);
@@ -277,10 +281,10 @@
 
 			/*Penalty pairs: */
-			pmxa_array2= mxCreateDoubleMatrix(0,0,mxREAL);
-			mxSetM(pmxa_array2,7);
-			mxSetN(pmxa_array2,out_riftsnumpenaltypairs[i]);
-			mxSetPr(pmxa_array2,out_riftspenaltypairs[i]);
-			mexCallMATLAB( 1, &pmxa_array3, 1, &pmxa_array2, "transpose");
-			
+			WriteData(&pmxa_array3,out_riftspenaltypairs[i],out_riftsnumpenaltypairs[i],7);
+			//pmxa_array2= mxCreateDoubleMatrix(0,0,mxREAL);
+			//mxSetM(pmxa_array2,7);
+			//mxSetN(pmxa_array2,out_riftsnumpenaltypairs[i]);
+			//mxSetPr(pmxa_array2,out_riftspenaltypairs[i]);
+			//mexCallMATLAB( 1, &pmxa_array3, 1, &pmxa_array2, "transpose");
 			mxSetField(pmxa_array,i,"penaltypairs",pmxa_array3);
 
@@ -292,5 +296,5 @@
 
 			/*State: */
-			state=(double*)xmalloc(out_riftsnumpenaltypairs[i]*sizeof(double));
+			state=(double*)mxMalloc(out_riftsnumpenaltypairs[i]*sizeof(double));
 			for(j=0;j<out_riftsnumpenaltypairs[i];j++)state[j]=FreeEnum;
 			pmxa_array2= mxCreateDoubleMatrix(0,0,mxREAL);
@@ -305,5 +309,5 @@
 	else{
 		/*output NaN :*/
-		pNaN=(double*)xmalloc(sizeof(double));
+		pNaN=(double*)mxMalloc(sizeof(double));
 		*pNaN=NAN;
 		pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);
