Index: /issm/trunk/src/m/classes/model.m
===================================================================
--- /issm/trunk/src/m/classes/model.m	(revision 9422)
+++ /issm/trunk/src/m/classes/model.m	(revision 9423)
@@ -16,11 +16,4 @@
 		 runtimename     = {'',false}; %name used when running a parallel job
 		 counter         = {0,false};
-		 domainoutline   = {NaN,false};
-		 riftoutline     = {NaN,false};
-		 iceshelfoutline = {NaN,false};
-		 icesheetoutline = {NaN,false};
-		 wateroutline    = {NaN,false};
-		 parameterfile   = {NaN,false};
-		 runmefile       = {NaN,false};
 
 		 %Mesh
@@ -109,5 +102,4 @@
 		 nodeonsurface     = {NaN,true,'BooleanMat',1};
 		 minh              = {0,false};
-		 firn_layer        = {NaN,false};
 
 		 %Extraction
@@ -118,5 +110,4 @@
 		 rho_ice                    = {0,true,'Double'};
 		 rho_water                  = {0,true,'Double'};
-		 rho_firn                   = {0,false};
 		 heatcapacity               = {0,true,'Double'};
 		 latentheat                 = {0,true,'Double'};
@@ -154,5 +145,4 @@
 		 bed               = {NaN,true,'DoubleMat',1};
 		 bathymetry        = {NaN,true,'DoubleMat',1};
-		 mask              = {NaN,false};
 
 		 %Boundary conditions
@@ -171,20 +161,10 @@
 		 vy_obs                    = {NaN,true,'DoubleMat',1};
 		 vel_obs                   = {NaN,false};
-		 vx_obs_raw                = {NaN,false};
-		 vy_obs_raw                = {NaN,false};
-		 vx_bal                    = {NaN,false};
-		 vy_bal                    = {NaN,false};
-		 vel_bal                   = {NaN,false};
-		 vel_obs_raw               = {NaN,false};
-		 surface_accumulation_rate = {NaN,true,'DoubleMat',1};
+		 surface_accumulation_rate = {NaN,true,'DoubleMat',3};
 		 surface_ablation_rate     = {NaN,true,'DoubleMat',1};
 		 surface_mass_balance      = {NaN,true,'DoubleMat',1};
 		 dhdt                      = {NaN,true,'DoubleMat',1};
 		 geothermalflux            = {NaN,true,'DoubleMat',1};
-		 observed_temperature      = {NaN,false};
 		 thickness_obs             = {NaN,true,'DoubleMat',1};
-
-		 %Forcings
-		 forcings = {struct(),false};
 
 		 %Statics parameters
@@ -207,10 +187,4 @@
 		 artificial_diffusivity = {0,true,'Integer'};
 		 prognostic_DG          = {0,true,'Integer'};
-		 deltaH                 = {0,false};
-		 DeltaH                 = {0,false};
-		 deltaT                 = {0,false};
-		 DeltaT                 = {0,false};
-		 timeacc                = {0,false};
-		 timedec                = {0,false};
 		 hydrostatic_adjustment = {0,true,'Integer'};
 		 isprognostic = {0,true,'Boolean'};
@@ -237,18 +211,8 @@
 		 %Output
 		 requested_outputs                    = {[],true,'DoubleMat',3};
-		 viscousheating                      = {NaN,false};
-		 pressure_elem                       = {NaN,false};
-		 stress                              = {NaN,false};
-		 stress_surface                      = {NaN,false};
-		 stress_bed                          = {NaN,false};
-		 deviatoricstress                    = {NaN,false};
-		 strainrate                          = {NaN,false};
 		 %Debugging
 		 verbose                             = {0,true,'Integer'};
-		 element_debug                       = {0,false};
-		 element_debugid                     = {NaN,false};
 		 mem_debug                           = {0,false};
 		 gprof                               = {0,false};
-		 memoryleaks                         = {NaN,false};
 		 %Results fields
 		 output_frequency                    = {0,true,'Integer'};
@@ -282,5 +246,4 @@
 		 outlog        = {'',false};
 		 errlog        = {'',false};
-		 alloc_cleanup = {1,false};
 		 waitonlock    = {0,true,'Boolean'};
 
@@ -288,9 +251,4 @@
 		 dummy = {NaN,false};
 
-		 %mesh 
-		 mesh_domainoutline = {'',false};
-		 mesh_riftoutline   = {'',false};
-		 mesh_resolution    = {NaN,false};
-
 		 %PETSc and MATLAB solver string
 		 petscoptions  = {NaN,false};
@@ -298,7 +256,4 @@
 		 %Analysis
 		 solution_type = {'',false};
-
-		 %management of large models
-		 repository    = {'',false};
 
 		 %radar power images
@@ -342,7 +297,4 @@
 		 groundingline_migration = {0,true,'Integer'};
 
-		 %solution parameters
-		 loadresults = {0,false};
-
 		 %partitioner:
 		 adjacency = {[],false};
