Index: /issm/trunk-jpl/src/c/analyses/SealevelchangeAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/SealevelchangeAnalysis.cpp	(revision 26273)
+++ /issm/trunk-jpl/src/c/analyses/SealevelchangeAnalysis.cpp	(revision 26274)
@@ -42,4 +42,5 @@
 	/*external solidearthsolution: solid-Earth model*/
 	iomodel->FetchData(&isexternal,"md.solidearth.isexternal");
+
 	if(isexternal){
 		iomodel->FetchDataToInput(inputs,elements,"md.solidearth.external.displacementeast",SolidearthExternalDisplacementEastRateEnum);
@@ -47,5 +48,5 @@
 		iomodel->FetchDataToInput(inputs,elements,"md.solidearth.external.displacementup",SolidearthExternalDisplacementUpRateEnum);
 		iomodel->FetchDataToInput(inputs,elements,"md.solidearth.external.geoid",SolidearthExternalGeoidRateEnum);
-		iomodel->FetchDataToInput(inputs,elements,"md.solidearth.external.barystaticsealevel",SolidearthExternalBarystaticSeaLevelRateEnum);
+
 
 		/*Resolve Mmes using the modelid, if necessary:*/
@@ -61,5 +62,4 @@
 			MmeToInputFromIdx(inputs,elements,modelid,SolidearthExternalDisplacementUpRateEnum, P1Enum);
 			MmeToInputFromIdx(inputs,elements,modelid,SolidearthExternalGeoidRateEnum, P1Enum);
-			MmeToInputFromIdx(inputs,elements,modelid,SolidearthExternalBarystaticSeaLevelRateEnum, P1Enum);
 		}
 	}
@@ -159,4 +159,5 @@
 	parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.planetradius",SolidearthPlanetRadiusEnum));
 	parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.settings.cross_section_shape",SolidearthSettingsCrossSectionShapeEnum));
+
 	parameters->AddObject(new DoubleParam(CumBslcEnum,0.0));
 	parameters->AddObject(new DoubleParam(CumBslcIceEnum,0.0));
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 26273)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 26274)
@@ -385,4 +385,5 @@
 	SolidearthSettingsRigidEnum,
 	SolidearthSettingsRotationEnum,
+	SolidearthSettingsMaxSHCoeffEnum,
 	SealevelchangeRunCountEnum,
 	SealevelchangeTransitionsEnum,
@@ -952,5 +953,4 @@
 	SolidearthExternalDisplacementUpRateEnum,
 	SolidearthExternalGeoidRateEnum,
-	SolidearthExternalBarystaticSeaLevelRateEnum,
 	StackRSLEnum,
 	StackUEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 26273)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 26274)
@@ -957,5 +957,4 @@
 		case SolidearthExternalDisplacementUpRateEnum : return "SolidearthExternalDisplacementUpRate";
 		case SolidearthExternalGeoidRateEnum : return "SolidearthExternalGeoidRate";
-		case SolidearthExternalBarystaticSeaLevelRateEnum : return "SolidearthExternalBarystaticSeaLevelRate";
 		case StackRSLEnum : return "StackRSL";
 		case StackUEnum : return "StackU";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 26273)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 26274)
@@ -978,5 +978,4 @@
 	      else if (strcmp(name,"SolidearthExternalDisplacementUpRate")==0) return SolidearthExternalDisplacementUpRateEnum;
 	      else if (strcmp(name,"SolidearthExternalGeoidRate")==0) return SolidearthExternalGeoidRateEnum;
-	      else if (strcmp(name,"SolidearthExternalBarystaticSeaLevelRate")==0) return SolidearthExternalBarystaticSeaLevelRateEnum;
 	      else if (strcmp(name,"StackRSL")==0) return StackRSLEnum;
 	      else if (strcmp(name,"StackU")==0) return StackUEnum;
Index: /issm/trunk-jpl/src/m/classes/mmeadditionalsolidearthsolution.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mmeadditionalsolidearthsolution.m	(revision 26273)
+++ /issm/trunk-jpl/src/m/classes/mmeadditionalsolidearthsolution.m	(revision 26274)
@@ -32,5 +32,4 @@
 			sup=length(self.displacementup);
 			sgeoid=length(self.geoid);
-			sbarystaticsealevel=length(self.barystaticsealevel);
 
 			if (seast-snorth)~=0,
@@ -45,8 +44,4 @@
 				error('mmeadditionalsolidearthsolution checkconsistency error message: displacementeast and geoid should be the same size');
 			end
