Index: /issm/trunk-jpl/src/m/classes/damage.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/damage.py	(revision 20890)
+++ /issm/trunk-jpl/src/m/classes/damage.py	(revision 20891)
@@ -171,4 +171,5 @@
 			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
 			outputs    =outputscopy
-		WriteData(fid,prefix,'data',outputs,'name','md.damage.requested_outputs','format','StringArray')
+		if self.isdamage:
+			WriteData(fid,prefix,'data',outputs,'name','md.damage.requested_outputs','format','StringArray')
 	# }}}
Index: /issm/trunk-jpl/src/m/classes/initialization.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/initialization.py	(revision 20890)
+++ /issm/trunk-jpl/src/m/classes/initialization.py	(revision 20891)
@@ -117,9 +117,8 @@
 		WriteData(fid,prefix,'object',self,'fieldname','temperature','format','DoubleMat','mattype',1)
 		WriteData(fid,prefix,'object',self,'fieldname','waterfraction','format','DoubleMat','mattype',1)
-		WriteData(fid,prefix,'object',self,'fieldname','watercolumn','format','DoubleMat','mattype',1)
 		WriteData(fid,prefix,'object',self,'fieldname','sediment_head','format','DoubleMat','mattype',1)
 		WriteData(fid,prefix,'object',self,'fieldname','epl_head','format','DoubleMat','mattype',1)
 		WriteData(fid,prefix,'object',self,'fieldname','epl_thickness','format','DoubleMat','mattype',1)
-
+		WriteData(fid,prefix,'object',self,'fieldname','watercolumn','format','DoubleMat','mattype',1)
 		
 		if md.thermal.isenthalpy:
Index: /issm/trunk-jpl/src/m/classes/matice.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/matice.py	(revision 20890)
+++ /issm/trunk-jpl/src/m/classes/matice.py	(revision 20891)
@@ -160,5 +160,4 @@
 		WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermal_exchange_velocity','format','Double')
 		WriteData(fid,prefix,'object',self,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
-		WriteData(fid,prefix,'object',self,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1)
 		WriteData(fid,prefix,'object',self,'class','materials','fieldname','rheology_n','format','DoubleMat','mattype',2)
 		WriteData(fid,prefix,'data',StringToEnum(self.rheology_law)[0],'name','md.materials.rheology_law','format','Integer')
Index: /issm/trunk-jpl/src/m/classes/slr.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/slr.m	(revision 20890)
+++ /issm/trunk-jpl/src/m/classes/slr.m	(revision 20891)
@@ -121,6 +121,6 @@
 			WriteData(fid,prefix,'object',self,'fieldname','love_h','format','DoubleMat','mattype',1);
 			WriteData(fid,prefix,'object',self,'fieldname','love_k','format','DoubleMat','mattype',1);
+			WriteData(fid,prefix,'object',self,'fieldname','tide_love_h','format','Double');
 			WriteData(fid,prefix,'object',self,'fieldname','tide_love_k','format','Double');
-			WriteData(fid,prefix,'object',self,'fieldname','tide_love_h','format','Double');
 			WriteData(fid,prefix,'object',self,'fieldname','rigid','format','Boolean');
 			WriteData(fid,prefix,'object',self,'fieldname','elastic','format','Boolean');
Index: /issm/trunk-jpl/src/m/classes/stressbalance.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/stressbalance.js	(revision 20890)
+++ /issm/trunk-jpl/src/m/classes/stressbalance.js	(revision 20891)
@@ -76,132 +76,132 @@
 		return "stressbalance";
 	}// }}}
