Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 21810)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 21811)
@@ -843,4 +843,17 @@
 	this->parameters->FindParam(pvalues,psize,paramenum);
 }/*}}}*/
+IssmDouble Element::FloatingArea(IssmDouble* mask){/*{{{*/
+
+	/*Retrieve values of the mask defining the element: */
+	for(int i=0;i<this->GetNumberOfVertices();i++){
+		if(mask[this->vertices[i]->Sid()]<=0.){
+			return 0.;
+		}
+	}
+
+	/*Return: */
+	return this->FloatingArea();
+}
+/*}}}*/
 void       Element::GetDofList(int** pdoflist,int approximation_enum,int setenum){/*{{{*/
 
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 21810)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 21811)
@@ -81,4 +81,5 @@
 		void               FindParam(IssmDouble* pvalue,int paramenum);
 		void               FindParam(int** pvalues,int* psize,int paramenum);
+		IssmDouble         FloatingArea(IssmDouble* mask);
 		void	             GetDofList(int** pdoflist,int approximation_enum,int setenum);
 		void	             GetDofListPressure(int** pdoflist,int setenum);
Index: /issm/trunk-jpl/src/c/classes/Regionaloutput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Regionaloutput.h	(revision 21810)
+++ /issm/trunk-jpl/src/c/classes/Regionaloutput.h	(revision 21811)
@@ -115,4 +115,7 @@
 						val_t+=element->GroundedArea(this->mask);
 						break;
+					case FloatingAreaEnum:
+						val_t+=element->FloatingArea(this->mask);
+						break;
 					case IceMassEnum:
 						val_t+=element->IceMass(this->mask);
