Index: /issm/trunk-jpl/src/m/classes/SMBforcing.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/SMBforcing.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/SMBforcing.js	(revision 19860)
@@ -7,4 +7,5 @@
 	//methods
 	this.setdefaultparameters = function(){// {{{
+		this.requested_outputs=['default'];
 	} // }}}
 	this.disp = function(){ // {{{
@@ -46,9 +47,9 @@
 			
 			//process requested outputs
-			outputs = this.requested_outputs;
+			var outputs = this.requested_outputs.slice();
 			for (var i=0;i<outputs.length;i++){
 				if (outputs[i] == 'default') {
 					outputs.splice(i,1);
-					newoutputs=this.defaultoutputs(md);
+					var newoutputs=this.defaultoutputs(md);
 					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
 				}
@@ -57,4 +58,6 @@
 
 		}//}}}
+		this.fix=function() { //{{{
+		}//}}}
 	//properties 
 	this.mass_balance = NaN;
Index: /issm/trunk-jpl/src/m/classes/autodiff.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/autodiff.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/autodiff.js	(revision 19860)
@@ -209,9 +209,17 @@
 			//}}}
 		}//}}}
+		this.fix=function() { //{{{
+			this.obufsize=NullFix(this.obufsize,NaN);
+			this.lbufsize=NullFix(this.lbufsize,NaN);
+			this.cbufsize=NullFix(this.cbufsize,NaN);
+			this.tbufsize=NullFix(this.tbufsize,NaN);
+			this.gcTriggerRatio=NullFix(this.gcTriggerRatio,NaN);
+			this.gcTriggerMaxSize=NullFix(this.gcTriggerMaxSize,NaN);
+		}//}}}
 	//properties 
 	// {{{
 	this.isautodiff   = false;
-	this.dependents   = {};
-	this.independents = {};
+	this.dependents   = [];
+	this.independents = [];
 	this.driver       = 'fos_forward';
 	this.obufsize     = NaN;
Index: /issm/trunk-jpl/src/m/classes/balancethickness.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/balancethickness.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/balancethickness.js	(revision 19860)
@@ -17,5 +17,5 @@
 		fielddisplay(this,'spcthickness','thickness constraints (NaN means no constraint) [m]');
 		fielddisplay(this,'thickening_rate','ice thickening rate used in the mass conservation (dh/dt) [m/yr]');
-		fielddisplay(this,"stabilization','0: None, 1: SU, 2: SSA's artificial diffusivity, 3:DG");
+		fielddisplay(this,'stabilization',"0: None, 1: SU, 2: SSA's artificial diffusivity, 3:DG");
 
 	}// }}}
@@ -43,4 +43,9 @@
 
 		}//}}}
+		this.fix=function() { //{{{
+			this.spcthickness=NullFix(this.spcthickness,NaN);
+			this.thicknening_rate=NullFix(this.thicknening_rate,NaN);
+			this.omega=NullFix(this.omega,NaN);
+		}//}}}
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/basalforcings.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/basalforcings.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/basalforcings.js	(revision 19860)
@@ -63,4 +63,6 @@
 			WriteData(fid,'object',this,'fieldname','geothermalflux','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
 		}//}}}
+		this.fix=function() { //{{{
+		}//}}}
 	//properties
 	//{{{