@@ -401,20 +353,12 @@
 
 				 case 1
-					 %If single argument of class model, we have a copy constructor. 
-					 if (isa(varargin{1},'model'))
-						 md = varargin{1};
-					 elseif (isa(varargin{1},'char'))
-						 %user gave us the name of the repository, this model is going to be large! 
-						 md=model;
-						 md.repository=varargin{1};
-						 md=activaterepository(md);
-					 elseif (isa(varargin{1},'numeric'))
-						 if varargin{1}==0,
+					 in=varargin{1};
+					 if (isa(in,'model'))
+						 %If single argument of class model, we have a copy constructor. 
+						 md = in;
+					 elseif (isa(in,'numeric') & in==0)
 							 %just requesting model, without default parameters, do nothing.
-						 else
-							 error('model constructor error message: unknown constructor call');
-						 end
 					 else
-						 error('model constructor error message: copy constructor called on a non ''model'' class object');
+						 error('model constructor error message: unknown constructor for ''model'' class object');
 					 end 
 
@@ -424,39 +368,4 @@
 		 end
 		 %}}}
-		 function md = activaterepository(md) % {{{1
-			 %ACTIVATEREPOSITORY - save the model fields separately
-			 %
-			 %   This function is required when a matlab session 
-			 %   is running low on memory, or when a model is very large. 
-			 %   By activating a repository (for example, 'repository.model'), 
-			 %   the model fields will each separately be saved and accessed when 
-			 %   needed. This will limit the memory use at the maximum; 
-			 %
-			 %   Usage:
-			 %      md=activaterepository(md)
-
-
-			 %for each field of the model, we create an equivalent variable, with the same name, which we 
-			 %save in the repository. 
-
-			 modelfields=fields(md);
-
-			 %then save each of the big fields in their respective files
-			 for i=1:length(modelfields),
-				 field=char(modelfields(i));
-				 eval([field '=md.' field ';']);
-
-				 %anything NaN, will be saved 
-
-				 if isnumeric(eval(field)),
-					 if isnan(eval(field)),
-						 if exist(['.' md.repository '.' field],'file');
-							 error(['Repository ' md.repository ' already exists! Delete all files starting with .' md.repository ' in your directory, before activating a new repository']);
-						 end
-						 eval(['save .' md.repository '.' field ' ' field]);
-					 end
-				 end
-			 end
-		 end % }}}
 		 function disp(md) % {{{1
 			 disp(sprintf('\n%s = \n',inputname(1)));
@@ -492,13 +401,8 @@
 			 end
 
-			 %repository
-			 if ~isempty(md.repository),
-				 disp(sprintf('   Repository: %s',md.repository));
-			 end
-
 			 %diverse
-			 disp(sprintf('   Mesh: %s',md.repository));
+			 disp(sprintf('   Mesh:');
 			 disp(sprintf('%s%s%s','      Mesh: type ''',inputname(1),'.mesh'' to display'));
-			 disp(sprintf('   Parameters: %s',md.repository));
+			 disp(sprintf('   Parameters:');
 			 disp(sprintf('%s%s%s','      Boundary conditions: type ''',inputname(1),'.bc'' to display'));
 			 disp(sprintf('%s%s%s','      Observations: type ''',inputname(1),'.obs'' to display'));
@@ -506,5 +410,5 @@
 			 disp(sprintf('%s%s%s','      Parameters: type ''',inputname(1),'.par'' to display'));
 			 disp(sprintf('%s%s%s','      ExpPar: type ''',inputname(1),'.exppar'' to display'));
-			 disp(sprintf('   Solution parameters: %s',md.repository));
+			 disp(sprintf('   Solution parameters: %s');
 			 disp(sprintf('%s%s%s','      Qmu: type ''',inputname(1),'.qmu'' to display'));
 			 disp(sprintf('%s%s%s','      FLAIM: type ''',inputname(1),'.flaim'' to display'));
@@ -624,7 +528,4 @@
 			 md.rho_water=1023;
 
-			 %firn density (kg/m^3)
-			 md.rho_firn=830;
-
 			 %ice heat capacity cp (J/kg/K)
 			 md.heatcapacity=2093;
@@ -757,26 +658,4 @@
 			 md.prognostic_DG=0;
 
-			 %minimum thickness change between 2 time steps (m)
-			 md.deltaH=10^-2;
-
-			 %maximum thickness change between 2 time steps (m)
-			 md.DeltaH=50;
-
-			 %minimum temperature change between 2 time steps (K)
-			 md.deltaT=10^-2;
-
-			 %maximum temperature change between 2 time steps (K)
-			 md.DeltaT=1;
-
-			 %When the previous criteria are fulfilled, if the time steps
-			 %can be accelerated as follows
-			 %dt = timeacc * dt
-			 md.timeacc=2;
-
-			 %When the previous criteria are fulfilled, if the time steps
-			 %can be reduced as follows
-			 %dt = timedec * dt
-			 md.timedec=.5;
-
 			 %Solution activated for transient runs. By default we do a
 			 %full analysis: Diagnostic, Prognostic and Thermal
@@ -847,7 +726,4 @@
 			 md.waitonlock=Inf;
 
-			 %prerun allocation cleanup
-			 md.alloc_cleanup=1;
-
 			 %hydrology:  from Johnson's 2002 thesis, section 3.5.4			 
 			 md.hydro_n=.02;			 
@@ -869,27 +745,4 @@
 		 end
 		 %}}}
-		 function md = subsasgn(md,index,val) % {{{1
-
-			 if ~isempty(md.repository),
-				 field=index(1).subs;
-				 if exist(['.' md.repository '.' field],'file'),
-					 if length(index)==1,
-						 %save val in corresponding repository
-						 eval([field '=val;']);
-						 eval(['save .' md.repository '.' field ' ' field]);
-					 else
-						 %load field from file
-						 load(['.' md.repository '.' field],'-mat');
-						 fieldval=eval(field);
-						 eval([field '=builtin(''subsasgn'',fieldval,index(2),val);']);
-						 eval(['save .' md.repository '.' field ' ' field]);
-					 end
-				 else
-					 md=builtin('subsasgn',md,index,val);
-				 end
-			 else
-				 md=builtin('subsasgn',md,index,val);
-			 end
-	 end %}}}
 		 function result = subsref(md,index) % {{{1
 
@@ -911,33 +764,8 @@
 				 if(strcmp(index1.subs,'control')), displaycontrol(md);return; end
 				 if(strcmp(index1.subs,'parallel')), displayparallel(md);return; end
-
-				 if ~isempty(md.repository),
-					 %load variable needed, if necessary
-					 if exist(['.' md.repository '.' index1.subs],'file'),
-						 structure=load(['.' md.repository '.' index1.subs],'-mat');
-						 eval(['result=structure.' index1.subs ';']);
-					 else
-						 %the file does not exist, just return built in value
-						 result=builtin('subsref',md,index);
-					 end
-				 else
-					 %return built in value
-					 result=builtin('subsref',md,index);
-				 end
-			 else
-				 if ~isempty(md.repository),
-					 if exist(['.' md.repository '.' index(1).subs],'file'),
-						 %load variable needed
-						 variable=load(['.' md.repository '.' index(1).subs],'-mat');
-
-						 %use temporary structure.
-						 result=builtin('subsref',variable,index);
-					 else
-						 result=builtin('subsref',md,index);
-					 end
-				 else
-					 result=builtin('subsref',md,index);
-				 end
-			 end
+			 end
+
+			 %return built in value
+			 result=builtin('subsref',md,index);
 		 end %}}}
 	 end
Index: /issm/trunk/src/m/classes/organizer.m
===================================================================
--- /issm/trunk/src/m/classes/organizer.m	(revision 9422)
+++ /issm/trunk/src/m/classes/organizer.m	(revision 9423)
@@ -142,11 +142,4 @@
 			 if (org.currentstep>length(org.steps)), error(['organizer error message: element with id ' num2str(org.currentstep) ' not found']); end
 
-			 %before saving model, try and find a runme.m file, and save it.
-			 A=dbstack;
-			 if length(A)>=2,
-				 runmefilename=A(2).file;
-				 md.runmefile=char(textread(runmefilename,'%s','delimiter','\n'));
-			 end
-
 			 %save model
 			 save(name,'md','-v7.3');
Index: sm/trunk/src/m/classes/runsteps.m
===================================================================
--- /issm/trunk/src/m/classes/runsteps.m	(revision 9422)
+++ 	(revision )
@@ -1,193 +1,0 @@
-%RUNSTEPS class definition
-%
-%   Usage:
-%      rs = runsteps(varargin)
-%
-%   Examples:
-%      rs = runsteps;                             %build an empty runsteps object
-%      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.','model.init'); %repository, prefix, and initial trunk prefix
-
-classdef runsteps
-    properties (SetAccess=public) 
-		 % {{{1
-		 repository  ='./';
-		 prefix      ='model.';
-		 trunkprefix ='';
-		 steps       =[];
-		 %}}}
-	 end
-	 methods
-		 function rs=runsteps(varargin) % {{{1
-			 if nargin>3,
-				 help runsteps
-				 error('runsteps constructor error message: bad usage');
-			 end
-			 if nargin>2,
-				 trunkprefix=varargin{3};
-				 if ~ischar(trunkprefix),                                 error('trunkprefix is not a string'); end
-				 if ~strcmp(regexprep(trunkprefix,'\s+',''),trunkprefix), error('trunkprefix should not have any white space'); end
-				 rs.trunkprefix=trunkprefix;
-			 end
-			 if nargin>1,
-				 prefix=varargin{2};
-				 if ~ischar(prefix),                            error('prefix is not a string'); end
-				 if ~strcmp(regexprep(prefix,'\s+',''),prefix), error('prefix should not have any white space'); end
-				 rs.prefix=prefix;
-			 end
-			 if nargin>0,
-				 repository=varargin{1};
-				 if ~ischar(repository),        error('repository is not a string'); end
-				 if exist(repository,'dir')~=7, error(['Directory ' repository ' not found']), end
-				 rs.repository=repository;
-			 end
-		 end
-		 %}}}
-		 function disp(rs) % {{{1
-			 disp(sprintf('   Repository: ''%s''',rs.repository));
-			 disp(sprintf('   Prefix:     ''%s''',rs.prefix));
-			 if isempty(rs.steps)
-				 disp('   no step');
-			 else
-				 for i=1:length(rs.steps),
-					 disp(sprintf('   step #%2i: ''%s''',rs.steps(i).id,rs.steps(i).string));
-				 end
-			 end
-		 end
-		 %}}}
-		 function rs = addstep(rs,string),% {{{1
-
-			 %check string
-			 if ~ischar(string),                            error('Step provided should be a string'); end
-			 if ~strcmp(regexprep(string,'\s+',''),string), error('Step provided should not have any white space'); end
-
-			 rs.steps(end+1).id=length(rs.steps)+1;
-			 rs.steps(end).string=string;
-		 end% }}}
-		 function bool=echo(rs,steps,varargin)% {{{1
-			 disp('WARNING: obsolete function. Use PerformStep instead (see issm/projetcs/scripts/runme.m)');
-			 if length(steps)==0,
-				 error('steps is empty'),
-			 elseif (length(steps)==1 & steps==0)
-				 if isempty(rs.steps)
-					 disp('   no step');
-				 else
-					 for i=1:length(rs.steps),
-						 disp(sprintf('   step #%2i : %s',rs.steps(i).id,rs.steps(i).string));
-					 end
-				 end
-				 bool=true;
-				 return;
-			 else
-				 bool=false;
-				 return;
-			 end
-		 end%}}}
-		 function id=GetId(rs,string) % {{{1
-			 %GetId - get step id from string
-			 %
-			 %   Usage:
-			 %      GetId(rs,num)
-
-			 for i=1:length(rs.steps),
-				 if strcmp(rs.steps(i).string,string),
-					 id=i;
-					 return;
-				 end
-			 end
-			 error(['No step of flag ' string ' has been found']);
-
-		 end%}}}
-		 function md=loadmodel(rs,string),% {{{1
-
-			 %Get model path
-			 if ~ischar(string), error('argument provided is not a string'); end
-			 path=[rs.repository '/' rs.prefix string];
-
-			 %figure out if the model is there, otherwise, we have to use the default path supplied by user.
-			 if exist(path,'file'),
-				 md=loadmodel(path);
-				 return;
-			 end
-
-			 %If we are here, the model has not been found. Try trunk prefix if provided
-			 if ~isempty(rs.trunkprefix),
-				 path2=[rs.repository '/' rs.trunkprefix string];
-				 if ~exist(path2,'file'),
-					 error(['Could neither find ' path ', nor ' path2]);
-				 else
-					 disp(['--> Branching ' rs.prefix ' from trunk ' rs.trunkprefix]);
-					 md=loadmodel(path2);
-					 return;
-				 end
-			 else
-				 error(['Could not find ' path ]);
-			 end
-		 end%}}}
-		 function message(rs,num) % {{{1
-			 %MESSAGE - display string of rs with id =num
-			 %
-			 %   Usage:
-			 %      string(rs,num)
-
-			 %Some checks
-			 if (abs(floor(num))~=num),
-				 error(['runsteps error message: the number provided is not a positive integer']);
-			 end
-			 if (num>length(rs.steps)),
-				 error(['runsteps error message: element with id ' num2str(num) ' not found']);
-			 end
-
-			 %Print string
-			 disp('WARNING: obsolete function. Use PerformStep instead (see issm/projetcs/scripts/runme.m');
-			 disp(sprintf('\n   step #%i -> %s\n',rs.steps(num).id,rs.steps(num).string));
-		 end%}}}
-		 function bool=PerformStep(rs,steps,num) % {{{1
-
-			 %Some checks
-			 if (abs(floor(num))~=num),
-				 error(['runsteps error message: the number provided is not a positive integer']);
-			 end
-			 if (num>length(rs.steps)),
-				 error(['runsteps error message: element with id ' num2str(num) ' not found']);
-			 end
-
-			 bool=false;
-
-			 %if steps = 0, print all steps in rs 
-			 if any(steps==0),
-				 if num==1,
-					 disp(sprintf('   prefix: %s',rs.prefix(1:end-6)));
-					 for i=1:length(rs.steps),
-						 disp(sprintf('   step #%2i : %s',rs.steps(i).id,rs.steps(i).string));
-					 end
-				 end
-			 end
-
-			 %Ok, now if num is a member of steps, return true
-			 if ismember(num,steps),
-				 disp(sprintf('\n   step #%i : %s\n',rs.steps(num).id,rs.steps(num).string));
-				 bool=true;
-			 end
-		 end%}}}
-		 function savemodel(rs,num,md) % {{{1
-
-			 %check that md is a model
-			 if ~isa(md,'model'),       error('savemodel error message: third argument is not a model'); end
-			 if (num>length(rs.steps)), error(['runsteps error message: element with id ' num2str(num) ' not found']); end
-
-			 %before saving model, try and find a runme.m file, and save it.
-			 A=dbstack;
-			 if length(A)>=2,
-				 runmefilename=A(2).file;
-				 md.runmefile=char(textread(runmefilename,'%s','delimiter','\n'));
-			 end
-
-			 %save model
-			 name=[rs.repository '/' rs.prefix rs.steps(num).string ];
-			 save(name,'md','-v7.3');
-			 disp(['model saved as: ' name]);
-		 end%}}}
-	end
-end
Index: /issm/trunk/src/m/model/collapse.m
===================================================================
--- /issm/trunk/src/m/model/collapse.m	(revision 9422)
+++ /issm/trunk/src/m/model/collapse.m	(revision 9423)
@@ -31,5 +31,4 @@
 if ~isnan(md.surface_mass_balance), md.surface_mass_balance=project2d(md,md.surface_mass_balance,md.numlayers); end;
 if ~isnan(md.dhdt), md.dhdt=project2d(md,md.dhdt,md.numlayers); end;
-if ~isnan(md.firn_layer), md.firn_layer=project2d(md,md.firn_layer,md.numlayers); end;
 
 %results
@@ -79,5 +78,4 @@
 %special for thermal modeling:
 md.basal_melting_rate=project2d(md,md.basal_melting_rate,1); 
-md.observed_temperature=DepthAverage(md,md.observed_temperature); 
 md.geothermalflux=project2d(md,md.geothermalflux,1); %bedrock only gets geothermal flux
 
Index: sm/trunk/src/m/model/deepcopy.m
===================================================================
--- /issm/trunk/src/m/model/deepcopy.m	(revision 9422)
+++ 	(revision )
@@ -1,30 +1,0 @@
-function md2=deepcopy(md)
-%DEEPCOPY - copies a model
-%
-%   This routine will copy md into md2. If md is being held in an out of core 
-%   repository, user will be prompted for a different repository name, and a 
-%   copy of the repository, with the new name, will be done.
-%
-%   Usage:
-%      md2=deepcopy(md)
-
-if isempty(md.repository),
-	md2=md;
-else
-	%New repository name?
-	new_repository=input(['   input model is held in repository: ' md.repository '. you need a new name for the model copy: ']);
-	md2=model(new_repository);
-
-	structfields=fields(md);
-	for i=1:length(structfields),
-		field=structfields(i);field=field{1};
-		if strcmpi(field,'repository'),
-			%we don't want to clobber md2.repository!
-			continue;
-		end
-		fieldval=getfield(md,field);
-		if isfield(struct(md2),field),
-			eval(['md2.' field '=fieldval;']);
-		end
-	end
-end
Index: /issm/trunk/src/m/model/extrude.m
===================================================================
--- /issm/trunk/src/m/model/extrude.m	(revision 9422)
+++ /issm/trunk/src/m/model/extrude.m	(revision 9423)
@@ -154,5 +154,4 @@
 md.surface_ablation_rate=project3d(md,'vector',md.surface_ablation_rate,'type','node');
 md.dhdt=project3d(md,'vector',md.dhdt,'type','node');
-md.firn_layer=project3d(md,'vector',md.firn_layer,'type','node','layer',md.numlayers);
 
 %results
@@ -243,11 +242,7 @@
 %special for thermal modeling:
 md.basal_melting_rate=project3d(md,'vector',md.basal_melting_rate,'type','node','layer',1); 
-md.observed_temperature=project3d(md,'vector',md.observed_temperature,'type','node'); 
 if ~isnan(md.geothermalflux)
 	md.geothermalflux=project3d(md,'vector',md.geothermalflux,'type','node','layer',1); %bedrock only gets geothermal flux
 end
-
-%mask:
-md.mask=project3d(md,'vector',md.mask,'type','node');
 
 %increase connectivity if less than 25:
Index: /issm/trunk/src/m/model/geography.m
===================================================================
--- /issm/trunk/src/m/model/geography.m	(revision 9422)
+++ /issm/trunk/src/m/model/geography.m	(revision 9423)
@@ -59,18 +59,2 @@
 md.nodeonwater=zeros(md.numberofnodes,1);
 md.elementonwater=zeros(md.numberofelements,1);
-
-%Keep track of input files
-if (strcmp(iceshelfname,'') | strcmp(iceshelfname,'all')),
-	md.iceshelfoutline=iceshelfname;
-elseif ischar(iceshelfname),
-	md.iceshelfoutline=char(textread(iceshelfname,'%s','delimiter','\n'));
-else
-	md.iceshelfoutline=iceshelfname;
-end
-if (strcmp(icesheetname,'') | strcmp(icesheetname,'all')),
-	md.icesheetoutline=icesheetname;
-elseif ischar(icesheetname),
-	md.icesheetoutline=char(textread(icesheetname,'%s','delimiter','\n'));
-else 
-	md.icesheetoutline=icesheetname;
-end
Index: /issm/trunk/src/m/model/mechanicalproperties.m
===================================================================
--- /issm/trunk/src/m/model/mechanicalproperties.m	(revision 9422)
+++ /issm/trunk/src/m/model/mechanicalproperties.m	(revision 9423)
@@ -4,5 +4,5 @@
 %   this routine computes the components of the stress tensor
 %   strain rate tensor and their respective principal directions.
-%   the results are in the model md: md.stress and md.strainrate
+%   the results are in the model md: md.results
 %
 %   Usage:
@@ -94,5 +94,5 @@
 stress.principalaxis1=directionsstress(:,3:4);
 stress.effectivevalue=1/sqrt(2)*sqrt(stress.xx.^2+stress.yy.^2+2*stress.xy.^2);
-md.stress=stress;
+md.results.stress=stress;
 
 strainrate=struct('xx',[],'yy',[],'xy',[],'principalvalue1',[],'principalaxis1',[],'principalvalue2',[],'principalaxis2',[],'effectivevalue',[]);
@@ -105,5 +105,5 @@
 strainrate.principalaxis1=directionsstrain(:,3:4);
 strainrate.effectivevalue=1/sqrt(2)*sqrt(strainrate.xx.^2+strainrate.yy.^2+2*strainrate.xy.^2);
-md.strainrate=strainrate;
+md.results.strainrate=strainrate;
 
 deviatoricstress=struct('xx',[],'yy',[],'xy',[],'principalvalue1',[],'principalaxis1',[],'principalvalue2',[],'principalaxis2',[],'effectivevalue',[]);
@@ -116,3 +116,3 @@
 deviatoricstress.principalaxis1=directionsstress(:,3:4);
 deviatoricstress.effectivevalue=1/sqrt(2)*sqrt(stress.xx.^2+stress.yy.^2+2*stress.xy.^2);
-md.deviatoricstress=deviatoricstress;
+md.results.deviatoricstress=deviatoricstress;
Index: /issm/trunk/src/m/model/mesh/mesh.m
===================================================================
--- /issm/trunk/src/m/model/mesh/mesh.m	(revision 9422)
+++ /issm/trunk/src/m/model/mesh/mesh.m	(revision 9423)
@@ -82,12 +82,4 @@
 md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
 
-%outline names
-md.domainoutline=char(textread(domainname,'%s','delimiter','\n'));
-if strcmp(riftname,''),
-	md.riftoutline='';
-else
-	md.riftoutline=readfile(riftname);
-end
-
 %type of model
 md.dim=2;
Index: /issm/trunk/src/m/model/mesh/meshnodensity.m
===================================================================
--- /issm/trunk/src/m/model/mesh/meshnodensity.m	(revision 9422)
+++ /issm/trunk/src/m/model/mesh/meshnodensity.m	(revision 9423)
@@ -68,12 +68,4 @@
 md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
 
-%outline names
-md.domainoutline=char(textread(domainname,'%s','delimiter','\n'));
-if strcmp(riftname,''),
-	md.riftoutline='';
-else
-	md.riftoutline=readfile(riftname);
-end
-
 %type of model
 md.dim=2;
Index: sm/trunk/src/m/model/model2ocmodel.m
===================================================================
--- /issm/trunk/src/m/model/model2ocmodel.m	(revision 9422)
+++ 	(revision )
@@ -1,26 +1,0 @@
-function md2=model2ocmodel(md,repository)
-%MODEL2OCMODEL - create an out of core model
-%
-%   This routine will take an input model, running in core (ie: md.repository=''),
-%   and copy all its fields to an output model which will run out of core on 'repository'.
-%
-%   Usage:
-%      md2=model2ocmodel(md,repository);
-%
-%   Example:
-%      md2=model2ocmodel(md,'PineIsland');
-
-md2=model(repository);
-
-structfields=fields(md);
-for i=1:length(structfields),
-	field=structfields(i);field=field{1};
-	if strcmpi(field,'repository'),
-		%we don't want to clobber md2.repository!
-		continue;
-	end
-	fieldval=getfield(md,field);
-	if isfield(struct(md2),field),
-	eval(['md2.' field '=fieldval;']);
-	end
-end
Index: /issm/trunk/src/m/model/parameterization/parameterize.m
===================================================================
--- /issm/trunk/src/m/model/parameterization/parameterize.m	(revision 9422)
+++ /issm/trunk/src/m/model/parameterization/parameterize.m	(revision 9423)
@@ -68,7 +68,4 @@
 end
 
-%Keep track of parameter file
-md.parameterfile=char(textread(parametername,'%s','delimiter','\n'));
-
 %Name and notes
 if isempty(md.name), 
Index: /issm/trunk/src/m/model/plot/plot_tensor.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_tensor.m	(revision 9422)
+++ /issm/trunk/src/m/model/plot/plot_tensor.m	(revision 9423)
@@ -15,4 +15,5 @@
 
 %Figure out tensor type:
+%FIXME does not work anymore
 if strncmpi(type,'strain',6),
 	tensor=md.strainrate;
Index: /issm/trunk/src/m/model/process_solve_options.m
===================================================================
--- /issm/trunk/src/m/model/process_solve_options.m	(revision 9422)
+++ /issm/trunk/src/m/model/process_solve_options.m	(revision 9423)
@@ -9,5 +9,4 @@
 %solution_type: check on this option, error out otherwise
 solution_type=getfieldvalue(options,'solution_type');
-if ischar(solution_type), error(['only Enums are supported as ''solution_type''. For example: md=solve(md,''solution_type'',DiagnosticSolutionEnum); ']); end
 if ~ismember(solution_type,[DiagnosticSolutionEnum,PrognosticSolutionEnum,ThermalSolutionEnum,...
 		SteadystateSolutionEnum,ParametersSolutionEnum,TransientSolutionEnum,EnthalpySolutionEnum,...
@@ -19,4 +18,5 @@
 outoptions.upload=getfieldvalue(options,'upload','off');
 outoptions.batch=getfieldvalue(options,'batch','no');
+outoptions.loadonly=getfieldvalue(options,'loadonly','no');
 outoptions.directory=getfieldvalue(options,'directory','');
 
Index: /issm/trunk/src/m/model/solveparallel.m
===================================================================
--- /issm/trunk/src/m/model/solveparallel.m	(revision 9422)
+++ /issm/trunk/src/m/model/solveparallel.m	(revision 9423)
@@ -8,5 +8,7 @@
 cluster=md.cluster;
 
-if ~md.loadresults,  
+if options.loadonly,  
+	md=loadresultsfromcluster(md);
+else
 
 	%First, build a runtime name that is unique, that we will use to create 
@@ -45,6 +47,4 @@
 		error('solveparallel done uploading test decks');
 	end
-else
-	%just load results
-	md=loadresultsfromcluster(md);
+
 end
Index: /issm/trunk/src/m/utils/BC/SetIceSheetBC.m
===================================================================
--- /issm/trunk/src/m/utils/BC/SetIceSheetBC.m	(revision 9422)
+++ /issm/trunk/src/m/utils/BC/SetIceSheetBC.m	(revision 9423)
@@ -36,15 +36,12 @@
 if isnan(md.surface_accumulation_rate),
 	md.surface_accumulation_rate=zeros(md.numberofnodes,1);
-	md.forcings.surface_accumulation_rate=zeros(md.numberofnodes+1,1);
 	disp('      no surface_accumulation_rate specified: values set as zero');
 end
 if isnan(md.surface_ablation_rate),
 	md.surface_ablation_rate=zeros(md.numberofnodes,1);
-	md.forcings.surface_ablation_rate=zeros(md.numberofnodes+1,1);
 	disp('      no surface_ablation_rate specified: values set as zero');
 end
 if isnan(md.surface_mass_balance),
 	md.surface_mass_balance=zeros(md.numberofnodes,1);
-	md.forcings.surface_mass_balance=zeros(md.numberofnodes+1,1);
 	disp('      no surface_mass_balance specified: values set as zero');
 end
@@ -60,7 +57,7 @@
 md.spcthickness=NaN*ones(md.numberofnodes,1);
 
-if (length(md.observed_temperature)==md.numberofnodes),
+if (length(md.temperature)==md.numberofnodes),
 	md.spctemperature=NaN*ones(md.numberofnodes,1);
-	pos=find(md.nodeonsurface); md.spctemperature(pos)=md.observed_temperature(pos); %impose observed temperature on surface
+	pos=find(md.nodeonsurface); md.spctemperature(pos)=md.temperature(pos); %impose observed temperature on surface
 	if (length(md.geothermalflux)~=md.numberofnodes),
 		md.geothermalflux=50*10^-3*ones(md.numberofnodes,1); %50 mW/m^2
Index: /issm/trunk/src/m/utils/BC/SetIceShelfBC.m
===================================================================
--- /issm/trunk/src/m/utils/BC/SetIceShelfBC.m	(revision 9422)
+++ /issm/trunk/src/m/utils/BC/SetIceShelfBC.m	(revision 9423)
@@ -68,15 +68,12 @@
 if isnan(md.surface_accumulation_rate),
 	md.surface_accumulation_rate=zeros(md.numberofnodes,1);
-	md.forcings.surface_accumulation_rate=zeros(md.numberofnodes+1,1);
 	disp('      no surface_accumulation_rate specified: values set as zero');
 end
 if isnan(md.surface_ablation_rate),
 	md.surface_ablation_rate=zeros(md.numberofnodes,1);
-	md.forcings.surface_ablation_rate=zeros(md.numberofnodes+1,1);
 	disp('      no surface_ablation_rate specified: values set as zero');
 end
 if isnan(md.surface_mass_balance),
 	md.surface_mass_balance=zeros(md.numberofnodes,1);
-	md.forcings.surface_mass_balance=zeros(md.numberofnodes+1,1);
 	disp('      no surface_mass_balance specified: values set as zero');
 end
@@ -92,7 +89,7 @@
 md.spcthickness=NaN*ones(md.numberofnodes,1);
 
-if (length(md.observed_temperature)==md.numberofnodes),
+if (length(md.temperature)==md.numberofnodes),
 	md.spctemperature=NaN*ones(md.numberofnodes,1);
-	pos=find(md.nodeonsurface); md.spctemperature(pos)=md.observed_temperature(pos); %impose observed temperature on surface
+	pos=find(md.nodeonsurface); md.spctemperature(pos)=md.temperature(pos); %impose observed temperature on surface
 	if (length(md.geothermalflux)~=md.numberofnodes),
 		md.geothermalflux=zeros(md.numberofnodes,1);
Index: /issm/trunk/src/m/utils/BC/SetMarineIceSheetBC.m
===================================================================
--- /issm/trunk/src/m/utils/BC/SetMarineIceSheetBC.m	(revision 9422)
+++ /issm/trunk/src/m/utils/BC/SetMarineIceSheetBC.m	(revision 9423)
@@ -79,15 +79,12 @@
 if isnan(md.surface_accumulation_rate),
 	md.surface_accumulation_rate=zeros(md.numberofnodes,1);
-	md.forcings.surface_accumulation_rate=zeros(md.numberofnodes+1,1);
 	disp('      no surface_accumulation_rate specified: values set as zero');
 end
 if isnan(md.surface_ablation_rate),
 	md.surface_ablation_rate=zeros(md.numberofnodes,1);
-	md.forcings.surface_ablation_rate=zeros(md.numberofnodes+1,1);
 	disp('      no surface_ablation_rate specified: values set as zero');
 end
 if isnan(md.surface_mass_balance),
 	md.surface_mass_balance=zeros(md.numberofnodes,1);
-	md.forcings.surface_mass_balance=zeros(md.numberofnodes+1,1);
 	disp('      no surface_mass_balance specified: values set as zero');
 end
@@ -103,7 +100,7 @@
 md.spcthickness=NaN*ones(md.numberofnodes,1);
 
-if (length(md.observed_temperature)==md.numberofnodes),
+if (length(md.temperature)==md.numberofnodes),
 	md.spctemperature=NaN*ones(md.numberofnodes,1);
-	pos=find(md.nodeonsurface); md.spctemperature(pos)=md.observed_temperature(pos); %impose observed temperature on surface
+	pos=find(md.nodeonsurface); md.spctemperature(pos)=md.temperature(pos); %impose observed temperature on surface
 	if (length(md.geothermalflux)~=md.numberofnodes),
 		md.geothermalflux=zeros(md.numberofnodes,1);
Index: /issm/trunk/src/m/utils/Interp/PatchToVec.m
===================================================================
--- /issm/trunk/src/m/utils/Interp/PatchToVec.m	(revision 9422)
+++ /issm/trunk/src/m/utils/Interp/PatchToVec.m	(revision 9423)
@@ -4,4 +4,9 @@
 %   Usage:
 %      vec=PatchToVec(Patch)
+
+connectivity=sparse(Patch.index(:),1,1);
+value       =sparse(Patch.index(:),1,Patch.value(:));
+vec=full(value./connectivity);
+return;
 
 %if the patch is P0: we have element values, return an element vector
Index: /issm/trunk/src/m/utils/Mesh/argusmesh.m
===================================================================
--- /issm/trunk/src/m/utils/Mesh/argusmesh.m	(revision 9422)
+++ /issm/trunk/src/m/utils/Mesh/argusmesh.m	(revision 9423)
@@ -89,6 +89,4 @@
 md.counter=1;
 md.dim=2;
-md.riftoutline='';
-md.domainoutline=['' infile ''];
 md=addnote(md,notes);
 
Index: /issm/trunk/src/m/utils/Mesh/squaremesh.m
===================================================================
--- /issm/trunk/src/m/utils/Mesh/squaremesh.m	(revision 9422)
+++ /issm/trunk/src/m/utils/Mesh/squaremesh.m	(revision 9423)
@@ -79,4 +79,2 @@
 md.dim=2;
 md.counter=1;
-md.riftoutline='';
-md.domainoutline='Square';
