Index: /issm/trunk-jpl/src/m/classes/slr.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/slr.js	(revision 22482)
+++ /issm/trunk-jpl/src/m/classes/slr.js	(revision 22483)
@@ -38,4 +38,8 @@
 		this.degacc=.01;
 		
+		//steric: 
+		this.steric_rate=0;
+		
+		
 		//output default:
 		this.requested_outputs=['default'];
@@ -63,4 +67,5 @@
 			md = checkfield(md,'fieldname','slr.reltol','size',[1, 1]);
 			md = checkfield(md,'fieldname','slr.abstol','size',[1, 1]);
+			md = checkfield(md,'fieldname','slr.steric_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
 			md = checkfield(md,'fieldname','slr.maxiter','size',[1, 1],'>=',1);
 			md = checkfield(md,'fieldname','slr.degacc','size',[1, 1],'>=',1e-10);
@@ -81,27 +86,28 @@
 		this.disp= function(){// {{{
 			
-		console.log(sprintf('   Sealevelrise solution parameters:'));
+			console.log(sprintf('   Sealevelrise solution parameters:'));
 
-		fielddisplay(this,'deltathickness','thickness change (main loading of the slr solution core [m]');
-		fielddisplay(this,'sealevel','current sea level (prior to computation) [m]');
-		fielddisplay(this,'reltol','sea level rise relative convergence criterion, (NaN: not applied)');
-		fielddisplay(this,'abstol','sea level rise absolute convergence criterion, (default, NaN: not applied');
-		fielddisplay(this,'maxiter','maximum number of nonlinear iterations');
-		fielddisplay(this,'love_h','load Love number for radial displacement');
-		fielddisplay(this,'love_k','load Love number for gravitational potential perturbation');
-		fielddisplay(this,'love_l','load Love number for horizontal displacements'); 
-		fielddisplay(this,'tide_love_h','tidal love number (degree 2)');
-		fielddisplay(this,'tide_love_k','tidal love number (degree 2)');
-		fielddisplay(this,'fluid_love','secular fluid Love number');
-		fielddisplay(this,'equatorial_moi','mean equatorial moment of inertia [kg m^2]');
-		fielddisplay(this,'polar_moi','polar moment of inertia [kg m^2]');
-		fielddisplay(this,'angular_velocity','mean rotational velocity of earth [per second]'); 
-		fielddisplay(this,'rigid','rigid earth graviational potential perturbation');
-		fielddisplay(this,'elastic','elastic earth graviational potential perturbation');
-		fielddisplay(this,'rotation','rotational earth potential perturbation');
-		fielddisplay(this,'ocean_area_scaling','correction for model representation of ocean area [default: No correction]'); 
-		fielddisplay(this,'degacc',"accuracy (default .01 deg) for numerical discretization of the Green's functions");
-		fielddisplay(this,'transitions','indices into parts of the mesh that will be icecaps');
-		fielddisplay(this,'requested_outputs','additional outputs requested');
+			fielddisplay(this,'deltathickness','thickness change (main loading of the slr solution core [m]');
+			fielddisplay(this,'sealevel','current sea level (prior to computation) [m]');
+			fielddisplay(this,'reltol','sea level rise relative convergence criterion, (NaN: not applied)');
+			fielddisplay(this,'abstol','sea level rise absolute convergence criterion, (default, NaN: not applied');
+			fielddisplay(this,'maxiter','maximum number of nonlinear iterations');
+			fielddisplay(this,'love_h','load Love number for radial displacement');
+			fielddisplay(this,'love_k','load Love number for gravitational potential perturbation');
+			fielddisplay(this,'love_l','load Love number for horizontal displacements'); 
+			fielddisplay(this,'tide_love_h','tidal love number (degree 2)');
+			fielddisplay(this,'tide_love_k','tidal love number (degree 2)');
+			fielddisplay(this,'fluid_love','secular fluid Love number');
+			fielddisplay(this,'equatorial_moi','mean equatorial moment of inertia [kg m^2]');
+			fielddisplay(this,'polar_moi','polar moment of inertia [kg m^2]');
+			fielddisplay(this,'angular_velocity','mean rotational velocity of earth [per second]'); 
+			fielddisplay(this,'rigid','rigid earth graviational potential perturbation');
+			fielddisplay(this,'elastic','elastic earth graviational potential perturbation');
+			fielddisplay(this,'rotation','rotational earth potential perturbation');
+			fielddisplay(this,'ocean_area_scaling','correction for model representation of ocean area [default: No correction]'); 
+			fielddisplay(this,'steric_rate','rate of steric ocean expansion (in mm/yr)'); 
+			fielddisplay(this,'degacc',"accuracy (default .01 deg) for numerical discretization of the Green's functions");
+			fielddisplay(this,'transitions','indices into parts of the mesh that will be icecaps');
+			fielddisplay(this,'requested_outputs','additional outputs requested');
 		} //}}}
 		this.marshall=function(md,prefix,fid) { //{{{
@@ -125,4 +131,5 @@
 			WriteData(fid,prefix,'object',this,'fieldname','rotation','format','Boolean');
 			WriteData(fid,prefix,'object',this,'fieldname','ocean_area_scaling','format','Boolean');
+			WriteData(fid,prefix,'object',this,'fieldname','steric_rate','format','DoubleMat','mattype',1,'scale',1e-3/md.constants.yts);
 			WriteData(fid,prefix,'object',this,'fieldname','degacc','format','Double');
 			WriteData(fid,prefix,'object',this,'fieldname','transitions','format','MatArray');
@@ -158,4 +165,5 @@
 			this.rotation=NullFix(this.rotation,NaN);
 			this.ocean_area_scaling=NullFix(this.ocean_area_scaling,NaN);
+			this.steric_rate=NullFix(this.steric_rate,NaN);
 			this.degacc=NullFix(this.degacc,NaN);
 		}//}}}
@@ -180,4 +188,5 @@
 	this.rotation       = 0;
 	this.ocean_area_scaling = 0;
+	this.steric_rate    = 0; //rate of ocean expansion from steric effects. 
 	this.degacc         = 0;
 	this.requested_outputs = [];
Index: /issm/trunk-jpl/src/m/classes/thermal.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/thermal.js	(revision 22482)
+++ /issm/trunk-jpl/src/m/classes/thermal.js	(revision 22483)
@@ -28,4 +28,7 @@
 		//will basal boundary conditions be set dynamically
 		this.isdynamicbasalspc=0;
+		
+		//Linear elements by default
+		this.fe='P1';
 
 		//default output
@@ -46,4 +49,5 @@
 		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,'fe','Finite Element type: "P1" (default), "P1xP2"');
 		fielddisplay(this,'requested_outputs','additional outputs requested');
 
