Index: /issm/trunk/src/c/parallel/OutputDiagnostic.cpp
===================================================================
--- /issm/trunk/src/c/parallel/OutputDiagnostic.cpp	(revision 506)
+++ /issm/trunk/src/c/parallel/OutputDiagnostic.cpp	(revision 507)
@@ -20,5 +20,11 @@
 
 	/*intermediary: */
-	FemModel  femmodel;
+	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;
 	Vec       partition=NULL;
@@ -30,12 +36,28 @@
 
 	double* serial_ug=NULL;
+	double* serial_pg=NULL;
 	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: */
-	femmodel=femmodels[0];
-	partition=femmodel.partition;
-	nodesets=femmodel.nodesets;
+	partition=fem_dh->partition;
+	
+	if(isstokes){
+		nodesets=fem_ds->nodesets;
+	}
+	else{
+		nodesets=fem_dh->nodesets;
+	}
+
 
 	/*serialize outputs: */
@@ -47,4 +69,5 @@
 
 	VecToMPISerial(&serial_ug,u_g);
+	VecToMPISerial(&serial_pg,p_g);
 
 	/* Open output file to write raw binary data: */
@@ -64,5 +87,10 @@
 		/*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);
+		}
+
 		/*Close file: */
 		pfclose(fid,filename);
@@ -73,3 +101,4 @@
 	xfree((void**)&serial_partition);
 	xfree((void**)&serial_ug);
+	xfree((void**)&serial_pg);
 }	
