Index: /issm/trunk/src/c/parallel/OutputControl.cpp
===================================================================
--- /issm/trunk/src/c/parallel/OutputControl.cpp	(revision 507)
+++ /issm/trunk/src/c/parallel/OutputControl.cpp	(revision 508)
@@ -24,5 +24,5 @@
 	double* serial_ug=NULL;
 	int     one=1;
-	int     gsize;
+	int     u_g_size;
 	int     nods;
 
@@ -31,9 +31,11 @@
 	VecCopy(partition,partition_shifted);
 	VecShift(partition_shifted,1.0); //matlab indexing starts at 1
+
 	VecToMPISerial(&serial_partition,partition_shifted);
 	VecGetSize(partition,&nods);
+
+	VecToMPISerial(&serial_ug,u_g);
+	VecGetSize(u_g,&u_g_size);
 	
-	VecToMPISerial(&serial_ug,u_g);
-
 	/* Open output file to write raw binary data: */
 	if(my_rank==0){
@@ -43,16 +45,12 @@
 		WriteDataToDisk((void*)"control",NULL,NULL,"String",fid);
 
-		/*Write gsize: */
-		gsize=nodesets->GetGSize();
-		WriteDataToDisk(&gsize,NULL,NULL,"Integer",fid);
-
 		/*Write partition: */
 		WriteDataToDisk(serial_partition,&nods,&one,"Mat",fid);
 	
 		/*Write solution to disk: */
-		WriteDataToDisk(serial_ug,&gsize,&one,"Mat",fid);
+		WriteDataToDisk(serial_ug,&u_g_size,&one,"Mat",fid);
 
 		/*Write parameter to disk: */
-		WriteDataToDisk(p_g,&gsize,&one,"Mat",fid);
+		WriteDataToDisk(p_g,&u_g_size,&one,"Mat",fid);
 
 		/*Write J to disk: */
Index: /issm/trunk/src/c/parallel/OutputDiagnostic.cpp
===================================================================
--- /issm/trunk/src/c/parallel/OutputDiagnostic.cpp	(revision 507)
+++ /issm/trunk/src/c/parallel/OutputDiagnostic.cpp	(revision 508)
@@ -21,9 +21,4 @@
 	/*intermediary: */
 	FemModel* fem_dh=NULL;
-	FemModel* fem_dv=NULL;
-	FemModel* fem_dhu=NULL;
-	FemModel* fem_ds=NULL;
-	FemModel* fem_sl=NULL;
-	int isstokes;
 
 	NodeSets* nodesets=NULL;
@@ -34,40 +29,30 @@
 	Vec partition_shifted=NULL;
 	double* serial_partition=NULL;
-
 	double* serial_ug=NULL;
 	double* serial_pg=NULL;
+	int     u_g_size;
+	int     p_g_size;
 	int     one=1;
-	int     gsize;
 	int     nods;
 
 	/*recover fem models: */
 	fem_dh=femmodels+0;
-	fem_dv=femmodels+1;
-	fem_ds=femmodels+2;
-	fem_dhu=femmodels+3;
-	fem_sl=femmodels+4;
 	
-	fem_ds->parameters->FindParam((void*)&isstokes,"isstokes");
-
 	/*Recover diagnostic horiz femmodel: */
 	partition=fem_dh->partition;
 	
-	if(isstokes){
-		nodesets=fem_ds->nodesets;
-	}
-	else{
-		nodesets=fem_dh->nodesets;
-	}
-
-
 	/*serialize outputs: */
 	VecDuplicate(partition,&partition_shifted);
 	VecCopy(partition,partition_shifted);
 	VecShift(partition_shifted,1.0); //matlab indexing starts at 1
+
 	VecToMPISerial(&serial_partition,partition_shifted);
 	VecGetSize(partition,&nods);
 
 	VecToMPISerial(&serial_ug,u_g);
+	VecGetSize(u_g,&u_g_size);
+	
 	VecToMPISerial(&serial_pg,p_g);
+	VecGetSize(p_g,&p_g_size);
 
 	/* Open output file to write raw binary data: */
@@ -78,18 +63,10 @@
 		WriteDataToDisk(analysis_type,NULL,NULL,"String",fid);
 
-		/*Write uset.gsize: */
-		gsize=nodesets->GetGSize();
-		WriteDataToDisk(&gsize,NULL,NULL,"Integer",fid);
-
 		/*Write partition: */
 		WriteDataToDisk(serial_partition,&nods,&one,"Mat",fid);
 		
 		/*Write solution to disk: */
-		WriteDataToDisk(serial_ug,&gsize,&one,"Mat",fid);
-
-		/*Write pressure to disk, when running in stokes: */
-		if(isstokes){
-			WriteDataToDisk(serial_pg,&nods,&one,"Mat",fid);
-		}
+		WriteDataToDisk(serial_ug,&u_g_size,&one,"Mat",fid);
+		WriteDataToDisk(serial_pg,&p_g_size,&one,"Mat",fid);
 
 		/*Close file: */
Index: /issm/trunk/src/c/parallel/OutputThermal.cpp
===================================================================
--- /issm/trunk/src/c/parallel/OutputThermal.cpp	(revision 507)
+++ /issm/trunk/src/c/parallel/OutputThermal.cpp	(revision 508)
@@ -21,5 +21,5 @@
 
 	/*intermediary: */
-	FemModel  femmodel;
+	FemModel*  fem=NULL;
 	NodeSets* nodesets=NULL;
 	Vec       partition=NULL;
@@ -31,4 +31,5 @@
 
 	double* serial_tg=NULL;
+	int     t_g_size;
 	double* serial_mg=NULL;
 
@@ -38,15 +39,15 @@
 	
 	int     one=1;
-	int     gsize;
 	int     nods;
 
 	/*Recover thermal horiz femmodel: */
-	femmodel=femmodels[0];
-	partition=femmodel.partition;
-	nodesets=femmodel.nodesets;
+	fem=femmodels+0;
+	
+	partition=fem->partition;
+	nodesets=fem->nodesets;
 
-	femmodels[0].parameters->FindParam((void*)&dt,"dt");
-	femmodels[0].parameters->FindParam((void*)&ndt,"ndt");
-	femmodels[0].parameters->FindParam((void*)&sub_analysis_type,"sub_analysis_type");
+	fem->parameters->FindParam((void*)&dt,"dt");
+	fem->parameters->FindParam((void*)&ndt,"ndt");
+	fem->parameters->FindParam((void*)&sub_analysis_type,"sub_analysis_type");
 
 	/*serialize outputs: */
@@ -54,4 +55,5 @@
 	VecCopy(partition,partition_shifted);
 	VecShift(partition_shifted,1.0); //matlab indexing starts at 1
+	
 	VecToMPISerial(&serial_partition,partition_shifted);
 	VecGetSize(partition,&nods);
@@ -71,8 +73,4 @@
 		WriteDataToDisk(analysis_type,NULL,NULL,"String",fid);
 
-		/*Write uset.gsize: */
-		gsize=nodesets->GetGSize();
-		WriteDataToDisk(&gsize,NULL,NULL,"Integer",fid);
-
 		/*Write partition: */
 		WriteDataToDisk(serial_partition,&nods,&one,"Mat",fid);
@@ -89,6 +87,6 @@
 			VecToMPISerial(&serial_mg,m_g[i]);
 
-			WriteDataToDisk(serial_tg,&gsize,&one,"Mat",fid);
-			WriteDataToDisk(serial_mg,&gsize,&one,"Mat",fid);
+			WriteDataToDisk(serial_tg,&nods,&one,"Mat",fid);
+			WriteDataToDisk(serial_mg,&nods,&one,"Mat",fid);
 		}
 	