-    this.extrude = function(md) {//{{{
-        this.spcvx=project3d(md,'vector',this.spcvx,'type','node');
-        this.spcvy=project3d(md,'vector',this.spcvy,'type','node');
-        this.spcvz=project3d(md,'vector',this.spcvz,'type','node');
-        this.referential=project3d(md,'vector',this.referential,'type','node');
-        this.loadingforce=project3d(md,'vector',this.loadingforce,'type','node');
-        return this;
-    }//}}}
-		this.checkconsistency = function(md,solution,analyses) { //{{{
-
-			//Early return
-			if(ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),0))return;
-
-			checkfield(md,'fieldname','stressbalance.spcvx','Inf',1,'timeseries',1);
-			checkfield(md,'fieldname','stressbalance.spcvy','Inf',1,'timeseries',1);
-			checkfield(md,'fieldname','stressbalance.spcvz','Inf',1,'timeseries',1);
-			checkfield(md,'fieldname','stressbalance.restol','size',[1, 1],'>',0,'NaN',1,'Inf',1);
-			checkfield(md,'fieldname','stressbalance.reltol','size',[1, 1]);
-			checkfield(md,'fieldname','stressbalance.abstol','size',[1, 1]);
-			checkfield(md,'fieldname','stressbalance.isnewton','numel',[1],'values',[0, 1, 2]);
-			checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1, 1],'NaN',1,'Inf',1);
-			checkfield(md,'fieldname','stressbalance.viscosity_overshoot','size',[1, 1],'NaN',1,'Inf',1);
-			checkfield(md,'fieldname','stressbalance.maxiter','size',[1, 1],'>=',1);
-			checkfield(md,'fieldname','stressbalance.referential','size',[md.mesh.numberofvertices, 6]);
-			checkfield(md,'fieldname','stressbalance.loadingforce','size',[md.mesh.numberofvertices, 3]);
-			checkfield(md,'fieldname','stressbalance.requested_outputs','stringrow',1);
-
-			//singular solution
-			if(!ArrayAnyNaN(md.stressbalance.spcvx) | !ArrayAnyNaN(md.stressbalance.spcvy) |  !ArrayAnyAboveStrict(md.mask.groundedice_levelset,0)){
-				md = checkmessage(md,'model is not well posed (singular). You need at least one node with fixed velocity!');
-				console.log(sprintf('\n !!! Warning: no spc applied, model might not be well posed if no basal friction is applied, check for solution crash\n'));
-			}
-			//CHECK THAT EACH LINES CONTAINS ONLY NAN VALUES OR NO NAN VALUES
-			for(var i=0;i<md.stressbalance.referential.length;i++){
-				var sum=0;
-				for(j=0;j<md.stressbalance.referential[0].length;j++)sum+=md.stressbalance.referential[i][j];
-				if (sum!=0 & sum!=6){
-					md = checkmessage(md,'Each line of stressbalance.referential should contain either only NaN values or no NaN values');
+	this.extrude = function(md) {//{{{
+		this.spcvx=project3d(md,'vector',this.spcvx,'type','node');
+		this.spcvy=project3d(md,'vector',this.spcvy,'type','node');
+		this.spcvz=project3d(md,'vector',this.spcvz,'type','node');
+		this.referential=project3d(md,'vector',this.referential,'type','node');
+		this.loadingforce=project3d(md,'vector',this.loadingforce,'type','node');
+		return this;
+	}//}}}
+	this.checkconsistency = function(md,solution,analyses) { //{{{
+
+		//Early return
+		if(ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),0))return;
+
+		checkfield(md,'fieldname','stressbalance.spcvx','Inf',1,'timeseries',1);
+		checkfield(md,'fieldname','stressbalance.spcvy','Inf',1,'timeseries',1);
+		checkfield(md,'fieldname','stressbalance.spcvz','Inf',1,'timeseries',1);
+		checkfield(md,'fieldname','stressbalance.restol','size',[1, 1],'>',0,'NaN',1,'Inf',1);
+		checkfield(md,'fieldname','stressbalance.reltol','size',[1, 1]);
+		checkfield(md,'fieldname','stressbalance.abstol','size',[1, 1]);
+		checkfield(md,'fieldname','stressbalance.isnewton','numel',[1],'values',[0, 1, 2]);
+		checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1, 1],'NaN',1,'Inf',1);
+		checkfield(md,'fieldname','stressbalance.viscosity_overshoot','size',[1, 1],'NaN',1,'Inf',1);
+		checkfield(md,'fieldname','stressbalance.maxiter','size',[1, 1],'>=',1);
+		checkfield(md,'fieldname','stressbalance.referential','size',[md.mesh.numberofvertices, 6]);
+		checkfield(md,'fieldname','stressbalance.loadingforce','size',[md.mesh.numberofvertices, 3]);
+		checkfield(md,'fieldname','stressbalance.requested_outputs','stringrow',1);
+
+		//singular solution
+		if(!ArrayAnyNaN(md.stressbalance.spcvx) | !ArrayAnyNaN(md.stressbalance.spcvy) |  !ArrayAnyAboveStrict(md.mask.groundedice_levelset,0)){
+			md = checkmessage(md,'model is not well posed (singular). You need at least one node with fixed velocity!');
+			console.log(sprintf('\n !!! Warning: no spc applied, model might not be well posed if no basal friction is applied, check for solution crash\n'));
+		}
+		//CHECK THAT EACH LINES CONTAINS ONLY NAN VALUES OR NO NAN VALUES
+		for(var i=0;i<md.stressbalance.referential.length;i++){
+			var sum=0;
+			for(j=0;j<md.stressbalance.referential[0].length;j++)sum+=md.stressbalance.referential[i][j];
+			if (sum!=0 & sum!=6){
+				md = checkmessage(md,'Each line of stressbalance.referential should contain either only NaN values or no NaN values');
+				break;
+			}
+		}
+		//CHECK THAT THE TWO VECTORS PROVIDED ARE ORTHOGONAL
+		for(var i=0;i<md.stressbalance.referential.length;i++){
+			var sum=0;
+			for(j=0;j<md.stressbalance.referential[0].length;j++)sum+=md.stressbalance.referential[i][j];
+			if(sum==0){
+				var dot=0;
+				for(j=0;j<3;j++)dot+=md.stressbalance.referential[i][j]*md.stressbalance.referential[i][j+3];
+				dot=Math.abs(dot);
+				if(dot>Math.pow(10,-18)){
+					md.checkmessage('Vectors in stressbalance.referential (columns 1 to 3 and 4 to 6) must be orthogonal');
 					break;
 				}
 			}
-			//CHECK THAT THE TWO VECTORS PROVIDED ARE ORTHOGONAL
-			for(var i=0;i<md.stressbalance.referential.length;i++){
-				var sum=0;
-				for(j=0;j<md.stressbalance.referential[0].length;j++)sum+=md.stressbalance.referential[i][j];
-				if(sum==0){
-					var dot=0;
-					for(j=0;j<3;j++)dot+=md.stressbalance.referential[i][j]*md.stressbalance.referential[i][j+3];
-					dot=Math.abs(dot);
-					if(dot>Math.pow(10,-18)){
-						md.checkmessage('Vectors in stressbalance.referential (columns 1 to 3 and 4 to 6) must be orthogonal');
+		}
+		//CHECK THAT NO rotation specified for FS Grounded ice at base
+		if (md.mesh.domaintype() == '3D' & md.flowequation.isFS){
+			for(var i=0;i<md.mask.groundedice_levelset.length;i++){
+				if(md.mask.groundedice_levelset[i]>0 & md.mesh.vertexonbase[i]){
+					if(!ArrayIsNan(md.stressbalance.referential[i])){
+						md.checkmessage('no referential should be specified for basal vertices of grounded ice');
 						break;
 					}
 				}
 			}
-			//CHECK THAT NO rotation specified for FS Grounded ice at base
-			if (md.mesh.domaintype() == '3D' & md.flowequation.isFS){
-				for(var i=0;i<md.mask.groundedice_levelset.length;i++){
-					if(md.mask.groundedice_levelset[i]>0 & md.mesh.vertexonbase[i]){
-						if(!ArrayIsNan(md.stressbalance.referential[i])){
-							md.checkmessage('no referential should be specified for basal vertices of grounded ice');
-							break;
-						}
-					}
-				}
-				checkfield(md,'fieldname','stressbalance.FSreconditioning','>',0);
-			}
-		} // }}}
-		this.marshall=function(md,prefix,fid) { //{{{
-
-			WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','vertex_pairing','format','DoubleMat','mattype',3);
-
-			var yts=365.0*24.0*3600.0;
-
-			WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','spcvx','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
-			WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','spcvy','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
-			WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','spcvz','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
-			WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','restol','format','Double');
-			WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','reltol','format','Double');
-			WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','abstol','format','Double','scale',1./yts);
-			WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','isnewton','format','Integer');
-			WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','FSreconditioning','format','Double');
-			WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','viscosity_overshoot','format','Double');
-			WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','maxiter','format','Integer');
-			WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','shelf_dampening','format','Integer');
-			WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','penalty_factor','format','Double');
-			WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','rift_penalty_lock','format','Integer');
-			WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer');
-			WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1);
-
-			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,prefix,'data',lx,'format','DoubleMat','mattype',1,'name','md.stressbalance.loadingforcex');
-			WriteData(fid,prefix,'data',ly,'format','DoubleMat','mattype',1,'name','md.stressbalance.loadingforcey');
-			WriteData(fid,prefix,'data',lz,'format','DoubleMat','mattype',1,'name','md.stressbalance.loadingforcez');
-
-			//process requested outputs
-			var outputs = this.requested_outputs;
-			for (var i=0;i<outputs.length;i++){
-				if (outputs[i] == 'default') {
-					outputs.splice(i,1);
-					var newoutputs=this.defaultoutputs(md);
-					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
-				}
-			}
-			WriteData(fid,prefix,'data',outputs,'name','md.stressbalance.requested_outputs','format','StringArray');
-		}//}}}
-		this.defaultoutputs = function(md){ // {{{
-
-			var list;
-			if (md.mesh.dimension() == 3) list = ['Vx','Vy','Vz','Vel','Pressure'];
-			else if (md.mesh.dimension()==2) list = ['Vx','Vy','Vel','Pressure'];
-			else throw Error('mesh type not supported yet');
-			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;
-		}//}}}
+			checkfield(md,'fieldname','stressbalance.FSreconditioning','>',0);
+		}
+	} // }}}
+	this.marshall=function(md,prefix,fid) { //{{{
+
+		WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','vertex_pairing','format','DoubleMat','mattype',3);
+
+		var yts=365.0*24.0*3600.0;
+
+		WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','spcvx','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+		WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','spcvy','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+		WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','spcvz','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+		WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','restol','format','Double');
+		WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','reltol','format','Double');
+		WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','abstol','format','Double','scale',1./yts);
+		WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','isnewton','format','Integer');
+		WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','FSreconditioning','format','Double');
+		WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','viscosity_overshoot','format','Double');
+		WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','maxiter','format','Integer');
+		WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','shelf_dampening','format','Integer');
+		WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','penalty_factor','format','Double');
+		WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','rift_penalty_lock','format','Integer');
+		WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer');
+		WriteData(fid,prefix,'object',this,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1);
+
+		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,prefix,'data',lx,'format','DoubleMat','mattype',1,'name','md.stressbalance.loadingforcex');
+		WriteData(fid,prefix,'data',ly,'format','DoubleMat','mattype',1,'name','md.stressbalance.loadingforcey');
+		WriteData(fid,prefix,'data',lz,'format','DoubleMat','mattype',1,'name','md.stressbalance.loadingforcez');
+
+		//process requested outputs
+		var outputs = this.requested_outputs;
+		for (var i=0;i<outputs.length;i++){
+			if (outputs[i] == 'default') {
+				outputs.splice(i,1);
+				var newoutputs=this.defaultoutputs(md);
+				for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
+			}
+		}
+		WriteData(fid,prefix,'data',outputs,'name','md.stressbalance.requested_outputs','format','StringArray');
+	}//}}}
+	this.defaultoutputs = function(md){ // {{{
+
+		var list;
+		if (md.mesh.dimension() == 3) list = ['Vx','Vy','Vz','Vel','Pressure'];
+		else if (md.mesh.dimension()==2) list = ['Vx','Vy','Vel','Pressure'];
+		else throw Error('mesh type not supported yet');
+		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/stressbalance.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/stressbalance.py	(revision 20890)
+++ /issm/trunk-jpl/src/m/classes/stressbalance.py	(revision 20891)
@@ -176,4 +176,6 @@
 	def marshall(self,prefix,md,fid):    # {{{
 
+		WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','vertex_pairing','format','DoubleMat','mattype',3)
+
 		yts=365.0*24.0*3600.0
 
@@ -189,5 +191,4 @@
 		WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','maxiter','format','Integer')
 		WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','shelf_dampening','format','Integer')
-		WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','vertex_pairing','format','DoubleMat','mattype',3)
 		WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','penalty_factor','format','Double')
 		WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','rift_penalty_lock','format','Integer')