-
-			if (seast-sbarystaticsealevel)~=0,
-				error('mmeadditionalsolidearthsolution checkconsistency error message: displacementeast and barystaticsealevel should be the same size');
-			end
 			
 			md = checkfield(md,'field',self.modelid,'NaN',1,'Inf',1,'>=',1,'<=',length(self.displacementeast));
@@ -57,5 +52,4 @@
 				md = checkfield(md,'field',self.displacementnorth{i},'NaN',1,'Inf',1,'timeseries',1);
 				md = checkfield(md,'field',self.geoid{i},'NaN',1,'Inf',1,'timeseries',1);
-				md = checkfield(md,'field',self.barystaticsealevel{i},'NaN',1,'Inf',1,'timeseries',1);
 			end
 
@@ -80,5 +74,4 @@
 				displacementup=self.displacementup{i}; 
 				geoid=self.geoid{i}; 
-				barystaticsealevel=self.barystaticsealevel{i}; 
 
 				time=displacementeast(end,:);
@@ -89,5 +82,4 @@
 				displacementup_rate=diff(displacementup(1:end-1,:),1,2)./dt;
 				geoid_rate=diff(geoid(1:end-1,:),1,2)./dt;
-				barystaticsealevel_rate=diff(barystaticsealevel(1:end-1,:),1,2)./dt;
 
 				self.displacementeast{i}=displacementeast_rate; 
@@ -95,5 +87,4 @@
 				self.displacementup{i}=displacementup_rate; 
 				self.geoid{i}=geoid_rate; 
-				self.barystaticsealevel{i}=barystaticsealevel_rate; 
 			end
 			
@@ -102,5 +93,4 @@
 			WriteData(fid,prefix,'object',self,'fieldname','displacementnorth','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1/yts);
 			WriteData(fid,prefix,'object',self,'fieldname','geoid','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1/yts);
-			WriteData(fid,prefix,'object',self,'fieldname','barystaticsealevel','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1/yts);
 
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/mmeofflinesolidearthsolution.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mmeofflinesolidearthsolution.m	(revision 26273)
+++ /issm/trunk-jpl/src/m/classes/mmeofflinesolidearthsolution.m	(revision 26274)
@@ -32,5 +32,4 @@
 			sup=length(self.displacementup);
 			sgeoid=length(self.geoid);
-			sbarystaticsealevel=length(self.barystaticsealevel);
 
 			if (seast-snorth)~=0,
@@ -45,8 +44,4 @@
 				error('mmeofflinesolidearthsolution checkconsistency error message: displacementeast and geoid should be the same size');
 			end
-
-			if (seast-sbarystaticsealevel)~=0,
-				error('mmeofflinesolidearthsolution checkconsistency error message: displacementeast and barystaticsealevel should be the same size');
-			end
 			
 			md = checkfield(md,'field',self.modelid,'NaN',1,'Inf',1,'>=',1,'<=',length(self.displacementeast));
@@ -57,5 +52,4 @@
 				md = checkfield(md,'field',self.displacementnorth{i},'NaN',1,'Inf',1,'timeseries',1);
 				md = checkfield(md,'field',self.geoid{i},'NaN',1,'Inf',1,'timeseries',1);
-				md = checkfield(md,'field',self.barystaticsealevel{i},'NaN',1,'Inf',1,'timeseries',1);
 			end
 
@@ -79,5 +73,4 @@
 				displacementup=self.displacementup{i}; 
 				geoid=self.geoid{i}; 
-				barystaticsealevel=self.barystaticsealevel{i}; 
 
 				time=displacementeast(end,:);
@@ -94,5 +87,4 @@
 				self.displacementup{i}=displacementup_rate; 
 				self.geoid{i}=geoid_rate; 
-				self.barystaticsealevel{i}=barystaticsealevel_rate; 
 			end
 			
@@ -101,5 +93,4 @@
 			WriteData(fid,prefix,'object',self,'fieldname','displacementnorth','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1/yts);
 			WriteData(fid,prefix,'object',self,'fieldname','geoid','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1/yts);
-			WriteData(fid,prefix,'object',self,'fieldname','barystaticsealevel','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1/yts);
 
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/solidearthsolution.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/solidearthsolution.m	(revision 26273)
+++ /issm/trunk-jpl/src/m/classes/solidearthsolution.m	(revision 26274)
@@ -10,5 +10,4 @@
 		displacementup=[];
 		geoid=[];
-		barystaticsealevel=[];
 	end
 	methods
@@ -27,5 +26,4 @@
 			self.displacementup=[];
 			self.geoid=[];
-			self.barystaticsealevel=[];
 	
 		end % }}}
@@ -36,5 +34,4 @@
 			md = checkfield(md,'fieldname','solidearth.external.displacementup','Inf',1,'timeseries',1);
 			md = checkfield(md,'fieldname','solidearth.external.geoid','Inf',1,'timeseries',1);
-			md = checkfield(md,'fieldname','solidearth.external.barystaticsealevel','Inf',1,'timeseries',1);
 
 		end % }}}