Index: /issm/trunk-jpl/src/m/classes/calving.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/calving.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/calving.js	(revision 19860)
@@ -34,5 +34,5 @@
 	} //}}}
 		this.marshall=function(md,fid) { //{{{
-			yts=365.0*24.0*3600.0;
+			var yts=365.0*24.0*3600.0;
 			WriteData(fid,'enum',CalvingLawEnum(),'data',DefaultCalvingEnum(),'format','Integer');
 			WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',this.stabilization,'format','Integer');
@@ -40,4 +40,9 @@
 			WriteData(fid,'object',this,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
 			WriteData(fid,'object',this,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
+		}//}}}
+		this.fix=function() { //{{{
+			this.spclevelset=NullFix(this.spclevelset,NaN);
+			this.calvingrate=NullFix(this.calvingrate,NaN);
+			this.meltingrate=NullFix(this.meltingrate,NaN);
 		}//}}}
 	//properties 
Index: /issm/trunk-jpl/src/m/classes/constants.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/constants.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/constants.js	(revision 19860)
@@ -46,4 +46,6 @@
 			WriteData(fid,'object',this,'fieldname','referencetemperature','format','Double');
 		}//}}}
+		this.fix=function() { //{{{
+		}//}}}
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/damage.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/damage.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/damage.js	(revision 19860)
@@ -115,5 +115,5 @@
 
 			//process requested outputs
-			outputs = this.requested_outputs;
+			var outputs = this.requested_outputs;
 			for (var i=0;i<outputs.length;i++){
 				if (outputs[i] == 'default') {
@@ -126,4 +126,6 @@
 			}
 
+		}//}}}
+		this.fix=function() { //{{{
 		}//}}}
 		this.defaultoutputs = function(md){ //{{{
Index: /issm/trunk-jpl/src/m/classes/debug.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/debug.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/debug.js	(revision 19860)
@@ -23,4 +23,7 @@
 			WriteData(fid,'object',this,'fieldname','profiling','format','Boolean');
 		}//}}}
+		this.fix=function() { //{{{
+		}//}}}
+
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/flowequation.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/flowequation.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/flowequation.js	(revision 19860)
@@ -112,13 +112,13 @@
 			
 			//some optimization: 
-			noneap=NoneApproximationEnum();
-			siaap=SIAApproximationEnum();
-			ssaap=SSAApproximationEnum();
-			l1l2ap=L1L2ApproximationEnum();
-			hoap=HOApproximationEnum();
-			fsap=FSApproximationEnum();
-			ssahoap=SSAHOApproximationEnum();
-			hofsaap=HOFSApproximationEnum();
-			ssafsap=SSAFSApproximationEnum();
+			var noneap=NoneApproximationEnum();
+			var siaap=SIAApproximationEnum();
+			var ssaap=SSAApproximationEnum();
+			var l1l2ap=L1L2ApproximationEnum();
+			var hoap=HOApproximationEnum();
+			var fsap=FSApproximationEnum();
+			var ssahoap=SSAHOApproximationEnum();
+			var hofsaap=HOFSApproximationEnum();
+			var ssafsap=SSAFSApproximationEnum();
 
 			for(var i=0;i<data.length;i++){
@@ -150,4 +150,6 @@
 
 		}//}}}
+		this.fix=function() { //{{{
+		}//}}}
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/friction.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/friction.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/friction.js	(revision 19860)
@@ -40,4 +40,6 @@
 
 		}//}}}
+		this.fix=function() { //{{{
+		}//}}}
 	//properties 
 	//{{{
Index: /issm/trunk-jpl/src/m/classes/geometry.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/geometry.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/geometry.js	(revision 19860)
@@ -46,4 +46,7 @@
 			WriteData(fid,'object',this,'fieldname','hydrostatic_ratio','format','DoubleMat','mattype',1);
 		}//}}}
+		this.fix=function() { //{{{
+			this.hydrostatic_ratio=NullFix(this.hydrostatic_ratio,NaN);
+		}//}}}
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/gia.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/gia.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/gia.js	(revision 19860)
@@ -49,4 +49,8 @@
 			WriteData(fid,'object',this,'fieldname','cross_section_shape','format','Integer');
 		}//}}}
+		this.fix=function() { //{{{
+			this.mantle_viscosity=NullFix(this.mantle_viscosity,NaN);
+			this.lithosphere_thickness=NullFix(this.lithosphere_thickness,NaN);
+		}//}}}
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/groundingline.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/groundingline.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/groundingline.js	(revision 19860)
@@ -43,4 +43,6 @@
 			WriteData(fid,'data',StringToEnum(this.migration),'enum',GroundinglineMigrationEnum(),'format','Integer');
 		}//}}}
+		this.fix=function() { //{{{
+		}//}}}
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/hydrologyshreve.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologyshreve.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/hydrologyshreve.js	(revision 19860)
@@ -41,4 +41,7 @@
 			WriteData(fid,'object',this,'fieldname','stabilization','format','Double');
 		}//}}}
+		this.fix=function() { //{{{
+			this.spcwatercolumn=NullFix(this.spcwatercolumn,NaN);
+		}//}}}
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/initialization.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/initialization.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/initialization.js	(revision 19860)
@@ -108,4 +108,14 @@
 			}
 		}//}}}
