Index: /issm/branches/trunk-larour-SLPS2020/src/m/solve/loadresultsfromcluster.m
===================================================================
--- /issm/branches/trunk-larour-SLPS2020/src/m/solve/loadresultsfromcluster.m	(revision 25600)
+++ /issm/branches/trunk-larour-SLPS2020/src/m/solve/loadresultsfromcluster.m	(revision 25601)
@@ -30,5 +30,5 @@
 		end
 	end
-	if md.qmu.output,
+	if md.qmu.output & strcmpi(md.qmu.statistics.method(1).name,'None'),
 		if strcmpi(md.qmu.method.method,'nond_sampling'),
 			for i=1:md.qmu.method.params.samples
@@ -36,4 +36,7 @@
 			end
 		end
+	end
+	if ~strcmpi(md.qmu.statistics.method(1).name,'None'),
+		filelist{end+1}=[md.miscellaneous.name '.stats'];
 	end
 else
Index: /issm/branches/trunk-larour-SLPS2020/src/m/solve/loadresultsfromdisk.m
===================================================================
--- /issm/branches/trunk-larour-SLPS2020/src/m/solve/loadresultsfromdisk.m	(revision 25600)
+++ /issm/branches/trunk-larour-SLPS2020/src/m/solve/loadresultsfromdisk.m	(revision 25601)
@@ -35,4 +35,12 @@
 		error(['No result found in binary file ' filename '. Check for solution crash.']);
 	end
+	if isempty(structure(1).SolutionType),
+		if ~isempty(structure(end).SolutionType),
+			structure(1).SolutionType=structure(end).SolutionType;
+		else
+			warning(['Cannot find a solution type in the results! Ascribing one: ''NoneSolution''.']);
+			structure(1).SolutionType='NoneSolution';
+		end
+	end
 	md.results.(structure(1).SolutionType)=structure;
 
Index: /issm/branches/trunk-larour-SLPS2020/src/m/solve/parseresultsfromdisk.m
===================================================================
--- /issm/branches/trunk-larour-SLPS2020/src/m/solve/parseresultsfromdisk.m	(revision 25600)
+++ /issm/branches/trunk-larour-SLPS2020/src/m/solve/parseresultsfromdisk.m	(revision 25601)
@@ -4,8 +4,56 @@
 	results=parseresultsfromdiskiosplit(md,filename);
 else
-	results=parseresultsfromdiskioserial(md,filename);
-end
-
-
+	%results=parseresultsfromdiskioserial(md,filename);
+	results=parseresultsfromdiskioserialsequential(md,filename);
+end
+
+function results=parseresultsfromdiskioserialsequential(md,filename) % {{{
+
+%Open file
+fid=fopen(filename,'rb');
+if(fid==-1),
+	error(['loadresultsfromdisk error message: could not open ',filename,' for binary reading']);
+end
+
+%first pass to figure out the steps we have: 
+steps=[];
+while  1, 
+	result  = ReadDataDimensions(fid);
+	if isempty(result),
+		break;
+	end
+	if result.step~=-9999,
+		steps=[steps result.step];
+	end
+end
+
+steps=unique(steps)
+
+%create structure: 
+results=struct('step',num2cell(steps));
+
+%second pass to fill the steps we have: 
+fseek(fid,0,-1); %rewind
+while  1, 
+	result  = ReadData(fid,md);
+	if isempty(result),
+		break;
+	end
+	if result.step==-9999,
+		result.step=1;
+		result.time=0;
+	end
+	%find where we are putting this step: 
+	ind=find(steps==result.step);
+	if isempty(ind),
+		error('could not find a step in our pre-structure! Something is very off!');
+	end
+
+	%plug: 
+	results(ind).time=result.time;
+	results(ind).(result.fieldname)=result.field;
+end
+fclose(fid);
+% }}}
 function results=parseresultsfromdiskioserial(md,filename) % {{{
 
