Index: /issm/trunk-jpl/src/c/analyses/EsaAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/EsaAnalysis.cpp	(revision 24949)
+++ /issm/trunk-jpl/src/c/analyses/EsaAnalysis.cpp	(revision 24950)
@@ -59,5 +59,10 @@
 	/*some constant parameters: */
 	parameters->AddObject(iomodel->CopyConstantObject("md.esa.hemisphere",EsaHemisphereEnum));
-
+	parameters->AddObject(iomodel->CopyConstantObject("md.slr.eartharea",SealevelEarthAreaEnum));
+	parameters->AddObject(iomodel->CopyConstantObject("md.slr.rigid",SealevelriseRigidEnum));
+	parameters->AddObject(iomodel->CopyConstantObject("md.slr.horiz",SealevelriseHorizEnum));
+	parameters->AddObject(iomodel->CopyConstantObject("md.slr.elastic",SealevelriseElasticEnum));
+	parameters->AddObject(iomodel->CopyConstantObject("md.slr.rotation",SealevelriseRotationEnum));
+	
 	/*love numbers: */
 	iomodel->FetchData(&love_h,&nl,NULL,"md.esa.love_h");
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 24949)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 24950)
@@ -5336,5 +5336,5 @@
 
 	/*Get area of element: precomputed in the sealevelrise_core_geometry:*/
-	this->GetInput2Value(&area,AreaEnum);
+	area=GetAreaSpherical();
 
 	/*element centroid (spherical): */
@@ -6084,8 +6084,9 @@
 	S=0; for(int i=0;i<NUMVERTICES;i++) S+=Sg_old[this->vertices[i]->Sid()]/NUMVERTICES;
 
-	/*convert to SI: */
+	/*convert to kg/m^2: */
 	S=S*rho_water;
 
 	for(int i=0;i<gsize;i++) Sgo[i]+=G[i]*S;
+	//cblas_daxpy(gsize,S,&G[0],1,&Sgo[0],1); //for later.
 
 	return;
Index: /issm/trunk-jpl/src/c/cores/esa_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/esa_core.cpp	(revision 24949)
+++ /issm/trunk-jpl/src/c/cores/esa_core.cpp	(revision 24950)
@@ -72,4 +72,5 @@
 	if(isesa)femmodel->SetCurrentConfiguration(EsaAnalysisEnum);
 
+	if(VerboseSolution()) _printf0_("   computing elastic geodetic core\n");
 	if(isesa){
 
Index: /issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 24949)
+++ /issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 24950)
@@ -232,84 +232,4 @@
 } 
 /*}}}*/