+		this.fix=function(md) { //{{{
+			this.vx=FloatFix(this.vx,md.mesh.numberofvertices); 
+			this.vy=FloatFix(this.vx,md.mesh.numberofvertices); 
+			this.vy=FloatFix(this.vx,md.mesh.numberofvertices); 
+			this.waterfraction=NullFix(this.waterfraction,NaN);
+			this.sediment_head=NullFix(this.sediment_head,NaN);
+			this.epl_head=NullFix(this.epl_head,NaN);
+			this.epl_thickness=NullFix(this.epl_thickness,NaN);
+			this.watercolumn=NullFix(this.watercolumn,NaN);
+		}//}}}
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/inversion.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/inversion.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/inversion.js	(revision 19860)
@@ -156,4 +156,21 @@
 			WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer');
 		}//}}}
+		this.fix=function() { //{{{
+			this.control_parameters=NullFix(this.control_parameters,NaN);
+			this.maxiter_per_step=NullFix(this.maxiter_per_step,NaN);
+			this.cost_functions=NullFix(this.cost_functions,NaN);
+			this.cost_functions_coefficients=NullFix(this.cost_functions_coefficients,NaN);
+			this.cost_function_threshold=NullFix(this.cost_function_threshold,NaN);
+			this.gradient_scaling=NullFix(this.gradient_scaling,NaN);
+			this.min_parameters=NullFix(this.min_parameters,NaN);
+			this.max_parameters=NullFix(this.max_parameters,NaN);
+			this.step_threshold=NullFix(this.step_threshold,NaN);
+			this.vx_obs=NullFix(this.vx_obs,NaN);
+			this.vy_obs=NullFix(this.vy_obs,NaN);
+			this.vz_obs=NullFix(this.vz_obs,NaN);
+			this.vel_obs=NullFix(this.vel_obs,NaN);
+			this.thickness_obs=NullFix(this.thickness_obs,NaN);
+			this.surface_obs=NullFix(this.surface_obs,NaN);
+		}//}}}
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/mask.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/mask.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/mask.js	(revision 19860)
@@ -26,5 +26,5 @@
 			checkfield(md,'fieldname','mask.groundedice_levelset','size',[md.mesh.numberofvertices, 1]);
 			checkfield(md,'fieldname','mask.ice_levelset'        ,'size',[md.mesh.numberofvertices, 1]);
-			isice=NewArrayFill(md.mesh.numberofvertices,0); 
+			var isice=NewArrayFill(md.mesh.numberofvertices,0); 
 			for(var i=0;i<md.mesh.numberofvertices;i++)if(md.mask.ice_levelset[i]<=0)isice[i]=1;
 			if (ArraySum(isice)==0){
@@ -35,5 +35,5 @@
 			}
 				
-			icefront=NewArrayFill(md.mesh.numberofelements,0);
+			var icefront=NewArrayFill(md.mesh.numberofelements,0);
 			for(var i=0;i<md.mesh.numberofelements;i++){
 				for(var j=0;j<md.mesh.elements[0].length;j++){
@@ -43,8 +43,8 @@
 			if ((ArrayMax(icefront)==3 & (md.mesh.elementtype() == 'Tria')) | (ArrayMax(icefront)==6 & md.mesh.elementtype() == 'Penta')){
 				if (md.mesh.elementtype()=='Tria'){
-					pos=ArrayFindEqual(icefront,3); numberemptyelements=pos.length;
+					var pos=ArrayFindEqual(icefront,3); numberemptyelements=pos.length;
 				}
 				else if (md.mesh.elementtype() == 'Penta'){
-					pos=ArrayFindEqual(icefront,6); numberemptyelements=pos.length;
+					var pos=ArrayFindEqual(icefront,6); numberemptyelements=pos.length;
 				}
 				throw Error(sprintf(" %i have all nodes on ice front, change md.mask.ice_levelset to fix it",numberemptyelements));
@@ -56,8 +56,8 @@
 
 			// get mask of vertices of elements with ice
-			isice= NewArrayFill(md.mesh.numberofvertices,0);
+			var isice= NewArrayFill(md.mesh.numberofvertices,0);
 			for(var i=0;i<md.mesh.numberofvertices;i++)if(md.mask.ice_levelset[i]<=0)isice[i]=1;
 			
-			vlist = NewArrayFill(md.mesh.numberofvertices,0);
+			var vlist = NewArrayFill(md.mesh.numberofvertices,0);
 			var pos=[];
 			for(var i=0;i<md.mesh.numberofelements;i++){
@@ -75,3 +75,6 @@
 			WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
 		}//}}}
+		this.fix=function() { //{{{
+		}//}}}
+
 }
Index: /issm/trunk-jpl/src/m/classes/mask.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mask.m	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/mask.m	(revision 19860)
@@ -46,5 +46,5 @@
 
 			md = checkfield(md,'fieldname','mask.groundedice_levelset','size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'fieldname','mask.ice_levelset'        ,'size',[md.mesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','mask.ice_levelset','forcing',1);
 			isice=(md.mask.ice_levelset<=0);
 			if sum(isice)==0,
@@ -56,10 +56,5 @@
 			icefront=sum(md.mask.ice_levelset(md.mesh.elements)==0,2);
 			if (max(icefront)==3 & strcmp(elementtype(md.mesh),'Tria')) | (max(icefront==6) & strcmp(elementtype(md.mesh),'Penta')),
-				if strcmp(elementtype(md.mesh),'Tria'),
-					numberemptyelements=length(find(icefront==3));
-				elseif strcmp(elementtype(md.mesh),'Penta')
-					numberemptyelements=length(find(icefront==6));
-				end
-				error([' ' num2str(numberemptyelements) ' have all nodes on ice front, change md.mask.ice_levelset to fix it'])
+				error('At least one element has all nodes on ice front, change md.mask.ice_levelset to fix it')
 			end
 		end % }}}
