Index: /issm/trunk/src/m/classes/@runsteps/loadmodel.m
===================================================================
--- /issm/trunk/src/m/classes/@runsteps/loadmodel.m	(revision 5296)
+++ /issm/trunk/src/m/classes/@runsteps/loadmodel.m	(revision 5297)
@@ -7,4 +7,5 @@
 %   Examples:
 %      md=loadmodel(rs,num)
+%      md=loadmodel(rs,'previous model')
 %      md=loadmodel(rs,num,'2d')
 
@@ -35,5 +36,23 @@
 	error('loadmodel error message: third argument should be a string');
 end
+%figure out if the model is there, otherwise, we have to use the default path supplied by user.
+if exist(path,'file'),
 
-%load model
-md=loadmodel(path);
+	%load model
+	md=loadmodel(path);
+else
+	if isempty(rs.defaultprefix),
+		error('loadmodel error message: cannot find model, and default prefix was not supplied');
+	else
+		
+		if nargin~=3
+			path=[rs.repository '/' rs.defaultprefix num2str(id)];
+		elseif ischar(varargin{1}),
+			path=[rs.repository '/' rs.defaultprefix num2str(id) '.' varargin{1} ];
+		else
+			error('loadmodel error message: third argument should be a string');
+		end
+	end
+	%load model
+	md=loadmodel(path);
+end
Index: /issm/trunk/src/m/classes/@runsteps/runsteps.m
===================================================================
--- /issm/trunk/src/m/classes/@runsteps/runsteps.m	(revision 5296)
+++ /issm/trunk/src/m/classes/@runsteps/runsteps.m	(revision 5297)
@@ -9,4 +9,5 @@
 %      rs = runsteps('../Models/');               %build an empty runsteps object with a given repository
 %      rs = runsteps('../Models/','models.AGU.'); %build an empty runsteps object with a given repository and a prefix
+%      rs = runsteps('../Models/','models.AGU.','models.default.Agu.'); %build an empty runsteps object with a given repository, a prefix and a default prefix, in case we are branching
 
 if (nargin==0),
@@ -14,4 +15,5 @@
 	rs.repository='./';
 	rs.prefix    ='model.step#';
+	rs.defaultprefix    ='';
 	rs.steps     =[];
 	rs=class(rs,'runsteps');
@@ -25,4 +27,5 @@
 	rs.repository=varargin{1};
 	rs.prefix    ='model.step#';
+	rs.defaultprefix    ='';
 	rs.steps     =[];
 	rs=class(rs,'runsteps');
@@ -36,9 +39,21 @@
 	rs.repository=varargin{1};
 	rs.prefix    =varargin{2};
+	rs.defaultprefix    ='';
+	rs.steps     =[];
+	rs=class(rs,'runsteps');
+
+elseif (nargin==3 & ischar(varargin{1}) & ischar(varargin{2}) & ischar(varargin{3})),
+
+	%Check repository
+	if exist(varargin{1},'dir')~=7,
+		error(['runsteps constructor error message: repository ' varargin{1} ' is not a directory']),
+	end
+	rs.repository=varargin{1};
+	rs.prefix    =varargin{2};
+	rs.defaultprefix    =varargin{3};
 	rs.steps     =[];
 	rs=class(rs,'runsteps');
 
 else
-
 	help runsteps
 	error('runsteps constructor error message: bad usage')
Index: /issm/trunk/src/m/classes/@runsteps/savemodel.m
===================================================================
--- /issm/trunk/src/m/classes/@runsteps/savemodel.m	(revision 5296)
+++ /issm/trunk/src/m/classes/@runsteps/savemodel.m	(revision 5297)
@@ -30,4 +30,12 @@
 end
 
+%before saving model, try and find a runme.m file, and save it.
+if isnans(md.runmefile),
+	md.runmefile=cell(0,1);
+	md.runmefile{1,1}=char(textread('runme.m','%s','delimiter','\n'));
+else
+	md.runmefile{end+1,1}=char(textread('runme.m','%s','delimiter','\n'));
+end
+
 %save model
 if nargin==3,
