Index: /issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 24981)
+++ /issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 24982)
@@ -73,4 +73,5 @@
 	/*variables:*/
 	Vector<IssmDouble> *RSLg    = NULL;
+	Vector<IssmDouble> *BPg    = NULL;
 	Vector<IssmDouble> *RSLg_rate    = NULL;
 	Vector<IssmDouble> *RSLg_eustatic  = NULL; 
@@ -95,6 +96,7 @@
 	int  horiz;
 	int  geodetic=0;
-	IssmDouble          dt;
-	IssmDouble          oceanarea;
+	IssmDouble dt;
+	IssmDouble oceanarea;
+	int        bp_compute_fingerprints=0;
 
 	/*Should we even be here?:*/
@@ -169,4 +171,11 @@
 		/*recover N_esa  = U_esa + RSLg:*/
 		N_esa=U_esa->Duplicate(); U_esa->Copy(N_esa); N_esa->AXPY(RSLg,1);
+
+		/*if we had bottom pressure loading, remove dynamic sea level from geoid: */
+		femmodel->parameters->FindParam(&bp_compute_fingerprints,DslComputeFingerprintsEnum);
+		if(bp_compute_fingerprints){
+			GetVectorFromInputsx(&BPg,femmodel,DslSeaWaterPressureChangeAtSeaFloor,VertexSIdEnum);
+			N_esa->AXPY(BPg,-1);
+		}
 
 		/*transform these values into rates (as we only run this once each frequency turn:*/
@@ -218,4 +227,5 @@
 	delete N_esa;
 	delete N_esa_rate;
+	delete BPg;
 
 	if(horiz){
@@ -343,4 +353,5 @@
 	Vector<IssmDouble> *RSLg    = NULL;
 	Vector<IssmDouble> *RSLg_old    = NULL;
+	Vector<IssmDouble> *BPg    = NULL;
 
 	Vector<IssmDouble> *RSLgo    = NULL; //ocean convolution of the perturbation to gravity potential.
@@ -360,4 +371,5 @@
 	IssmDouble           eustatic;
 	IssmDouble			Ixz, Iyz, Izz; 
+	int bp_compute_fingerprints= 0;
 	
 	if(VerboseSolution()) _printf0_("	  converging on ocean components\n");
@@ -425,4 +437,12 @@
 		/*convergence criterion:*/
 		slrconvergence(&converged,RSLg,RSLg_old,eps_rel,eps_abs);
+		
+		/*if we had bottom pressure loading, add dynamic sea level 
+		 * to RSL:*/
+		femmodel->parameters->FindParam(&bp_compute_fingerprints,DslComputeFingerprintsEnum);
+		if(bp_compute_fingerprints){
+			GetVectorFromInputsx(&BPg,femmodel,DslSeaWaterPressureChangeAtSeaFloor,VertexSIdEnum);
+			RSLg->AXPY(BPg,1);
+		}
 
 		/*free ressources: */
@@ -448,4 +468,5 @@
 
 	delete RSLg_old;
+	delete BPg;
 
 	return RSLg;