@@ -72,16 +67,21 @@
 		function marshall(self,md,fid) % {{{
 			WriteData(fid,'object',self,'fieldname','groundedice_levelset','format','DoubleMat','mattype',1);
-			WriteData(fid,'object',self,'fieldname','ice_levelset','format','DoubleMat','mattype',1);
+			WriteData(fid,'object',self,'fieldname','ice_levelset','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);
 
 			% get mask of vertices of elements with ice
-			isice=md.mask.ice_levelset<=0.;
-			vlist = zeros(md.mesh.numberofvertices,1);
-			if md.mesh.numberofelements==1,
-				pos=find(sum(isice(md.mesh.elements),1)>0);
+			if size(md.mask.ice_levelset,1)==md.mesh.numberofvertices,
+				isice=md.mask.ice_levelset<=0.;
+				vlist = zeros(md.mesh.numberofvertices,1);
+				pos=find(sum(isice(md.mesh.elements),2)>0);
+				vlist(md.mesh.elements(pos,:))=1;
+				WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
 			else
+				isice=md.mask.ice_levelset(1:end-1,1)<=0.;
+				vlist = zeros(md.mesh.numberofvertices,1);
 				pos=find(sum(isice(md.mesh.elements),2)>0);
+				vlist(md.mesh.elements(pos,:))=1;
+				WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
+				save temp vlist;
 			end
-			vlist(md.mesh.elements(pos,:))=1;
-			WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
 
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/masstransport.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/masstransport.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/masstransport.js	(revision 19860)
@@ -56,5 +56,5 @@
 		this.marshall=function(md,fid) { //{{{
 
-			yts=365.*24.*3600.;
+			var yts=365.*24.*3600.;
 
 			WriteData(fid,'object',this,'fieldname','spcthickness','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
@@ -67,9 +67,9 @@
 
 			//process requested outputs
-			outputs = this.requested_outputs;
+			var outputs = this.requested_outputs;
 			for (var i=0;i<outputs.length;i++){
 				if (outputs[i] == 'default') {
 					outputs.splice(i,1);
-					newoutputs=this.defaultoutputs(md);
+					var newoutputs=this.defaultoutputs(md);
 					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
 				}
@@ -80,5 +80,9 @@
 			return ['Thickness','Surface','Base'];
 		}//}}}
-//properties 
+		this.fix=function() { //{{{
+			this.spcthickness=NullFix(this.spcthickness,NaN);
+			this.vertex_pairing=NullFix(this.vertex_pairing,NaN);
+		}//}}}
+	//properties 
 	// {{{
 
Index: /issm/trunk-jpl/src/m/classes/matice.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/matice.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/matice.js	(revision 19860)
@@ -120,4 +120,6 @@
 			WriteData(fid,'object',this,'class','materials','fieldname','mantle_density','format','Double','scale',10^3);
 		}//}}}
+		this.fix=function() { //{{{
+		}//}}}
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/mesh2d.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh2d.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/mesh2d.js	(revision 19860)
@@ -93,4 +93,16 @@
 			WriteData(fid,'object',this,'class','mesh','fieldname','segments','format','DoubleMat','mattype',3);
 		}//}}}
+		this.fix=function() { //{{{
+			//Transform objects into Float64Arrays:
+			this.x=FloatFix(this.x,this.numberofvertices); 
+			this.y=FloatFix(this.y,this.numberofvertices); 
+			this.edges=NullFix(this.edges,NaN);
+			this.vertexonboundary=FloatFix(this.vertexonboundary,this.numberofvertices); 
+			this.segmentmarkers=FloatFix(this.segmentmarkers,this.segments.length);
+			this.extractedvertices=NullFix(this.extractedvertices,NaN);
+			this.extractedelements=NullFix(this.extractedelements,NaN);
+			this.lat=NullFix(this.lat,NaN);
+			this.long=NullFix(this.long,NaN);
+		}//}}}
 
 	//properties 
Index: /issm/trunk-jpl/src/m/classes/miscellaneous.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/miscellaneous.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/miscellaneous.js	(revision 19860)
@@ -27,9 +27,11 @@
 			WriteData(fid,'object',this,'fieldname','name','format','String');
 		}//}}}
+		this.fix=function() { //{{{
+		}//}}}
 	//properties 
 	// {{{
 	this.notes = '';
 	this.name  = '';
-	this.dummy = {};
+	this.dummy = [];
 
 	this.setdefaultparameters();
Index: /issm/trunk-jpl/src/m/classes/model.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/model.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/model.js	(revision 19860)
@@ -90,4 +90,21 @@
 			md.private.isconsistent=false;
 		} //}}}
+		this.fix = function(){ //{{{
+
+			for (var field in this){
+
+				//Some properties do not need to be fixed
+				if (field == 'results' | field =='radaroverlay' | field == 'toolkits' | field =='cluster' | field == 'flaim' | field == 'priv') continue;
+
+				//Check that current field is a class
+				if(typeof this[field] == 'function'){
+					continue;
+				}
+
+				//Fix current object
+				this[field].fix(this);
+			}
+
+		} //}}}
 	//properties
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/outputdefinition.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/outputdefinition.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/outputdefinition.js	(revision 19860)
@@ -29,5 +29,5 @@
 		this.marshall=function(md,fid) { //{{{
 
-		enums=NewArrayFill(this.definitions.length,0);
+		var enums=NewArrayFill(this.definitions.length,0);
 		for (var i=0;i<this.definitions.length;i++){
 			this.definitions[i].marshall(md,fid);
@@ -39,4 +39,6 @@
 		WriteData(fid,'data',enums,'enum',OutputdefinitionListEnum(),'format','DoubleMat','mattype',1);
 		}//}}}
+		this.fix=function() { //{{{
+		}//}}}
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/qmu.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/qmu.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/qmu.js	(revision 19860)
@@ -118,21 +118,23 @@
 			WriteData(fid,'data',flag,'enum',QmuMassFluxSegmentsPresentEnum(),'format','Boolean');
 		}//}}}
+		this.fix=function() { //{{{
+		}//}}}
 	//properties 
 	// {{{
 
 	this.isdakota                    = 0;
-	this.variables                   = {};
-	this.responses                   = {};
-	this.method                      = {};
-	this.params                      = {};
-	this.results                     = {};
+	this.variables                   = []
+	this.responses                   = [];
+	this.method                      = []
+	this.params                      = []
+	this.results                     = []
 	this.partition                   = NaN;
 	this.numberofpartitions          = 0;
 	this.numberofresponses           = 0;
-	this.variabledescriptors         = {};
-	this.responsedescriptors         = {};
+	this.variabledescriptors         = []
+	this.responsedescriptors         = []
 	this.mass_flux_profile_directory = NaN;
 	this.mass_flux_profiles          = NaN;
-	this.mass_flux_segments          = {};
+	this.mass_flux_segments          = []
 	this.adjacency                   = NaN;
 	this.vertex_weight               = NaN;
Index: /issm/trunk-jpl/src/m/classes/rifts.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/rifts.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/rifts.js	(revision 19860)
@@ -17,4 +17,5 @@
 	}// }}}
 		this.checkconsistency = function(md,solution,analyses) { //{{{
+			var numrifts;
 			if (isNaN(this.riftstruct) | this.riftstruct.length==0){
 				numrifts=0;
@@ -47,4 +48,5 @@
 		this.marshall=function(md,fid) { //{{{
 
+			var numrifts;
 			//Process rift info
 			if ((this.riftstruct.length==0) | isNaN(this.riftstruct)){
@@ -61,5 +63,5 @@
 			// 2 for nodes + 2 for elements+ 2 for  normals + 1 for length + 1 for fill + 1 for friction + 1 for fraction + 1 for fractionincrement + 1 for state.
 			data=Create2DArray(numpairs,12);
-			count=0;
+			var count=0;
 			for (var i=0;i<numrifts;i++){
 				numpairsforthisrift=this.riftstruct[i].penaltypairs.length;
@@ -77,4 +79,8 @@
 			WriteData(fid,'data',data,'enum',RiftsRiftstructEnum(),'format','DoubleMat','mattype',3);
 		}//}}}
+		this.fix=function() { //{{{
+			this.riftstruct=NullFix(this.riftstruct,NaN);
+			this.riftproperties=NullFix(this.riftproperties,NaN);
+		}//}}}
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/settings.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/settings.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/settings.js	(revision 19860)
@@ -31,4 +31,17 @@
 	this.disp= function(){// {{{
 		console.log(sprintf('   settings class echo:'));
+		
+		fielddisplay(this,'results_on_nodes','results are output for all the nodes of each element');
+		fielddisplay(this,'io_gather','I/O gathering strategy for result outputs (default 1)');
+		fielddisplay(this,'lowmem','is the memory limited ? (0 or 1)');
+		fielddisplay(this,'output_frequency','frequency at which results are saved in all solutions with multiple time_steps');
+		fielddisplay(this,'recording_frequency','frequency at which the runs are being recorded, allowing for a restart');
+		fielddisplay(this,'waitonlock','maximum number of minutes to wait for batch results (NaN to deactivate)');
+		fielddisplay(this,'upload_server','server hostname where model should be uploaded');
+		fielddisplay(this,'upload_path','path on server where model should be uploaded');
+		fielddisplay(this,'upload_login','server login');
+		fielddisplay(this,'upload_port','port login (default is 0)');
+		fielddisplay(this,'upload_filename','unique id generated when uploading the file to server');
+
 
 	}// }}}
@@ -55,4 +68,6 @@
 			else WriteData(fid,'enum',SettingsWaitonlockEnum(),'data',false,'format','Boolean');
 		}//}}}
+		this.fix=function() { //{{{
+		}//}}}
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/steadystate.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/steadystate.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/steadystate.js	(revision 19860)
@@ -51,9 +51,9 @@
 
 			//process requested outputs
-			outputs = this.requested_outputs;
+			var outputs = this.requested_outputs;
 			for (var i=0;i<outputs.length;i++){
 				if (outputs[i] == 'default') {
 					outputs.splice(i,1);
-					newoutputs=this.defaultoutputs(md);
+					var newoutputs=this.defaultoutputs(md);
 					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
 				}
@@ -71,4 +71,6 @@
 
 		}//}}}
+		this.fix=function() { //{{{
+		}//}}}
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/stressbalance.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/stressbalance.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/stressbalance.js	(revision 19860)
@@ -140,5 +140,5 @@
 			WriteData(fid,'object',this,'class','stressbalance','fieldname','vertex_pairing','format','DoubleMat','mattype',3);
 
-			yts=365.0*24.0*3600.0;
+			var yts=365.0*24.0*3600.0;
 
 			WriteData(fid,'object',this,'class','stressbalance','fieldname','spcvx','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
@@ -158,7 +158,7 @@
 			WriteData(fid,'object',this,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1);
 
-			lx=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)lx[i]=this.loadingforce[i][0];
-			ly=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)ly[i]=this.loadingforce[i][1];
-			lz=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)lz[i]=this.loadingforce[i][2];
+			var lx=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)lx[i]=this.loadingforce[i][0];
+			var ly=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)ly[i]=this.loadingforce[i][1];
+			var lz=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)lz[i]=this.loadingforce[i][2];
 
 			WriteData(fid,'data',lx,'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum());
@@ -167,9 +167,9 @@
 
 			//process requested outputs
-			outputs = this.requested_outputs;
+			var outputs = this.requested_outputs;
 			for (var i=0;i<outputs.length;i++){
 				if (outputs[i] == 'default') {
 					outputs.splice(i,1);
-					newoutputs=this.defaultoutputs(md);
+					var newoutputs=this.defaultoutputs(md);
 					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
 				}
@@ -185,4 +185,14 @@
 			return list;
 
+		}//}}}
+		this.fix=function() { //{{{
+			this.abstol=NullFix(this.abstol,NaN);
+			this.rift_penalty_lock=NullFix(this.rift_penalty_lock,NaN);
+			this.referential=NullFix(this.referential,NaN);
+			this.loadingforce=NullFix(this.loadingforce,NaN);
+			this.spcvx=NullFix(this.spcvx,NaN);
+			this.spcvy=NullFix(this.spcvy,NaN);
+			this.spcvz=NullFix(this.spcvz,NaN);
+			if(this.vertex_pairing=[])this.vertex_pairing=NaN;
 		}//}}}
 	//properties 
Index: /issm/trunk-jpl/src/m/classes/thermal.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/thermal.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/thermal.js	(revision 19860)
@@ -45,5 +45,5 @@
 		fielddisplay(this,'penalty_factor','scaling exponent (default is 3)');
 		fielddisplay(this,'isenthalpy','use an enthalpy formulation to include temperate ice (default is 0)');
-		fielddisplay(this,'isdynamicbasalspc',['enable dynamic setting of basal forcing. required for enthalpy formulation (default is 0)']);
+		fielddisplay(this,'isdynamicbasalspc','enable dynamic setting of basal forcing. required for enthalpy formulation (default is 0)');
 		fielddisplay(this,'requested_outputs','additional outputs requested');
 
@@ -96,9 +96,9 @@
 
 			//process requested outputs
-			outputs = this.requested_outputs;
+			var outputs = this.requested_outputs;
 			for (var i=0;i<outputs.length;i++){
 				if (outputs[i] == 'default') {
 					outputs.splice(i,1);
-					newoutputs=this.defaultoutputs(md);
+					var newoutputs=this.defaultoutputs(md);
 					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
 				}
@@ -110,4 +110,7 @@
 			if (this.isenthalpy) return ['Enthalpy','Temperature','Waterfraction','Watercolumn','BasalforcingsGroundediceMeltingRate'];
 			else return ['Temperature','BasalforcingsGroundediceMeltingRate'];
+		}//}}}
+		this.fix=function() { //{{{
+			this.spctemperature=NullFix(this.spctemperature,NaN);
 		}//}}}
 	//properties 
Index: /issm/trunk-jpl/src/m/classes/timestepping.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/timestepping.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/timestepping.js	(revision 19860)
@@ -21,6 +21,7 @@
 	}// }}}
 	this.disp= function(){// {{{
+
+		var unit;
 		console.log(sprintf('   timestepping parameters:'));
-
 		unit = 'yr';
 		fielddisplay(this,'start_time','simulation starting time ['+ unit + ']');
@@ -61,4 +62,6 @@
 
 		}//}}}
