Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 24948)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 24949)
@@ -6132,13 +6132,11 @@
 	}
 
-	/*From Sg, recover water sea level rise:*/
-	S=0; for(int i=0;i<NUMVERTICES;i++) S+=Sg[this->vertices[i]->Sid()]/NUMVERTICES;
-
-	/*Compute ice thickness change: */
-	Input2* deltathickness_input=this->GetInput2(SealevelriseDeltathicknessEnum);
-	if (!deltathickness_input)_error_("delta thickness input needed to compute sea level rise!");
-	deltathickness_input->GetInputAverage(&I);
-
 	if (masks->isiceonly[this->lid]){
+
+		/*Compute ice thickness change: */
+		Input2* deltathickness_input=this->GetInput2(SealevelriseDeltathicknessEnum);
+		if (!deltathickness_input)_error_("delta thickness input needed to compute sea level rise!");
+		deltathickness_input->GetInputAverage(&I);
+
 		for(int i=0;i<gsize;i++){
 			Up[i]+=rho_ice*I*GU[i];
@@ -6150,4 +6148,7 @@
 	}
 	else if(masks->isoceanin[this->lid]){
+		/*From Sg, recover water sea level rise:*/
+		S=0; for(int i=0;i<NUMVERTICES;i++) S+=Sg[this->vertices[i]->Sid()]/NUMVERTICES;
+
 		for(int i=0;i<gsize;i++){
 			Up[i]+=rho_water*S*GU[i];
Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 24948)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 24949)
@@ -4778,7 +4778,8 @@
 }
 /*}}}*/
-void FemModel::SealevelriseRotationalFeedback(Vector<IssmDouble>* pRSLgo_rot, Vector<IssmDouble>* pRSLg_old, IssmDouble* pIxz, IssmDouble* pIyz, IssmDouble* pIzz,  SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius){/*{{{*/
+void FemModel::SealevelriseRotationalFeedback(Vector<IssmDouble>* pRSLgo_rot, Vector<IssmDouble>* pRSLg_old, IssmDouble* pIxz, IssmDouble* pIyz, IssmDouble* pIzz,  SealevelMasks* masks){/*{{{*/
 
 	/*serialized vectors:*/
+	bool spherical=true;
 	IssmDouble* RSLg_old=NULL;
 	IssmDouble	tide_love_h, tide_love_k, fluid_love, moi_e, moi_p, omega, g;
@@ -4786,4 +4787,7 @@
 	IssmDouble	m1, m2, m3;
 	IssmDouble	lati, longi, radi, value;
+	IssmDouble          *latitude    = NULL;
+	IssmDouble          *longitude    = NULL;
+	IssmDouble          *radius    = NULL;
 
 	/*Serialize vectors from previous iteration:*/
@@ -4820,4 +4824,7 @@
 	m2 = 1/(1-tide_love_k/fluid_love) * (1+load_love_k2)/(moi_p-moi_e) * moi_list[1];
 	m3 = -(1+load_love_k2)/moi_p * moi_list[2];	// term associated with fluid number (3-order-of-magnitude smaller) is negelected
+
+	/*recover lat,long and radius vectors from vertices: */
+	VertexCoordinatesx(&latitude,&longitude,&radius,this->vertices,spherical); 
 
 	/* Green's function (1+k_2-h_2/g): checked against Glenn Milne's thesis Chapter 3 (eqs: 3.3-4, 3.10-11)
@@ -4848,4 +4855,7 @@
 	if(pIyz)*pIyz=moi_list[1];
 	if(pIzz)*pIzz=moi_list[2];
+	xDelete<IssmDouble>(latitude);
+	xDelete<IssmDouble>(longitude);
+	xDelete<IssmDouble>(radius);
 
 	/*Free ressources:*/
Index: /issm/trunk-jpl/src/c/classes/FemModel.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.h	(revision 24948)
+++ /issm/trunk-jpl/src/c/classes/FemModel.h	(revision 24949)
@@ -166,5 +166,5 @@
 		void SealevelriseGeometry(IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz);
 		void SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old,  SealevelMasks* masks,bool verboseconvolution);
-		void SealevelriseRotationalFeedback(Vector<IssmDouble>* pRSLgo_rot, Vector<IssmDouble>* pRSLg_old, IssmDouble* pIxz, IssmDouble* pIyz, IssmDouble* pIzz, SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius);
+		void SealevelriseRotationalFeedback(Vector<IssmDouble>* pRSLgo_rot, Vector<IssmDouble>* pRSLg_old, IssmDouble* pIxz, IssmDouble* pIyz, IssmDouble* pIzz, SealevelMasks* masks);
 		void SealevelriseElastic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg_old, SealevelMasks* masks);
 		IssmDouble SealevelriseOceanAverage(Vector<IssmDouble>* Sg,SealevelMasks* masks, IssmDouble oceanarea);
Index: /issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 24948)
+++ /issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 24949)
@@ -422,5 +422,4 @@
 	bool save_results;
 	int  gsize;
-	bool spherical=true;
 	bool converged=true;
 	bool rotation=true;
@@ -429,7 +428,4 @@
 	IssmDouble           eps_rel;
 	IssmDouble           eps_abs;
-	IssmDouble          *latitude    = NULL;
-	IssmDouble          *longitude    = NULL;
-	IssmDouble          *radius    = NULL;
 	IssmDouble           eustatic;
 	IssmDouble			Ixz, Iyz, Izz; 
@@ -445,7 +441,4 @@
 	femmodel->parameters->FindParam(&rotation,SealevelriseRotationEnum);
 
-	/*first, recover lat,long and radius vectors from vertices: */
-	VertexCoordinatesx(&latitude,&longitude,&radius,femmodel->vertices,spherical); 
-
 	/*Figure out size of g-set deflection vector and allocate solution vector: */
 	gsize = femmodel->nodes->NumberOfDofs(GsetEnum);
@@ -482,5 +475,5 @@
 			/*call rotational feedback  module: */
 			RSLgo_rot = new Vector<IssmDouble>(gsize); RSLgo_rot->Assemble();
-			femmodel->SealevelriseRotationalFeedback(RSLgo_rot,RSLg_old,&Ixz,&Iyz,&Izz, masks, latitude,longitude,radius); 
+			femmodel->SealevelriseRotationalFeedback(RSLgo_rot,RSLg_old,&Ixz,&Iyz,&Izz, masks); 
 			RSLgo_rot->Assemble(); 
 
@@ -524,7 +517,4 @@
 	if(VerboseConvergence()) _printf0_("\n              total number of iterations: " << count-1 << "\n");
 
-	xDelete<IssmDouble>(latitude);
-	xDelete<IssmDouble>(longitude);
-	xDelete<IssmDouble>(radius);
 	delete RSLg_old;
 