-void steric_core(FemModel* femmodel){ /*{{{*/
-
-	/*variables:*/
-	Vector<IssmDouble> *bedrock  = NULL; 
-	Vector<IssmDouble> *SL  = NULL; 
-	Vector<IssmDouble> *steric_rate_g  = NULL; 
-	Vector<IssmDouble> *dynamic_rate_g = NULL;
-	Vector<IssmDouble> *hydro_rate_g  = NULL; 
-	Vector<IssmDouble> *U_esa_rate= NULL;
-	Vector<IssmDouble> *N_esa_rate= NULL;
-	Vector<IssmDouble> *U_gia_rate= NULL;
-	Vector<IssmDouble> *N_gia_rate= NULL;
-
-	/*parameters: */
-	bool isslr=0;
-	int  solution_type;
-	IssmDouble          dt;
-	int  geodetic=0;
-
-	/*Retrieve parameters:*/
-	femmodel->parameters->FindParam(&isslr,TransientIsslrEnum);
-	femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
-	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
-	femmodel->parameters->FindParam(&geodetic,SealevelriseGeodeticEnum); 
-
-	/*in case we are running SealevelriseSolutionEnum, then bypass transient settings:*/
-	if(solution_type==SealevelriseSolutionEnum)isslr=1;
-
-	/*Should we be here?:*/
-	if(!isslr)return;
-
-	/*Verbose: */
-	if(VerboseSolution()) _printf0_("	  computing steric sea level rise\n");
-
-	/*Retrieve geoid viscous and elastic rates, bedrock uplift viscous and elastic rates + steric rate, as vectors:*/
-	GetVectorFromInputsx(&bedrock,femmodel,BedEnum,VertexSIdEnum);
-	GetVectorFromInputsx(&SL,femmodel,SealevelEnum,VertexSIdEnum);
-	GetStericRate(&steric_rate_g,femmodel);
-	GetDynamicRate(&dynamic_rate_g,femmodel);
-	GetVectorFromInputsx(&hydro_rate_g,femmodel,SealevelriseHydroRateEnum,VertexSIdEnum);
-	if(geodetic){
-		GetVectorFromInputsx(&U_esa_rate,femmodel,SealevelUEsaRateEnum,VertexSIdEnum);
-		GetVectorFromInputsx(&U_gia_rate,femmodel,SealevelUGiaRateEnum,VertexSIdEnum);
-		GetVectorFromInputsx(&N_esa_rate,femmodel,SealevelNEsaRateEnum,VertexSIdEnum);
-		GetVectorFromInputsx(&N_gia_rate,femmodel,SealevelNGiaRateEnum,VertexSIdEnum);
-	}
-
-	/*compute: sea level change = initial sea level + (N_gia_rate+N_esa_rate)  * dt + steric_rate + dynamic_rate + hydro_rate* dt*/
-	if(geodetic){
-		SL->AXPY(N_gia_rate,dt);
-		SL->AXPY(N_esa_rate,dt);
-	}
-	SL->AXPY(steric_rate_g,dt);
-	SL->AXPY(dynamic_rate_g,dt);
-	SL->AXPY(hydro_rate_g,dt);
-
-	/*compute new bedrock position: */
-	if(geodetic){
-		bedrock->AXPY(U_esa_rate,dt);
-		bedrock->AXPY(U_gia_rate,dt);
-	}
-
-	/*update element inputs:*/
-	InputUpdateFromVectorx(femmodel,bedrock,BedEnum,VertexSIdEnum);	
-	InputUpdateFromVectorx(femmodel,SL,SealevelEnum,VertexSIdEnum);	
-
-	/*Free ressources:*/	
-	delete bedrock;
-	delete SL;
-	delete steric_rate_g;
-	delete dynamic_rate_g;
-	delete hydro_rate_g;
-	if(geodetic){
-		delete U_esa_rate;
-		delete U_gia_rate;
-		delete N_esa_rate;
-		delete N_gia_rate;
-	}
-}
-/*}}}*/
 SealevelMasks* sealevelrise_core_masks(FemModel* femmodel) {  /*{{{*/
 
@@ -321,5 +241,4 @@
 	/*go through elements and fill the masks: */
 	for (int i=0;i<femmodel->elements->Size();i++){
-
 		Element*   element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
 		element->SetSealevelMasks(masks);
@@ -699,4 +618,84 @@
 }
 /*}}}*/
+void steric_core(FemModel* femmodel){ /*{{{*/
+
+	/*variables:*/
+	Vector<IssmDouble> *bedrock  = NULL; 
+	Vector<IssmDouble> *SL  = NULL; 
+	Vector<IssmDouble> *steric_rate_g  = NULL; 
+	Vector<IssmDouble> *dynamic_rate_g = NULL;
+	Vector<IssmDouble> *hydro_rate_g  = NULL; 
+	Vector<IssmDouble> *U_esa_rate= NULL;
+	Vector<IssmDouble> *N_esa_rate= NULL;
+	Vector<IssmDouble> *U_gia_rate= NULL;
+	Vector<IssmDouble> *N_gia_rate= NULL;
+
+	/*parameters: */
+	bool isslr=0;
+	int  solution_type;
+	IssmDouble          dt;
+	int  geodetic=0;
+
+	/*Retrieve parameters:*/
+	femmodel->parameters->FindParam(&isslr,TransientIsslrEnum);
+	femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
+	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
+	femmodel->parameters->FindParam(&geodetic,SealevelriseGeodeticEnum); 
+
+	/*in case we are running SealevelriseSolutionEnum, then bypass transient settings:*/
+	if(solution_type==SealevelriseSolutionEnum)isslr=1;
+
+	/*Should we be here?:*/
+	if(!isslr)return;
+
+	/*Verbose: */
+	if(VerboseSolution()) _printf0_("	  computing steric sea level rise\n");
+
+	/*Retrieve geoid viscous and elastic rates, bedrock uplift viscous and elastic rates + steric rate, as vectors:*/
+	GetVectorFromInputsx(&bedrock,femmodel,BedEnum,VertexSIdEnum);
+	GetVectorFromInputsx(&SL,femmodel,SealevelEnum,VertexSIdEnum);
+	GetStericRate(&steric_rate_g,femmodel);
+	GetDynamicRate(&dynamic_rate_g,femmodel);
+	GetVectorFromInputsx(&hydro_rate_g,femmodel,SealevelriseHydroRateEnum,VertexSIdEnum);
+	if(geodetic){
+		GetVectorFromInputsx(&U_esa_rate,femmodel,SealevelUEsaRateEnum,VertexSIdEnum);
+		GetVectorFromInputsx(&U_gia_rate,femmodel,SealevelUGiaRateEnum,VertexSIdEnum);
+		GetVectorFromInputsx(&N_esa_rate,femmodel,SealevelNEsaRateEnum,VertexSIdEnum);
+		GetVectorFromInputsx(&N_gia_rate,femmodel,SealevelNGiaRateEnum,VertexSIdEnum);
+	}
+
+	/*compute: sea level change = initial sea level + (N_gia_rate+N_esa_rate)  * dt + steric_rate + dynamic_rate + hydro_rate* dt*/
+	if(geodetic){
+		SL->AXPY(N_gia_rate,dt);
+		SL->AXPY(N_esa_rate,dt);
+	}
+	SL->AXPY(steric_rate_g,dt);
+	SL->AXPY(dynamic_rate_g,dt);
+	SL->AXPY(hydro_rate_g,dt);
+
+	/*compute new bedrock position: */
+	if(geodetic){
+		bedrock->AXPY(U_esa_rate,dt);
+		bedrock->AXPY(U_gia_rate,dt);
+	}
+
+	/*update element inputs:*/
+	InputUpdateFromVectorx(femmodel,bedrock,BedEnum,VertexSIdEnum);	
+	InputUpdateFromVectorx(femmodel,SL,SealevelEnum,VertexSIdEnum);	
+
+	/*Free ressources:*/	
+	delete bedrock;
+	delete SL;
+	delete steric_rate_g;
+	delete dynamic_rate_g;
+	delete hydro_rate_g;
+	if(geodetic){
+		delete U_esa_rate;
+		delete U_gia_rate;
+		delete N_esa_rate;
+		delete N_gia_rate;
+	}
+}
+/*}}}*/
 
 /*support routines:*/