+		this.fix=function() { //{{{
+		}//}}}
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/toolkits.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/toolkits.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/toolkits.js	(revision 19860)
@@ -62,4 +62,5 @@
 			 //start writing options
 			 for (var analysis in this){
+				 var options;
 				 
 				 if(typeof this[analysis] == 'object') options=this[analysis]; else continue;
@@ -71,5 +72,5 @@
 			
 				 for(var optionname in options){
-					 optionvalue=options[optionname];
+					 var optionvalue=options[optionname];
 
 					 if (optionvalue.length==0){
Index: /issm/trunk-jpl/src/m/classes/trans.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/trans.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/trans.js	(revision 19860)
@@ -75,9 +75,9 @@
 
 			//process requested outputs
-			outputs = this.requested_outputs;
+			var outputs = this.requested_outputs;
 			for (var i=0;i<outputs.length;i++){
 				if (outputs[i] == 'default') {
 					outputs.splice(i,1);
-					newoutputs=this.defaultoutputs(md);
+					var newoutputs=this.defaultoutputs(md);
 					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
 				}
@@ -88,4 +88,6 @@
 			if(this.issmb)return ['SmbMassBalance'];
 			else return [];
+		}//}}}
+		this.fix=function() { //{{{
 		}//}}}
 	//properties 
Index: /issm/trunk-jpl/src/m/classes/verbose.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/verbose.js	(revision 19859)
+++ /issm/trunk-jpl/src/m/classes/verbose.js	(revision 19860)
@@ -63,4 +63,6 @@
 
 		} //}}}
+		this.fix=function() { //{{{
+		}//}}}
 	//properties 
 	// {{{