@@ -45,5 +42,4 @@
 			fielddisplay(self,'displacementup','solid-Earth bedrock uplift time series (m)');
 			fielddisplay(self,'geoid','solid-Earth geoid time series (m)');
-			fielddisplay(self,'barystaticsealevel','barystatic absolute sea-level time series (m)');
 
 		end % }}}
@@ -58,5 +54,4 @@
 				displacementup_rate=[self.displacementup;0];
 				geoid_rate=[self.geoid;0];
-				barystaticsealevel_rate=[self.barystaticsealevel;0];
 			else
 				time=self.displacementeast(end,:);
@@ -70,6 +65,4 @@
 				geoid_rate=diff(self.geoid(1:end-1,:),1,2)./dt;
 				geoid_rate(end+1,:)=time(1:end-1);
-				barystaticsealevel_rate=diff(self.barystaticsealevel(1:end-1,:),1,2)./dt;
-				barystaticsealevel_rate(end+1,:)=time(1:end-1);
 			end
 			WriteData(fid,prefix,'object',self,'fieldname','displacementeast','data',displacementeast_rate,'format','DoubleMat','name', 'md.solidearth.external.displacementeast','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
@@ -77,5 +70,4 @@
 			WriteData(fid,prefix,'object',self,'fieldname','displacementnorth','data',displacementnorth_rate,'format','DoubleMat','name', 'md.solidearth.external.displacementnorth','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
 			WriteData(fid,prefix,'object',self,'fieldname','geoid','data',geoid_rate,'format','DoubleMat','name', 'md.solidearth.external.geoid','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
-			WriteData(fid,prefix,'object',self,'fieldname','barystaticsealevel','data',barystaticsealevel_rate,'format','DoubleMat','name', 'md.solidearth.external.barystaticsealevel','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
 			
 		end % }}}
@@ -85,5 +77,4 @@
 			writejs1Darray(fid,[modelname '.solidearth.external.displacementup'],self.displacementup);
 			writejs1Darray(fid,[modelname '.solidearth.external.geoid'],self.geoid);
-			writejs1Darray(fid,[modelname '.solidearth.external.barystaticsealevel'],self.barystaticsealevel);
 		end % }}}
 		function self = extrude(self,md) % {{{
Index: /issm/trunk-jpl/test/NightlyRun/test2007.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test2007.m	(revision 26273)
+++ /issm/trunk-jpl/test/NightlyRun/test2007.m	(revision 26274)
@@ -24,6 +24,4 @@
 md.solidearth.external.displacementnorth=longe .*time;
 md.solidearth.external.displacementnorth(end+1,:)=time;
-md.solidearth.external.barystaticsealevel=0*late .*time;
-md.solidearth.external.barystaticsealevel(end+1,:)=time;
 md.initialization.sealevel=zeros(md.mesh.numberofvertices,1);
 
Index: /issm/trunk-jpl/test/NightlyRun/test2008.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test2008.m	(revision 26274)
+++ /issm/trunk-jpl/test/NightlyRun/test2008.m	(revision 26274)
@@ -0,0 +1,121 @@
+%Test Name: External:AdditionalSolidearthSolution
+
+%mesh earth:
+md=model;
+md.mesh=gmshplanet('radius',6.371012*10^3,'resolution',700.); %700 km resolution mesh
+
+%Geometry for the bed, arbitrary thickness of 100: 
+md.geometry.bed=zeros(md.mesh.numberofvertices,1);
+md.geometry.base=md.geometry.bed;
+md.geometry.thickness=100*ones(md.mesh.numberofvertices,1);
+md.geometry.surface=md.geometry.bed+md.geometry.thickness;
+
+%solidearth loading:  {{{
+md.masstransport.spcthickness=[md.geometry.thickness;0];
+md.smb.mass_balance=zeros(md.mesh.numberofvertices,1);
+%antarctica
+xe=md.mesh.x(md.mesh.elements)*[1;1;1]/3;
+ye=md.mesh.y(md.mesh.elements)*[1;1;1]/3;
+ze=md.mesh.z(md.mesh.elements)*[1;1;1]/3;
+re=sqrt(xe.^2+ye.^2+ze.^2);
+
+late=asind(ze./re);
+longe=atan2d(ye,xe);
+pos=find(late < -80);
+md.masstransport.spcthickness(md.mesh.elements(pos,:))= md.masstransport.spcthickness(md.mesh.elements(pos,:))-100;
+posant=pos;
+%greenland
+pos=find(late>60 & late<90 & longe>-75 & longe<-15);
+md.masstransport.spcthickness(md.mesh.elements(pos,:))= md.masstransport.spcthickness(md.mesh.elements(pos,:))-100;
+posgre=pos;
+
+%elastic loading from love numbers:
+md.solidearth.lovenumbers=lovenumbers('maxdeg',1000);
+
+%}}}
+%mask:  {{{
+mask=gmtmask(md.mesh.lat,md.mesh.long);
+oceanmask=-ones(md.mesh.numberofvertices,1);
+pos=find(mask==0); oceanmask(pos)=1;
+
+icemask=ones(md.mesh.numberofvertices,1);
+icemask(md.mesh.elements(posant))=-1;
+icemask(md.mesh.elements(posgre))=-1;
+
+md.mask.ice_levelset=icemask;
+md.mask.ocean_levelset=oceanmask;
+% }}}
+
+%time stepping: 
+md.timestepping.start_time=0;
+md.timestepping.time_step=1;
+md.timestepping.final_time=1;
+
+%masstransport:
+md.basalforcings.groundedice_melting_rate=zeros(md.mesh.numberofvertices,1);
+md.basalforcings.floatingice_melting_rate=zeros(md.mesh.numberofvertices,1);
+md.initialization.vx=zeros(md.mesh.numberofvertices,1);
+md.initialization.vy=zeros(md.mesh.numberofvertices,1);
+md.initialization.sealevel=zeros(md.mesh.numberofvertices,1);
+md.initialization.str=0;
+
+%Materials: 
+md.materials=materials('hydro');
+
+%Miscellaneous
+md.miscellaneous.name='test2008';
+
+%Solution parameters
+md.cluster.np=3;
+md.solidearth.settings.reltol=NaN;
+md.solidearth.settings.abstol=1e-3;
+md.solidearth.settings.computesealevelchange=1;
+md.solidearth.settings.isgrd=1;
+md.solidearth.settings.ocean_area_scaling=0;
+md.solidearth.settings.grdmodel=1;
+
+%Physics: 
+md.transient.issmb=0; 
+md.transient.isstressbalance=0;
+md.transient.isthermal=0;
+md.transient.ismasstransport=1;
+md.transient.isslc=1;
+md.solidearth.requested_outputs={'Sealevel','Bed'};
+
+% max number of iteration reverted back to 10 (i.e., the original default value)
+md.solidearth.settings.maxiter=10;
+
+%eustatic + rigid + elastic:
+md.solidearth.settings.rigid=1;
+md.solidearth.settings.elastic=1;
+md.solidearth.settings.rotation=0;
+md.solidearth.settings.viscous=0;
+md=solve(md,'tr');
+Sgrd=md.results.TransientSolution.Sealevel;
+Bgrd=md.results.TransientSolution.Bed;
+
+%parameterize additional solidearth solution:
+late=md.mesh.lat;
+longe=md.mesh.long;
+time=0:1;
+Y22=1.5*(1.+cosd(2.*late)).*cosd(2.*longe);
+md.solidearth.external=additionalsolidearthsolution;
+md.solidearth.external.displacementup=0.5*Y22 .*time;
+md.solidearth.external.displacementup(end+1,:)=time;
+md.solidearth.external.geoid=0.2*Y22 .*time;
+md.solidearth.external.geoid(end+1,:)=time;
+md.solidearth.external.displacementeast=late .*time;
+md.solidearth.external.displacementeast(end+1,:)=time;
+md.solidearth.external.displacementnorth=longe .*time;
+md.solidearth.external.displacementnorth(end+1,:)=time;
+md.initialization.sealevel=zeros(md.mesh.numberofvertices,1);
+
+md=solve(md,'tr');
+Sadd=md.results.TransientSolution.Sealevel;
+Badd=md.results.TransientSolution.Bed;
+
+
+%Fields and tolerances to track changes
+field_names={'SealevelGrd','BedrockGrd', 'SealevelAdditional','BedrockAdditional'};
+field_tolerances={1e-13,1e-13,1e-13,1e-13};
+field_values={Sgrd, Bgrd,Sadd,Badd};
