Index: /issm/trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp	(revision 24441)
+++ /issm/trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp	(revision 24442)
@@ -20,18 +20,22 @@
 	FILE       *fid                     = NULL;
 	char       *outputfilename          = NULL;
-	char        cpu_outputfilename[100];        //easier to convert an integer with sprintf
+	char        outputfilename2[100];        //easier to convert an integer with sprintf
 	bool        io_gather;
 	int         solutiontype;
 	char*       solutiontypestring      = NULL;
 	bool        dakota_analysis         = false;
+	int         currEvalId              = -1;
+	bool        dakota_output           = false;
 
 	/*retrieve parameters: */
 	femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
+	femmodel->parameters->FindParam(&dakota_output,QmuOutputEnum);
+	femmodel->parameters->FindParam(&currEvalId,QmuCurrEvalIdEnum);
 
 	/*recover my_rank:*/
 	my_rank=IssmComm::GetRank();
 
-	if(dakota_analysis){
-		//no need to output anything, Dakota analysis has different outputs
+	if(dakota_analysis & !dakota_output){
+		//user wants to rely purely on Dakota analysis output, not the core output. 
 		return; 
 	}
@@ -57,10 +61,18 @@
 	if(io_gather){
 		/*Just open the file for output on cpu 0. We are gathering the data on cpu 0 from all other cpus: */
-		if(my_rank==0) fid=pfopen0(outputfilename ,"ab+");
+		if(!dakota_analysis){
+			if(my_rank==0) fid=pfopen0(outputfilename ,"ab+");
+		}
+		else{
+			if(my_rank==0){
+				sprintf(outputfilename2,"%s.%i",outputfilename,currEvalId);
+				fid=pfopen0(outputfilename2,"ab+");
+			}
+		}
 	}
 	else{
 		/*We are opening different  files for output on all cpus. Append the  rank to the filename, and open: */
-		sprintf(cpu_outputfilename,"%s.%i",outputfilename,my_rank);
-		fid=pfopen(cpu_outputfilename ,"ab+");
+		sprintf(outputfilename2,"%s.%i",outputfilename,my_rank);
+		fid=pfopen(outputfilename2 ,"ab+");
 	}
 
@@ -83,7 +95,12 @@
 	/*Close output file? :*/
 	if(io_gather){
-		if(my_rank==0) pfclose(fid,outputfilename);
+		if(!dakota_analysis){
+			if(my_rank==0) pfclose(fid,outputfilename);
+		}
+		else{
+			if(my_rank==0) pfclose(fid,outputfilename2);
+		}
 	}
-	else pfclose(fid,cpu_outputfilename);
+	else pfclose(fid,outputfilename2);
 #endif
 
