Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/analyses/SealevelriseAnalysis.cpp
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/analyses/SealevelriseAnalysis.cpp	(revision 22247)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/analyses/SealevelriseAnalysis.cpp	(revision 22248)
@@ -62,4 +62,7 @@
 			element->InputUpdateFromConstant(0.0,SealevelNEsaRateEnum);
 			element->InputUpdateFromConstant(0.0,SealevelUEsaRateEnum);
+			element->InputUpdateFromConstant(0.0,SealevelRSLRateEnum);
+			element->InputUpdateFromConstant(0.0,SealevelEustaticMaskEnum);
+			element->InputUpdateFromConstant(0.0,SealevelEustaticOceanMaskEnum);
 			counter++;
 		}
Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/classes/Elements/Element.cpp	(revision 22247)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/classes/Elements/Element.cpp	(revision 22248)
@@ -1651,4 +1651,6 @@
 				name==SealevelRSLEnum || 
 				name==SealevelRSLRateEnum || 
+				name==SealevelEustaticMaskEnum || 
+				name==SealevelEustaticOceanMaskEnum || 
 				name==SealevelUGiaEnum || 
 				name==SealevelUGiaRateEnum || 
Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/classes/Elements/Tria.cpp	(revision 22247)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/classes/Elements/Tria.cpp	(revision 22248)
@@ -4020,4 +4020,7 @@
 	IssmDouble rho_ice,rho_water,rho_earth;
 
+	/*constants:*/
+	IssmDouble constant=0;
+
 	/*Initialize eustatic component: do not skip this step :):*/
 	IssmDouble eustatic = 0.;
@@ -4029,6 +4032,6 @@
 	
 	/*early return if we are not on an ice cap:*/
-	if(!(this->inputs->Max(MaskIceLevelsetEnum)<0)){
-		this->inputs->AddInput(new TriaInput(SealevelEustaticMaskEnum,0,P0Enum));
+	if(!(this->inputs->Max(MaskIceLevelsetEnum)<=0)){
+		constant=0; this->inputs->AddInput(new TriaInput(SealevelEustaticMaskEnum,&constant,P0Enum));
 		*peustatic=0; //do not forget to assign this pointer, otherwise, global eustatic will be garbage!
 		return;
@@ -4037,5 +4040,5 @@
 	/*early return if we are fully floating: */
 	if (this->inputs->Max(MaskGroundediceLevelsetEnum)<=0){
-		this->inputs->AddInput(new TriaInput(SealevelEustaticMaskEnum,0,P0Enum));
+		constant=0; this->inputs->AddInput(new TriaInput(SealevelEustaticMaskEnum,&constant,P0Enum));
 		*peustatic=0; //do not forget to assign this pointer, otherwise, global eustatic will be garbage!
 		return;
@@ -4048,5 +4051,5 @@
 		
 	/*Inform mask: */
-	this->inputs->AddInput(new TriaInput(SealevelEustaticMaskEnum,1,P0Enum));
+	constant=1; this->inputs->AddInput(new TriaInput(SealevelEustaticMaskEnum,&constant,P0Enum));
 
 	/*recover material parameters: */
@@ -4210,4 +4213,5 @@
 	IssmDouble minlong=400;
 	IssmDouble maxlong=-20;
+	IssmDouble constant=0;
 
 	/*precomputed elastic green functions:*/
@@ -4230,5 +4234,9 @@
 
 	/*early return if we are not on the ocean:*/
-	if (!IsWaterInElement())return;
+	if (!IsWaterInElement()){
+		constant=0; this->inputs->AddInput(new TriaInput(SealevelEustaticOceanMaskEnum,&constant,P0Enum));
+		return;
+	}
+	constant=1; this->inputs->AddInput(new TriaInput(SealevelEustaticOceanMaskEnum,&constant,P0Enum));
 
 	/*recover computational flags: */
Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumDefinitions.h	(revision 22247)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumDefinitions.h	(revision 22248)
@@ -796,4 +796,5 @@
 	SealevelRSLEustaticRateEnum,
 	SealevelEustaticMaskEnum,
+	SealevelEustaticOceanMaskEnum,
 	SealevelRSLEnum,
 	SealevelRSLRateEnum,
Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumToStringx.cpp	(revision 22247)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumToStringx.cpp	(revision 22248)
@@ -776,4 +776,5 @@
 		case SealevelRSLEustaticRateEnum : return "SealevelRSLEustaticRate";
 		case SealevelEustaticMaskEnum : return "SealevelEustaticMask";
+		case SealevelEustaticOceanMaskEnum : return "SealevelEustaticOceanMask";
 		case SealevelRSLEnum : return "SealevelRSL";
 		case SealevelRSLRateEnum : return "SealevelRSLRate";
Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/StringToEnumx.cpp	(revision 22247)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/StringToEnumx.cpp	(revision 22248)
@@ -794,4 +794,5 @@
 	      else if (strcmp(name,"SealevelRSLEustaticRate")==0) return SealevelRSLEustaticRateEnum;
 	      else if (strcmp(name,"SealevelEustaticMask")==0) return SealevelEustaticMaskEnum;
+	      else if (strcmp(name,"SealevelEustaticOceanMask")==0) return SealevelEustaticOceanMaskEnum;
 	      else if (strcmp(name,"SealevelRSL")==0) return SealevelRSLEnum;
 	      else if (strcmp(name,"SealevelRSLRate")==0) return SealevelRSLRateEnum;
@@ -874,9 +875,9 @@
 	      else if (strcmp(name,"Matestar")==0) return MatestarEnum;
 	      else if (strcmp(name,"Matpar")==0) return MatparEnum;
-	      else if (strcmp(name,"Node")==0) return NodeEnum;
          else stage=8;
    }
    if(stage==8){
-	      if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
+	      if (strcmp(name,"Node")==0) return NodeEnum;
+	      else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
 	      else if (strcmp(name,"Neumannflux")==0) return NeumannfluxEnum;
 	      else if (strcmp(name,"Param")==0) return ParamEnum;
@@ -997,9 +998,9 @@
 	      else if (strcmp(name,"FloatingArea")==0) return FloatingAreaEnum;
 	      else if (strcmp(name,"GroundedArea")==0) return GroundedAreaEnum;
-	      else if (strcmp(name,"IceMass")==0) return IceMassEnum;
          else stage=9;
    }
    if(stage==9){
-	      if (strcmp(name,"IceVolume")==0) return IceVolumeEnum;
+	      if (strcmp(name,"IceMass")==0) return IceMassEnum;
+	      else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum;
 	      else if (strcmp(name,"IceVolumeAboveFloatation")==0) return IceVolumeAboveFloatationEnum;
 	      else if (strcmp(name,"TotalFloatingBmb")==0) return TotalFloatingBmbEnum;
