Index: /issm/trunk-jpl/src/m/solve/loadresultfromdisk.m
===================================================================
--- /issm/trunk-jpl/src/m/solve/loadresultfromdisk.m	(revision 25283)
+++ /issm/trunk-jpl/src/m/solve/loadresultfromdisk.m	(revision 25283)
@@ -0,0 +1,69 @@
+function variable=loadresultfromdisk(filename,step,name)
+%LOADRESULTFROMDISK - load specific result of solution sequence from disk file "filename"            
+%
+%   Usage:
+%      variable=loadresultfromdisk(filename,step,name);
+
+	%Open file
+	fid=fopen(filename,'rb');
+	if(fid==-1),
+		error(['loadresultsfromdisk error message: could not open ',filename,' for binary reading']);
+	end
+
+	%Put the pointer on the right position in the file:
+	while 1,
+
+		%read field
+		[length,count]=fread(fid,1,'int');
+
+		if count==0,
+			break;
+			%we are done, break;
+		else
+			fieldname=fread(fid,length,'char');
+			fieldname=fieldname(1:end-1)';
+			fieldname=char(fieldname);
+			rtime=fread(fid,1,'double');
+			rstep=fread(fid,1,'int');
+
+			%check on field: 
+			if ((step==rstep) & (strcmpi(name,fieldname))),
+				%ok, go read the result really: 
+				type=fread(fid,1,'int');
+				M=fread(fid,1,'int');
+				if type==1,
+					field=fread(fid,M,'double');
+				elseif type==2,
+					field=fread(fid,M,'char');
+					field=char(field(1:end-1)');
+				elseif type==3,
+					N=fread(fid,1,'int');
+					field=fread(fid,[N M],'double')';
+				elseif type==4,
+					N=fread(fid,1,'int');
+					field=fread(fid,[N M],'int')';
+				else
+					error(['cannot read data of type ' num2str(type) ]);
+				end
+				variable=field;
+				break;
+			else
+				%just skim to next results.
+				type=fread(fid,1,'int');
+				M=fread(fid,1,'int');
+				if type==1,
+					fseek(fid,8*M,'cof');
+				elseif type==2,
+					fseek(fid,M,'cof');
+				elseif type==3,
+					N=fread(fid,1,'int');
+					fseek(fid,M*N*8,'cof');
+				elseif type==4,
+					N=fread(fid,1,'int');
+					fseek(fid,M*N*4,cof);
+				else
+					error(['cannot read data of type ' num2str(type) ]);
+				end
+			end
+		end
+	end