@@ -88,4 +92,5 @@
 		checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0 ,1, 2]);
 		checkfield(md,'fieldname','thermal.spctemperature','Inf',1,'timeseries',1);
+		checkfield(md,'fieldname','thermal.fe','values',{'P1','P1xP2','P1xP3'});
 		if(ArrayAnyEqual(ArrayIsMember('EnthalpyAnalysis',analyses),1) & md.thermal.isenthalpy & md.mesh.dimension() == 3){
 			
@@ -122,4 +127,5 @@
 			WriteData(fid,prefix,'object',this,'fieldname','penalty_factor','format','Double');
 			WriteData(fid,prefix,'object',this,'fieldname','isenthalpy','format','Boolean');
+			WriteData(fid,prefix,'object',this,'fieldname','fe','format','String');
 			WriteData(fid,prefix,'object',this,'fieldname','isdynamicbasalspc','format','Boolean');
 
@@ -149,5 +155,5 @@
 	this.penalty_threshold = 0;
 	this.stabilization     = 0;
-	this.reltol				= 0;
+	this.reltol			   = 0;
 	this.maxiter           = 0;
 	this.penalty_lock      = 0;
@@ -155,4 +161,5 @@
 	this.isenthalpy        = 0;
 	this.isdynamicbasalspc = 0;
+	this.fe                = 'P1';
 	this.requested_outputs = [];
 
Index: /issm/trunk-jpl/src/m/classes/trans.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/trans.js	(revision 22482)
+++ /issm/trunk-jpl/src/m/classes/trans.js	(revision 22483)
@@ -20,4 +20,5 @@
 		this.ishydrology       = 0;
 		this.isslr             = 0;
+		this.isoceancoupling   = 0;
 		this.iscoupler         = 0;
 		this.amr_frequency     = 0;
@@ -42,4 +43,5 @@
 		fielddisplay(this,'ishydrology','indicates whether an hydrology model is used');
 		fielddisplay(this,'isslr','indicates whether a sea-level rise model is used');
+		fielddisplay(this,'isoceancoupling','indicates whether a coupling with an ocean model is used in the transient');
 		fielddisplay(this,'iscoupler','indicates whether different models are being run with need for coupling');
 		fielddisplay(this,'amr_frequency','frequency at which mesh is refined in simulations with multiple time_steps');
@@ -56,8 +58,8 @@
 			if (solution!='TransientSolution') return;
 
-			checkfield(md,'fieldname','trans.issmb','numel',[1],'values',[0 ,1]);
-			checkfield(md,'fieldname','trans.ismasstransport','numel',[1],'values',[0 ,1]);
-			checkfield(md,'fieldname','trans.isstressbalance','numel',[1],'values',[0 ,1]);
-			checkfield(md,'fieldname','trans.isthermal','numel',[1],'values',[0 ,1]);
+			checkfield(md,'fieldname','trans.issmb','numel',[1],'values',[0, 1]);
+			checkfield(md,'fieldname','trans.ismasstransport','numel',[1],'values',[0, 1]);
+			checkfield(md,'fieldname','trans.isstressbalance','numel',[1],'values',[0, 1]);
+			checkfield(md,'fieldname','trans.isthermal','numel',[1],'values',[0, 1]);
 			checkfield(md,'fieldname','trans.isgroundingline','numel',[1],'values',[0, 1]);
 			checkfield(md,'fieldname','trans.isgia','numel',[1],'values',[0, 1]);
@@ -65,7 +67,8 @@
 			checkfield(md,'fieldname','trans.isdamageevolution','numel',[1],'values',[0, 1]);
 			checkfield(md,'fieldname','trans.ismovingfront','numel',[1],'values',[0, 1]);
-			checkfield(md,'fieldname','trans.ishydrology','numel',[1],'values',[0 ,1]);
-			checkfield(md,'fieldname','trans.iscoupler','numel',[1],'values',[0 ,1]);
-			checkfield(md,'fieldname','trans.isslr','numel',[1],'values',[0 ,1]);
+			checkfield(md,'fieldname','trans.ishydrology','numel',[1],'values',[0, 1]);
+			checkfield(md,'fieldname','trans.isslr','numel',[1],'values',[0, 1]);
+			checkfield(md,'fieldname','trans.isoceancoupling','numel',[1],'values',[0, 1]);
+			checkfield(md,'fieldname','trans.iscoupler','numel',[1],'values',[0, 1]);
 			checkfield(md,'fieldname','trans.amr_frequency','numel',[1],'>=',0,'NaN',1,'Inf',1);
 			checkfield(md,'fieldname','trans.requested_outputs','stringrow',1);
@@ -85,4 +88,5 @@
 			WriteData(fid,prefix,'object',this,'fieldname','ismovingfront','format','Boolean');
 			WriteData(fid,prefix,'object',this,'fieldname','isslr','format','Boolean');
+			WriteData(fid,prefix,'object',this,'fieldname','isoceancoupling','format','Boolean');
 			WriteData(fid,prefix,'object',this,'fieldname','iscoupler','format','Boolean');
 			WriteData(fid,prefix,'object',this,'fieldname','amr_frequency','format','Integer');
@@ -119,6 +123,7 @@
 	this.ishydrology       = 0;
 	this.isslr             = 0;
+	this.isoceancoupling   = 0;
 	this.iscoupler         = 0;
-	this.amr_frequency	  = 0;
+	this.amr_frequency	   = 0;
 	this.requested_outputs = [];
 
