Index: /issm/trunk-jpl/src/c/bamg/AdjacentTriangle.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/AdjacentTriangle.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/AdjacentTriangle.cpp	(revision 18064)
@@ -13,42 +13,34 @@
 
 	/*Methods*/
-	/*FUNCTION AdjacentTriangle::Locked {{{*/
-	int  AdjacentTriangle::Locked() const {
+	int  AdjacentTriangle::Locked() const {/*{{{*/
 		return t->AdjEdgeIndex[a] & 4;
 	}
 	/*}}}*/
-	/*FUNCTION AdjacentTriangle::GetAllFlag_UnSwap {{{*/
-	int  AdjacentTriangle::GetAllFlag_UnSwap() const {
+	int  AdjacentTriangle::GetAllFlag_UnSwap() const {/*{{{*/
 		// take all flag except MarkUnSwap
 		return t->AdjEdgeIndex[a] & 1012;
 	}
 	/*}}}*/
-	/*FUNCTION AdjacentTriangle::SetLock {{{*/
-	void AdjacentTriangle::SetLock(){
+	void AdjacentTriangle::SetLock(){/*{{{*/
 		t->SetLocked(a);
 	}
 	/*}}}*/
-	/*FUNCTION AdjacentTriangle::Adj {{{*/
-	AdjacentTriangle AdjacentTriangle::Adj() const {
+	AdjacentTriangle AdjacentTriangle::Adj() const {/*{{{*/
 		return  t->Adj(a);
 	}
 	/*}}}*/
-	/*FUNCTION AdjacentTriangle::EdgeVertex {{{*/
-	BamgVertex* AdjacentTriangle::EdgeVertex(const int & i) const {
+	BamgVertex* AdjacentTriangle::EdgeVertex(const int & i) const {/*{{{*/
 		return t->vertices[VerticesOfTriangularEdge[a][i]];
 	}
 	/*}}}*/
-	/*FUNCTION AdjacentTriangle::det {{{*/
-	Icoor2 & AdjacentTriangle::det() const {
+	Icoor2 & AdjacentTriangle::det() const {/*{{{*/
 		return t->det;
 	}
 	/*}}}*/
-	/*FUNCTION AdjacentTriangle::swap {{{*/
-	int AdjacentTriangle::swap(){
+	int AdjacentTriangle::swap(){/*{{{*/
 		return  t->swap(a);
 	}
 	/*}}}*/
-	/*FUNCTION AdjacentTriangle::SetAdj2 {{{*/
-	void AdjacentTriangle::SetAdj2(const AdjacentTriangle & ta, int l  ){
+	void AdjacentTriangle::SetAdj2(const AdjacentTriangle & ta, int l  ){/*{{{*/
 		//set Adjacent Triangle of a triangle
 		if(t) {
Index: /issm/trunk-jpl/src/c/bamg/BamgGeom.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/BamgGeom.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/BamgGeom.cpp	(revision 18064)
@@ -3,6 +3,5 @@
 
 /*Constructors/Destructors*/
-/*FUNCTION BamgGeom::BamgGeom(){{{*/
-BamgGeom::BamgGeom(){
+BamgGeom::BamgGeom(){/*{{{*/
 
 	this->VerticesSize[0]=0,          this->VerticesSize[1]=0;          this->Vertices=NULL;
@@ -17,6 +16,5 @@
 }
 /*}}}*/
-/*FUNCTION BamgGeom::~BamgGeom(){{{*/
-BamgGeom::~BamgGeom(){
+BamgGeom::~BamgGeom(){/*{{{*/
 
 	xDelete<double>(this->Vertices);
Index: /issm/trunk-jpl/src/c/bamg/BamgMesh.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/BamgMesh.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/BamgMesh.cpp	(revision 18064)
@@ -3,6 +3,5 @@
 
 /*Constructors/Destructors*/
-/*FUNCTION BamgMesh::BamgMesh(){{{*/
-BamgMesh::BamgMesh(){
+BamgMesh::BamgMesh(){/*{{{*/
 
 	this->VerticesSize[0]=0,                  this->VerticesSize[1]=0;                 this->Vertices=NULL;
@@ -28,6 +27,5 @@
 }
 /*}}}*/
-/*FUNCTION BamgMesh::~BamgMesh(){{{*/
-BamgMesh::~BamgMesh(){
+BamgMesh::~BamgMesh(){/*{{{*/
 
 	xDelete<double>(this->Vertices);
Index: /issm/trunk-jpl/src/c/bamg/BamgOpts.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/BamgOpts.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/BamgOpts.cpp	(revision 18064)
@@ -3,6 +3,5 @@
 
 /*Constructors/Destructors*/
-/*FUNCTION BamgOpts::BamgOpts() {{{*/
-BamgOpts::BamgOpts(){
+BamgOpts::BamgOpts(){/*{{{*/
 
 	this->anisomax=0;
@@ -39,6 +38,5 @@
 }
 /*}}}*/
-/*FUNCTION BamgOpts::~BamgOpts() {{{*/
-BamgOpts::~BamgOpts(){
+BamgOpts::~BamgOpts(){/*{{{*/
 
 	xDelete<double>(this->hminVertices);
@@ -53,6 +51,5 @@
 
 /*Methods*/
-/*FUNCTION BamgOpts::Check{{{*/
-void BamgOpts::Check(void){
+void BamgOpts::Check(void){/*{{{*/
 
 	int i;
Index: /issm/trunk-jpl/src/c/bamg/BamgQuadtree.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/BamgQuadtree.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/BamgQuadtree.cpp	(revision 18064)
@@ -98,6 +98,5 @@
 
 	/*Constructors/Destructors*/
-	/*FUNCTION BamgQuadtree::BamgQuadtree(){{{*/
-	BamgQuadtree::BamgQuadtree(){
+	BamgQuadtree::BamgQuadtree(){/*{{{*/
 
 		/*Number of boxes and vertices*/
@@ -113,6 +112,5 @@
 		}
 	/*}}}*/
-	/*FUNCTION BamgQuadtree::BamgQuadtree(Mesh * t,long nbv){{{*/
-	BamgQuadtree::BamgQuadtree(Mesh * t,long nbv){ 
+	BamgQuadtree::BamgQuadtree(Mesh * t,long nbv){ /*{{{*/
 
 		/*Number of boxes and vertices*/
@@ -135,6 +133,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION BamgQuadtree::~BamgQuadtree(){{{*/
-	BamgQuadtree::~BamgQuadtree() {
+	BamgQuadtree::~BamgQuadtree() {/*{{{*/
 		delete boxcontainer;
 		root=NULL;
@@ -143,6 +140,5 @@
 
 	/*Methods*/
-	/*FUNCTION BamgQuadtree::Add{{{*/
-	void  BamgQuadtree::Add(BamgVertex &w){
+	void  BamgQuadtree::Add(BamgVertex &w){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, BamgQuadtree.cpp/Add)*/
 		BamgQuadtreeBox** pb=NULL;
@@ -232,6 +228,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION BamgQuadtree::NearestVertex{{{*/
-	BamgVertex*  BamgQuadtree::NearestVertex(Icoor1 i,Icoor1 j) {
+	BamgVertex*  BamgQuadtree::NearestVertex(Icoor1 i,Icoor1 j) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, BamgQuadtree.cpp/NearestVertex)*/
 
@@ -391,6 +386,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION BamgQuadtree::NewBamgQuadtreeBox {{{*/
-	BamgQuadtree::BamgQuadtreeBox* BamgQuadtree::NewBamgQuadtreeBox(void){
+	BamgQuadtree::BamgQuadtreeBox* BamgQuadtree::NewBamgQuadtreeBox(void){/*{{{*/
 
 		/*Output*/
@@ -414,6 +408,5 @@
 		return newbox;
 	}/*}}}*/
-	/*FUNCTION BamgQuadtree::ToClose {{{*/
-	BamgVertex*   BamgQuadtree::ToClose(BamgVertex & v,double seuil,Icoor1 hx,Icoor1 hy){
+	BamgVertex*   BamgQuadtree::ToClose(BamgVertex & v,double seuil,Icoor1 hx,Icoor1 hy){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, BamgQuadtree.cpp/ToClose)*/
 
Index: /issm/trunk-jpl/src/c/bamg/BamgVertex.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/BamgVertex.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/BamgVertex.cpp	(revision 18064)
@@ -11,7 +11,5 @@
 
 	/*Methods*/
-	/*FUNCTION BamgVertex::Echo {{{*/
-
-	void BamgVertex::Echo(void){
+	void BamgVertex::Echo(void){/*{{{*/
 
 		_printf_("Vertex:\n");
@@ -24,11 +22,9 @@
 	}
 	/*}}}*/
-	/*FUNCTION BamgVertex::GetReferenceNumber{{{*/
-	int  BamgVertex::GetReferenceNumber() const { 
+	int  BamgVertex::GetReferenceNumber() const { /*{{{*/
 		return ReferenceNumber;
 	}
 	/*}}}*/
-	/*FUNCTION BamgVertex::MetricFromHessian{{{*/
-	void BamgVertex::MetricFromHessian(const double Hxx,const double Hyx, const double Hyy,const double smin,const double smax,const double s,double err,BamgOpts* bamgopts){
+	void BamgVertex::MetricFromHessian(const double Hxx,const double Hyx, const double Hyy,const double smin,const double smax,const double s,double err,BamgOpts* bamgopts){/*{{{*/
 		/*Compute Metric from Hessian*/
 
@@ -108,6 +104,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION BamgVertex::Optim {{{*/
-	long BamgVertex::Optim(int i,int koption){ 
+	long BamgVertex::Optim(int i,int koption){ /*{{{*/
 		long ret=0;
 		if ( t && (IndexInTriangle >= 0 ) && (IndexInTriangle <3) ){
@@ -121,6 +116,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION BamgVertex::Smoothing{{{*/
-	double  BamgVertex::Smoothing(Mesh &Th,const Mesh &BTh,Triangle* &tstart ,double omega){
+	double  BamgVertex::Smoothing(Mesh &Th,const Mesh &BTh,Triangle* &tstart ,double omega){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/Smoothing)*/
 
@@ -227,6 +221,5 @@
 
 	/*Intermediary*/
-	/*FUNCTION QuadQuality{{{*/
-	double QuadQuality(const BamgVertex & a,const BamgVertex &b,const BamgVertex &c,const BamgVertex &d) {
+	double QuadQuality(const BamgVertex & a,const BamgVertex &b,const BamgVertex &c,const BamgVertex &d) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, MeshQuad.cpp/QuadQuality)*/
 
Index: /issm/trunk-jpl/src/c/bamg/CrackedEdge.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/CrackedEdge.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/CrackedEdge.cpp	(revision 18064)
@@ -9,6 +9,5 @@
 
 	/*Constructors/Destructors*/
-	/*FUNCTION CrackedEdge() {{{*/
-	CrackedEdge::CrackedEdge() {
+	CrackedEdge::CrackedEdge() {/*{{{*/
 		a=NULL;
 		b=NULL;
Index: /issm/trunk-jpl/src/c/bamg/Curve.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/Curve.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/Curve.cpp	(revision 18064)
@@ -10,6 +10,5 @@
 
 	/*Constructors/Destructors*/
-	/*FUNCTION Curve::Curve(){{{*/
-	Curve::Curve(){
+	Curve::Curve(){/*{{{*/
 		FirstEdge=NULL;
 		LastEdge=NULL;
@@ -20,6 +19,5 @@
 
 	/*Methods*/
-	/*FUNCTION Curve::Set {{{*/
-	void Curve::Set(const Curve & rec,const Geometry & Gh ,Geometry & GhNew){
+	void Curve::Set(const Curve & rec,const Geometry & Gh ,Geometry & GhNew){/*{{{*/
 		*this = rec;
 		FirstEdge = GhNew.edges + Gh.GetId(FirstEdge);    
Index: /issm/trunk-jpl/src/c/bamg/Direction.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/Direction.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/Direction.cpp	(revision 18064)
@@ -9,11 +9,9 @@
 
 	/*Constructors/Destructors*/
-	/*FUNCTION Direction() {{{*/
-	Direction::Direction():
+	Direction::Direction():/*{{{*/
 		dir(MaxICoor){
 
 	}/*}}}*/
-	/*FUNCTION Direction(Icoor1 i,Icoor1 j) {{{*/
-	Direction::Direction(Icoor1 i,Icoor1 j) {
+	Direction::Direction(Icoor1 i,Icoor1 j) {/*{{{*/
 		Icoor2 n2 = 2*(Abs(i)+Abs(j));  
 		Icoor2 r  = MaxICoor* (Icoor2) i;
@@ -23,6 +21,5 @@
 
 	/*Methods*/
-	/*FUNCTION Direction::direction{{{*/
-	int Direction::direction(Icoor1 i,Icoor1 j) {
+	int Direction::direction(Icoor1 i,Icoor1 j) {/*{{{*/
 		int r =1; 
 		if (dir!= MaxICoor) {
Index: /issm/trunk-jpl/src/c/bamg/Edge.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/Edge.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/Edge.cpp	(revision 18064)
@@ -14,6 +14,5 @@
 
 	/*Methods*/
-	/*FUNCTION Edge::Set {{{*/
-	void Edge::Set(const Mesh & Th ,long i,Mesh & ThNew){ 
+	void Edge::Set(const Mesh & Th ,long i,Mesh & ThNew){ /*{{{*/
 		*this = Th.edges[i];
 		v[0] = ThNew.vertices + Th.GetId(v[0]);    
@@ -25,6 +24,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Edge::Echo {{{*/
-	void Edge::Echo(void){ 
+	void Edge::Echo(void){ /*{{{*/
 		_printf_("Edge:\n");
 		_printf_("   pointers towards two vertices: " << v[0] << " " << v[1] << "\n");
@@ -34,6 +32,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Edge::Renumbering{{{*/
-	void Edge::Renumbering(BamgVertex *vb,BamgVertex *ve, long *renu){
+	void Edge::Renumbering(BamgVertex *vb,BamgVertex *ve, long *renu){/*{{{*/
 
 		if (v[0] >=vb && v[0] <ve) v[0] = vb + renu[v[0]-vb];
@@ -42,6 +39,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Edge::Intersection{{{*/
-	int Edge::Intersection(const  Edge & e){ 
+	int Edge::Intersection(const  Edge & e){ /*{{{*/
 
 		/*some shecks*/
Index: /issm/trunk-jpl/src/c/bamg/EigenMetric.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/EigenMetric.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/EigenMetric.cpp	(revision 18064)
@@ -10,6 +10,5 @@
 
 	/*Constructor*/
-	/*FUNCTION EigenMetric::EigenMetric(const Metric M){{{*/
-	EigenMetric::EigenMetric(const Metric& M){
+	EigenMetric::EigenMetric(const Metric& M){/*{{{*/
 		/*From a metric (a11,a21,a22), get eigen values lambda1 and lambda2 and one eigen vector v*/
 
@@ -89,20 +88,16 @@
 	}
 	/*}}}*/
-	/*FUNCTION EigenMetric::EigenMetric(double r1,double r2,const D2 vp1){{{*/
-	EigenMetric::EigenMetric(double r1,double r2,const D2& vp1): lambda1(r1),lambda2(r2),v(vp1){
+	EigenMetric::EigenMetric(double r1,double r2,const D2& vp1): lambda1(r1),lambda2(r2),v(vp1){/*{{{*/
 
 	}/*}}}*/
 
 	/*Methods*/
-	/*FUNCTION EigenMetric::Abs{{{*/
-	void   EigenMetric::Abs(){
+	void   EigenMetric::Abs(){/*{{{*/
 		lambda1=bamg::Abs(lambda1),lambda2=bamg::Abs(lambda2);
 	}/*}}}*/
-	/*FUNCTION EigenMetric::Aniso2{{{*/
-	double EigenMetric::Aniso2() const  { 
+	double EigenMetric::Aniso2() const  { /*{{{*/
 		return lmax()/lmin();
 	}/*}}}*/
-	/*FUNCTION EigenMetric::Echo {{{*/
-	void EigenMetric::Echo(void){
+	void EigenMetric::Echo(void){/*{{{*/
 
 		_printf_("EigenMetric:\n");
@@ -115,40 +110,31 @@
 	}
 	/*}}}*/
-	/*FUNCTION EigenMetric::hmin{{{*/
-	double EigenMetric::hmin() const {
+	double EigenMetric::hmin() const {/*{{{*/
 		return sqrt(1/bamg::Max3(lambda1,lambda2,1e-30));
 	}/*}}}*/
-	/*FUNCTION EigenMetric::hmax{{{*/
-	double EigenMetric::hmax() const {
+	double EigenMetric::hmax() const {/*{{{*/
 		return sqrt(1/bamg::Max(bamg::Min(lambda1,lambda2),1e-30));
 	}/*}}}*/
-	/*FUNCTION EigenMetric::lmax{{{*/
-	double EigenMetric::lmax() const {
+	double EigenMetric::lmax() const {/*{{{*/
 		return bamg::Max3(lambda1,lambda2,1e-30);
 	}/*}}}*/
-	/*FUNCTION EigenMetric::lmin{{{*/
-	double EigenMetric::lmin() const {
+	double EigenMetric::lmin() const {/*{{{*/
 		return bamg::Max(bamg::Min(lambda1,lambda2),1e-30);
 	}/*}}}*/
-	/*FUNCTION EigenMetric::Min{{{*/
-	void   EigenMetric::Min(double a) { 
+	void   EigenMetric::Min(double a) { /*{{{*/
 		lambda1=bamg::Min(a,lambda1); lambda2=bamg::Min(a,lambda2) ;
 	}/*}}}*/
-	/*FUNCTION EigenMetric::Max{{{*/
-	void   EigenMetric::Max(double a) { 
+	void   EigenMetric::Max(double a) { /*{{{*/
 		//change eigen values
 		lambda1=bamg::Max(a,lambda1); lambda2=bamg::Max(a,lambda2) ;
 	}/*}}}*/
-	/*FUNCTION EigenMetric::Minh{{{*/
-	void   EigenMetric::Minh(double h) {
+	void   EigenMetric::Minh(double h) {/*{{{*/
 		Min(1.0/(h*h));
 	}/*}}}*/
-	/*FUNCTION EigenMetric::Maxh{{{*/
-	void   EigenMetric::Maxh(double h) {
+	void   EigenMetric::Maxh(double h) {/*{{{*/
 		//Call Max function
 		Max(1.0/(h*h));
 	}/*}}}*/
-	/*FUNCTION EigenMetric::pow{{{*/
-	void   EigenMetric::pow(double p){
+	void   EigenMetric::pow(double p){/*{{{*/
 		lambda1=::pow(lambda1,p);lambda2=::pow(lambda2,p);
 	}/*}}}*/
Index: /issm/trunk-jpl/src/c/bamg/GeomEdge.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/GeomEdge.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/GeomEdge.cpp	(revision 18064)
@@ -15,10 +15,8 @@
 
 	/*Methods*/
-	/*FUNCTION GeomEdge::Cracked{{{*/
-	int    GeomEdge::Cracked() const  {
+	int    GeomEdge::Cracked() const  {/*{{{*/
 		return type &1;  
 	}/*}}}*/
-	/*FUNCTION GeomEdge::F{{{*/
-	R2 GeomEdge::F(double theta) const{
+	R2 GeomEdge::F(double theta) const{/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, MeshGeom.cpp/F)*/
 		// parametrization of the curve edge
@@ -62,10 +60,8 @@
 	  }
 	/*}}}*/
-	/*FUNCTION GeomEdge::Mark{{{*/
-	int    GeomEdge::Mark()    const  {
+	int    GeomEdge::Mark()    const  {/*{{{*/
 		return type &16; 
 	}/*}}}*/
-	/*FUNCTION GeomEdge::R1tg{{{*/
-	double GeomEdge::R1tg(double theta,R2 & t) const{
+	double GeomEdge::R1tg(double theta,R2 & t) const{/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, MeshGeom.cpp/R1tg)*/
 		// 1/R of radius of cuvature
@@ -138,10 +134,8 @@
 	}
 	/*}}}*/
-	/*FUNCTION GeomEdge::Required{{{*/
-	int    GeomEdge::Required()       {
+	int    GeomEdge::Required()       {/*{{{*/
 		return type &64; 
 	}/*}}}*/
-	/*FUNCTION GeomEdge::Set {{{*/
-	void GeomEdge::Set(const GeomEdge & rec,const Geometry & Gh ,Geometry & GhNew){ 
+	void GeomEdge::Set(const GeomEdge & rec,const Geometry & Gh ,Geometry & GhNew){ /*{{{*/
 		*this = rec;
 		v[0] = GhNew.vertices + Gh.GetId(v[0]);    
@@ -151,34 +145,26 @@
 	}
 	/*}}}*/
-	/*FUNCTION GeomEdge::SetCracked{{{*/
-	void   GeomEdge::SetCracked()     { 
+	void   GeomEdge::SetCracked()     { /*{{{*/
 		type |= 1;/*=>1st digit to 1*/
 	}/*}}}*/
-	/*FUNCTION GeomEdge::SetTgA{{{*/
-	void   GeomEdge::SetTgA()         { 
+	void   GeomEdge::SetTgA()         { /*{{{*/
 		type |=4; /*=>2d digit to 1*/
 	}/*}}}*/
-	/*FUNCTION GeomEdge::SetTgB{{{*/
-	void   GeomEdge::SetTgB()         { 
+	void   GeomEdge::SetTgB()         { /*{{{*/
 		type |=8; /*=> 3d digit to 1*/
 	}/*}}}*/
-	/*FUNCTION GeomEdge::SetMark{{{*/
-	void   GeomEdge::SetMark()        { 
+	void   GeomEdge::SetMark()        { /*{{{*/
 		type |=16;/*=> 4th digiy to 1*/
 	}/*}}}*/
-	/*FUNCTION GeomEdge::SetUnMark{{{*/
-	void   GeomEdge::SetUnMark()      { 
+	void   GeomEdge::SetUnMark()      { /*{{{*/
 		type &= 1007 /* 1023-16 = 000111110111 => 4th digit to 0*/;
 	}/*}}}*/
-	/*FUNCTION GeomEdge::SetRequired{{{*/
-	void   GeomEdge::SetRequired()    { 
+	void   GeomEdge::SetRequired()    { /*{{{*/
 		type |= 64;/*=>6th digit to 1*/ 
 	}/*}}}*/
-	/*FUNCTION GeomEdge::TgA{{{*/
-	int    GeomEdge::TgA()     const  {
+	int    GeomEdge::TgA()     const  {/*{{{*/
 		return type &4;  
 	}/*}}}*/
-	/*FUNCTION GeomEdge::TgB{{{*/
-	int    GeomEdge::TgB()     const  {
+	int    GeomEdge::TgB()     const  {/*{{{*/
 		return type &8;  
 	}/*}}}*/
Index: /issm/trunk-jpl/src/c/bamg/GeomSubDomain.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/GeomSubDomain.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/GeomSubDomain.cpp	(revision 18064)
@@ -12,6 +12,5 @@
 
 	/*Methods*/
-	/*FUNCTION GeomSubDomain::Set {{{*/
-	void GeomSubDomain::Set(const GeomSubDomain & rec,const Geometry & Gh ,const Geometry & GhNew){
+	void GeomSubDomain::Set(const GeomSubDomain & rec,const Geometry & Gh ,const Geometry & GhNew){/*{{{*/
 		*this = rec;
 		edge = Gh.GetId(edge) + GhNew.edges;
Index: /issm/trunk-jpl/src/c/bamg/GeomVertex.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/GeomVertex.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/GeomVertex.cpp	(revision 18064)
@@ -13,22 +13,18 @@
 
 	/*Methods*/
-	/*FUNCTION GeomVertex::Corner {{{*/
-	int  GeomVertex::Corner() const {
+	int  GeomVertex::Corner() const {/*{{{*/
 		return type & 4;
 	}
 	/*}}}*/
-	/*FUNCTION GeomVertex::Required {{{*/
-	int  GeomVertex::Required()const {
+	int  GeomVertex::Required()const {/*{{{*/
 		// a corner is required
 		return type & 6;
 	}
 	/*}}}*/
-	/*FUNCTION GeomVertex::SetCorner {{{*/
-	void GeomVertex::SetCorner(){
+	void GeomVertex::SetCorner(){/*{{{*/
 		type |= 4;
 	}
 	/*}}}*/
-	/*FUNCTION GeomVertex::SetRequired {{{*/
-	void GeomVertex::SetRequired(){
+	void GeomVertex::SetRequired(){/*{{{*/
 		type |= 2;
 	}
Index: /issm/trunk-jpl/src/c/bamg/Geometry.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/Geometry.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/Geometry.cpp	(revision 18064)
@@ -12,11 +12,9 @@
 
 	/*Constructors/Destructors*/
-	/*FUNCTION Geometry::Geometry(){{{*/
-	Geometry::Geometry(){
+	Geometry::Geometry(){/*{{{*/
 		Init();
 	}
 	/*}}}*/
-	/*FUNCTION Geometry::Geometry(BamgGeom* bamggeom, BamgOpts* bamgopts){{{*/
-	Geometry::Geometry(BamgGeom* bamggeom, BamgOpts* bamgopts){
+	Geometry::Geometry(BamgGeom* bamggeom, BamgOpts* bamgopts){/*{{{*/
 		Init();
 		ReadGeometry(bamggeom,bamgopts);
@@ -24,6 +22,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Geometry::Geometry(const Geometry & Gh) (COPY operator){{{*/
-	Geometry::Geometry(const Geometry & Gh) {
+	Geometry::Geometry(const Geometry & Gh) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, MeshGeom.cpp/Geometry)*/
 
@@ -44,6 +41,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Geometry::~Geometry(){{{*/
-	Geometry::~Geometry() {
+	Geometry::~Geometry() {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, MeshGeom.cpp/~Geometry)*/
 		if(NbRef>0){   _printf_("Trying to delete geometry and NbRef>0, probably due to an error"); return;}
@@ -58,6 +54,5 @@
 
 	/*IO*/
-	/*FUNCTION Geometry::ReadGeometry{{{*/
-	void Geometry::ReadGeometry(BamgGeom* bamggeom,BamgOpts* bamgopts){
+	void Geometry::ReadGeometry(BamgGeom* bamggeom,BamgOpts* bamgopts){/*{{{*/
 
 		int verbose;
@@ -277,6 +272,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Geometry::WriteGeometry{{{*/
-	void Geometry::WriteGeometry(BamgGeom* bamggeom, BamgOpts* bamgopts){
+	void Geometry::WriteGeometry(BamgGeom* bamggeom, BamgOpts* bamgopts){/*{{{*/
 
 		int verbose;
@@ -394,6 +388,5 @@
 
 	/*Methods*/
-	/*FUNCTION Geometry::Echo {{{*/
-	void Geometry::Echo(void){
+	void Geometry::Echo(void){/*{{{*/
 
 		_printf_("Geometry:\n");
@@ -415,6 +408,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Geometry::Init{{{*/
-	void Geometry::Init(void){
+	void Geometry::Init(void){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, MeshGeom.cpp/EmptyGeometry)*/
 
@@ -432,6 +424,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Geometry::MinimalHmin{{{*/
-	double Geometry::MinimalHmin() {
+	double Geometry::MinimalHmin() {/*{{{*/
 		/* coeffIcoor = (2^30-1)/D
 		 * We cannot go beyond hmin = D/2^30 because of the quadtree
@@ -439,30 +430,23 @@
 		return 2.0/coefIcoor;
 	}/*}}}*/
-	/*FUNCTION Geometry::MaximalHmax{{{*/
-	double Geometry::MaximalHmax() {
+	double Geometry::MaximalHmax() {/*{{{*/
 		return Max(pmax.x-pmin.x,pmax.y-pmin.y);
 	}/*}}}*/
-	/*FUNCTION Geometry::GetId(const GeomVertex &t){{{*/
-	long Geometry::GetId(const GeomVertex & t) const  {
+	long Geometry::GetId(const GeomVertex & t) const  {/*{{{*/
 		return &t - vertices;
 	}/*}}}*/
-	/*FUNCTION Geometry::GetId(const GeomVertex * t){{{*/
-	long Geometry::GetId(const GeomVertex * t) const  {
+	long Geometry::GetId(const GeomVertex * t) const  {/*{{{*/
 		return t - vertices;
 	}/*}}}*/
-	/*FUNCTION Geometry::GetId(const GeomEdge & t){{{*/
-	long Geometry::GetId(const GeomEdge & t) const  {
+	long Geometry::GetId(const GeomEdge & t) const  {/*{{{*/
 		return &t - edges;
 	}/*}}}*/
-	/*FUNCTION Geometry::GetId(const GeomEdge * t){{{*/
-	long Geometry::GetId(const GeomEdge * t) const  {
+	long Geometry::GetId(const GeomEdge * t) const  {/*{{{*/
 		return t - edges;
 	}/*}}}*/
-	/*FUNCTION Geometry::GetId(const Curve * c){{{*/
-	long Geometry::GetId(const Curve * c) const  {
+	long Geometry::GetId(const Curve * c) const  {/*{{{*/
 		return c - curves;
 	}/*}}}*/
-	/*FUNCTION Geometry::PostRead{{{*/
-	void Geometry::PostRead(){
+	void Geometry::PostRead(){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, MeshGeom.cpp/AfterRead)*/
 
@@ -785,6 +769,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Geometry::ProjectOnCurve {{{*/
-	GeomEdge* Geometry::ProjectOnCurve(const Edge &e,double s,BamgVertex &V,VertexOnGeom &GV) const {
+	GeomEdge* Geometry::ProjectOnCurve(const Edge &e,double s,BamgVertex &V,VertexOnGeom &GV) const {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, MeshGeom.cpp/ProjectOnCurve)*/
 		/*Add a vertex on an existing geometrical edge according to the metrics of the two vertices constituting the edge*/
@@ -918,6 +901,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Geometry::R2ToI2{{{*/
-	I2 Geometry::R2ToI2(const R2 & P) const {
+	I2 Geometry::R2ToI2(const R2 & P) const {/*{{{*/
 		/*coefIcoor is the coefficient used for integer coordinates:
 		 *                       (x-pmin.x)
@@ -931,6 +913,5 @@
 		return  I2( (Icoor1) (coefIcoor*(P.x-pmin.x)) ,(Icoor1) (coefIcoor*(P.y-pmin.y)) );
 	}/*}}}*/
-	/*FUNCTION Geometry::UnMarkEdges{{{*/
-	void Geometry::UnMarkEdges() {
+	void Geometry::UnMarkEdges() {/*{{{*/
 		for (int i=0;i<nbe;i++) edges[i].SetUnMark();
 	}/*}}}*/
Index: /issm/trunk-jpl/src/c/bamg/ListofIntersectionTriangles.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/ListofIntersectionTriangles.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/ListofIntersectionTriangles.cpp	(revision 18064)
@@ -11,12 +11,10 @@
 
 	/*Constructors Destructors*/
-	/*FUNCTION ListofIntersectionTriangles::ListofIntersectionTriangles{{{*/
-	ListofIntersectionTriangles::ListofIntersectionTriangles(int n,int m)
+	ListofIntersectionTriangles::ListofIntersectionTriangles(int n,int m)/*{{{*/
 	  : MaxSize(n), Size(0), len(-1),state(-1),lIntTria(new IntersectionTriangles[n]) ,
 	  NbSeg(0), MaxNbSeg(m), lSegsI(new SegInterpolation[m]){
 	  }
 	/*}}}*/
-	/*FUNCTION ListofIntersectionTriangles::~ListofIntersectionTriangles{{{*/
-	ListofIntersectionTriangles::~ListofIntersectionTriangles(){
+	ListofIntersectionTriangles::~ListofIntersectionTriangles(){/*{{{*/
 		if (lIntTria) delete [] lIntTria,lIntTria=0;
 		if (lSegsI) delete [] lSegsI,lSegsI=0;
@@ -25,6 +23,5 @@
 
 	/*Methods*/
-	/*FUNCTION ListofIntersectionTriangles::Init{{{*/
-	void ListofIntersectionTriangles::Init(void){
+	void ListofIntersectionTriangles::Init(void){/*{{{*/
 		state=0;
 		len=0;
@@ -32,6 +29,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION ListofIntersectionTriangles::Length{{{*/
-	double  ListofIntersectionTriangles::Length(){
+	double  ListofIntersectionTriangles::Length(){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/Length)*/
 
@@ -79,6 +75,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION ListofIntersectionTriangles::NewItem(Triangle * tt,double d0,double d1,double d2) {{{*/
-	int  ListofIntersectionTriangles::NewItem(Triangle * tt,double d0,double d1,double d2) { 
+	int  ListofIntersectionTriangles::NewItem(Triangle * tt,double d0,double d1,double d2) { /*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/NewItem)*/
 
@@ -107,6 +102,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION ListofIntersectionTriangles::NewItem(R2 A,const Metric & mm){{{*/
-	int ListofIntersectionTriangles::NewItem(R2 A,const Metric & mm) {
+	int ListofIntersectionTriangles::NewItem(R2 A,const Metric & mm) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/NewItem)*/
 
@@ -123,6 +117,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION ListofIntersectionTriangles::NewPoints{{{*/
-	long ListofIntersectionTriangles::NewPoints(BamgVertex* vertices,long &nbv,long maxnbv){
+	long ListofIntersectionTriangles::NewPoints(BamgVertex* vertices,long &nbv,long maxnbv){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/NewPoints)*/
 
@@ -180,6 +173,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION ListofIntersectionTriangles::ReShape{{{*/
-	void ListofIntersectionTriangles::ReShape(){ 
+	void ListofIntersectionTriangles::ReShape(){ /*{{{*/
 
 		int newsize = MaxSize*2;
@@ -196,6 +188,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION ListofIntersectionTriangles::SplitEdge{{{*/
-	void ListofIntersectionTriangles::SplitEdge(const Mesh & Bh, const R2 &A,const R2  &B,int nbegin) {
+	void ListofIntersectionTriangles::SplitEdge(const Mesh & Bh, const R2 &A,const R2  &B,int nbegin) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/ListofIntersectionTriangles)*/
 
Index: /issm/trunk-jpl/src/c/bamg/Mesh.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/Mesh.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/Mesh.cpp	(revision 18064)
@@ -13,6 +13,5 @@
 
 	/*Constructors/Destructors*/
-	/*FUNCTION Mesh::Mesh(BamgGeom* bamggeom,BamgMesh* bamgmesh, BamgOpts* bamgopts){{{*/
-	Mesh::Mesh(BamgGeom* bamggeom,BamgMesh* bamgmesh, BamgOpts* bamgopts):Gh(*(new Geometry())),BTh(*this){ 
+	Mesh::Mesh(BamgGeom* bamggeom,BamgMesh* bamgmesh, BamgOpts* bamgopts):Gh(*(new Geometry())),BTh(*this){ /*{{{*/
 
 		/*Initialize fields*/
@@ -43,6 +42,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::Mesh(int* index,double* x,double* y,int nods,int nels){{{*/
-	Mesh::Mesh(int* index,double* x,double* y,int nods,int nels):Gh(*(new Geometry())),BTh(*this){
+	Mesh::Mesh(int* index,double* x,double* y,int nods,int nels):Gh(*(new Geometry())),BTh(*this){/*{{{*/
 
 		Init(0);
@@ -52,11 +50,9 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::Mesh(double* x,double* y,int nods){{{*/
-	Mesh::Mesh(double* x,double* y,int nods):Gh(*(new Geometry())),BTh(*this){
+	Mesh::Mesh(double* x,double* y,int nods):Gh(*(new Geometry())),BTh(*this){/*{{{*/
 		Triangulate(x,y,nods);
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::Mesh(const Mesh & Tho,const int *flag ,const int *bb){{{*/
-	Mesh::Mesh(const Mesh & Tho,const int *flag ,const int *bb,BamgOpts* bamgopts) : Gh(*(new Geometry())), BTh(*this) {
+	Mesh::Mesh(const Mesh & Tho,const int *flag ,const int *bb,BamgOpts* bamgopts) : Gh(*(new Geometry())), BTh(*this) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/Triangles)*/
 
@@ -156,6 +152,5 @@
 	  }
 	/*}}}*/
-	/*FUNCTION Mesh::Mesh(Mesh & Th,Geometry * pGh,Mesh * pBth,long maxnbv_in) COPY{{{*/
-	Mesh::Mesh(Mesh & Th,Geometry * pGh,Mesh * pBth,long maxnbv_in)
+	Mesh::Mesh(Mesh & Th,Geometry * pGh,Mesh * pBth,long maxnbv_in)/*{{{*/
 	  : Gh(*(pGh?pGh:&Th.Gh)), BTh(*(pBth?pBth:this)) {
 		  /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/Triangles)*/
@@ -219,18 +214,15 @@
 	  }
 	/*}}}*/
-	/*FUNCTION Mesh::Mesh(long maxnbv,Mesh & BT,BamgOpts* bamgopts,int keepBackVertices){{{*/
-	Mesh::Mesh(long imaxnbv,Mesh & BT,BamgOpts* bamgopts,int keepBackVertices) :Gh(BT.Gh),BTh(BT) {
+	Mesh::Mesh(long imaxnbv,Mesh & BT,BamgOpts* bamgopts,int keepBackVertices) :Gh(BT.Gh),BTh(BT) {/*{{{*/
 		this->Init(imaxnbv);
 		TriangulateFromGeom1(bamgopts,keepBackVertices);
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::Mesh(long maxnbv,Geometry & G,BamgOpts* bamgopts){{{*/
-	Mesh::Mesh(long imaxnbv,Geometry & G,BamgOpts* bamgopts):Gh(G),BTh(*this){
+	Mesh::Mesh(long imaxnbv,Geometry & G,BamgOpts* bamgopts):Gh(G),BTh(*this){/*{{{*/
 		Init(imaxnbv);
 		TriangulateFromGeom0(bamgopts);
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::~Mesh(){{{*/
-	Mesh::~Mesh() {
+	Mesh::~Mesh() {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/Triangles)*/
 
@@ -259,6 +251,5 @@
 
 	/*IO*/
-	/*FUNCTION Mesh::ReadMesh(int* index,double* x,double* y,int nods,int nels){{{*/
-	void Mesh::ReadMesh(int* index,double* x,double* y,int nods,int nels){
+	void Mesh::ReadMesh(int* index,double* x,double* y,int nods,int nels){/*{{{*/
 
 		long i1,i2,i3;
@@ -322,6 +313,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::ReadMesh(BamgMesh* bamgmesh, BamgOpts* bamgopts){{{*/
-	void Mesh::ReadMesh(BamgMesh* bamgmesh, BamgOpts* bamgopts){
+	void Mesh::ReadMesh(BamgMesh* bamgmesh, BamgOpts* bamgopts){/*{{{*/
 
 		int    verbose;
@@ -525,6 +515,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::WriteMesh {{{*/
-	void Mesh::WriteMesh(BamgMesh* bamgmesh,BamgOpts* bamgopts){
+	void Mesh::WriteMesh(BamgMesh* bamgmesh,BamgOpts* bamgopts){/*{{{*/
 
 		/*Intermediary*/
@@ -952,6 +941,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::ReadMetric{{{*/
-	void Mesh::ReadMetric(const BamgOpts* bamgopts) {
+	void Mesh::ReadMetric(const BamgOpts* bamgopts) {/*{{{*/
 
 		/*Intermediary*/
@@ -990,6 +978,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::WriteMetric{{{*/
-	void Mesh::WriteMetric(BamgOpts* bamgopts) {
+	void Mesh::WriteMetric(BamgOpts* bamgopts) {/*{{{*/
 		int i;
 		xDelete<double>(bamgopts->metric);
@@ -1002,6 +989,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::WriteIndex{{{*/
-	void Mesh::WriteIndex(int** pindex,int* pnels){
+	void Mesh::WriteIndex(int** pindex,int* pnels){/*{{{*/
 
 		/*Intermediary*/
@@ -1042,6 +1028,5 @@
 
 	/*Methods*/
-	/*FUNCTION Mesh::AddGeometryMetric{{{*/
-	void Mesh::AddGeometryMetric(BamgOpts* bamgopts){
+	void Mesh::AddGeometryMetric(BamgOpts* bamgopts){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Metric.cpp/IntersectGeomMetric)*/
 
@@ -1094,6 +1079,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::AddMetric{{{*/
-	void Mesh::AddMetric(BamgOpts* bamgopts){
+	void Mesh::AddMetric(BamgOpts* bamgopts){/*{{{*/
 		//  Hessiantype = 0 =>  H is computed using double L2 projection
 		//  Hessiantype = 1 =>  H is computed with green formula
@@ -1113,6 +1097,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::AddVertex{{{*/
-	void Mesh::AddVertex( BamgVertex &s,Triangle* t, Icoor2* det3) {
+	void Mesh::AddVertex( BamgVertex &s,Triangle* t, Icoor2* det3) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/Add)*/
 		// -------------------------------
@@ -1249,6 +1232,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::BoundAnisotropy{{{*/
-	void  Mesh::BoundAnisotropy(double anisomax,double hminaniso) {
+	void  Mesh::BoundAnisotropy(double anisomax,double hminaniso) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Metric.cpp/BoundAnisotropy)*/
 
@@ -1289,6 +1271,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::BuildGeometryFromMesh{{{*/
-	void Mesh::BuildGeometryFromMesh(BamgOpts* bamgopts){
+	void Mesh::BuildGeometryFromMesh(BamgOpts* bamgopts){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, MeshGeom.cpp/ConsGeometry)*/
 
@@ -1739,6 +1720,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::BuildMetric0 (double L2 projection){{{*/
-	void Mesh::BuildMetric0(BamgOpts* bamgopts){
+	void Mesh::BuildMetric0(BamgOpts* bamgopts){/*{{{*/
 
 		/*Options*/
@@ -1944,6 +1924,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::BuildMetric1 (Green formula){{{*/
-	void Mesh::BuildMetric1(BamgOpts* bamgopts){
+	void Mesh::BuildMetric1(BamgOpts* bamgopts){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Metric.cpp/IntersectConsMetric)*/
 
@@ -2237,6 +2216,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::CrackMesh{{{*/
-	void Mesh::CrackMesh(BamgOpts* bamgopts) {
+	void Mesh::CrackMesh(BamgOpts* bamgopts) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/CrackMesh)*/
 
@@ -2385,6 +2363,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::Echo{{{*/
-	void Mesh::Echo(void) {
+	void Mesh::Echo(void) {/*{{{*/
 
 		int i;
@@ -2409,49 +2386,47 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::ForceBoundary{{{*/
-		void Mesh::ForceBoundary() {
-			/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/ForceBoundary)*/
-
-			long int verbose=2;
-			int k=0;
-			int nbfe=0,nbswp=0,Nbswap=0;
-
-			//display
-			if (verbose > 2) _printf_("   ForceBoundary  nb of edge: " << nbe << "\n");
-
-			//check that there is no triangle with 0 determinant
-			for (int t = 0; t < nbt; t++){
-				if (!triangles[t].det) k++;
-			}
-			if (k!=0) {
-				_error_("there is " << k << " triangles of mes = 0");
-			}
-
-			//Force Edges
-			AdjacentTriangle ta(0,0);
-			for (int i = 0; i < nbe; i++){
-
-				//Force edge i
-				nbswp =  ForceEdge(edges[i][0],edges[i][1],ta);
-				if (nbswp<0) k++;
-				else Nbswap += nbswp;
-
-				if (nbswp) nbfe++;
-				if ( nbswp < 0 && k < 5){
-					_error_("Missing Edge " << i << ", v0=" << GetId(edges[i][0]) << ",v1=" << GetId(edges[i][1]));
-				}
-			}
-
-			if (k!=0) {
-				_error_("There are " << k << " lost edges, the boundary might be crossing");
-			}
-			for (int j=0;j<nbv;j++){
-				Nbswap +=  vertices[j].Optim(1,0);
-			}
-			if (verbose > 3) _printf_("      number of inforced edge = " << nbfe << ", number of swap= " << Nbswap << "\n"); 
-		}
-	/*}}}*/
-	/*FUNCTION Mesh::FindSubDomain{{{*/
-	void Mesh::FindSubDomain(int OutSide) {
+	void Mesh::ForceBoundary() {/*{{{*/
+		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/ForceBoundary)*/
+
+		long int verbose=2;
+		int k=0;
+		int nbfe=0,nbswp=0,Nbswap=0;
+
+		//display
+		if (verbose > 2) _printf_("   ForceBoundary  nb of edge: " << nbe << "\n");
+
+		//check that there is no triangle with 0 determinant
+		for (int t = 0; t < nbt; t++){
+			if (!triangles[t].det) k++;
+		}
+		if (k!=0) {
+			_error_("there is " << k << " triangles of mes = 0");
+		}
+
+		//Force Edges
+		AdjacentTriangle ta(0,0);
+		for (int i = 0; i < nbe; i++){
+
+			//Force edge i
+			nbswp =  ForceEdge(edges[i][0],edges[i][1],ta);
+			if (nbswp<0) k++;
+			else Nbswap += nbswp;
+
+			if (nbswp) nbfe++;
+			if ( nbswp < 0 && k < 5){
+				_error_("Missing Edge " << i << ", v0=" << GetId(edges[i][0]) << ",v1=" << GetId(edges[i][1]));
+			}
+		}
+
+		if (k!=0) {
+			_error_("There are " << k << " lost edges, the boundary might be crossing");
+		}
+		for (int j=0;j<nbv;j++){
+			Nbswap +=  vertices[j].Optim(1,0);
+		}
+		if (verbose > 3) _printf_("      number of inforced edge = " << nbfe << ", number of swap= " << Nbswap << "\n"); 
+	}
+	/*}}}*/
+	void Mesh::FindSubDomain(int OutSide) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/FindSubDomain)*/
 
@@ -2695,36 +2670,29 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::GetId(const Triangle & t) const{{{*/
-	long Mesh::GetId(const Triangle & t) const  { 
+	long Mesh::GetId(const Triangle & t) const  { /*{{{*/
 		return &t - triangles;
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::GetId(const Triangle * t) const{{{*/
-	long Mesh::GetId(const Triangle * t) const  { 
+	long Mesh::GetId(const Triangle * t) const  { /*{{{*/
 		return t - triangles;
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::GetId(const BamgVertex & t) const{{{*/
-	long Mesh::GetId(const BamgVertex & t) const  { 
+	long Mesh::GetId(const BamgVertex & t) const  { /*{{{*/
 		return &t - vertices;
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::GetId(const BamgVertex * t) const{{{*/
-	long Mesh::GetId(const BamgVertex * t) const  { 
+	long Mesh::GetId(const BamgVertex * t) const  { /*{{{*/
 		return t - vertices;
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::GetId(const Edge & t) const{{{*/
-	long Mesh::GetId(const Edge & t) const  { 
+	long Mesh::GetId(const Edge & t) const  { /*{{{*/
 		return &t - edges;
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::GetId(const Edge * t) const{{{*/
-	long Mesh::GetId(const Edge * t) const  { 
+	long Mesh::GetId(const Edge * t) const  { /*{{{*/
 		return t - edges;
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::Init{{{*/
-	void Mesh::Init(long maxnbv_in) {
+	void Mesh::Init(long maxnbv_in) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/PreInit)*/
 
@@ -2774,6 +2742,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::Insert{{{*/
-	void Mesh::Insert(bool random) {
+	void Mesh::Insert(bool random) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/Insert)*/
 
@@ -2907,6 +2874,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::InsertNewPoints{{{*/
-	long Mesh::InsertNewPoints(long nbvold,long & NbTSwap,bool random) {
+	long Mesh::InsertNewPoints(long nbvold,long & NbTSwap,bool random) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/InsertNewPoints)*/
 
@@ -2985,6 +2951,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::MakeGeomEdgeToEdge{{{*/
-	Edge** Mesh::MakeGeomEdgeToEdge() {
+	Edge** Mesh::MakeGeomEdgeToEdge() {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/MakeGeomEdgeToEdge)*/
 
@@ -3028,6 +2993,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::MakeQuadrangles{{{*/
-	void Mesh::MakeQuadrangles(double costheta){
+	void Mesh::MakeQuadrangles(double costheta){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/MakeQuadrangles)*/
 
@@ -3070,17 +3034,14 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::MakeBamgQuadtree{{{*/
-	void Mesh::MakeBamgQuadtree() {  
+	void Mesh::MakeBamgQuadtree() {  /*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/MakeBamgQuadtree)*/
 		if(!quadtree) quadtree = new BamgQuadtree(this);
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::MaxinalHmax{{{*/
-	double Mesh::MaximalHmax() {
+	double Mesh::MaximalHmax() {/*{{{*/
 		return Max(pmax.x-pmin.x,pmax.y-pmin.y);
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::MaxSubDivision{{{*/
-	void  Mesh::MaxSubDivision(double maxsubdiv) {
+	void  Mesh::MaxSubDivision(double maxsubdiv) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Metric.cpp/MaxSubDivision)*/
 
@@ -3135,6 +3096,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::MetricAt{{{*/
-	Metric Mesh::MetricAt(const R2 & A) const { 
+	Metric Mesh::MetricAt(const R2 & A) const { /*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/MetricAt)*/
 
@@ -3156,17 +3116,14 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::MininalHmin{{{*/
-	double Mesh::MinimalHmin() {
+	double Mesh::MinimalHmin() {/*{{{*/
 		return 2.0/coefIcoor;
 	}
 	/*}}}*/
-/*FUNCTION Mesh::NearestVertex{{{*/
-BamgVertex* Mesh::NearestVertex(Icoor1 i,Icoor1 j) {
-	/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/NearestVertex)*/
-	return  quadtree->NearestVertex(i,j); 
-} 
-/*}}}*/
-	/*FUNCTION Mesh::NewPoints{{{*/
-	void  Mesh::NewPoints(Mesh & Bh,BamgOpts* bamgopts,int KeepVertices){
+	BamgVertex* Mesh::NearestVertex(Icoor1 i,Icoor1 j) {/*{{{*/
+		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/NearestVertex)*/
+		return  quadtree->NearestVertex(i,j); 
+	} 
+	/*}}}*/
+	void  Mesh::NewPoints(Mesh & Bh,BamgOpts* bamgopts,int KeepVertices){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/NewPoints)*/
 
@@ -3249,6 +3206,6 @@
 					lIntTria.SplitEdge(Bh,A,B);
 					lIntTria.NewPoints(vertices,nbv,maxnbv);
-				  } // end loop for each edge 
-			  }// for triangle   
+				} // end loop for each edge 
+			}// for triangle   
 
 			if (!InsertNewPoints(nbvold,NbTSwap,bamgopts->random)) break;
@@ -3281,6 +3238,5 @@
 		for(i=0;i<nbv;i++) NbSwapf += vertices[i].Optim(0);
 	}/*}}}*/
-	/*FUNCTION Mesh::ProjectOnCurve{{{*/
-	GeomEdge*   Mesh::ProjectOnCurve( Edge & BhAB, BamgVertex &  vA, BamgVertex & vB,
+	GeomEdge*   Mesh::ProjectOnCurve( Edge & BhAB, BamgVertex &  vA, BamgVertex & vB,/*{{{*/
 				double theta,BamgVertex & R,VertexOnEdge &  BR,VertexOnGeom & GR) {
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, MeshQuad.cpp/ProjectOnCurve)*/
@@ -3343,5 +3299,5 @@
 		else{ // do the search by walking 
 			_error_("case not supported yet");
-		  }
+		}
 
 		// find the direction of walking with direction of edge and pA,PB;
@@ -3381,6 +3337,6 @@
 					BR = VertexOnEdge(&R,eee,thetab);
 					return  Gh.ProjectOnCurve(*eee,thetab,R,GR);
-				  }
-			  }
+				}
+			}
 			// we find the end 
 			if (v1 != pvB){
@@ -3402,321 +3358,319 @@
 					return  Gh.ProjectOnCurve(*eee,thetab,R,GR);
 				  }
-			  }
+			}
 			abscisse = lg*theta;
 
-		  }
+		}
 		_error_("Big bug...");
 		return 0; // just for the compiler 
 	}                  
 	/*}}}*/
-/*FUNCTION Mesh::ReconstructExistingMesh{{{*/
-void Mesh::ReconstructExistingMesh(){
-	/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/FillHoleInMesh)*/
-
-	/*This routine reconstruct an existing mesh to make it CONVEX:
-	 * -all the holes are filled
-	 * -concave boundaries are filled
-	 * A convex mesh is required for a lot of operations. This is why every mesh
-	 * goes through this process.
-	 * This routine also generates mesh properties such as adjencies,...
-	 */
-
-	/*Intermediary*/
-	int verbose=0;
-
-	// generation of the integer coordinate
-
-	// find extrema coordinates of vertices pmin,pmax
-	long i;
-	if(verbose>2) _printf_("      Reconstruct mesh of " << nbv << " vertices\n"); 
-
-	//initialize orderedvertices
-	_assert_(orderedvertices);
-	for (i=0;i<nbv;i++) orderedvertices[i]=0;
-
-	//Initialize nbsubdomains
-	nbsubdomains =0;
-
-	/* generation of triangles adjacency*/
-
-	//First add existing edges
-	long kk =0;
-	SetOfEdges4* edge4= new SetOfEdges4(nbt*3,nbv);
-	for (i=0;i<nbe;i++){
-		kk=kk+(i==edge4->SortAndAdd(GetId(edges[i][0]),GetId(edges[i][1])));
-	}
-	if (kk != nbe){ 
-		_error_("There are " << kk-nbe << " double edges in the mesh");
-	}
-
-	//Add edges of all triangles in existing mesh
-	long* st = new long[nbt*3];
-	for (i=0;i<nbt*3;i++) st[i]=-1;
-	for (i=0;i<nbt;i++){
-		for (int j=0;j<3;j++){
-
-			//Add current triangle edge to edge4
-			long k =edge4->SortAndAdd(GetId(triangles[i][VerticesOfTriangularEdge[j][0]]),GetId(triangles[i][VerticesOfTriangularEdge[j][1]]));
-
-			long invisible=triangles[i].Hidden(j);
-
-			//If the edge has not been added to st, add it
-			if(st[k]==-1) st[k]=3*i+j;
-
-			//If the edge already exists, add adjacency
-			else if(st[k]>=0) {
-				_assert_(!triangles[i].TriangleAdj(j));
-				_assert_(!triangles[st[k]/3].TriangleAdj((int) (st[k]%3)));
-
-				triangles[i].SetAdj2(j,triangles+st[k]/3,(int)(st[k]%3));
-				if (invisible) triangles[i].SetHidden(j);
-				if (k<nbe)     triangles[i].SetLocked(j);
-
-				//Make st[k] negative so that it will throw an error message if it is found again
-				st[k]=-2-st[k]; 
-			}
-
-			//An edge belongs to 2 triangles
-			else {
-				_error_("The edge (" << GetId(triangles[i][VerticesOfTriangularEdge[j][0]]) << " , " << GetId(triangles[i][VerticesOfTriangularEdge[j][1]]) << ") belongs to more than 2 triangles");
-			}
-		}
-	}
-
-	//Display info if required
-	if(verbose>5) {
-		_printf_("         info of Mesh:\n");
-		_printf_("            - number of vertices    = " << nbv << " \n"); 
-		_printf_("            - number of triangles   = " << nbt << " \n"); 
-		_printf_("            - number of given edges = " << nbe << " \n"); 
-		_printf_("            - number of all edges   = " << edge4->nb() << "\n"); 
-		_printf_("            - Euler number 1 - nb of holes = " << nbt-edge4->nb()+nbv << "\n"); 
-	}
-
-	//check the consistency of edge[].adj and the geometrical required vertex
-	long k=0;
-	for (i=0;i<edge4->nb();i++){
-		if (st[i]>=0){ // edge alone 
-			if (i<nbe){
-				long i0=edge4->i(i);
-				orderedvertices[i0] = vertices+i0;
-				long i1=edge4->j(i);
-				orderedvertices[i1] = vertices+i1;
-			}
-			else {
-				k=k+1;
-				if (k<10) {
-					//print only 10 edges
-					_printf_("Lost boundary edges " << i << " : " << edge4->i(i) << " " << edge4->j(i) << "\n");
-				}
-				else if (k==10){
-					_printf_("Other lost boundary edges not shown...\n");
-				}
-			}
-		}
-	}
-	if(k) {
-		_error_(k << " boundary edges (from the geometry) are not defined as mesh edges");
-	}
-
-	/* mesh generation with boundary points*/
-	long nbvb=0;
-	for (i=0;i<nbv;i++){ 
-		vertices[i].t=0;
-		vertices[i].IndexInTriangle=0;
-		if (orderedvertices[i]) orderedvertices[nbvb++]=orderedvertices[i];
-	}
-
-	Triangle* savetriangles=triangles;
-	long savenbt=nbt;
-	long savemaxnbt=maxnbt;
-	SubDomain* savesubdomains=subdomains;
-	subdomains=0;
-
-	long  Nbtriafillhole=2*nbvb;
-	Triangle* triafillhole=new Triangle[Nbtriafillhole];
-	triangles = triafillhole;
-
-	nbt=2;
-	maxnbt= Nbtriafillhole;
-
-	//Find a vertex that is not aligned with vertices 0 and 1
-	for (i=2;det(orderedvertices[0]->i,orderedvertices[1]->i,orderedvertices[i]->i)==0;) 
-	 if  (++i>=nbvb) {
-		 _error_("ReconstructExistingMesh: All the vertices are aligned");
-	 }
-	//Move this vertex (i) to the 2d position in orderedvertices
-	Exchange(orderedvertices[2], orderedvertices[i]);
-
-	/*Reconstruct mesh beginning with 2 triangles*/
-	BamgVertex *  v0=orderedvertices[0], *v1=orderedvertices[1];
-
-	triangles[0](0) = NULL; // Infinite vertex
-	triangles[0](1) = v0;
-	triangles[0](2) = v1;
-
-	triangles[1](0) = NULL;// Infinite vertex
-	triangles[1](2) = v0;
-	triangles[1](1) = v1;
-	const int e0 = OppositeEdge[0];
-	const int e1 = NextEdge[e0];
-	const int e2 = PreviousEdge[e0];
-	triangles[0].SetAdj2(e0, &triangles[1] ,e0);
-	triangles[0].SetAdj2(e1, &triangles[1] ,e2);
-	triangles[0].SetAdj2(e2, &triangles[1] ,e1);
-
-	triangles[0].det = -1;  // boundary triangles
-	triangles[1].det = -1;  // boundary triangles
-
-	triangles[0].SetSingleVertexToTriangleConnectivity();
-	triangles[1].SetSingleVertexToTriangleConnectivity();
-
-	triangles[0].link=&triangles[1];
-	triangles[1].link=&triangles[0];
-
-	if (!quadtree) delete quadtree; //ReInitialise;
-	quadtree = new BamgQuadtree(this,0);
-	quadtree->Add(*v0);
-	quadtree->Add(*v1);
-
-	// vertices are added one by one
-	long NbSwap=0;
-	for (int icount=2; icount<nbvb; icount++) {
-		BamgVertex *vi  = orderedvertices[icount];
-		Icoor2 det3[3];
-		Triangle *tcvi = TriangleFindFromCoord(vi->i,det3);
-		quadtree->Add(*vi); 
-		AddVertex(*vi,tcvi,det3);
-		NbSwap += vi->Optim(1,1);
-	}
-
-	//enforce the boundary 
-	AdjacentTriangle ta(0,0);
-	long nbloss = 0,knbe=0;
-	for ( i = 0; i < nbe; i++){
-		if (st[i] >=0){ //edge alone => on border
-			BamgVertex &a=edges[i][0], &b=edges[i][1];
-			if (a.t && b.t){
-				knbe++;
-				if (ForceEdge(a,b,ta)<0) nbloss++;
-			}
-		}
-	}
-	if(nbloss) {
-		_error_("we lost " << nbloss << " existing edges other " << knbe);
-	}
-
-	FindSubDomain(1);
-	// remove all the hole 
-	// remove all the good sub domain
-	long krm =0;
-	for (i=0;i<nbt;i++){
-		if (triangles[i].link){ // remove triangles
-			krm++;
+	void Mesh::ReconstructExistingMesh(){/*{{{*/
+		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/FillHoleInMesh)*/
+
+		/*This routine reconstruct an existing mesh to make it CONVEX:
+		 * -all the holes are filled
+		 * -concave boundaries are filled
+		 * A convex mesh is required for a lot of operations. This is why every mesh
+		 * goes through this process.
+		 * This routine also generates mesh properties such as adjencies,...
+		 */
+
+		/*Intermediary*/
+		int verbose=0;
+
+		// generation of the integer coordinate
+
+		// find extrema coordinates of vertices pmin,pmax
+		long i;
+		if(verbose>2) _printf_("      Reconstruct mesh of " << nbv << " vertices\n"); 
+
+		//initialize orderedvertices
+		_assert_(orderedvertices);
+		for (i=0;i<nbv;i++) orderedvertices[i]=0;
+
+		//Initialize nbsubdomains
+		nbsubdomains =0;
+
+		/* generation of triangles adjacency*/
+
+		//First add existing edges
+		long kk =0;
+		SetOfEdges4* edge4= new SetOfEdges4(nbt*3,nbv);
+		for (i=0;i<nbe;i++){
+			kk=kk+(i==edge4->SortAndAdd(GetId(edges[i][0]),GetId(edges[i][1])));
+		}
+		if (kk != nbe){ 
+			_error_("There are " << kk-nbe << " double edges in the mesh");
+		}
+
+		//Add edges of all triangles in existing mesh
+		long* st = new long[nbt*3];
+		for (i=0;i<nbt*3;i++) st[i]=-1;
+		for (i=0;i<nbt;i++){
 			for (int j=0;j<3;j++){
-				AdjacentTriangle ta =  triangles[i].Adj(j);
-				Triangle &tta = *(Triangle*)ta;
-				//if edge between remove and not remove 
-				if(! tta.link){ 
-					// change the link of ta;
-					int ja = ta;
-					BamgVertex *v0= ta.EdgeVertex(0);
-					BamgVertex *v1= ta.EdgeVertex(1);
-					long k =edge4->SortAndAdd(v0?GetId(v0):nbv,v1? GetId(v1):nbv);
-
-					_assert_(st[k]>=0);
-					tta.SetAdj2(ja,savetriangles + st[k] / 3,(int) (st[k]%3));
-					ta.SetLock();
+
+				//Add current triangle edge to edge4
+				long k =edge4->SortAndAdd(GetId(triangles[i][VerticesOfTriangularEdge[j][0]]),GetId(triangles[i][VerticesOfTriangularEdge[j][1]]));
+
+				long invisible=triangles[i].Hidden(j);
+
+				//If the edge has not been added to st, add it
+				if(st[k]==-1) st[k]=3*i+j;
+
+				//If the edge already exists, add adjacency
+				else if(st[k]>=0) {
+					_assert_(!triangles[i].TriangleAdj(j));
+					_assert_(!triangles[st[k]/3].TriangleAdj((int) (st[k]%3)));
+
+					triangles[i].SetAdj2(j,triangles+st[k]/3,(int)(st[k]%3));
+					if (invisible) triangles[i].SetHidden(j);
+					if (k<nbe)     triangles[i].SetLocked(j);
+
+					//Make st[k] negative so that it will throw an error message if it is found again
 					st[k]=-2-st[k]; 
 				}
-			}
-		}
-	}
-	long NbTfillHoll =0;
-	for (i=0;i<nbt;i++){
-		if (triangles[i].link) {
-			triangles[i]=Triangle((BamgVertex *) NULL,(BamgVertex *) NULL,(BamgVertex *) NULL);
-			triangles[i].color=-1;
-		}
-		else{
-			triangles[i].color= savenbt+ NbTfillHoll++;
-		}
-	}
-	_assert_(savenbt+NbTfillHoll<=savemaxnbt);
-
-	// copy of the outside triangles in saveMesh 
-	for (i=0;i<nbt;i++){
-		if(triangles[i].color>=0) {
-			savetriangles[savenbt]=triangles[i];
-			savetriangles[savenbt].link=0;
-			savenbt++;
-		}
-	}
-	// gestion of the adj
-	k =0;
-	Triangle * tmax = triangles + nbt;
-	for (i=0;i<savenbt;i++) { 
-		Triangle & ti = savetriangles[i];
-		for (int j=0;j<3;j++){
-			Triangle * ta = ti.TriangleAdj(j);
-			int aa = ti.NuEdgeTriangleAdj(j);
-			int lck = ti.Locked(j);
-			if (!ta) k++; // bug 
-			else if ( ta >= triangles && ta < tmax){
-				ta= savetriangles + ta->color;
-				ti.SetAdj2(j,ta,aa);
-				if(lck) ti.SetLocked(j);
-			}
-		}
-	}
-
-	// restore triangles;
-	nbt=savenbt;
-	maxnbt=savemaxnbt;
-	delete [] triangles;
-	delete [] subdomains;
-	triangles = savetriangles;
-	subdomains = savesubdomains;
-	if (k) {
-		_error_("number of triangles edges alone = " << k);
-	}
-	FindSubDomain();
-
-	delete edge4;
-	delete [] st;
-	for (i=0;i<nbv;i++) quadtree->Add(vertices[i]);
-
-	SetVertexFieldOn();
-
-	/*Check requirements consistency*/
-	for (i=0;i<nbe;i++){
- 	/*If the current mesh edge is on Geometry*/
-		if(edges[i].GeomEdgeHook){
-			for(int j=0;j<2;j++){
-				/*Go through the edges adjacent to current edge (if on the same curve)*/
-				if (!edges[i].adj[j]){
-					/*The edge is on Geometry and does not have 2 adjacent edges... (not on a closed curve)*/
-					/*Check that the 2 vertices are on geometry AND required*/
-					if(!edges[i][j].GeomEdgeHook->IsRequiredVertex()){
-						_printf_("ReconstructExistingMesh error message: problem with the edge number " << i+1 << ": [" << GetId(edges[i][0])+1 << " " << GetId(edges[i][1])+1 << "]\n");
-						_printf_("This edge is on geometrical edge number " << Gh.GetId(edges[i].GeomEdgeHook)+1 << "\n");
-						if (edges[i][j].GeomEdgeHook->OnGeomVertex())
-						 _printf_("the vertex number " << GetId(edges[i][j])+1 << " of this edge is a geometric BamgVertex number " << Gh.GetId(edges[i][j].GeomEdgeHook->gv)+1 << "\n");
-						else if (edges[i][j].GeomEdgeHook->OnGeomEdge())
-						 _printf_("the vertex number " << GetId(edges[i][j])+1 << " of this edge is a geometric Edge number " << Gh.GetId(edges[i][j].GeomEdgeHook->ge)+1 << "\n");
-						else
-						 _printf_("Its pointer is " << edges[i][j].GeomEdgeHook << "\n");
-
-						_printf_("This edge is on geometry and has no adjacent edge (open curve) and one of the tip is not required\n");
-						_error_("See above (might be cryptic...)");
+
+				//An edge belongs to 2 triangles
+				else {
+					_error_("The edge (" << GetId(triangles[i][VerticesOfTriangularEdge[j][0]]) << " , " << GetId(triangles[i][VerticesOfTriangularEdge[j][1]]) << ") belongs to more than 2 triangles");
+				}
+			}
+		}
+
+		//Display info if required
+		if(verbose>5) {
+			_printf_("         info of Mesh:\n");
+			_printf_("            - number of vertices    = " << nbv << " \n"); 
+			_printf_("            - number of triangles   = " << nbt << " \n"); 
+			_printf_("            - number of given edges = " << nbe << " \n"); 
+			_printf_("            - number of all edges   = " << edge4->nb() << "\n"); 
+			_printf_("            - Euler number 1 - nb of holes = " << nbt-edge4->nb()+nbv << "\n"); 
+		}
+
+		//check the consistency of edge[].adj and the geometrical required vertex
+		long k=0;
+		for (i=0;i<edge4->nb();i++){
+			if (st[i]>=0){ // edge alone 
+				if (i<nbe){
+					long i0=edge4->i(i);
+					orderedvertices[i0] = vertices+i0;
+					long i1=edge4->j(i);
+					orderedvertices[i1] = vertices+i1;
+				}
+				else {
+					k=k+1;
+					if (k<10) {
+						//print only 10 edges
+						_printf_("Lost boundary edges " << i << " : " << edge4->i(i) << " " << edge4->j(i) << "\n");
 					}
-				}
-			}
-		}
-	}
-}
-/*}}}*/
-	/*FUNCTION Mesh::TrianglesRenumberBySubDomain{{{*/
-	void Mesh::TrianglesRenumberBySubDomain(bool justcompress){
+					else if (k==10){
+						_printf_("Other lost boundary edges not shown...\n");
+					}
+				}
+			}
+		}
+		if(k) {
+			_error_(k << " boundary edges (from the geometry) are not defined as mesh edges");
+		}
+
+		/* mesh generation with boundary points*/
+		long nbvb=0;
+		for (i=0;i<nbv;i++){ 
+			vertices[i].t=0;
+			vertices[i].IndexInTriangle=0;
+			if (orderedvertices[i]) orderedvertices[nbvb++]=orderedvertices[i];
+		}
+
+		Triangle* savetriangles=triangles;
+		long savenbt=nbt;
+		long savemaxnbt=maxnbt;
+		SubDomain* savesubdomains=subdomains;
+		subdomains=0;
+
+		long  Nbtriafillhole=2*nbvb;
+		Triangle* triafillhole=new Triangle[Nbtriafillhole];
+		triangles = triafillhole;
+
+		nbt=2;
+		maxnbt= Nbtriafillhole;
+
+		//Find a vertex that is not aligned with vertices 0 and 1
+		for (i=2;det(orderedvertices[0]->i,orderedvertices[1]->i,orderedvertices[i]->i)==0;) 
+		 if  (++i>=nbvb) {
+			 _error_("ReconstructExistingMesh: All the vertices are aligned");
+		 }
+		//Move this vertex (i) to the 2d position in orderedvertices
+		Exchange(orderedvertices[2], orderedvertices[i]);
+
+		/*Reconstruct mesh beginning with 2 triangles*/
+		BamgVertex *  v0=orderedvertices[0], *v1=orderedvertices[1];
+
+		triangles[0](0) = NULL; // Infinite vertex
+		triangles[0](1) = v0;
+		triangles[0](2) = v1;
+
+		triangles[1](0) = NULL;// Infinite vertex
+		triangles[1](2) = v0;
+		triangles[1](1) = v1;
+		const int e0 = OppositeEdge[0];
+		const int e1 = NextEdge[e0];
+		const int e2 = PreviousEdge[e0];
+		triangles[0].SetAdj2(e0, &triangles[1] ,e0);
+		triangles[0].SetAdj2(e1, &triangles[1] ,e2);
+		triangles[0].SetAdj2(e2, &triangles[1] ,e1);
+
+		triangles[0].det = -1;  // boundary triangles
+		triangles[1].det = -1;  // boundary triangles
+
+		triangles[0].SetSingleVertexToTriangleConnectivity();
+		triangles[1].SetSingleVertexToTriangleConnectivity();
+
+		triangles[0].link=&triangles[1];
+		triangles[1].link=&triangles[0];
+
+		if (!quadtree) delete quadtree; //ReInitialise;
+		quadtree = new BamgQuadtree(this,0);
+		quadtree->Add(*v0);
+		quadtree->Add(*v1);
+
+		// vertices are added one by one
+		long NbSwap=0;
+		for (int icount=2; icount<nbvb; icount++) {
+			BamgVertex *vi  = orderedvertices[icount];
+			Icoor2 det3[3];
+			Triangle *tcvi = TriangleFindFromCoord(vi->i,det3);
+			quadtree->Add(*vi); 
+			AddVertex(*vi,tcvi,det3);
+			NbSwap += vi->Optim(1,1);
+		}
+
+		//enforce the boundary 
+		AdjacentTriangle ta(0,0);
+		long nbloss = 0,knbe=0;
+		for ( i = 0; i < nbe; i++){
+			if (st[i] >=0){ //edge alone => on border
+				BamgVertex &a=edges[i][0], &b=edges[i][1];
+				if (a.t && b.t){
+					knbe++;
+					if (ForceEdge(a,b,ta)<0) nbloss++;
+				}
+			}
+		}
+		if(nbloss) {
+			_error_("we lost " << nbloss << " existing edges other " << knbe);
+		}
+
+		FindSubDomain(1);
+		// remove all the hole 
+		// remove all the good sub domain
+		long krm =0;
+		for (i=0;i<nbt;i++){
+			if (triangles[i].link){ // remove triangles
+				krm++;
+				for (int j=0;j<3;j++){
+					AdjacentTriangle ta =  triangles[i].Adj(j);
+					Triangle &tta = *(Triangle*)ta;
+					//if edge between remove and not remove 
+					if(! tta.link){ 
+						// change the link of ta;
+						int ja = ta;
+						BamgVertex *v0= ta.EdgeVertex(0);
+						BamgVertex *v1= ta.EdgeVertex(1);
+						long k =edge4->SortAndAdd(v0?GetId(v0):nbv,v1? GetId(v1):nbv);
+
+						_assert_(st[k]>=0);
+						tta.SetAdj2(ja,savetriangles + st[k] / 3,(int) (st[k]%3));
+						ta.SetLock();
+						st[k]=-2-st[k]; 
+					}
+				}
+			}
+		}
+		long NbTfillHoll =0;
+		for (i=0;i<nbt;i++){
+			if (triangles[i].link) {
+				triangles[i]=Triangle((BamgVertex *) NULL,(BamgVertex *) NULL,(BamgVertex *) NULL);
+				triangles[i].color=-1;
+			}
+			else{
+				triangles[i].color= savenbt+ NbTfillHoll++;
+			}
+		}
+		_assert_(savenbt+NbTfillHoll<=savemaxnbt);
+
+		// copy of the outside triangles in saveMesh 
+		for (i=0;i<nbt;i++){
+			if(triangles[i].color>=0) {
+				savetriangles[savenbt]=triangles[i];
+				savetriangles[savenbt].link=0;
+				savenbt++;
+			}
+		}
+		// gestion of the adj
+		k =0;
+		Triangle * tmax = triangles + nbt;
+		for (i=0;i<savenbt;i++) { 
+			Triangle & ti = savetriangles[i];
+			for (int j=0;j<3;j++){
+				Triangle * ta = ti.TriangleAdj(j);
+				int aa = ti.NuEdgeTriangleAdj(j);
+				int lck = ti.Locked(j);
+				if (!ta) k++; // bug 
+				else if ( ta >= triangles && ta < tmax){
+					ta= savetriangles + ta->color;
+					ti.SetAdj2(j,ta,aa);
+					if(lck) ti.SetLocked(j);
+				}
+			}
+		}
+
+		// restore triangles;
+		nbt=savenbt;
+		maxnbt=savemaxnbt;
+		delete [] triangles;
+		delete [] subdomains;
+		triangles = savetriangles;
+		subdomains = savesubdomains;
+		if (k) {
+			_error_("number of triangles edges alone = " << k);
+		}
+		FindSubDomain();
+
+		delete edge4;
+		delete [] st;
+		for (i=0;i<nbv;i++) quadtree->Add(vertices[i]);
+
+		SetVertexFieldOn();
+
+		/*Check requirements consistency*/
+		for (i=0;i<nbe;i++){
+			/*If the current mesh edge is on Geometry*/
+			if(edges[i].GeomEdgeHook){
+				for(int j=0;j<2;j++){
+					/*Go through the edges adjacent to current edge (if on the same curve)*/
+					if (!edges[i].adj[j]){
+						/*The edge is on Geometry and does not have 2 adjacent edges... (not on a closed curve)*/
+						/*Check that the 2 vertices are on geometry AND required*/
+						if(!edges[i][j].GeomEdgeHook->IsRequiredVertex()){
+							_printf_("ReconstructExistingMesh error message: problem with the edge number " << i+1 << ": [" << GetId(edges[i][0])+1 << " " << GetId(edges[i][1])+1 << "]\n");
+							_printf_("This edge is on geometrical edge number " << Gh.GetId(edges[i].GeomEdgeHook)+1 << "\n");
+							if (edges[i][j].GeomEdgeHook->OnGeomVertex())
+							 _printf_("the vertex number " << GetId(edges[i][j])+1 << " of this edge is a geometric BamgVertex number " << Gh.GetId(edges[i][j].GeomEdgeHook->gv)+1 << "\n");
+							else if (edges[i][j].GeomEdgeHook->OnGeomEdge())
+							 _printf_("the vertex number " << GetId(edges[i][j])+1 << " of this edge is a geometric Edge number " << Gh.GetId(edges[i][j].GeomEdgeHook->ge)+1 << "\n");
+							else
+							 _printf_("Its pointer is " << edges[i][j].GeomEdgeHook << "\n");
+
+							_printf_("This edge is on geometry and has no adjacent edge (open curve) and one of the tip is not required\n");
+							_error_("See above (might be cryptic...)");
+						}
+					}
+				}
+			}
+		}
+	}
+	/*}}}*/
+	void Mesh::TrianglesRenumberBySubDomain(bool justcompress){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/ReNumberingTheTriangleBySubDomain)*/
 
@@ -3785,437 +3739,426 @@
 	}
 	/*}}}*/
-/*FUNCTION Mesh::SetIntCoor{{{*/
-void Mesh::SetIntCoor(const char * strfrom) {
-	/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/SetIntCoor)*/
-
-	/*Set integer coordinate for existing vertices*/
-
-	//Get extrema coordinates of the existing vertices
-	pmin =  vertices[0].r;
-	pmax =  vertices[0].r;
-	long i;
-	for (i=0;i<nbv;i++) {
-		pmin.x = Min(pmin.x,vertices[i].r.x);
-		pmin.y = Min(pmin.y,vertices[i].r.y);
-		pmax.x = Max(pmax.x,vertices[i].r.x);
-		pmax.y = Max(pmax.y,vertices[i].r.y);
-	}
-	R2 DD = (pmax-pmin)*0.05;
-	pmin = pmin-DD;
-	pmax = pmax+DD; 
-
-	//Compute coefIcoor
-	coefIcoor= (MaxICoor)/(Max(pmax.x-pmin.x,pmax.y-pmin.y));
-	if (coefIcoor<=0){
-		_error_("coefIcoor should be positive, a problem in the geometry is likely");
-	}
-
-	// generation of integer coord  
-	for (i=0;i<nbv;i++) {
-		vertices[i].i = R2ToI2(vertices[i].r);    
-	}
-
-	// computation of the det 
-	int number_of_errors=0;
-	for (i=0;i<nbt;i++) {
-		BamgVertex & v0 = triangles[i][0];
-		BamgVertex & v1 = triangles[i][1];
-		BamgVertex & v2 = triangles[i][2];
-
-		//If this is not a boundary triangle
-		if ( &v0 && &v1 &&  &v2 ){
-
-			/*Compute determinant*/
-			triangles[i].det= det(v0,v1,v2);
-
-			/*Check that determinant is positive*/
-			if (triangles[i].det <=0){
-
-				/*increase number_of_errors and print error only for the first 20 triangles*/
-				number_of_errors++;
-				if (number_of_errors<20){
-					_printf_("Area of Triangle " << i+1 << " < 0 (det=" << triangles[i].det << ")\n");
-				}
-			}
-		}
-
-		//else, set as -1
-		else triangles[i].det=-1;
-	}
-
-	if (number_of_errors) _error_("Fatal error: some triangles have negative areas, see above");
-}
-/*}}}*/
-/*FUNCTION Mesh::SmoothingVertex{{{*/
-void Mesh::SmoothingVertex(int nbiter,double omega ) { 
-	/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/SmoothingVertex)*/
-
-	long int verbose=0;
-	//  if quatree exist remove it end reconstruct
-	if (quadtree) delete quadtree;
-	quadtree=0;
-	CreateSingleVertexToTriangleConnectivity();
-	Triangle vide; // a triangle to mark the boundary vertex
-	Triangle   ** tstart= new Triangle* [nbv];
-	long i,j,k;
-	//   attention si Background == Triangle alors on ne peut pas utiliser la rechech rapide 
-	if ( this == & BTh)
-	 for ( i=0;i<nbv;i++)
-	  tstart[i]=vertices[i].t;     
-	else 
-	 for ( i=0;i<nbv;i++)
-	  tstart[i]=0;
-	for ( j=0;j<NbVerticesOnGeomVertex;j++ ) 
-	 tstart[ GetId(VerticesOnGeomVertex[j].meshvertex)]=&vide;
-	for ( k=0;k<NbVerticesOnGeomEdge;k++ ) 
-	 tstart[ GetId(VerticesOnGeomEdge[k].meshvertex)]=&vide;
-	if(verbose>2) _printf_("   SmoothingVertex: nb Iteration = " << nbiter << ", Omega=" << omega << "\n");
-	for (k=0;k<nbiter;k++)
-	  {
-		long i,NbSwap =0;
-		double delta =0;
-		for ( i=0;i<nbv;i++)
-		 if (tstart[i] != &vide) // not a boundary vertex 
-		  delta=Max(delta,vertices[i].Smoothing(*this,BTh,tstart[i],omega));
-		if (!nbq)
+	void Mesh::SetIntCoor(const char * strfrom) {/*{{{*/
+		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/SetIntCoor)*/
+
+		/*Set integer coordinate for existing vertices*/
+
+		//Get extrema coordinates of the existing vertices
+		pmin =  vertices[0].r;
+		pmax =  vertices[0].r;
+		long i;
+		for (i=0;i<nbv;i++) {
+			pmin.x = Min(pmin.x,vertices[i].r.x);
+			pmin.y = Min(pmin.y,vertices[i].r.y);
+			pmax.x = Max(pmax.x,vertices[i].r.x);
+			pmax.y = Max(pmax.y,vertices[i].r.y);
+		}
+		R2 DD = (pmax-pmin)*0.05;
+		pmin = pmin-DD;
+		pmax = pmax+DD; 
+
+		//Compute coefIcoor
+		coefIcoor= (MaxICoor)/(Max(pmax.x-pmin.x,pmax.y-pmin.y));
+		if (coefIcoor<=0){
+			_error_("coefIcoor should be positive, a problem in the geometry is likely");
+		}
+
+		// generation of integer coord  
+		for (i=0;i<nbv;i++) {
+			vertices[i].i = R2ToI2(vertices[i].r);    
+		}
+
+		// computation of the det 
+		int number_of_errors=0;
+		for (i=0;i<nbt;i++) {
+			BamgVertex & v0 = triangles[i][0];
+			BamgVertex & v1 = triangles[i][1];
+			BamgVertex & v2 = triangles[i][2];
+
+			//If this is not a boundary triangle
+			if ( &v0 && &v1 &&  &v2 ){
+
+				/*Compute determinant*/
+				triangles[i].det= det(v0,v1,v2);
+
+				/*Check that determinant is positive*/
+				if (triangles[i].det <=0){
+
+					/*increase number_of_errors and print error only for the first 20 triangles*/
+					number_of_errors++;
+					if (number_of_errors<20){
+						_printf_("Area of Triangle " << i+1 << " < 0 (det=" << triangles[i].det << ")\n");
+					}
+				}
+			}
+
+			//else, set as -1
+			else triangles[i].det=-1;
+		}
+
+		if (number_of_errors) _error_("Fatal error: some triangles have negative areas, see above");
+	}
+	/*}}}*/
+	void Mesh::SmoothingVertex(int nbiter,double omega ) { /*{{{*/
+		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/SmoothingVertex)*/
+
+		long int verbose=0;
+		//  if quatree exist remove it end reconstruct
+		if (quadtree) delete quadtree;
+		quadtree=0;
+		CreateSingleVertexToTriangleConnectivity();
+		Triangle vide; // a triangle to mark the boundary vertex
+		Triangle   ** tstart= new Triangle* [nbv];
+		long i,j,k;
+		//   attention si Background == Triangle alors on ne peut pas utiliser la rechech rapide 
+		if ( this == & BTh)
 		 for ( i=0;i<nbv;i++)
-		  if (tstart[i] != &vide) // not a boundary vertex 
-			NbSwap += vertices[i].Optim(1);
-		if (verbose>3) _printf_("      move max = " << pow(delta,0.5) << ", iteration = " << k << ", nb of swap = " << NbSwap << "\n");
-	  }
-
-	delete [] tstart;
-	if (quadtree) quadtree= new BamgQuadtree(this);
-}
-/*}}}*/
-/*FUNCTION Mesh::SmoothMetric{{{*/
-void Mesh::SmoothMetric(double raisonmax) { 
-	/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Metric.cpp/SmoothMetric)*/
-
-	long int verbose=0;
-
-	if(raisonmax<1.1) return;
-	if(verbose > 1) _printf_("   Mesh::SmoothMetric raisonmax = " << raisonmax << "\n");
-	CreateSingleVertexToTriangleConnectivity();
-	long i,j,kch,kk,ip;
-	long *first_np_or_next_t0 = new long[nbv];
-	long *first_np_or_next_t1 = new long[nbv];
-	long Head0 =0,Head1=-1;
-	double logseuil= log(raisonmax);
-
-	for(i=0;i<nbv-1;i++)
-	 first_np_or_next_t0[i]=i+1; 
-	first_np_or_next_t0[nbv-1]=-1;// end;
-	for(i=0;i<nbv;i++)
-	 first_np_or_next_t1[i]=-1;
-	kk=0;
-	while(Head0>=0&& kk++<100){
-		kch=0;
-		for(i=Head0;i>=0;i=first_np_or_next_t0[ip=i],first_np_or_next_t0[ip]=-1) {
-			//  pour tous les triangles autour du sommet s
-			Triangle* t= vertices[i].t;
-			if (!t){
-				_error_("!t");
-			}
-			BamgVertex & vi = vertices[i];
-			AdjacentTriangle ta(t,EdgesVertexTriangle[vertices[i].IndexInTriangle][0]);
-			BamgVertex *pvj0 = ta.EdgeVertex(0);
-			while (1) {
-				ta=Previous(Adj(ta));
-				if (vertices+i != ta.EdgeVertex(1)){
-					_error_("vertices+i != ta.EdgeVertex(1)");
-				}
-				BamgVertex & vj = *(ta.EdgeVertex(0));
-				if ( &vj ) {
-					j= &vj-vertices;
-					if (j<0 || j >= nbv){
-						_error_("j<0 || j >= nbv");
+		  tstart[i]=vertices[i].t;     
+		else 
+		 for ( i=0;i<nbv;i++)
+		  tstart[i]=0;
+		for ( j=0;j<NbVerticesOnGeomVertex;j++ ) 
+		 tstart[ GetId(VerticesOnGeomVertex[j].meshvertex)]=&vide;
+		for ( k=0;k<NbVerticesOnGeomEdge;k++ ) 
+		 tstart[ GetId(VerticesOnGeomEdge[k].meshvertex)]=&vide;
+		if(verbose>2) _printf_("   SmoothingVertex: nb Iteration = " << nbiter << ", Omega=" << omega << "\n");
+		for (k=0;k<nbiter;k++)
+		  {
+			long i,NbSwap =0;
+			double delta =0;
+			for ( i=0;i<nbv;i++)
+			 if (tstart[i] != &vide) // not a boundary vertex 
+			  delta=Max(delta,vertices[i].Smoothing(*this,BTh,tstart[i],omega));
+			if (!nbq)
+			 for ( i=0;i<nbv;i++)
+			  if (tstart[i] != &vide) // not a boundary vertex 
+				NbSwap += vertices[i].Optim(1);
+			if (verbose>3) _printf_("      move max = " << pow(delta,0.5) << ", iteration = " << k << ", nb of swap = " << NbSwap << "\n");
+		  }
+
+		delete [] tstart;
+		if (quadtree) quadtree= new BamgQuadtree(this);
+	}
+	/*}}}*/
+	void Mesh::SmoothMetric(double raisonmax) { /*{{{*/
+		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Metric.cpp/SmoothMetric)*/
+
+		long int verbose=0;
+
+		if(raisonmax<1.1) return;
+		if(verbose > 1) _printf_("   Mesh::SmoothMetric raisonmax = " << raisonmax << "\n");
+		CreateSingleVertexToTriangleConnectivity();
+		long i,j,kch,kk,ip;
+		long *first_np_or_next_t0 = new long[nbv];
+		long *first_np_or_next_t1 = new long[nbv];
+		long Head0 =0,Head1=-1;
+		double logseuil= log(raisonmax);
+
+		for(i=0;i<nbv-1;i++)
+		 first_np_or_next_t0[i]=i+1; 
+		first_np_or_next_t0[nbv-1]=-1;// end;
+		for(i=0;i<nbv;i++)
+		 first_np_or_next_t1[i]=-1;
+		kk=0;
+		while(Head0>=0&& kk++<100){
+			kch=0;
+			for(i=Head0;i>=0;i=first_np_or_next_t0[ip=i],first_np_or_next_t0[ip]=-1) {
+				//  pour tous les triangles autour du sommet s
+				Triangle* t= vertices[i].t;
+				if (!t){
+					_error_("!t");
+				}
+				BamgVertex & vi = vertices[i];
+				AdjacentTriangle ta(t,EdgesVertexTriangle[vertices[i].IndexInTriangle][0]);
+				BamgVertex *pvj0 = ta.EdgeVertex(0);
+				while (1) {
+					ta=Previous(Adj(ta));
+					if (vertices+i != ta.EdgeVertex(1)){
+						_error_("vertices+i != ta.EdgeVertex(1)");
 					}
-					R2 Aij = (R2) vj - (R2) vi;
-					double ll =  Norme2(Aij);
-					if (0) {  
-						double hi = ll/vi.m(Aij);
-						double hj = ll/vj.m(Aij);
-						if(hi < hj)
+					BamgVertex & vj = *(ta.EdgeVertex(0));
+					if ( &vj ) {
+						j= &vj-vertices;
+						if (j<0 || j >= nbv){
+							_error_("j<0 || j >= nbv");
+						}
+						R2 Aij = (R2) vj - (R2) vi;
+						double ll =  Norme2(Aij);
+						if (0) {  
+							double hi = ll/vi.m(Aij);
+							double hj = ll/vj.m(Aij);
+							if(hi < hj)
+							  {
+								double dh=(hj-hi)/ll;
+								if (dh>logseuil) {
+									vj.m.IntersectWith(vi.m/(1 +logseuil*ll/hi));
+									if(first_np_or_next_t1[j]<0)
+									 kch++,first_np_or_next_t1[j]=Head1,Head1=j;
+								}
+							  }
+						} 
+						else
 						  {
-							double dh=(hj-hi)/ll;
-							if (dh>logseuil) {
-								vj.m.IntersectWith(vi.m/(1 +logseuil*ll/hi));
-								if(first_np_or_next_t1[j]<0)
-								 kch++,first_np_or_next_t1[j]=Head1,Head1=j;
-							}
+							double li = vi.m(Aij);
+							if( vj.m.IntersectWith(vi.m/(1 +logseuil*li)) )
+							 if(first_np_or_next_t1[j]<0) // if the metrix change 
+							  kch++,first_np_or_next_t1[j]=Head1,Head1=j;
 						  }
-					} 
-					else
-					  {
-						double li = vi.m(Aij);
-						if( vj.m.IntersectWith(vi.m/(1 +logseuil*li)) )
-						 if(first_np_or_next_t1[j]<0) // if the metrix change 
-						  kch++,first_np_or_next_t1[j]=Head1,Head1=j;
+					}
+					if  ( &vj ==  pvj0 ) break;
+				}
+			}
+			Head0 = Head1;
+			Head1 = -1;
+			Exchange(first_np_or_next_t0,first_np_or_next_t1);
+		}
+		if(verbose>2) _printf_("      number of iterations = " << kch << "\n"); 
+		delete [] first_np_or_next_t0;
+		delete [] first_np_or_next_t1;
+	}
+	/*}}}*/
+	long  Mesh::SplitInternalEdgeWithBorderVertices(){/*{{{*/
+		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/SplitInternalEdgeWithBorderVertices)*/
+
+		long NbSplitEdge=0;
+		SetVertexFieldOn();  
+		long it;
+		long nbvold=nbv;
+		long int verbose=2;
+		for (it=0;it<nbt;it++){
+			Triangle &t=triangles[it];
+			if (t.link)
+			 for (int j=0;j<3;j++)
+			  if(!t.Locked(j) && !t.Hidden(j)){
+				  Triangle &tt = *t.TriangleAdj(j);
+				  if ( &tt && tt.link && it < GetId(tt)) 
+					 { // an internal edge 
+					  BamgVertex &v0 = t[VerticesOfTriangularEdge[j][0]];
+					  BamgVertex &v1 = t[VerticesOfTriangularEdge[j][1]];
+					  if (v0.GeomEdgeHook && v1.GeomEdgeHook){
+						  R2 P= ((R2) v0 + (R2) v1)*0.5;
+						  if ( nbv<maxnbv) {
+							  vertices[nbv].r = P;
+							  vertices[nbv++].m = Metric(0.5,v0.m,0.5,v1.m);
+							  vertices[nbv].ReferenceNumber=0;
+							  vertices[nbv].DirOfSearch = NoDirOfSearch ;
+						  }
+						  NbSplitEdge++;
 					  }
-				}
-				if  ( &vj ==  pvj0 ) break;
-			}
-		}
-		Head0 = Head1;
-		Head1 = -1;
-		Exchange(first_np_or_next_t0,first_np_or_next_t1);
-	}
-	if(verbose>2) _printf_("      number of iterations = " << kch << "\n"); 
-	delete [] first_np_or_next_t0;
-	delete [] first_np_or_next_t1;
-}
-/*}}}*/
-/*FUNCTION Mesh::SplitInternalEdgeWithBorderVertices{{{*/
-long  Mesh::SplitInternalEdgeWithBorderVertices(){
-	/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/SplitInternalEdgeWithBorderVertices)*/
-
-	long NbSplitEdge=0;
-	SetVertexFieldOn();  
-	long it;
-	long nbvold=nbv;
-	long int verbose=2;
-	for (it=0;it<nbt;it++){
-		Triangle &t=triangles[it];
-		if (t.link)
-		 for (int j=0;j<3;j++)
-		  if(!t.Locked(j) && !t.Hidden(j)){
-			  Triangle &tt = *t.TriangleAdj(j);
-			  if ( &tt && tt.link && it < GetId(tt)) 
-				 { // an internal edge 
-				  BamgVertex &v0 = t[VerticesOfTriangularEdge[j][0]];
-				  BamgVertex &v1 = t[VerticesOfTriangularEdge[j][1]];
-				  if (v0.GeomEdgeHook && v1.GeomEdgeHook){
-					  R2 P= ((R2) v0 + (R2) v1)*0.5;
-					  if ( nbv<maxnbv) {
-						  vertices[nbv].r = P;
-						  vertices[nbv++].m = Metric(0.5,v0.m,0.5,v1.m);
-						  vertices[nbv].ReferenceNumber=0;
-						  vertices[nbv].DirOfSearch = NoDirOfSearch ;
-					  }
-					  NbSplitEdge++;
-				  }
-				 }
-		  }
-	}
-	CreateSingleVertexToTriangleConnectivity();    
-	if (nbvold!=nbv){
-		long  iv = nbvold;
-		long NbSwap = 0;
-		Icoor2 det3[3];  
-		for (int i=nbvold;i<nbv;i++) {// for all the new point
-			BamgVertex & vi = vertices[i];
-			vi.i = R2ToI2(vi.r);
-			vi.r = I2ToR2(vi.i);
-
-			// a good new point 
-			vi.ReferenceNumber=0; 
-			vi.DirOfSearch =NoDirOfSearch;
-			Triangle *tcvi = TriangleFindFromCoord(vi.i,det3);
-			if (tcvi && !tcvi->link) {
-				_printf_("problem inserting point in SplitInternalEdgeWithBorderVertices (tcvj && !tcvj->link)\n");
-			}
-
-			quadtree->Add(vi);
-			if (!tcvi || tcvi->det<0){// internal
-				_error_("!tcvi || tcvi->det < 0");
-			}
-			AddVertex(vi,tcvi,det3);
-			NbSwap += vi.Optim(1);          
-			iv++;
-		}
-		if (verbose>3) {
-			_printf_("   number of points: " << iv << "\n");
-			_printf_("   number of swap to  split internal edges with border vertices: " << NbSwap << "\n");
-			nbv = iv;
-		}
-	}
-	if (NbSplitEdge>nbv-nbvold) _printf_("WARNING: not enough vertices  to split all internal edges, we lost " << NbSplitEdge - ( nbv-nbvold) << " edges...\n");
-	if (verbose>2) _printf_("SplitInternalEdgeWithBorderVertices: Number of splited edge " << NbSplitEdge << "\n");
-
-	return  NbSplitEdge;
-}
-/*}}}*/
-/*FUNCTION Mesh::ToI2{{{*/
-I2 Mesh::R2ToI2(const R2 & P) const {
-	return  I2( (Icoor1) (coefIcoor*(P.x-pmin.x)),(Icoor1) (coefIcoor*(P.y-pmin.y)) );
-}
-/*}}}*/
-/*FUNCTION Mesh::ToR2{{{*/
-R2 Mesh::I2ToR2(const I2 & P) const {
-	return  R2( (double) P.x/coefIcoor+pmin.x, (double) P.y/coefIcoor+pmin.y);
-}
-/*}}}*/
-/*FUNCTION Mesh::TriangleFindFromCoord{{{*/
-Triangle * Mesh::TriangleFindFromCoord(const I2 & B,Icoor2 det3[3], Triangle *tstart) const {
-	/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/FindTriangleContening)*/
-
-	Triangle * t=0;	
-	int j,jp,jn,jj;
-	int counter;
-
-	/*Get starting triangle. Take tsart if provided*/
-	if (tstart) t=tstart;
-
-	/*Else find the closest Triangle using the quadtree*/
-	else {
-
-		/*Check that the quadtree does exist*/
-		if (!quadtree) _error_("no starting triangle provided and no quadtree available");
-
-		/*Call NearestVertex*/
-		BamgVertex *a = quadtree->NearestVertex(B.x,B.y) ;
-
-		/*Check output (Vertex a)*/
-		if (!a)    _error_("problem while trying to find nearest vertex from a given point. No output found");
-		if (!a->t) _error_("no triangle is associated to vertex number " << GetId(a)+1 << " (orphan?)");
-		_assert_(a>=vertices && a<vertices+nbv);
-
-		/*Get starting triangle*/
-		t = a->t;
-		_assert_(t>=triangles && t<triangles+nbt);
-	}
-
-	Icoor2  detop ;
-
-	/*initialize number of test triangle*/
-	counter=0; 
-
-	/*The initial triangle might be outside*/
-	while (t->det < 0){ 
-
-		/*Get a real vertex from this triangle (k0)*/
-		int k0=(*t)(0)?(((*t)(1)?((*t)(2)?-1:2):1)):0;
-		_assert_(k0>=0);// k0 the NULL vertex
-		int k1=NextVertex[k0],k2=PreviousVertex[k0];
-		det3[k0]=det(B,(*t)[k1],(*t)[k2]);
-		det3[k1]=det3[k2]=-1;     
-		if (det3[k0] > 0) // outside B 
-		 return t; 
-		t = t->TriangleAdj(OppositeEdge[k0]);
-		counter++;
-		_assert_(counter<2);
-	}
-
-	jj=0;
-	detop = det(*(*t)(VerticesOfTriangularEdge[jj][0]),*(*t)(VerticesOfTriangularEdge[jj][1]),B);
-
-	while(t->det>0){
-
-		/*Increase counter*/
-		if (++counter>=10000) _error_("Maximum number of iteration reached (threshold = " << counter << ").");
-
-		j= OppositeVertex[jj];
-		det3[j] = detop;  //det(*b,*s1,*s2);
-		jn = NextVertex[j];
-		jp = PreviousVertex[j];
-		det3[jp]= det(*(*t)(j),*(*t)(jn),B);
-		det3[jn] = t->det-det3[j] -det3[jp];
-
-		// count the number k of  det3 <0
-		int k=0,ii[3];
-		if (det3[0] < 0 ) ii[k++]=0; 
-		if (det3[1] < 0 ) ii[k++]=1;
-		if (det3[2] < 0 ) ii[k++]=2;
-		// 0 => ok
-		// 1 => go in way 1
-		// 2 => two way go in way 1 or 2 randomly
-
-		if (k==0) break;
-		if (k==2 && BinaryRand()) Exchange(ii[0],ii[1]);
-		_assert_(k<3);
-		AdjacentTriangle t1 = t->Adj(jj=ii[0]);
-		if ((t1.det() < 0 ) && (k == 2))
-		 t1 = t->Adj(jj=ii[1]);
-		t=t1;
-		j=t1;// for optimisation we now the -det[OppositeVertex[j]];
-		detop = -det3[OppositeVertex[jj]];
-		jj = j;
-	}
-
-	if (t->det<0) // outside triangle 
-	 det3[0]=det3[1]=det3[2]=-1,det3[OppositeVertex[jj]]=detop;
-	return t;
-}
-/*}}}*/
-/*FUNCTION Mesh::TriangleIntNumbering{{{*/
-void Mesh::TriangleIntNumbering(long* renumbering){
-
-	long num=0;
-	for (int i=0;i<nbt;i++){
-		if (triangles[i].det>0) renumbering[i]=num++;
-		else renumbering[i]=-1;
-	}
-	return;   
-}
-/*}}}*/
-/*FUNCTION Mesh::TriangleReferenceList{{{*/
-long  Mesh::TriangleReferenceList(long* reft) const {
-	/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/ConsRefTriangle)*/
-
-	Triangle *t0,*t;
-	long k=0, num;   
-
-	//initialize all triangles as -1 (outside)
-	for (int it=0;it<nbt;it++) reft[it]=-1;
-
-	//loop over all subdomains
-	for (int i=0;i<nbsubdomains;i++){ 
-
-		//first triangle of the subdomain i
-		t=t0=subdomains[i].head;
-
-		//check that the subdomain is not empty
-		if (!t0){ _error_("At least one subdomain is empty");}
-
-		//loop
-		do{
-			k++;
-
-			//get current triangle number
-			num = GetId(t);
-
-			//check that num is in [0 nbt[
-			_assert_(num>=0 && num<nbt);
-
-			//reft of this triangle is the subdomain number
-			reft[num]=i;
-
-		} while (t0 != (t=t->link));
-		//stop when all triangles of subdomains have been tagged
-
-	}
-	return k;   
-}
-/*}}}*/
-/*FUNCTION Mesh::Triangulate{{{*/
-void Mesh::Triangulate(double* x,double* y,int nods){
-
-	int verbose=0;
-	int i;
-	Metric M1(1);
-
-	/*Initialize mesh*/
-	Init(nods);//this resets nbv to 0
-	nbv=nods;
-
-	//Vertices
-	if(verbose) _printf_("Reading vertices (" << nbv << ")\n");
-	for(i=0;i<nbv;i++){
-		vertices[i].r.x=x[i];
-		vertices[i].r.y=y[i];
-		vertices[i].ReferenceNumber=1;
-		vertices[i].DirOfSearch =NoDirOfSearch;
-		vertices[i].m=M1;
-		vertices[i].color=0;
-	}
-	maxnbt=2*maxnbv-2; // for filling The Holes and quadrilaterals 
-
-	/*Insert Vertices*/
-	Insert(true);
-}
-/*}}}*/
-	/*FUNCTION Mesh::TriangulateFromGeom0{{{*/
-	void Mesh::TriangulateFromGeom0(BamgOpts* bamgopts){
+					 }
+			  }
+		}
+		CreateSingleVertexToTriangleConnectivity();    
+		if (nbvold!=nbv){
+			long  iv = nbvold;
+			long NbSwap = 0;
+			Icoor2 det3[3];  
+			for (int i=nbvold;i<nbv;i++) {// for all the new point
+				BamgVertex & vi = vertices[i];
+				vi.i = R2ToI2(vi.r);
+				vi.r = I2ToR2(vi.i);
+
+				// a good new point 
+				vi.ReferenceNumber=0; 
+				vi.DirOfSearch =NoDirOfSearch;
+				Triangle *tcvi = TriangleFindFromCoord(vi.i,det3);
+				if (tcvi && !tcvi->link) {
+					_printf_("problem inserting point in SplitInternalEdgeWithBorderVertices (tcvj && !tcvj->link)\n");
+				}
+
+				quadtree->Add(vi);
+				if (!tcvi || tcvi->det<0){// internal
+					_error_("!tcvi || tcvi->det < 0");
+				}
+				AddVertex(vi,tcvi,det3);
+				NbSwap += vi.Optim(1);          
+				iv++;
+			}
+			if (verbose>3) {
+				_printf_("   number of points: " << iv << "\n");
+				_printf_("   number of swap to  split internal edges with border vertices: " << NbSwap << "\n");
+				nbv = iv;
+			}
+		}
+		if (NbSplitEdge>nbv-nbvold) _printf_("WARNING: not enough vertices  to split all internal edges, we lost " << NbSplitEdge - ( nbv-nbvold) << " edges...\n");
+		if (verbose>2) _printf_("SplitInternalEdgeWithBorderVertices: Number of splited edge " << NbSplitEdge << "\n");
+
+		return  NbSplitEdge;
+	}
+	/*}}}*/
+	I2 Mesh::R2ToI2(const R2 & P) const {/*{{{*/
+		return  I2( (Icoor1) (coefIcoor*(P.x-pmin.x)),(Icoor1) (coefIcoor*(P.y-pmin.y)) );
+	}
+	/*}}}*/
+	R2 Mesh::I2ToR2(const I2 & P) const {/*{{{*/
+		return  R2( (double) P.x/coefIcoor+pmin.x, (double) P.y/coefIcoor+pmin.y);
+	}
+	/*}}}*/
+	Triangle * Mesh::TriangleFindFromCoord(const I2 & B,Icoor2 det3[3], Triangle *tstart) const {/*{{{*/
+		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/FindTriangleContening)*/
+
+		Triangle * t=0;	
+		int j,jp,jn,jj;
+		int counter;
+
+		/*Get starting triangle. Take tsart if provided*/
+		if (tstart) t=tstart;
+
+		/*Else find the closest Triangle using the quadtree*/
+		else {
+
+			/*Check that the quadtree does exist*/
+			if (!quadtree) _error_("no starting triangle provided and no quadtree available");
+
+			/*Call NearestVertex*/
+			BamgVertex *a = quadtree->NearestVertex(B.x,B.y) ;
+
+			/*Check output (Vertex a)*/
+			if (!a)    _error_("problem while trying to find nearest vertex from a given point. No output found");
+			if (!a->t) _error_("no triangle is associated to vertex number " << GetId(a)+1 << " (orphan?)");
+			_assert_(a>=vertices && a<vertices+nbv);
+
+			/*Get starting triangle*/
+			t = a->t;
+			_assert_(t>=triangles && t<triangles+nbt);
+		}
+
+		Icoor2  detop ;
+
+		/*initialize number of test triangle*/
+		counter=0; 
+
+		/*The initial triangle might be outside*/
+		while (t->det < 0){ 
+
+			/*Get a real vertex from this triangle (k0)*/
+			int k0=(*t)(0)?(((*t)(1)?((*t)(2)?-1:2):1)):0;
+			_assert_(k0>=0);// k0 the NULL vertex
+			int k1=NextVertex[k0],k2=PreviousVertex[k0];
+			det3[k0]=det(B,(*t)[k1],(*t)[k2]);
+			det3[k1]=det3[k2]=-1;     
+			if (det3[k0] > 0) // outside B 
+			 return t; 
+			t = t->TriangleAdj(OppositeEdge[k0]);
+			counter++;
+			_assert_(counter<2);
+		}
+
+		jj=0;
+		detop = det(*(*t)(VerticesOfTriangularEdge[jj][0]),*(*t)(VerticesOfTriangularEdge[jj][1]),B);
+
+		while(t->det>0){
+
+			/*Increase counter*/
+			if (++counter>=10000) _error_("Maximum number of iteration reached (threshold = " << counter << ").");
+
+			j= OppositeVertex[jj];
+			det3[j] = detop;  //det(*b,*s1,*s2);
+			jn = NextVertex[j];
+			jp = PreviousVertex[j];
+			det3[jp]= det(*(*t)(j),*(*t)(jn),B);
+			det3[jn] = t->det-det3[j] -det3[jp];
+
+			// count the number k of  det3 <0
+			int k=0,ii[3];
+			if (det3[0] < 0 ) ii[k++]=0; 
+			if (det3[1] < 0 ) ii[k++]=1;
+			if (det3[2] < 0 ) ii[k++]=2;
+			// 0 => ok
+			// 1 => go in way 1
+			// 2 => two way go in way 1 or 2 randomly
+
+			if (k==0) break;
+			if (k==2 && BinaryRand()) Exchange(ii[0],ii[1]);
+			_assert_(k<3);
+			AdjacentTriangle t1 = t->Adj(jj=ii[0]);
+			if ((t1.det() < 0 ) && (k == 2))
+			 t1 = t->Adj(jj=ii[1]);
+			t=t1;
+			j=t1;// for optimisation we now the -det[OppositeVertex[j]];
+			detop = -det3[OppositeVertex[jj]];
+			jj = j;
+		}
+
+		if (t->det<0) // outside triangle 
+		 det3[0]=det3[1]=det3[2]=-1,det3[OppositeVertex[jj]]=detop;
+		return t;
+	}
+	/*}}}*/
+	void Mesh::TriangleIntNumbering(long* renumbering){/*{{{*/
+
+		long num=0;
+		for (int i=0;i<nbt;i++){
+			if (triangles[i].det>0) renumbering[i]=num++;
+			else renumbering[i]=-1;
+		}
+		return;   
+	}
+	/*}}}*/
+	long  Mesh::TriangleReferenceList(long* reft) const {/*{{{*/
+		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/ConsRefTriangle)*/
+
+		Triangle *t0,*t;
+		long k=0, num;   
+
+		//initialize all triangles as -1 (outside)
+		for (int it=0;it<nbt;it++) reft[it]=-1;
+
+		//loop over all subdomains
+		for (int i=0;i<nbsubdomains;i++){ 
+
+			//first triangle of the subdomain i
+			t=t0=subdomains[i].head;
+
+			//check that the subdomain is not empty
+			if (!t0){ _error_("At least one subdomain is empty");}
+
+			//loop
+			do{
+				k++;
+
+				//get current triangle number
+				num = GetId(t);
+
+				//check that num is in [0 nbt[
+				_assert_(num>=0 && num<nbt);
+
+				//reft of this triangle is the subdomain number
+				reft[num]=i;
+
+			} while (t0 != (t=t->link));
+			//stop when all triangles of subdomains have been tagged
+
+		}
+		return k;   
+	}
+	/*}}}*/
+	void Mesh::Triangulate(double* x,double* y,int nods){/*{{{*/
+
+		int verbose=0;
+		int i;
+		Metric M1(1);
+
+		/*Initialize mesh*/
+		Init(nods);//this resets nbv to 0
+		nbv=nods;
+
+		//Vertices
+		if(verbose) _printf_("Reading vertices (" << nbv << ")\n");
+		for(i=0;i<nbv;i++){
+			vertices[i].r.x=x[i];
+			vertices[i].r.y=y[i];
+			vertices[i].ReferenceNumber=1;
+			vertices[i].DirOfSearch =NoDirOfSearch;
+			vertices[i].m=M1;
+			vertices[i].color=0;
+		}
+		maxnbt=2*maxnbv-2; // for filling The Holes and quadrilaterals 
+
+		/*Insert Vertices*/
+		Insert(true);
+	}
+	/*}}}*/
+	void Mesh::TriangulateFromGeom0(BamgOpts* bamgopts){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/GeomToTriangles0)*/
 		/*Generate mesh from geometry*/
@@ -4531,6 +4474,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Mesh::TriangulateFromGeom1{{{*/
-	void Mesh::TriangulateFromGeom1(BamgOpts* bamgopts,int KeepVertices){ 
+	void Mesh::TriangulateFromGeom1(BamgOpts* bamgopts,int KeepVertices){ /*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/GeomToTriangles1)*/
 
@@ -4566,9 +4508,9 @@
 
 		/* There are 2 ways to make the loop 
-		* 1) on the geometry 
-		* 2) on the background mesh
-		*  if you do the loop on geometry, we don't have the pointeur on background,
-		*  and if you do the loop in background we have the pointeur on geometry
-		* so do the walk on  background */
+		 * 1) on the geometry 
+		 * 2) on the background mesh
+		 *  if you do the loop on geometry, we don't have the pointeur on background,
+		 *  and if you do the loop in background we have the pointeur on geometry
+		 * so do the walk on  background */
 
 		NbVerticesOnGeomVertex=0;
@@ -4861,6 +4803,5 @@
 
 	/*Intermediary*/
-	/*FUNCTION CloseBoundaryEdge{{{*/
-	AdjacentTriangle CloseBoundaryEdge(I2 A,Triangle *t, double &a,double &b) {
+	AdjacentTriangle CloseBoundaryEdge(I2 A,Triangle *t, double &a,double &b) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/CloseBoundaryEdge)*/
 
@@ -4898,130 +4839,127 @@
 							b= IJ_IA/IJ2;
 							return edge;
-		  } 
-	}
-	/*}}}*/
-/*FUNCTION ForceEdge{{{*/
-int ForceEdge(BamgVertex &a, BamgVertex & b,AdjacentTriangle & taret)  { 
-	/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/ForceEdge)*/
-
-	int NbSwap =0;
-	if (!a.t || !b.t){ // the 2 vertex is in a mesh
-		_error_("!a.t || !b.t");
-	}
-	int k=0;
-	taret=AdjacentTriangle(0,0); // erreur 
-
-	AdjacentTriangle tta(a.t,EdgesVertexTriangle[a.IndexInTriangle][0]);
-	BamgVertex   *v1, *v2 = tta.EdgeVertex(0),*vbegin =v2;
-	// we turn around a in the  direct direction  
-
-	Icoor2 det2 = v2 ? det(*v2,a,b): -1 , det1;
-	if(v2) // normal case 
-	 det2 = det(*v2,a,b);
-	else { // no chance infini vertex try the next
-		tta= Previous(Adj(tta));
-		v2 = tta.EdgeVertex(0);
-		vbegin =v2;
-		if (!v2){
-			_error_("!v2");
-		}
-		det2 = det(*v2,a,b);
-	}
-
-	while (v2 != &b) {
-		AdjacentTriangle tc = Previous(Adj(tta));    
-		v1 = v2; 
-		v2 = tc.EdgeVertex(0);
-		det1 = det2;
-		det2 =  v2 ? det(*v2,a,b): det2; 
-
-		if((det1 < 0) && (det2 >0)) { 
-			// try to force the edge 
-			BamgVertex * va = &a, *vb = &b;
-			tc = Previous(tc);
-			if (!v1 || !v2){
-				_error_("!v1 || !v2");
-			}
-			Icoor2 detss = 0,l=0;
-			while ((SwapForForcingEdge(  va,  vb, tc, detss, det1,det2,NbSwap)))
-			 if(l++ > 10000000) {
-				 _error_("Loop in forcing Egde, nb de swap=" << NbSwap << ", nb of try swap (" << l << ") too big");
-			 }
-			BamgVertex *aa = tc.EdgeVertex(0), *bb = tc.EdgeVertex(1);
-			if (((aa == &a ) && (bb == &b)) ||((bb ==  &a ) && (aa == &b))){
-				tc.SetLock();
-				a.Optim(1,0);
-				b.Optim(1,0);
-				taret = tc;
-				return NbSwap;
-			}
-			else 
-			  {
-				taret = tc;
-				return -2; // error  boundary is crossing
-			  }
-		}
-		tta = tc;
-		k++;
-		if (k>=2000){
-			_error_("k>=2000");
-		}
-		if ( vbegin == v2 ) return -1;// error 
-	}
-
-	tta.SetLock();
-	taret=tta;
-	a.Optim(1,0);
-	b.Optim(1,0);
-	return NbSwap; 
-}
-/*}}}*/
-/*FUNCTION swap{{{*/
-void  swap(Triangle *t1,short a1, Triangle *t2,short a2, BamgVertex *s1,BamgVertex *s2,Icoor2 det1,Icoor2 det2){ 
-	/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/swap)*/
-	// --------------------------------------------------------------
-	// short a2=aa[a];// les 2 numero de l arete dans les 2 triangles
-	//                               
-	//               sb                     sb    
-	//             / | \                   /   \                      !
-	//         as1/  |  \                 /a2   \                     !
-	//           /   |   \               /    t2 \                    !
-	//       s1 /t1  | t2 \s2  -->   s1 /___as2___\s2                 !
-	//          \  a1|a2  /             \   as1   /  
-	//           \   |   /               \ t1    /   
-	//            \  |  / as2             \   a1/    
-	//             \ | /                   \   /     
-	//              sa                       sa   
-	//  -------------------------------------------------------------
-	int as1 = NextEdge[a1];
-	int as2 = NextEdge[a2];
-	int ap1 = PreviousEdge[a1];
-	int ap2 = PreviousEdge[a2];
-	(*t1)(VerticesOfTriangularEdge[a1][1]) = s2 ; // avant sb
-	(*t2)(VerticesOfTriangularEdge[a2][1]) = s1  ; // avant sa
-	// mise a jour des 2 adjacences externes 
-	AdjacentTriangle taas1 = t1->Adj(as1),
-						  taas2 = t2->Adj(as2),
-						  tas1(t1,as1), tas2(t2,as2),
-						  ta1(t1,a1),ta2(t2,a2);
-	// externe haut gauche
-	taas1.SetAdj2(ta2, taas1.GetAllFlag_UnSwap());
-	// externe bas droite
-	taas2.SetAdj2(ta1, taas2.GetAllFlag_UnSwap());
-	// remove the Mark  UnMarkSwap 
-	t1->SetUnMarkUnSwap(ap1);
-	t2->SetUnMarkUnSwap(ap2);
-	// interne 
-	tas1.SetAdj2(tas2);
-
-	t1->det = det1;
-	t2->det = det2;
-
-	t1->SetSingleVertexToTriangleConnectivity();
-	t2->SetSingleVertexToTriangleConnectivity();
-} // end swap 
-/*}}}*/
-	/*FUNCTION SwapForForcingEdge{{{*/
-	int SwapForForcingEdge(BamgVertex   *  & pva ,BamgVertex  * &   pvb ,AdjacentTriangle & tt1,Icoor2 & dets1, Icoor2 & detsa,Icoor2 & detsb, int & NbSwap) {
+		} 
+	}
+	/*}}}*/
+	int ForceEdge(BamgVertex &a, BamgVertex & b,AdjacentTriangle & taret)  { /*{{{*/
+		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/ForceEdge)*/
+
+		int NbSwap =0;
+		if (!a.t || !b.t){ // the 2 vertex is in a mesh
+			_error_("!a.t || !b.t");
+		}
+		int k=0;
+		taret=AdjacentTriangle(0,0); // erreur 
+
+		AdjacentTriangle tta(a.t,EdgesVertexTriangle[a.IndexInTriangle][0]);
+		BamgVertex   *v1, *v2 = tta.EdgeVertex(0),*vbegin =v2;
+		// we turn around a in the  direct direction  
+
+		Icoor2 det2 = v2 ? det(*v2,a,b): -1 , det1;
+		if(v2) // normal case 
+		 det2 = det(*v2,a,b);
+		else { // no chance infini vertex try the next
+			tta= Previous(Adj(tta));
+			v2 = tta.EdgeVertex(0);
+			vbegin =v2;
+			if (!v2){
+				_error_("!v2");
+			}
+			det2 = det(*v2,a,b);
+		}
+
+		while (v2 != &b) {
+			AdjacentTriangle tc = Previous(Adj(tta));    
+			v1 = v2; 
+			v2 = tc.EdgeVertex(0);
+			det1 = det2;
+			det2 =  v2 ? det(*v2,a,b): det2; 
+
+			if((det1 < 0) && (det2 >0)) { 
+				// try to force the edge 
+				BamgVertex * va = &a, *vb = &b;
+				tc = Previous(tc);
+				if (!v1 || !v2){
+					_error_("!v1 || !v2");
+				}
+				Icoor2 detss = 0,l=0;
+				while ((SwapForForcingEdge(  va,  vb, tc, detss, det1,det2,NbSwap)))
+				 if(l++ > 10000000) {
+					 _error_("Loop in forcing Egde, nb de swap=" << NbSwap << ", nb of try swap (" << l << ") too big");
+				 }
+				BamgVertex *aa = tc.EdgeVertex(0), *bb = tc.EdgeVertex(1);
+				if (((aa == &a ) && (bb == &b)) ||((bb ==  &a ) && (aa == &b))){
+					tc.SetLock();
+					a.Optim(1,0);
+					b.Optim(1,0);
+					taret = tc;
+					return NbSwap;
+				}
+				else 
+				  {
+					taret = tc;
+					return -2; // error  boundary is crossing
+				  }
+			}
+			tta = tc;
+			k++;
+			if (k>=2000){
+				_error_("k>=2000");
+			}
+			if ( vbegin == v2 ) return -1;// error 
+		}
+
+		tta.SetLock();
+		taret=tta;
+		a.Optim(1,0);
+		b.Optim(1,0);
+		return NbSwap; 
+	}
+	/*}}}*/
+	void  swap(Triangle *t1,short a1, Triangle *t2,short a2, BamgVertex *s1,BamgVertex *s2,Icoor2 det1,Icoor2 det2){ /*{{{*/
+		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/swap)*/
+		// --------------------------------------------------------------
+		// short a2=aa[a];// les 2 numero de l arete dans les 2 triangles
+		//                               
+		//               sb                     sb    
+		//             / | \                   /   \                      !
+		//         as1/  |  \                 /a2   \                     !
+		//           /   |   \               /    t2 \                    !
+		//       s1 /t1  | t2 \s2  -->   s1 /___as2___\s2                 !
+		//          \  a1|a2  /             \   as1   /  
+		//           \   |   /               \ t1    /   
+		//            \  |  / as2             \   a1/    
+		//             \ | /                   \   /     
+		//              sa                       sa   
+		//  -------------------------------------------------------------
+		int as1 = NextEdge[a1];
+		int as2 = NextEdge[a2];
+		int ap1 = PreviousEdge[a1];
+		int ap2 = PreviousEdge[a2];
+		(*t1)(VerticesOfTriangularEdge[a1][1]) = s2 ; // avant sb
+		(*t2)(VerticesOfTriangularEdge[a2][1]) = s1  ; // avant sa
+		// mise a jour des 2 adjacences externes 
+		AdjacentTriangle taas1 = t1->Adj(as1),
+							  taas2 = t2->Adj(as2),
+							  tas1(t1,as1), tas2(t2,as2),
+							  ta1(t1,a1),ta2(t2,a2);
+		// externe haut gauche
+		taas1.SetAdj2(ta2, taas1.GetAllFlag_UnSwap());
+		// externe bas droite
+		taas2.SetAdj2(ta1, taas2.GetAllFlag_UnSwap());
+		// remove the Mark  UnMarkSwap 
+		t1->SetUnMarkUnSwap(ap1);
+		t2->SetUnMarkUnSwap(ap2);
+		// interne 
+		tas1.SetAdj2(tas2);
+
+		t1->det = det1;
+		t2->det = det2;
+
+		t1->SetSingleVertexToTriangleConnectivity();
+		t2->SetSingleVertexToTriangleConnectivity();
+	} // end swap 
+	/*}}}*/
+	int SwapForForcingEdge(BamgVertex   *  & pva ,BamgVertex  * &   pvb ,AdjacentTriangle & tt1,Icoor2 & dets1, Icoor2 & detsa,Icoor2 & detsb, int & NbSwap) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/SwapForForcingEdge)*/
 		// l'arete ta coupe l'arete pva pvb
@@ -5092,16 +5030,16 @@
 
 			if(ToSwap){
-			 if (dets2 < 0) {// haut
-				 dets1 = (ToSwap ? dets1 : detsa) ;
-				 detsa = dets2; 
-				 tt1 =  Previous(tt2) ;}
-			 else if(dets2 > 0){// bas 
-				 dets1 = (ToSwap ? dets1 : detsb) ;
-				 detsb =  dets2;
-				 if(!ToSwap) tt1 =  Next(tt2);
-			 }
-			 else {// on a fin ???
-				 tt1 = Next(tt2);
-				 ret =0;}
+				if (dets2 < 0) {// haut
+					dets1 = (ToSwap ? dets1 : detsa) ;
+					detsa = dets2; 
+					tt1 =  Previous(tt2) ;}
+				else if(dets2 > 0){// bas 
+					dets1 = (ToSwap ? dets1 : detsb) ;
+					detsb =  dets2;
+					if(!ToSwap) tt1 =  Next(tt2);
+				}
+				else {// on a fin ???
+					tt1 = Next(tt2);
+					ret =0;}
 			}
 
@@ -5110,4 +5048,3 @@
 	}
 	/*}}}*/
-
 }
Index: /issm/trunk-jpl/src/c/bamg/Metric.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/Metric.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/Metric.cpp	(revision 18064)
@@ -13,14 +13,11 @@
 
 	/*Constructor/Destructor*/
-	/*FUNCTION Metric::Metric(double a){{{*/
-	Metric::Metric(double a): a11(1/(a*a)),a21(0),a22(1/(a*a)){
+	Metric::Metric(double a): a11(1/(a*a)),a21(0),a22(1/(a*a)){/*{{{*/
 
 	}/*}}}*/
-	/*FUNCTION Metric::Metric(double a,double b,double c){{{*/
-	Metric::Metric(double a,double b,double c) :a11(a),a21(b),a22(c){
+	Metric::Metric(double a,double b,double c) :a11(a),a21(b),a22(c){/*{{{*/
 
 	}/*}}}*/
-	/*FUNCTION Metric::Metric(const double  a[3],const  Metric& m0, const  Metric& m1,const  Metric&  m2 ){{{*/ 
-	Metric::Metric(const double  a[3],const  Metric& m0, const  Metric& m1,const  Metric& m2 ){
+	Metric::Metric(const double  a[3],const  Metric& m0, const  Metric& m1,const  Metric& m2 ){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Metric.cpp/Metric)*/
 
@@ -42,6 +39,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Metric::Metric(double  a,const  Metric& ma, double  b,const  Metric& mb){{{*/
-	Metric::Metric(double  a,const  Metric& ma, double  b,const  Metric& mb) { 
+	Metric::Metric(double  a,const  Metric& ma, double  b,const  Metric& mb) { /*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Metric.cpp/EigenMetric)*/
 
@@ -64,10 +60,8 @@
 
 	/*Methods*/
-	/*FUNCTION Metric::det{{{*/
-	double Metric::det() const {
+	double Metric::det() const {/*{{{*/
 		return a11*a22-a21*a21;
 	}  /*}}}*/
-	/*FUNCTION Metric::Echo {{{*/
-	void Metric::Echo(void){
+	void Metric::Echo(void){/*{{{*/
 
 		_printf_("Metric:\n");
@@ -77,6 +71,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Metric::IntersectWith{{{*/
-	int Metric::IntersectWith(const Metric& M2) {
+	int Metric::IntersectWith(const Metric& M2) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Metric.cpp/IntersectWith)*/
 
@@ -130,12 +123,10 @@
 	}
 	/*}}}*/
-	/*FUNCTION Metric::mul{{{*/
-	R2     Metric::mul(const R2 x)const {
+	R2     Metric::mul(const R2 x)const {/*{{{*/
 		return R2(a11*x.x+a21*x.y,a21*x.x+a22*x.y);
 	}/*}}}*/
 
 	/*Intermediary*/
-	/*FUNCTION LengthInterpole{{{*/
-	double LengthInterpole(const Metric& Ma,const  Metric& Mb, R2 AB) {
+	double LengthInterpole(const Metric& Ma,const  Metric& Mb, R2 AB) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Metric.cpp/LengthInterpole)*/
 
@@ -204,6 +195,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION SimultaneousMatrixReduction{{{*/
-	void SimultaneousMatrixReduction( Metric M1,  Metric M2, D2xD2 &V) {
+	void SimultaneousMatrixReduction( Metric M1,  Metric M2, D2xD2 &V) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Metric.cpp/ReductionSimultanee)*/
 
@@ -307,6 +297,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION abscisseInterpole{{{*/
-	double abscisseInterpole(const Metric& Ma,const  Metric& Mb, R2 AB,double s,int optim) { 
+	double abscisseInterpole(const Metric& Ma,const  Metric& Mb, R2 AB,double s,int optim) { /*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Metric.cpp/abscisseInterpole)*/
 
Index: /issm/trunk-jpl/src/c/bamg/SetOfE4.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/SetOfE4.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/SetOfE4.cpp	(revision 18064)
@@ -5,6 +5,5 @@
 
 	/*Constructor*/
-	/*FUNCTION  SetOfEdges4::SetOfEdges4(long mmx,long nnx){{{*/
-	SetOfEdges4::SetOfEdges4(long mmx,long nnx){
+	SetOfEdges4::SetOfEdges4(long mmx,long nnx){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, SetOfEdges4.cpp/SetOfEdges4)*/
 
@@ -26,6 +25,5 @@
 
 	/*Methods*/ 
-	/*FUNCTION  SetOfEdges4::add{{{*/
-	long SetOfEdges4::add(long ii,long jj) {
+	long SetOfEdges4::add(long ii,long jj) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, SetOfEdges4.cpp/add)*/
 
@@ -61,6 +59,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION  SetOfEdges4::find {{{*/
-	long SetOfEdges4::find(long ii,long jj) { 
+	long SetOfEdges4::find(long ii,long jj) { /*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, SetOfEdges4.cpp/find)*/
 
@@ -88,26 +85,21 @@
 	}
 	/*}}}*/
-	/*FUNCTION  SetOfEdges4::i{{{*/
-	long SetOfEdges4::i(long k){
+	long SetOfEdges4::i(long k){/*{{{*/
 		return Edges[k].i;
 	}
 	/*}}}*/
-	/*FUNCTION  SetOfEdges4::j{{{*/
-	long SetOfEdges4::j(long k){
+	long SetOfEdges4::j(long k){/*{{{*/
 		return Edges[k].j;
 	}
 	/*}}}*/
-	/*FUNCTION  SetOfEdges4::nb{{{*/
-	long SetOfEdges4::nb(){
+	long SetOfEdges4::nb(){/*{{{*/
 		return NbOfEdges;
 	}
 	/*}}}*/
-	/*FUNCTION  SetOfEdges4::SortAndAdd{{{*/
-	long SetOfEdges4::SortAndAdd (long ii,long jj) {
+	long SetOfEdges4::SortAndAdd (long ii,long jj) {/*{{{*/
 		return ii <=jj ? add (ii,jj)  : add (jj,ii) ;
 	}
 	/*}}}*/
-	/*FUNCTION  SetOfEdges4::SortAndFind{{{*/
-	long SetOfEdges4::SortAndFind (long ii,long jj) {
+	long SetOfEdges4::SortAndFind (long ii,long jj) {/*{{{*/
 		return ii <=jj ? find (ii,jj)  : find (jj,ii) ;
 	}
Index: /issm/trunk-jpl/src/c/bamg/SubDomain.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/SubDomain.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/SubDomain.cpp	(revision 18064)
@@ -12,6 +12,5 @@
 
 	/*Methods*/
-	/*FUNCTION SubDomain::Set {{{*/
-	void SubDomain::Set(const Mesh & Th ,long i,Mesh & ThNew){
+	void SubDomain::Set(const Mesh & Th ,long i,Mesh & ThNew){/*{{{*/
 		*this = Th.subdomains[i];
 		if( head-Th.triangles<0 || head-Th.triangles>=Th.nbt){
Index: /issm/trunk-jpl/src/c/bamg/Triangle.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/Triangle.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/Triangle.cpp	(revision 18064)
@@ -11,11 +11,9 @@
 
 	/*Constructors/Destructors*/
-	/*FUNCTION Triangle(){{{*/
-	Triangle::Triangle(void){
-
-	}
-	/*}}}*/
-	/*FUNCTION Triangle(Mesh *Th,long i,long j,long k) {{{*/
-	Triangle::Triangle(Mesh *Th,long i,long j,long k) {
+	Triangle::Triangle(void){/*{{{*/
+
+	}
+	/*}}}*/
+	Triangle::Triangle(Mesh *Th,long i,long j,long k) {/*{{{*/
 		BamgVertex *v=Th->vertices;
 		long nbv = Th->nbv;
@@ -34,6 +32,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Triangle(BamgVertex *v0,BamgVertex *v1,BamgVertex *v2) {{{*/
-	Triangle::Triangle(BamgVertex *v0,BamgVertex *v1,BamgVertex *v2){
+	Triangle::Triangle(BamgVertex *v0,BamgVertex *v1,BamgVertex *v2){/*{{{*/
 		vertices[0]=v0;
 		vertices[1]=v1;
@@ -49,10 +46,8 @@
 
 	/*Methods*/
-	/*FUNCTION Triangle::Adj{{{*/
-	AdjacentTriangle Triangle::Adj(int i)  const {
+	AdjacentTriangle Triangle::Adj(int i)  const {/*{{{*/
 		return AdjacentTriangle(adj[i],AdjEdgeIndex[i]&3);
 	};/*}}}*/
-	/*FUNCTION Triangle::Length{{{*/
-	double Triangle::Length() const{
+	double Triangle::Length() const{/*{{{*/
 
 		double l;
@@ -75,6 +70,5 @@
 		return l;
 	};/*}}}*/
-	/*FUNCTION Triangle::Echo {{{*/
-	void Triangle::Echo(void){
+	void Triangle::Echo(void){/*{{{*/
 
 		int i;
@@ -106,23 +100,18 @@
 	}
 	/*}}}*/
-	/*FUNCTION Triangle::GetAllflag{{{*/
-	int    Triangle::GetAllflag(int a){
+	int    Triangle::GetAllflag(int a){/*{{{*/
 		return AdjEdgeIndex[a] & 1020;
 	}/*}}}*/
-	/*FUNCTION Triangle::Hidden{{{*/
-	int    Triangle::Hidden(int a)const {
+	int    Triangle::Hidden(int a)const {/*{{{*/
 		return AdjEdgeIndex[a]&16;
 	} /*}}}*/
-	/*FUNCTION Triangle::Locked{{{*/
-	int    Triangle::Locked(int a)const {
+	int    Triangle::Locked(int a)const {/*{{{*/
 		return AdjEdgeIndex[a]&4;
 	} /*}}}*/
-	/*FUNCTION Triangle::NuEdgeTriangleAdj{{{*/
-	short  Triangle::NuEdgeTriangleAdj(int i) const {
+	short  Triangle::NuEdgeTriangleAdj(int i) const {/*{{{*/
 		/*Number of the  adjacent edge in adj tria (make sure it is between 0 and 2*/
 		return AdjEdgeIndex[i&3]&3;
 	}/*}}}*/
-	/*FUNCTION Triangle::Optim{{{*/
-	long  Triangle::Optim(short i,int koption) {
+	long  Triangle::Optim(short i,int koption) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/Optim)*/
 
@@ -156,6 +145,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Triangle::Quadrangle {{{*/
-	Triangle* Triangle::Quadrangle(BamgVertex * & v0,BamgVertex * & v1,BamgVertex * & v2,BamgVertex * & v3) const{
+	Triangle* Triangle::Quadrangle(BamgVertex * & v0,BamgVertex * & v1,BamgVertex * & v2,BamgVertex * & v3) const{/*{{{*/
 		// return the other triangle of the quad if a quad or 0 if not a quat
 		Triangle * t =0;
@@ -177,6 +165,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Triangle::QualityQuad {{{*/
-	double   Triangle::QualityQuad(int a,int option) const{
+	double   Triangle::QualityQuad(int a,int option) const{/*{{{*/
 		double q;
 		if (!link || AdjEdgeIndex[a] &4)
@@ -200,6 +187,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Triangle::Renumbering(Triangle *tb,Triangle *te, long *renu){{{*/
-	void  Triangle::Renumbering(Triangle *tb,Triangle *te, long *renu){
+	void  Triangle::Renumbering(Triangle *tb,Triangle *te, long *renu){/*{{{*/
 
 		if (link  >=tb && link  <te) link  = tb + renu[link -tb];
@@ -208,12 +194,10 @@
 		if (adj[2] >=tb && adj[2] <te) adj[2] = tb + renu[adj[2]-tb];    
 	}/*}}}*/
-	/*FUNCTION Triangle::Renumbering(BamgVertex *vb,BamgVertex *ve, long *renu){{{*/
-	void Triangle::Renumbering(BamgVertex *vb,BamgVertex *ve, long *renu){
+	void Triangle::Renumbering(BamgVertex *vb,BamgVertex *ve, long *renu){/*{{{*/
 		if (vertices[0] >=vb && vertices[0] <ve) vertices[0] = vb + renu[vertices[0]-vb];
 		if (vertices[1] >=vb && vertices[1] <ve) vertices[1] = vb + renu[vertices[1]-vb];
 		if (vertices[2] >=vb && vertices[2] <ve) vertices[2] = vb + renu[vertices[2]-vb];    
 	}/*}}}*/
-	/*FUNCTION Triangle::Set {{{*/
-	void Triangle::Set(const Triangle & rec,const Mesh & Th ,Mesh & ThNew){ 
+	void Triangle::Set(const Triangle & rec,const Mesh & Th ,Mesh & ThNew){ /*{{{*/
 		*this = rec;
 		if ( vertices[0] ) vertices[0] = ThNew.vertices +  Th.GetId(vertices[0]);
@@ -227,6 +211,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Triangle::SetAdjAdj{{{*/
-	void Triangle::SetAdjAdj(short a){
+	void Triangle::SetAdjAdj(short a){/*{{{*/
 		// Copy all the mark 
 		a &= 3;
@@ -239,6 +222,5 @@
 		}
 	}/*}}}*/
-	/*FUNCTION Triangle::SetAdj2{{{*/
-	void Triangle::SetAdj2(short a,Triangle *t,short aat){
+	void Triangle::SetAdj2(short a,Triangle *t,short aat){/*{{{*/
 		/*For current triangle:
 		 * - a is the index of the edge were the adjency is set (in [0 2])
@@ -252,6 +234,5 @@
 		}
 	}/*}}}*/
-	/*FUNCTION Triangle::SetHidden{{{*/
-	void Triangle::SetHidden(int a){
+	void Triangle::SetHidden(int a){/*{{{*/
 		//Get Adjacent Triangle number a
 		Triangle* t = adj[a];
@@ -261,6 +242,5 @@
 		AdjEdgeIndex[a] |= 16;
 	}/*}}}*/
-	/*FUNCTION Triangle::SetLocked{{{*/
-	void Triangle::SetLocked(int a){
+	void Triangle::SetLocked(int a){/*{{{*/
 		//mark the edge as on Boundary
 		Triangle * t = adj[a];
@@ -268,24 +248,20 @@
 		AdjEdgeIndex[a] |= 4;
 	}/*}}}*/
-	/*FUNCTION Triangle::SetMarkUnSwap{{{*/
-	void Triangle::SetMarkUnSwap(int a){
+	void Triangle::SetMarkUnSwap(int a){/*{{{*/
 		Triangle * t = adj[a];
 		t->AdjEdgeIndex[AdjEdgeIndex[a] & 3] |=8;
 		AdjEdgeIndex[a] |=8 ;
 	}/*}}}*/
-	/*FUNCTION Triangle::SetSingleVertexToTriangleConnectivity{{{*/
-	void Triangle::SetSingleVertexToTriangleConnectivity() { 
+	void Triangle::SetSingleVertexToTriangleConnectivity() { /*{{{*/
 		if (vertices[0]) (vertices[0]->t=this,vertices[0]->IndexInTriangle=0);
 		if (vertices[1]) (vertices[1]->t=this,vertices[1]->IndexInTriangle=1);
 		if (vertices[2]) (vertices[2]->t=this,vertices[2]->IndexInTriangle=2);
 	}/*}}}*/
-	/*FUNCTION Triangle::SetUnMarkUnSwap{{{*/
-	void Triangle::SetUnMarkUnSwap(int a){ 
+	void Triangle::SetUnMarkUnSwap(int a){ /*{{{*/
 		Triangle * t = adj[a];
 		t->AdjEdgeIndex[AdjEdgeIndex[a] & 3] &=55; // 23 + 32 
 		AdjEdgeIndex[a] &=55 ;
 	}/*}}}*/
-	/*FUNCTION Triangle::swap{{{*/
-	int Triangle::swap(short a,int koption){
+	int Triangle::swap(short a,int koption){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/swap)*/
 
@@ -400,6 +376,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION Triangle::TriangleAdj{{{*/
-	Triangle* Triangle::TriangleAdj(int i) const {
+	Triangle* Triangle::TriangleAdj(int i) const {/*{{{*/
 		return adj[i&3];
 	}/*}}}*/
Index: /issm/trunk-jpl/src/c/bamg/VertexOnEdge.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/VertexOnEdge.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/VertexOnEdge.cpp	(revision 18064)
@@ -10,12 +10,10 @@
 
 	/*Methods*/
-	/*FUNCTION VertexOnEdge::Set {{{*/
-	void VertexOnEdge::Set(const Mesh & Th ,long i,Mesh & ThNew){
+	void VertexOnEdge::Set(const Mesh & Th ,long i,Mesh & ThNew){/*{{{*/
 		*this = Th.VertexOnBThEdge[i];  
 		v = ThNew.vertices + Th.GetId(v);
 	}
 	/*}}}*/
-	/*FUNCTION VertexOnEdge::SetOnBTh{{{*/
-	void VertexOnEdge::SetOnBTh(){
+	void VertexOnEdge::SetOnBTh(){/*{{{*/
 		v->BackgroundEdgeHook=this;
 		v->IndexInTriangle=IsVertexOnEdge;  
Index: /issm/trunk-jpl/src/c/bamg/VertexOnGeom.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/VertexOnGeom.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/VertexOnGeom.cpp	(revision 18064)
@@ -11,6 +11,5 @@
 
 	/*Constructors/Destructors*/
-	/*FUNCTION VertexOnGeom::VertexOnGeom(){{{*/
-	VertexOnGeom::VertexOnGeom(){
+	VertexOnGeom::VertexOnGeom(){/*{{{*/
 		meshvertex=NULL;
 		curvilincoord=0;
@@ -18,6 +17,5 @@
 	} 
 	/*}}}*/
-	/*FUNCTION VertexOnGeom::VertexOnGeom(BamgVertex & m,GeomVertex &g){{{*/
-	VertexOnGeom::VertexOnGeom(BamgVertex & m,GeomVertex &g){
+	VertexOnGeom::VertexOnGeom(BamgVertex & m,GeomVertex &g){/*{{{*/
 		meshvertex=&m;
 		curvilincoord=-1;
@@ -25,6 +23,5 @@
 	}
 	/*}}}*/
-	/*FUNCTION VertexOnGeom::VertexOnGeom(BamgVertex & m,GeomEdge &g,double s){{{*/
-	VertexOnGeom::VertexOnGeom(BamgVertex & m,GeomEdge &g,double s){
+	VertexOnGeom::VertexOnGeom(BamgVertex & m,GeomEdge &g,double s){/*{{{*/
 		meshvertex=&m;
 		curvilincoord=s;
@@ -34,6 +31,5 @@
 
 	/*Methods*/
-	/*FUNCTION VertexOnGeom::Set {{{*/
-	void VertexOnGeom::Set(const VertexOnGeom & rec,const Mesh & Th ,Mesh & ThNew){
+	void VertexOnGeom::Set(const VertexOnGeom & rec,const Mesh & Th ,Mesh & ThNew){/*{{{*/
 		*this = rec;  
 		meshvertex = ThNew.vertices + Th.GetId(meshvertex);
@@ -47,21 +43,17 @@
 	}
 	/*}}}*/
-	/*FUNCTION VertexOnGeom::OnGeomVertex{{{*/
-	int VertexOnGeom::OnGeomVertex()const{
+	int VertexOnGeom::OnGeomVertex()const{/*{{{*/
 		return this? curvilincoord <0 :0;
 	}
 	/*}}}*/
-	/*FUNCTION VertexOnGeom::OnGeomEdge{{{*/
-	int VertexOnGeom::OnGeomEdge() const{
+	int VertexOnGeom::OnGeomEdge() const{/*{{{*/
 		return this? curvilincoord >=0 :0;
 	}
 	/*}}}*/
-	/*FUNCTION VertexOnGeom::IsRequiredVertex{{{*/
-	int VertexOnGeom::IsRequiredVertex() {
+	int VertexOnGeom::IsRequiredVertex() {/*{{{*/
 		return this? ((curvilincoord<0 ? (gv?gv->Required():0):0 )) : 0;
 	}
 	/*}}}*/
-	/*FUNCTION VertexOnGeom::SetOn{{{*/
-	void VertexOnGeom::SetOn(){
+	void VertexOnGeom::SetOn(){/*{{{*/
 		meshvertex->GeomEdgeHook=this;
 		meshvertex->IndexInTriangle=IsVertexOnGeom;
Index: /issm/trunk-jpl/src/c/bamg/VertexOnVertex.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/VertexOnVertex.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/bamg/VertexOnVertex.cpp	(revision 18064)
@@ -10,23 +10,19 @@
 
 	/*Constructors/Destructors*/
-	/*FUNCTION VertexOnVertex::VertexOnVertex(){{{*/
-	VertexOnVertex::VertexOnVertex() {
+	VertexOnVertex::VertexOnVertex() {/*{{{*/
 		v=NULL;
 		bv=NULL;
 	};/*}}}*/
-	/*FUNCTION VertexOnVertex::VertexOnVertex(BamgVertex * w,BamgVertex *bw){{{*/
-	VertexOnVertex::VertexOnVertex(BamgVertex * w,BamgVertex *bw) :v(w),bv(bw){
+	VertexOnVertex::VertexOnVertex(BamgVertex * w,BamgVertex *bw) :v(w),bv(bw){/*{{{*/
 
 	}/*}}}*/
 
 	/*Methods*/
-	/*FUNCTION VertexOnVertex::Set{{{*/
-	void VertexOnVertex::Set(const Mesh &Th ,long i,Mesh &ThNew) { 
+	void VertexOnVertex::Set(const Mesh &Th ,long i,Mesh &ThNew) { /*{{{*/
 		*this = Th.VertexOnBThVertex[i];  
 		v     = ThNew.vertices + Th.GetId(v);
 	}
 	/*}}}*/
-	/*FUNCTION VertexOnVertex::SetOnBTh{{{*/
-	void VertexOnVertex::SetOnBTh(){
+	void VertexOnVertex::SetOnBTh(){/*{{{*/
 		v->BackgroundVertexHook=bv;v->IndexInTriangle=IsVertexOnVertex;
 	}/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Constraints/Constraints.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Constraints/Constraints.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Constraints/Constraints.cpp	(revision 18064)
@@ -19,6 +19,5 @@
 
 /*Numerics: */
-/*FUNCTION Constraints::NumberOfConstraints{{{*/
-int Constraints::NumberOfConstraints(void){
+int Constraints::NumberOfConstraints(void){/*{{{*/
 
 	int localconstraints;
Index: /issm/trunk-jpl/src/c/classes/Constraints/Constraints.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Constraints/Constraints.h	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Constraints/Constraints.h	(revision 18064)
@@ -16,12 +16,10 @@
 
 		/*Object constructors and destructor*/
-		/*FUNCTION Constraints::Constraints(){{{*/
-		Constraints(){
+		Constraints(){/*{{{*/
 			enum_type=ConstraintsEnum;
 			return;
 		}
 		/*}}}*/
-		/*FUNCTION Constraints::~Constraints(){{{*/
-		~Constraints(){
+		~Constraints(){/*{{{*/
 			return;
 		}
Index: /issm/trunk-jpl/src/c/classes/Constraints/SpcDynamic.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Constraints/SpcDynamic.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Constraints/SpcDynamic.cpp	(revision 18064)
@@ -14,11 +14,9 @@
 
 /*SpcDynamic constructors and destructor*/
-/*FUNCTION SpcDynamic::SpcDynamic(){{{*/
-SpcDynamic::SpcDynamic(){
+SpcDynamic::SpcDynamic(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION SpcDynamic::SpcDynamic(int spc_sid,int spc_nodeid,...){{{*/
-SpcDynamic::SpcDynamic(int spc_sid,int spc_nodeid, int spc_dof,int spc_analysis_type){
+SpcDynamic::SpcDynamic(int spc_sid,int spc_nodeid, int spc_dof,int spc_analysis_type){/*{{{*/
 
 	sid=spc_sid;
@@ -32,6 +30,5 @@
 }
 /*}}}*/
-/*FUNCTION SpcDynamic::~SpcDynamic{{{*/
-SpcDynamic::~SpcDynamic(){
+SpcDynamic::~SpcDynamic(){/*{{{*/
 	return;
 }
@@ -39,6 +36,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION SpcDynamic::Echo {{{*/
-void SpcDynamic::Echo(void){
+void SpcDynamic::Echo(void){/*{{{*/
 
 	_printf_("SpcDynamic:\n");
@@ -52,6 +48,5 @@
 }
 /*}}}*/
-/*FUNCTION SpcDynamic::DeepEcho {{{*/
-void SpcDynamic::DeepEcho(void){
+void SpcDynamic::DeepEcho(void){/*{{{*/
 
 	this->Echo();
@@ -59,9 +54,7 @@
 }		
 /*}}}*/
-/*FUNCTION SpcDynamic::Id {{{*/
-int    SpcDynamic::Id(void){ return sid; }
+int    SpcDynamic::Id(void){ return sid; }/*{{{*/
 /*}}}*/
-/*FUNCTION SpcDynamic::ObjectEnum{{{*/
-int SpcDynamic::ObjectEnum(void){
+int SpcDynamic::ObjectEnum(void){/*{{{*/
 
 	return SpcDynamicEnum;
@@ -69,6 +62,5 @@
 }
 /*}}}*/
-/*FUNCTION SpcDynamic::copy {{{*/
-Object* SpcDynamic::copy() {
+Object* SpcDynamic::copy() {/*{{{*/
 	return new SpcDynamic(*this); 
 }
@@ -76,12 +68,10 @@
 
 /*Constraint virtual functions definitions: */
-/*FUNCTION SpcDynamic::InAnalysis{{{*/
-bool SpcDynamic::InAnalysis(int in_analysis_type){
+bool SpcDynamic::InAnalysis(int in_analysis_type){/*{{{*/
 	if (in_analysis_type==this->analysis_type) return true;
 	else return false;
 }
 /*}}}*/
-/*FUNCTION SpcDynamic::ConstrainNode{{{*/
-void SpcDynamic::ConstrainNode(Nodes* nodes,Parameters* parameters){
+void SpcDynamic::ConstrainNode(Nodes* nodes,Parameters* parameters){/*{{{*/
 
 	Node* node=NULL;
@@ -100,17 +90,14 @@
 
 /*SpcDynamic functions*/
-/*FUNCTION SpcDynamic::GetDof {{{*/
-int SpcDynamic::GetDof(){
+int SpcDynamic::GetDof(){/*{{{*/
 	return dof;
 }
 /*}}}*/
-/*FUNCTION SpcDynamic::GetNodeId {{{*/
-int   SpcDynamic::GetNodeId(){
+int   SpcDynamic::GetNodeId(){/*{{{*/
 
 	return nodeid;
 }
 /*}}}*/
-/*FUNCTION SpcDynamic::GetValue {{{*/
-IssmDouble SpcDynamic::GetValue(){
+IssmDouble SpcDynamic::GetValue(){/*{{{*/
 	_assert_(this->isset);
 	_assert_(!xIsNan<IssmDouble>(value));
@@ -118,6 +105,5 @@
 }
 /*}}}*/
-/*FUNCTION SpcDynamic::SetDynamicConstraint {{{*/
-void SpcDynamic::SetDynamicConstraint(Nodes* nodes,IssmDouble* yg_serial){
+void SpcDynamic::SetDynamicConstraint(Nodes* nodes,IssmDouble* yg_serial){/*{{{*/
 
 	int pos;
Index: /issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp	(revision 18064)
@@ -14,11 +14,9 @@
 
 /*SpcStatic constructors and destructor*/
-/*FUNCTION SpcStatic::SpcStatic(){{{*/
-SpcStatic::SpcStatic(){
+SpcStatic::SpcStatic(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION SpcStatic::SpcStatic(int spc_sid,int spc_nodeid,...){{{*/
-SpcStatic::SpcStatic(int spc_sid,int spc_nodeid, int spc_dof,IssmDouble spc_value,int spc_analysis_type){
+SpcStatic::SpcStatic(int spc_sid,int spc_nodeid, int spc_dof,IssmDouble spc_value,int spc_analysis_type){/*{{{*/
 
 	sid           = spc_sid;
@@ -31,6 +29,5 @@
 }
 /*}}}*/
-/*FUNCTION SpcStatic::~SpcStatic{{{*/
-SpcStatic::~SpcStatic(){
+SpcStatic::~SpcStatic(){/*{{{*/
 	return;
 }
@@ -38,6 +35,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION SpcStatic::Echo {{{*/
-void SpcStatic::Echo(void){
+void SpcStatic::Echo(void){/*{{{*/
 
 	_printf_("SpcStatic:\n");
@@ -50,6 +46,5 @@
 }
 /*}}}*/
-/*FUNCTION SpcStatic::DeepEcho {{{*/
-void SpcStatic::DeepEcho(void){
+void SpcStatic::DeepEcho(void){/*{{{*/
 
 	_printf_("SpcStatic:\n");
@@ -62,9 +57,7 @@
 }		
 /*}}}*/
-/*FUNCTION SpcStatic::Id {{{*/
-int    SpcStatic::Id(void){ return sid; }
+int    SpcStatic::Id(void){ return sid; }/*{{{*/
 /*}}}*/
-/*FUNCTION SpcStatic::ObjectEnum{{{*/
-int SpcStatic::ObjectEnum(void){
+int SpcStatic::ObjectEnum(void){/*{{{*/
 
 	return SpcStaticEnum;
@@ -72,6 +65,5 @@
 }
 /*}}}*/
-/*FUNCTION SpcStatic::copy {{{*/
-Object* SpcStatic::copy() {
+Object* SpcStatic::copy() {/*{{{*/
 	return new SpcStatic(*this); 
 }
@@ -79,12 +71,10 @@
 
 /*Constraint virtual functions definitions: */
-/*FUNCTION SpcStatic::InAnalysis{{{*/
-bool SpcStatic::InAnalysis(int in_analysis_type){
+bool SpcStatic::InAnalysis(int in_analysis_type){/*{{{*/
 	if (in_analysis_type==this->analysis_type) return true;
 	else return false;
 }
 /*}}}*/
-/*FUNCTION SpcStatic::ConstrainNode{{{*/
-void SpcStatic::ConstrainNode(Nodes* nodes,Parameters* parameters){
+void SpcStatic::ConstrainNode(Nodes* nodes,Parameters* parameters){/*{{{*/
 
 	Node* node=NULL;
@@ -101,17 +91,14 @@
 
 /*SpcStatic functions*/
-/*FUNCTION SpcStatic::GetDof {{{*/
-int SpcStatic::GetDof(){
+int SpcStatic::GetDof(){/*{{{*/
 	return dof;
 }
 /*}}}*/
-/*FUNCTION SpcStatic::GetNodeId {{{*/
-int   SpcStatic::GetNodeId(){
+int   SpcStatic::GetNodeId(){/*{{{*/
 
 	return nodeid;
 }
 /*}}}*/
-/*FUNCTION SpcStatic::GetValue {{{*/
-IssmDouble SpcStatic::GetValue(){
+IssmDouble SpcStatic::GetValue(){/*{{{*/
 	_assert_(!xIsNan<IssmDouble>(value));
 	return value;
Index: /issm/trunk-jpl/src/c/classes/Constraints/SpcTransient.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Constraints/SpcTransient.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Constraints/SpcTransient.cpp	(revision 18064)
@@ -14,6 +14,5 @@
 
 /*SpcTransient constructors and destructor*/
-/*FUNCTION SpcTransient::SpcTransient(){{{*/
-SpcTransient::SpcTransient(){
+SpcTransient::SpcTransient(){/*{{{*/
 	sid=-1;
 	nodeid=-1;
@@ -26,6 +25,5 @@
 }
 /*}}}*/
-/*FUNCTION SpcTransient::SpcTransient(int spc_sid,int spc_nodeid,...){{{*/
-SpcTransient::SpcTransient(int spc_sid,int spc_nodeid, int spc_dof,int spc_nsteps, IssmDouble* spc_times, IssmDouble* spc_values,int spc_analysis_type){
+SpcTransient::SpcTransient(int spc_sid,int spc_nodeid, int spc_dof,int spc_nsteps, IssmDouble* spc_times, IssmDouble* spc_values,int spc_analysis_type){/*{{{*/
 
 	sid=spc_sid;
@@ -43,6 +41,5 @@
 }
 /*}}}*/
-/*FUNCTION SpcTransient::~SpcTransient{{{*/
-SpcTransient::~SpcTransient(){
+SpcTransient::~SpcTransient(){/*{{{*/
 	xDelete<IssmDouble>(times);
 	xDelete<IssmDouble>(values);
@@ -52,6 +49,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION SpcTransient::Echo {{{*/
-void SpcTransient::Echo(void){
+void SpcTransient::Echo(void){/*{{{*/
 
 	int i;
@@ -69,14 +65,11 @@
 }
 /*}}}*/
-/*FUNCTION SpcTransient::DeepEcho {{{*/
-void SpcTransient::DeepEcho(void){
+void SpcTransient::DeepEcho(void){/*{{{*/
 	this->Echo();
 }		
 /*}}}*/
-/*FUNCTION SpcTransient::Id {{{*/
-int    SpcTransient::Id(void){ return sid; }
+int    SpcTransient::Id(void){ return sid; }/*{{{*/
 /*}}}*/
-/*FUNCTION SpcTransient::ObjectEnum{{{*/
-int SpcTransient::ObjectEnum(void){
+int SpcTransient::ObjectEnum(void){/*{{{*/
 
 	return SpcTransientEnum;
@@ -84,6 +77,5 @@
 }
 /*}}}*/
-/*FUNCTION SpcTransient::copy {{{*/
-Object* SpcTransient::copy() {
+Object* SpcTransient::copy() {/*{{{*/
 	return new SpcTransient(sid,nodeid,dof,nsteps,times,values,analysis_type);
 }
@@ -91,6 +83,5 @@
 
 /*Constraint virtual functions definitions:*/
-/*FUNCTION SpcTransient::InAnalysis{{{*/
-bool SpcTransient::InAnalysis(int in_analysis_type){
+bool SpcTransient::InAnalysis(int in_analysis_type){/*{{{*/
 
 	if (in_analysis_type==this->analysis_type) return true;
@@ -98,6 +89,5 @@
 }
 /*}}}*/
-/*FUNCTION SpcTransient::ConstrainNode{{{*/
-void SpcTransient::ConstrainNode(Nodes* nodes,Parameters* parameters){
+void SpcTransient::ConstrainNode(Nodes* nodes,Parameters* parameters){/*{{{*/
 
 	Node       *node  = NULL;
@@ -149,17 +139,14 @@
 
 /*SpcTransient functions*/
-/*FUNCTION SpcTransient::GetDof {{{*/
-int SpcTransient::GetDof(){
+int SpcTransient::GetDof(){/*{{{*/
 	return dof;
 }
 /*}}}*/
-/*FUNCTION SpcTransient::GetNodeId {{{*/
-int   SpcTransient::GetNodeId(){
+int   SpcTransient::GetNodeId(){/*{{{*/
 
 	return nodeid;
 }
 /*}}}*/
-/*FUNCTION SpcTransient::GetValue {{{*/
-IssmDouble SpcTransient::GetValue(){
+IssmDouble SpcTransient::GetValue(){/*{{{*/
 	return values[0];
 }
Index: /issm/trunk-jpl/src/c/classes/Contour.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Contour.h	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Contour.h	(revision 18064)
@@ -24,6 +24,5 @@
 
 		/*Contour constructors, destructors :*/
-		/*FUNCTION Contour() {{{*/
-		Contour(){
+		Contour(){/*{{{*/
 			this->id     = 0;
 			this->nods   = 0;
@@ -33,6 +32,5 @@
 		}
 		/*}}}*/
-		/*FUNCTION Contour(int pid, int nods, doubletype* x, doubletype* y,bool closed) {{{*/
-		Contour(int pid,int pnods, doubletype* px, doubletype* py,bool pclosed){
+		Contour(int pid,int pnods, doubletype* px, doubletype* py,bool pclosed){/*{{{*/
 
 			this->id     = pid;
@@ -47,6 +45,5 @@
 		}
 		/*}}}*/
-		/*FUNCTION ~Contour() {{{*/
-		~Contour(){
+		~Contour(){/*{{{*/
 			xDelete<doubletype>(this->x);
 			xDelete<doubletype>(this->y);
@@ -55,6 +52,5 @@
 
 		/*Object virtual function resolutoin: */
-		/*FUNCTION Echo(){{{*/
-		void Echo(void){
+		void Echo(void){/*{{{*/
 			_printf_(" Contour: " << id << "\n");
 			_printf_("    nods: " << nods << "\n");
@@ -68,21 +64,17 @@
 		}
 		/*}}}*/
-		/*FUNCTION DeepEcho(){{{*/
-		void DeepEcho(void){
+		void DeepEcho(void){/*{{{*/
 			this->Echo();
 		}
 		/*}}}*/
-		/*FUNCTION Id(){{{*/
-		int Id(void){
+		int Id(void){/*{{{*/
 			return id;
 		}
 		/*}}}*/
-		/*FUNCTION ObjectEnum{{{*/
-		int ObjectEnum(void){
+		int ObjectEnum(void){/*{{{*/
 			return ContourEnum;
 		}
 		/*}}}*/
-		/*FUNCTION copy {{{*/
-		Object* copy() {
+		Object* copy() {/*{{{*/
 			return new Contour(*this); 
 		}
Index: /issm/trunk-jpl/src/c/classes/Contours.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Contours.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Contours.cpp	(revision 18064)
@@ -19,12 +19,10 @@
 
 /*Object constructors and destructor*/
-/*FUNCTION Contours::Contours(){{{*/
-Contours::Contours(){
+Contours::Contours(){/*{{{*/
 	enum_type=ContoursEnum;
 	return;
 }
 /*}}}*/
-/*FUNCTION Contours::~Contours(){{{*/
-Contours::~Contours(){
+Contours::~Contours(){/*{{{*/
 	return;
 }
Index: /issm/trunk-jpl/src/c/classes/DependentObject.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/DependentObject.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/DependentObject.cpp	(revision 18064)
@@ -14,6 +14,5 @@
 
 /*DependentObject constructors and destructor*/
-/*FUNCTION DependentObject::DependentObject(){{{*/
-DependentObject::DependentObject(){
+DependentObject::DependentObject(){/*{{{*/
 	this->name=NULL;
 	this->type=0;
@@ -21,6 +20,5 @@
 }
 /*}}}*/
-/*FUNCTION DependentObject::DependentObject(int in_name, int in_type, int in_index){{{*/
-DependentObject::DependentObject(char* in_name, int in_type,int in_index){
+DependentObject::DependentObject(char* in_name, int in_type,int in_index){/*{{{*/
 
 	this->name=xNew<char>(strlen(in_name)+1); xMemCpy<char>(this->name,in_name,strlen(in_name)+1);
@@ -32,6 +30,5 @@
 }
 /*}}}*/
-/*FUNCTION DependentObject::~DependentObject() {{{*/
-DependentObject::~DependentObject(){ //destructor
+DependentObject::~DependentObject(){ //destructor/*{{{*/
 	xDelete<char>(this->name);
 }
@@ -39,6 +36,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION DependentObject::Echo{{{*/
-void DependentObject::Echo(void){
+void DependentObject::Echo(void){/*{{{*/
 
 	_printf_("DependentObject:\n");
@@ -53,14 +49,11 @@
 }
 /*}}}*/
-/*FUNCTION DependentObject::DeepEcho{{{*/
-void DependentObject::DeepEcho(void){
+void DependentObject::DeepEcho(void){/*{{{*/
 	this->Echo();
 }
 /*}}}*/
-/*FUNCTION DependentObject::Id{{{*/
-int    DependentObject::Id(void){ return -1; }
+int    DependentObject::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION DependentObject::ObjectEnum{{{*/
-int DependentObject::ObjectEnum(void){
+int DependentObject::ObjectEnum(void){/*{{{*/
 
 	return DependentObjectEnum;
@@ -68,12 +61,10 @@
 }
 /*}}}*/
-/*FUNCTION DependentObject::copy{{{*/
-Object* DependentObject::copy(void) { 
+Object* DependentObject::copy(void) { /*{{{*/
 	return new DependentObject(name,type,index);
 } /*}}}*/
 
 /*DependentObject methods: */
-/*FUNCTION DependentObject::NumDependents{{{*/
-int  DependentObject::NumDependents(void){
+int  DependentObject::NumDependents(void){/*{{{*/
 
 	/*Branch according to the type of variable: */
@@ -87,6 +78,5 @@
 }
 /*}}}*/
-/*FUNCTION DependentObject::Responsex{{{*/
-void  DependentObject::Responsex(IssmDouble* poutput_value,FemModel* femmodel){
+void  DependentObject::Responsex(IssmDouble* poutput_value,FemModel* femmodel){/*{{{*/
 
 	/*Is this some special type of response for which we need to go in the output definitions? :*/
Index: /issm/trunk-jpl/src/c/classes/DofIndexing.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/DofIndexing.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/DofIndexing.cpp	(revision 18064)
@@ -20,6 +20,5 @@
 
 /*DofIndexing constructors and destructor*/
-/*FUNCTION DofIndexing::DofIndexing(){{{*/
-DofIndexing::DofIndexing(){
+DofIndexing::DofIndexing(){/*{{{*/
 
 	this->gsize    = UNDEF;
@@ -38,6 +37,5 @@
 }
 /*}}}*/
-/*FUNCTION DofIndexing::DofIndexing(int gsize){{{*/
-DofIndexing::DofIndexing(int in_gsize){
+DofIndexing::DofIndexing(int in_gsize){/*{{{*/
 
 	this->Init(in_gsize,NULL);
@@ -45,6 +43,5 @@
 }
 /*}}}*/
-/*FUNCTION DofIndexing::DofIndexing(DofIndexing* in)  -> copy{{{*/
-DofIndexing::DofIndexing(DofIndexing* in){ //copy constructor
+DofIndexing::DofIndexing(DofIndexing* in){ //copy constructor/*{{{*/
 
 	this->gsize  = in->gsize;
@@ -83,6 +80,5 @@
 }
 /*}}}*/
-/*FUNCTION DofIndexing::~DofIndexing() {{{*/
-DofIndexing::~DofIndexing(){ //destructor
+DofIndexing::~DofIndexing(){ //destructor/*{{{*/
 
 	xDelete<bool>(f_set); 
@@ -96,6 +92,5 @@
 }
 /*}}}*/
-/*FUNCTION DofIndexing::Init{{{*/
-void DofIndexing::Init(int in_gsize,int* in_doftype){
+void DofIndexing::Init(int in_gsize,int* in_doftype){/*{{{*/
 
 	this->gsize = in_gsize;
@@ -127,6 +122,5 @@
 }
 /*}}}*/
-/*FUNCTION DofIndexing::InitSet{{{*/
-void DofIndexing::InitSet(int setenum){
+void DofIndexing::InitSet(int setenum){/*{{{*/
 
 	int i;
@@ -162,6 +156,5 @@
 
 /*Some of the Object functionality: */
-/*FUNCTION DofIndexing::Echo{{{*/
-void DofIndexing::Echo(void){
+void DofIndexing::Echo(void){/*{{{*/
 
 	_printf_("DofIndexing:\n");
@@ -173,6 +166,5 @@
 }
 /*}}}*/
-/*FUNCTION DofIndexing::DeepEcho{{{*/
-void DofIndexing::DeepEcho(void){
+void DofIndexing::DeepEcho(void){/*{{{*/
 
 	int i;
@@ -224,6 +216,5 @@
 }		
 /*}}}*/
-/*FUNCTION DofIndexing::Deactivate{{{*/
-void DofIndexing::Deactivate(void){
+void DofIndexing::Deactivate(void){/*{{{*/
 	this->active = false;
 
@@ -237,6 +228,5 @@
 }
 /*}}}*/
-/*FUNCTION DofIndexing::Activate{{{*/
-void DofIndexing::Activate(void){
+void DofIndexing::Activate(void){/*{{{*/
 	this->active = true;
 
Index: /issm/trunk-jpl/src/c/classes/ExternalResults/Results.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/ExternalResults/Results.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/ExternalResults/Results.cpp	(revision 18064)
@@ -20,12 +20,10 @@
 
 /*Object constructors and destructor*/
-/*FUNCTION Results::Results(){{{*/
-Results::Results(){
+Results::Results(){/*{{{*/
 	enum_type=ResultsEnum;
 	return;
 }
 /*}}}*/
-/*FUNCTION Results::~Results(){{{*/
-Results::~Results(){
+Results::~Results(){/*{{{*/
 	return;
 }
@@ -33,6 +31,5 @@
 
 /*Object management*/
-/*FUNCTION Results::Write{{{*/
-void Results::Write(Parameters* parameters){
+void Results::Write(Parameters* parameters){/*{{{*/
 
 	FILE       *fid  = NULL;
@@ -50,6 +47,5 @@
 }
 /*}}}*/
-/*FUNCTION Results::AddResult(ExternalResult* in_result){{{*/
-int Results::AddResult(ExternalResult* in_result){
+int Results::AddResult(ExternalResult* in_result){/*{{{*/
 
 	/*First, go through dataset of inputs and check whether any input 
@@ -82,6 +78,5 @@
 }
 /*}}}*/
-/*FUNCTION Results::DeleteResult(ExternalResult* in_result){{{*/
-int Results::DeleteResult(int result_enum,int result_step){
+int Results::DeleteResult(int result_enum,int result_step){/*{{{*/
 
 	for(int i=0;i<this->Size();i++){
Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 18064)
@@ -43,6 +43,5 @@
 
 /*Object constructors and destructor*/
-/*FUNCTION FemModel::FemModel(int argc,char** argv,ISSM_MPI_Comm incomm){{{*/
-FemModel::FemModel(int argc,char** argv,ISSM_MPI_Comm incomm){
+FemModel::FemModel(int argc,char** argv,ISSM_MPI_Comm incomm){/*{{{*/
 
 	/*configuration: */
@@ -94,6 +93,5 @@
 }
 /*}}}*/
-/*FUNCTION FemModel::FemModel(char* rootpath, char* inputfilename, char* outputfilename, char* toolkitsfilename, char* lockfilename, const int in_solution_type,const int* analyses,const int nummodels){{{*/
-FemModel::FemModel(char* rootpath, char* inputfilename, char* outputfilename, char* toolkitsfilename, char* lockfilename, const int in_solution_type,const int* analyses,const int nummodels){
+FemModel::FemModel(char* rootpath, char* inputfilename, char* outputfilename, char* toolkitsfilename, char* lockfilename, const int in_solution_type,const int* analyses,const int nummodels){/*{{{*/
 
 	/*Call InitFromFiles. This constructor is just a wrapper: */
@@ -102,6 +100,5 @@
 }
 /*}}}*/
-/*FUNCTION FemModel::~FemModel{{{*/
-FemModel::~FemModel(){
+FemModel::~FemModel(){/*{{{*/
 
 	/*Intermediary*/
@@ -163,6 +160,5 @@
 
 /*Object management*/
-/*FUNCTION FemModel::Echo {{{*/
-void FemModel::Echo(void){
+void FemModel::Echo(void){/*{{{*/
 
 	_printf_("FemModel echo: \n");
@@ -175,6 +171,5 @@
 }
 /*}}}*/
-/*FUNCTION FemModel::InitFromFiles(char* rootpath, char* inputfilename, char* outputfilename, char* toolkitsfilename, char* lockfilename, const int in_solution_type,const int* analyses,const int nummodels){{{*/
-void FemModel::InitFromFiles(char* rootpath, char* inputfilename, char* outputfilename, char* toolkitsfilename, char* lockfilename, const int in_solution_type,const int* analyses,const int nummodels){
+void FemModel::InitFromFiles(char* rootpath, char* inputfilename, char* outputfilename, char* toolkitsfilename, char* lockfilename, const int in_solution_type,const int* analyses,const int nummodels){/*{{{*/
 
 	/*intermediary*/
@@ -246,6 +241,5 @@
 	}
 /*}}}*/
-/*FUNCTION FemModel::SetStaticComm {{{*/
-void FemModel::SetStaticComm(void){
+void FemModel::SetStaticComm(void){/*{{{*/
 
 	/*This routine sets the global communicator variable hidden inside the IssmComm 
@@ -255,6 +249,5 @@
 }
 /*}}}*/
-/*FUNCTION FemModel::SetCurrentConfiguration(int configuration_type,int analysis_type){{{*/
-void FemModel::SetCurrentConfiguration(int configuration_type,int analysis_type){
+void FemModel::SetCurrentConfiguration(int configuration_type,int analysis_type){/*{{{*/
 
 	/*Use configuration_type to setup the analysis counter, the configurations of objects etc ... but use 
@@ -290,11 +283,9 @@
 }
 /*}}}*/
-/*FUNCTION FemModel::SetCurrentConfiguration(int configuration_type){{{*/
-void FemModel::SetCurrentConfiguration(int configuration_type){
+void FemModel::SetCurrentConfiguration(int configuration_type){/*{{{*/
 	this->SetCurrentConfiguration(configuration_type,configuration_type);
 }
 /*}}}*/
-/*FUNCTION FemModel::Solve {{{*/
-void FemModel::Solve(void){
+void FemModel::Solve(void){/*{{{*/
 
 	/*profiling: */
Index: /issm/trunk-jpl/src/c/classes/Hook.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Hook.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Hook.cpp	(revision 18064)
@@ -16,6 +16,5 @@
 
 /*Constructor/Destructors*/
-/*FUNCTION Hook::Hook(){{{*/
-Hook::Hook(){
+Hook::Hook(){/*{{{*/
 	this->num     = 0;
 	this->objects = NULL;
@@ -24,6 +23,5 @@
 }
 /*}}}*/
-/*FUNCTION Hook::Hook(int* ids, int num){{{*/
-Hook::Hook(int* in_ids, int in_num){
+Hook::Hook(int* in_ids, int in_num){/*{{{*/
 
 	/*Get number of objects to hook*/
@@ -52,6 +50,5 @@
 }
 /*}}}*/
-/*FUNCTION Hook::~Hook(){{{*/
-Hook::~Hook(){
+Hook::~Hook(){/*{{{*/
 	xDelete<Object*>(this->objects);
 	xDelete<int>(this->ids);
@@ -61,6 +58,5 @@
 
 /*Some of the Object functionality: */
-/*FUNCTION Hook::Echo{{{*/
-void Hook::Echo(void){
+void Hook::Echo(void){/*{{{*/
 	_assert_(this);
 	int i;
@@ -80,6 +76,5 @@
 }
 /*}}}*/
-/*FUNCTION Hook::DeepEcho{{{*/
-void Hook::DeepEcho(void){
+void Hook::DeepEcho(void){/*{{{*/
 
 	int i;
@@ -108,6 +103,5 @@
 }
 /*}}}*/
-/*FUNCTION Hook::copy {{{*/
-Object* Hook::copy(void){
+Object* Hook::copy(void){/*{{{*/
 
 	/*output: */
@@ -136,6 +130,5 @@
 
 /*Hook management: */
-/*FUNCTION Hook::configure{{{*/
-void Hook::configure(DataSet* dataset){
+void Hook::configure(DataSet* dataset){/*{{{*/
 
 	/*intermediary: */
@@ -178,6 +171,5 @@
 }
 /*}}}*/
-/*FUNCTION Hook::delivers{{{*/
-Object* Hook::delivers(void){
+Object* Hook::delivers(void){/*{{{*/
 
 	/*first, check that we only have one T object in our object list: */
@@ -191,21 +183,17 @@
 
 /*}}}*/
-/*FUNCTION Hook::deliverp{{{*/
-Object** Hook::deliverp(void){
+Object** Hook::deliverp(void){/*{{{*/
 	return objects;
 }
 /*}}}*/
-/*FUNCTION Hook::Ids{{{*/
-int* Hook::Ids(void){
+int* Hook::Ids(void){/*{{{*/
 	return this->ids;
 }
 /*}}}*/
-/*FUNCTION Hook::GetNum{{{*/
-int Hook::GetNum(void){
+int Hook::GetNum(void){/*{{{*/
 	return this->num;
 }
 /*}}}*/
-/*FUNCTION Hook::Spawn{{{*/
-Hook* Hook::Spawn(int* indices, int numindices){
+Hook* Hook::Spawn(int* indices, int numindices){/*{{{*/
 
 	/*output: */
Index: /issm/trunk-jpl/src/c/classes/IndependentObject.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/IndependentObject.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/IndependentObject.cpp	(revision 18064)
@@ -14,6 +14,5 @@
 
 /*IndependentObject constructors and destructor*/
-/*FUNCTION IndependentObject::IndependentObject(){{{*/
-IndependentObject::IndependentObject(){
+IndependentObject::IndependentObject(){/*{{{*/
 	this->name=NoneEnum;
 	this->type=0;
@@ -21,6 +20,5 @@
 }
 /*}}}*/
-/*FUNCTION IndependentObject::IndependentObject(int in_name, int in_type){{{*/
-IndependentObject::IndependentObject(int in_name, int in_type){
+IndependentObject::IndependentObject(int in_name, int in_type){/*{{{*/
 
 	this->numberofindependents=0;
@@ -31,12 +29,10 @@
 }
 /*}}}*/
-/*FUNCTION IndependentObject::~IndependentObject() {{{*/
-IndependentObject::~IndependentObject(){ //destructor
+IndependentObject::~IndependentObject(){ //destructor/*{{{*/
 }
 /*}}}*/
 
 /*Object virtual functions definitions:*/
-/*FUNCTION IndependentObject::Echo{{{*/
-void IndependentObject::Echo(void){
+void IndependentObject::Echo(void){/*{{{*/
 
 	_printf_("IndependentObject:\n");
@@ -51,14 +47,11 @@
 }
 /*}}}*/
-/*FUNCTION IndependentObject::DeepEcho{{{*/
-void IndependentObject::DeepEcho(void){
+void IndependentObject::DeepEcho(void){/*{{{*/
 	this->Echo();
 }
 /*}}}*/
-/*FUNCTION IndependentObject::Id{{{*/
-int    IndependentObject::Id(void){ return -1; }
+int    IndependentObject::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION IndependentObject::ObjectEnum{{{*/
-int IndependentObject::ObjectEnum(void){
+int IndependentObject::ObjectEnum(void){/*{{{*/
 
 	return IndependentObjectEnum;
@@ -66,6 +59,5 @@
 }
 /*}}}*/
-/*FUNCTION IndependentObject::copy{{{*/
-Object* IndependentObject::copy(void) { 
+Object* IndependentObject::copy(void) { /*{{{*/
 
 	IndependentObject* object=new IndependentObject();
@@ -78,6 +70,5 @@
 
 /*IndependentObject methods: */
-/*FUNCTION IndependentObject::FetchIndependent{{{*/
-void IndependentObject::FetchIndependent(IoModel* iomodel){
+void IndependentObject::FetchIndependent(IoModel* iomodel){/*{{{*/
 
 	int my_rank;
@@ -183,12 +174,10 @@
 }
 /*}}}*/
-/*FUNCTION IndependentObject::NumIndependents{{{*/
-int  IndependentObject::NumIndependents(void){
+int  IndependentObject::NumIndependents(void){/*{{{*/
 
 	return this->numberofindependents;;
 }
 /*}}}*/
-/*FUNCTION IndependentObject::FillIndependents{{{*/
-void IndependentObject::FillIndependents(IssmDouble** data, IssmDouble* xp){
+void IndependentObject::FillIndependents(IssmDouble** data, IssmDouble* xp){/*{{{*/
 
 	int i;
Index: /issm/trunk-jpl/src/c/classes/Inputs/BoolInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/BoolInput.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Inputs/BoolInput.cpp	(revision 18064)
@@ -13,11 +13,9 @@
 
 /*BoolInput constructors and destructor*/
-/*FUNCTION BoolInput::BoolInput(){{{*/
-BoolInput::BoolInput(){
+BoolInput::BoolInput(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION BoolInput::BoolInput(int in_enum_type,bool in_value){{{*/
-BoolInput::BoolInput(int in_enum_type,bool in_value){
+BoolInput::BoolInput(int in_enum_type,bool in_value){/*{{{*/
 
 	enum_type=in_enum_type;
@@ -25,6 +23,5 @@
 }
 /*}}}*/
-/*FUNCTION BoolInput::~BoolInput(){{{*/
-BoolInput::~BoolInput(){
+BoolInput::~BoolInput(){/*{{{*/
 	return;
 }
@@ -32,20 +29,16 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION BoolInput::Echo {{{*/
-void BoolInput::Echo(void){
+void BoolInput::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION BoolInput::DeepEcho{{{*/
-void BoolInput::DeepEcho(void){
+void BoolInput::DeepEcho(void){/*{{{*/
 
 	_printf_(setw(15)<<"   BoolInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false") << "\n");
 }
 /*}}}*/
-/*FUNCTION BoolInput::Id{{{*/
-int    BoolInput::Id(void){ return -1; }
+int    BoolInput::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION BoolInput::ObjectEnum{{{*/
-int BoolInput::ObjectEnum(void){
+int BoolInput::ObjectEnum(void){/*{{{*/
 
 	return BoolInputEnum;
@@ -53,6 +46,5 @@
 }
 /*}}}*/
-/*FUNCTION BoolInput::copy{{{*/
-Object* BoolInput::copy() {
+Object* BoolInput::copy() {/*{{{*/
 
 	return new BoolInput(this->enum_type,this->value);
@@ -62,6 +54,5 @@
 
 /*BoolInput management*/
-/*FUNCTION BoolInput::InstanceEnum{{{*/
-int BoolInput::InstanceEnum(void){
+int BoolInput::InstanceEnum(void){/*{{{*/
 
 	return this->enum_type;
@@ -69,6 +60,5 @@
 }
 /*}}}*/
-/*FUNCTION BoolInput::SpawnTriaInput{{{*/
-Input* BoolInput::SpawnTriaInput(int index1,int index2,int index3){
+Input* BoolInput::SpawnTriaInput(int index1,int index2,int index3){/*{{{*/
 
 		/*output*/
@@ -84,6 +74,5 @@
 }
 /*}}}*/
-/*FUNCTION BoolInput::SpawnSegInput{{{*/
-Input* BoolInput::SpawnSegInput(int index1,int index2){
+Input* BoolInput::SpawnSegInput(int index1,int index2){/*{{{*/
 
 		/*output*/
@@ -101,36 +90,28 @@
 
 /*Object functions*/
-/*FUNCTION BoolInput::GetInputValue(bool* pvalue) {{{*/
-void BoolInput::GetInputValue(bool* pvalue){
+void BoolInput::GetInputValue(bool* pvalue){/*{{{*/
 	*pvalue=value;
 }
 /*}}}*/
-/*FUNCTION BoolInput::GetInputValue(int* pvalue){{{*/
-void BoolInput::GetInputValue(int* pvalue){_error_("not supported yet!");}
+void BoolInput::GetInputValue(int* pvalue){_error_("not supported yet!");}/*{{{*/
 /*}}}*/
-/*FUNCTION BoolInput::GetInputValue(IssmDouble* pvalue){{{*/
-void BoolInput::GetInputValue(IssmDouble* pvalue){_error_("not supported yet!");}
+void BoolInput::GetInputValue(IssmDouble* pvalue){_error_("not supported yet!");}/*{{{*/
 /*}}}*/
-/*FUNCTION BoolInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){{{*/
-void BoolInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){_error_("not supported yet!");}
+void BoolInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){_error_("not supported yet!");}/*{{{*/
 /*}}}*/
-/*FUNCTION BoolInput::ChangeEnum{{{*/
-void BoolInput::ChangeEnum(int newenumtype){
+void BoolInput::ChangeEnum(int newenumtype){/*{{{*/
 	this->enum_type=newenumtype;
 }
 /*}}}*/
-/*FUNCTION BoolInput::SquareMin{{{*/
-void BoolInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){
+void BoolInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){/*{{{*/
 	/*square of a bool is the bool itself: */
 	*psquaremin=value;
 }
 /*}}}*/
-/*FUNCTION BoolInput::Scale{{{*/
-void BoolInput::Scale(IssmDouble scale_factor){
+void BoolInput::Scale(IssmDouble scale_factor){/*{{{*/
 	/*a bool cannot be scaled: */
 }
 /*}}}*/
-/*FUNCTION BoolInput::AXPY{{{*/
-void BoolInput::AXPY(Input* xinput,IssmDouble scalar){
+void BoolInput::AXPY(Input* xinput,IssmDouble scalar){/*{{{*/
 
 	BoolInput*  xboolinput=NULL;
@@ -152,6 +133,5 @@
 }
 /*}}}*/
-/*FUNCTION BoolInput::Extrude{{{*/
-void BoolInput::Extrude(void){
+void BoolInput::Extrude(void){/*{{{*/
 
 	/*do nothing*/
@@ -159,6 +139,5 @@
 }
 /*}}}*/
-/*FUNCTION BoolInput::GetVectorFromInputs{{{*/
-void BoolInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){
+void BoolInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){/*{{{*/
 
 	_error_("not supporte yet!");
@@ -166,6 +145,5 @@
 }
 /*}}}*/
-/*FUNCTION BoolInput::Configure{{{*/
-void BoolInput::Configure(Parameters* parameters){
+void BoolInput::Configure(Parameters* parameters){/*{{{*/
 	/*do nothing: */
 }
Index: /issm/trunk-jpl/src/c/classes/Inputs/ControlInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/ControlInput.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Inputs/ControlInput.cpp	(revision 18064)
@@ -13,6 +13,5 @@
 
 /*ControlInput constructors and destructor*/
-/*FUNCTION ControlInput::ControlInput(){{{*/
-ControlInput::ControlInput(){
+ControlInput::ControlInput(){/*{{{*/
 	control_id  = 0;
 	values      = NULL;
@@ -23,6 +22,5 @@
 }
 /*}}}*/
-/*FUNCTION ControlInput::ControlInput(int enum_type,int enum_input,IssmDouble* pvalues,IssmDouble* pmin,IssmDouble* pmax,int id){{{*/
-ControlInput::ControlInput(int in_enum_type,int enum_input,IssmDouble* pvalues,IssmDouble* pmin,IssmDouble* pmax,int id){
+ControlInput::ControlInput(int in_enum_type,int enum_input,IssmDouble* pvalues,IssmDouble* pmin,IssmDouble* pmax,int id){/*{{{*/
 
 	control_id=id;
@@ -48,6 +46,5 @@
 }
 /*}}}*/
-/*FUNCTION ControlInput::~ControlInput(){{{*/
-ControlInput::~ControlInput(){
+ControlInput::~ControlInput(){/*{{{*/
 	delete values;
 	delete savedvalues;
@@ -59,11 +56,9 @@
 
 /*Object virtual functions definitions:*/
-		/*FUNCTION ControlInput::Echo {{{*/
-void ControlInput::Echo(void){
+void ControlInput::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION ControlInput::DeepEcho{{{*/
-void ControlInput::DeepEcho(void){
+void ControlInput::DeepEcho(void){/*{{{*/
 
 	_printf_("ControlInput:\n");
@@ -76,9 +71,7 @@
 }
 /*}}}*/
-/*FUNCTION ControlInput::Id{{{*/
-int    ControlInput::Id(void){ return -1; }
-/*}}}*/
-/*FUNCTION ControlInput::ObjectEnum{{{*/
-int ControlInput::ObjectEnum(void){
+int    ControlInput::Id(void){ return -1; }/*{{{*/
+/*}}}*/
+int ControlInput::ObjectEnum(void){/*{{{*/
 
 	return ControlInputEnum;
@@ -86,6 +79,5 @@
 }
 /*}}}*/
-/*FUNCTION ControlInput::copy{{{*/
-Object* ControlInput::copy() {
+Object* ControlInput::copy() {/*{{{*/
 
 	ControlInput* output=NULL;
@@ -106,6 +98,5 @@
 
 /*ControlInput management*/
-/*FUNCTION ControlInput::InstanceEnum{{{*/
-int ControlInput::InstanceEnum(void){
+int ControlInput::InstanceEnum(void){/*{{{*/
 
 	return this->enum_type;
@@ -115,10 +106,8 @@
 
 /*Object functions*/
-/*FUNCTION ControlInput::AXPY(){{{*/
-void ControlInput::AXPY(Input* xinput,IssmDouble scalar){
+void ControlInput::AXPY(Input* xinput,IssmDouble scalar){/*{{{*/
 	values->AXPY(xinput,scalar);
 }/*}}}*/
-/*FUNCTION ControlInput::Constrain(){{{*/
-void ControlInput::Constrain(void){
+void ControlInput::Constrain(void){/*{{{*/
 
 	Input* newvalues=NULL;
@@ -129,16 +118,13 @@
 	delete values; this->values=newvalues;
 }/*}}}*/
-/*FUNCTION ControlInput::Constrain(IssmDouble min, IssmDouble max){{{*/
-void ControlInput::Constrain(IssmDouble min, IssmDouble max){
+void ControlInput::Constrain(IssmDouble min, IssmDouble max){/*{{{*/
 	   values->Constrain(min,max);
 }/*}}}*/
-/*FUNCTION ControlInput::Extrude{{{*/
-void ControlInput::Extrude(void){
+void ControlInput::Extrude(void){/*{{{*/
 	values->Extrude();
 	savedvalues->Extrude();
 	//gradient->Extrude();
 }/*}}}*/
-/*FUNCTION ControlInput::GetResultInterpolation{{{*/
-int  ControlInput::GetResultInterpolation(void){
+int  ControlInput::GetResultInterpolation(void){/*{{{*/
 
 	return values->GetResultInterpolation();
@@ -146,6 +132,5 @@
 }
 /*}}}*/
-/*FUNCTION ControlInput::GetResultNumberOfNodes{{{*/
-int  ControlInput::GetResultNumberOfNodes(void){
+int  ControlInput::GetResultNumberOfNodes(void){/*{{{*/
 
 	return values->GetResultNumberOfNodes();
@@ -153,15 +138,12 @@
 }
 /*}}}*/
-/*FUNCTION ControlInput::GetGradient{{{*/
-void ControlInput::GetGradient(Vector<IssmDouble>* gradient_vec,int* doflist){
+void ControlInput::GetGradient(Vector<IssmDouble>* gradient_vec,int* doflist){/*{{{*/
 	if(gradient) gradient->GetVectorFromInputs(gradient_vec,doflist);
 }/*}}}*/
-/*FUNCTION ControlInput::ScaleGradient{{{*/
-void ControlInput::ScaleGradient(IssmDouble scaling_factor){
+void ControlInput::ScaleGradient(IssmDouble scaling_factor){/*{{{*/
 	if(!gradient) _error_("Gradient of ControlInput " << EnumToStringx(enum_type) << " not found");
 	gradient->Scale(scaling_factor);
 }/*}}}*/
-/*FUNCTION ControlInput::SetGradient{{{*/
-void ControlInput::SetGradient(Input* gradient_in){
+void ControlInput::SetGradient(Input* gradient_in){/*{{{*/
 
 	/*Get enum for current gradient*/
@@ -185,6 +167,5 @@
 
 }/*}}}*/
-/*FUNCTION ControlInput::SetInput{{{*/
-void ControlInput::SetInput(Input* in_input){
+void ControlInput::SetInput(Input* in_input){/*{{{*/
 
 	delete values; this->values=in_input;
@@ -192,18 +173,14 @@
 
 }/*}}}*/
-/*FUNCTION ControlInput::SpawnTriaInput{{{*/
-Input* ControlInput::SpawnTriaInput(int index1,int index2,int index3){
+Input* ControlInput::SpawnTriaInput(int index1,int index2,int index3){/*{{{*/
 	return values->SpawnTriaInput(index1,index2,index3);
 }/*}}}*/
-/*FUNCTION ControlInput::SpawnSegInput{{{*/
-Input* ControlInput::SpawnSegInput(int index1,int index2){
+Input* ControlInput::SpawnSegInput(int index1,int index2){/*{{{*/
 	return values->SpawnSegInput(index1,index2);
 }/*}}}*/
-/*FUNCTION ControlInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){{{*/
-void ControlInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){
+void ControlInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){/*{{{*/
 	values->GetVectorFromInputs(vector,doflist);
 }/*}}}*/
-/*FUNCTION ControlInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist,const char* data){{{*/
-void ControlInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist,const char* data){
+void ControlInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist,const char* data){/*{{{*/
 	 if(strcmp(data,"value")==0){
 		 _assert_(values);
@@ -226,34 +203,26 @@
 	 }
 }/*}}}*/
-/*FUNCTION ControlInput::GetInputAverage(IssmDouble* pvalue){{{*/
-void ControlInput::GetInputAverage(IssmDouble* pvalue){
+void ControlInput::GetInputAverage(IssmDouble* pvalue){/*{{{*/
 	values->GetInputAverage(pvalue);
 }/*}}}*/
-/*FUNCTION ControlInput::GetInputValue(bool* pvalue){{{*/
-void ControlInput::GetInputValue(bool* pvalue){
+void ControlInput::GetInputValue(bool* pvalue){/*{{{*/
 	values->GetInputValue(pvalue);
 }/*}}}*/
-/*FUNCTION ControlInput::GetInputValue(int* pvalue){{{*/
-void ControlInput::GetInputValue(int* pvalue){
+void ControlInput::GetInputValue(int* pvalue){/*{{{*/
 	values->GetInputValue(pvalue);
 }/*}}}*/
-/*FUNCTION ControlInput::GetInputValue(IssmDouble* pvalue){{{*/
-void ControlInput::GetInputValue(IssmDouble* pvalue){
+void ControlInput::GetInputValue(IssmDouble* pvalue){/*{{{*/
 	values->GetInputValue(pvalue);
 }/*}}}*/
-/*FUNCTION ControlInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){{{*/
-void ControlInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){
+void ControlInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/
 	values->GetInputValue(pvalue,gauss);
 }/*}}}*/
-/*FUNCTION ControlInput::GetGradientValue{{{*/
-void ControlInput::GetGradientValue(IssmDouble* pvalue,Gauss* gauss){
+void ControlInput::GetGradientValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/
 	gradient->GetInputValue(pvalue,gauss);
 }/*}}}*/
-/*FUNCTION ControlInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){{{*/
-void ControlInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){
+void ControlInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){/*{{{*/
 	values->GetInputDerivativeValue(derivativevalues,xyz_list,gauss);
 }/*}}}*/
-/*FUNCTION ControlInput::SaveValue{{{*/
-void ControlInput::SaveValue(void){
+void ControlInput::SaveValue(void){/*{{{*/
 	if(!values) _error_("Values of " << EnumToStringx(this->enum_type) << " not found");
 
@@ -261,6 +230,5 @@
 	this->savedvalues=dynamic_cast<Input*>(this->values->copy());
 }/*}}}*/
-/*FUNCTION ControlInput::UpdateValue{{{*/
-void ControlInput::UpdateValue(IssmDouble scalar){
+void ControlInput::UpdateValue(IssmDouble scalar){/*{{{*/
 	if(!gradient)    _error_("Gradient of " << EnumToStringx(this->enum_type) << " not found");
 	if(!savedvalues) _error_("Values of " << EnumToStringx(this->enum_type) << " not found");
@@ -270,10 +238,8 @@
 	this->values->AXPY(gradient,scalar);
 }/*}}}*/
-/*FUNCTION ControlInput::VerticallyIntegrate{{{*/
-void ControlInput::VerticallyIntegrate(Input* thickness_input){
+void ControlInput::VerticallyIntegrate(Input* thickness_input){/*{{{*/
 	values->VerticallyIntegrate(thickness_input);
 }/*}}}*/
-/*FUNCTION ControlInput::Configure{{{*/
-void ControlInput::Configure(Parameters* parameters){
+void ControlInput::Configure(Parameters* parameters){/*{{{*/
 	/*do nothing: */
 }
Index: /issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.cpp	(revision 18064)
@@ -14,6 +14,5 @@
 
 /*DatasetInput constructors and destructor*/
-/*FUNCTION DatasetInput::DatasetInput(){{{*/
-DatasetInput::DatasetInput(){
+DatasetInput::DatasetInput(){/*{{{*/
 	enum_type = UNDEF;
 	inputs    = NULL;
@@ -22,6 +21,5 @@
 }
 /*}}}*/
-/*FUNCTION DatasetInput::DatasetInput(int in_enum_type,int* idlist,int numids) {{{*/
-DatasetInput::DatasetInput(int in_enum_type){
+DatasetInput::DatasetInput(int in_enum_type){/*{{{*/
 
 	enum_type = in_enum_type;
@@ -31,6 +29,5 @@
 }
 /*}}}*/
-/*FUNCTION DatasetInput::~DatasetInput(){{{*/
-DatasetInput::~DatasetInput(){
+DatasetInput::~DatasetInput(){/*{{{*/
 	xDelete<int>(this->ids);
 	delete inputs;
@@ -39,11 +36,9 @@
 
 /*Object virtual functions definitions:*/
-		/*FUNCTION DatasetInput::Echo {{{*/
-void DatasetInput::Echo(void){
+void DatasetInput::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION DatasetInput::DeepEcho{{{*/
-void DatasetInput::DeepEcho(void){
+void DatasetInput::DeepEcho(void){/*{{{*/
 
 	_printf_("DatasetInput:\n");
@@ -56,9 +51,7 @@
 }
 /*}}}*/
-/*FUNCTION DatasetInput::Id{{{*/
-int    DatasetInput::Id(void){ return -1; }
+int    DatasetInput::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION DatasetInput::ObjectEnum{{{*/
-int DatasetInput::ObjectEnum(void){
+int DatasetInput::ObjectEnum(void){/*{{{*/
 
 	return DatasetInputEnum;
@@ -66,6 +59,5 @@
 }
 /*}}}*/
-/*FUNCTION DatasetInput::copy{{{*/
-Object* DatasetInput::copy() {
+Object* DatasetInput::copy() {/*{{{*/
 
 	DatasetInput* output=NULL;
@@ -78,6 +70,5 @@
 }
 /*}}}*/
-/*FUNCTION DatasetInput::SpawnTriaInput{{{*/
-Input* DatasetInput::SpawnTriaInput(int index1,int index2,int index3){
+Input* DatasetInput::SpawnTriaInput(int index1,int index2,int index3){/*{{{*/
 
 	/*output*/
@@ -96,6 +87,5 @@
 }
 /*}}}*/
-/*FUNCTION DatasetInput::SpawnSegInput{{{*/
-Input* DatasetInput::SpawnSegInput(int index1,int index2){
+Input* DatasetInput::SpawnSegInput(int index1,int index2){/*{{{*/
 
 	/*output*/
@@ -116,6 +106,5 @@
 
 /*DatasetInput management*/
-/*FUNCTION DatasetInput::AddInput{{{*/
-void DatasetInput::AddInput(Input* input,int id){
+void DatasetInput::AddInput(Input* input,int id){/*{{{*/
 
 	_assert_(this->numids == this->inputs->Size());
@@ -144,6 +133,5 @@
 }
 /*}}}*/
-/*FUNCTION DatasetInput::InstanceEnum{{{*/
-int DatasetInput::InstanceEnum(void){
+int DatasetInput::InstanceEnum(void){/*{{{*/
 
 	return this->enum_type;
@@ -153,11 +141,9 @@
 
 /*Object functions*/
-/*FUNCTION DatasetInput::Configure{{{*/
-void DatasetInput::Configure(Parameters* parameters){
+void DatasetInput::Configure(Parameters* parameters){/*{{{*/
 	/*do nothing: */
 }
 /*}}}*/
-/*FUNCTION DatasetInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss,int id){{{*/
-void DatasetInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss,int id){
+void DatasetInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss,int id){/*{{{*/
 
 	int  offset = -1;
Index: /issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.cpp	(revision 18064)
@@ -13,11 +13,9 @@
 
 /*DoubleInput constructors and destructor*/
-/*FUNCTION DoubleInput::DoubleInput(){{{*/
-DoubleInput::DoubleInput(){
+DoubleInput::DoubleInput(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION DoubleInput::DoubleInput(IssmDouble value){{{*/
-DoubleInput::DoubleInput(int in_enum_type,IssmDouble in_value){
+DoubleInput::DoubleInput(int in_enum_type,IssmDouble in_value){/*{{{*/
 
 	enum_type=in_enum_type;
@@ -25,6 +23,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleInput::~DoubleInput(){{{*/
-DoubleInput::~DoubleInput(){
+DoubleInput::~DoubleInput(){/*{{{*/
 	return;
 }
@@ -32,20 +29,16 @@
 
 /*Object virtual functions definitions:*/
-		/*FUNCTION DoubleInput::Echo {{{*/
-void DoubleInput::Echo(void){
+void DoubleInput::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION DoubleInput::DeepEcho{{{*/
-void DoubleInput::DeepEcho(void){
+void DoubleInput::DeepEcho(void){/*{{{*/
 
 	_printf_(setw(15)<<"   DoubleInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<this->value<<"\n");
 }
 /*}}}*/
-/*FUNCTION DoubleInput::Id{{{*/
-int    DoubleInput::Id(void){ return -1; }
-/*}}}*/
-/*FUNCTION DoubleInput::ObjectEnum{{{*/
-int DoubleInput::ObjectEnum(void){
+int    DoubleInput::Id(void){ return -1; }/*{{{*/
+/*}}}*/
+int DoubleInput::ObjectEnum(void){/*{{{*/
 
 	return DoubleInputEnum;
@@ -53,6 +46,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleInput::copy{{{*/
-Object* DoubleInput::copy() {
+Object* DoubleInput::copy() {/*{{{*/
 
 	return new DoubleInput(this->enum_type,this->value);
@@ -62,6 +54,5 @@
 
 /*DoubleInput management*/
-/*FUNCTION DoubleInput::InstanceEnum{{{*/
-int DoubleInput::InstanceEnum(void){
+int DoubleInput::InstanceEnum(void){/*{{{*/
 
 	return this->enum_type;
@@ -69,6 +60,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleInput::SpawnTriaInput{{{*/
-Input* DoubleInput::SpawnTriaInput(int index1,int index2,int index3){
+Input* DoubleInput::SpawnTriaInput(int index1,int index2,int index3){/*{{{*/
 
 	/*output*/
@@ -84,6 +74,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleInput::SpawnSegInput{{{*/
-Input* DoubleInput::SpawnSegInput(int index1,int index2){
+Input* DoubleInput::SpawnSegInput(int index1,int index2){/*{{{*/
 
 	/*output*/
@@ -101,18 +90,15 @@
 
 /*Object functions*/
-/*FUNCTION DoubleInput::GetInputValue(bool* pvalue) {{{*/
-void DoubleInput::GetInputValue(bool* pvalue){
+void DoubleInput::GetInputValue(bool* pvalue){/*{{{*/
 	_error_("Double input of enum " << EnumToStringx(enum_type) << " cannot return a boolean");
 
 }
 /*}}}*/
-/*FUNCTION DoubleInput::GetInputValue(int* pvalue){{{*/
-void DoubleInput::GetInputValue(int* pvalue){
+void DoubleInput::GetInputValue(int* pvalue){/*{{{*/
 	_error_("Double input of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");
 
 }
 /*}}}*/
-/*FUNCTION DoubleInput::GetInputValue(IssmDouble* pvalue){{{*/
-void DoubleInput::GetInputValue(IssmDouble* pvalue){
+void DoubleInput::GetInputValue(IssmDouble* pvalue){/*{{{*/
 
 	/*return value*/
@@ -120,14 +106,11 @@
 }
 /*}}}*/
-/*FUNCTION DoubleInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){{{*/
-void DoubleInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){*pvalue=this->value;}
-/*}}}*/
-/*FUNCTION DoubleInput::ChangeEnum{{{*/
-void DoubleInput::ChangeEnum(int newenumtype){
+void DoubleInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){*pvalue=this->value;}/*{{{*/
+/*}}}*/
+void DoubleInput::ChangeEnum(int newenumtype){/*{{{*/
 	this->enum_type=newenumtype;
 }
 /*}}}*/
-/*FUNCTION DoubleInput::SquareMin{{{*/
-void DoubleInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){
+void DoubleInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){/*{{{*/
 
 	/*square min of a IssmDouble is the square of the IssmDouble itself: */
@@ -135,16 +118,13 @@
 }
 /*}}}*/
-/*FUNCTION DoubleInput::Scale{{{*/
-void DoubleInput::Scale(IssmDouble scale_factor){
+void DoubleInput::Scale(IssmDouble scale_factor){/*{{{*/
 	value=value*scale_factor;
 }
 /*}}}*/
-/*FUNCTION DoubleInput::ConstrainMin{{{*/
-void DoubleInput::ConstrainMin(IssmDouble minimum){
+void DoubleInput::ConstrainMin(IssmDouble minimum){/*{{{*/
 	if (value<minimum) value=minimum;
 }
 /*}}}*/
-/*FUNCTION DoubleInput::AXPY{{{*/
-void DoubleInput::AXPY(Input* xinput,IssmDouble scalar){
+void DoubleInput::AXPY(Input* xinput,IssmDouble scalar){/*{{{*/
 
 	DoubleInput*  xIssmDoubleinput=NULL;
@@ -166,6 +146,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleInput::Constrain{{{*/
-void DoubleInput::Constrain(IssmDouble cm_min, IssmDouble cm_max){
+void DoubleInput::Constrain(IssmDouble cm_min, IssmDouble cm_max){/*{{{*/
 
 	if(!xIsNan<IssmDouble>(cm_min)) if (this->value<cm_min)this->value=cm_min;
@@ -174,26 +153,21 @@
 }
 /*}}}*/
-/*FUNCTION DoubleInput::Max{{{*/
-IssmDouble DoubleInput::Max(void){
+IssmDouble DoubleInput::Max(void){/*{{{*/
 	return this->value;
 }
 /*}}}*/
-/*FUNCTION DoubleInput::MaxAbs{{{*/
-IssmDouble DoubleInput::MaxAbs(void){
+IssmDouble DoubleInput::MaxAbs(void){/*{{{*/
 	return fabs(this->value);
 }
 /*}}}*/
-/*FUNCTION DoubleInput::Min{{{*/
-IssmDouble DoubleInput::Min(void){
+IssmDouble DoubleInput::Min(void){/*{{{*/
 	return this->value;
 }
 /*}}}*/
-/*FUNCTION DoubleInput::MinAbs{{{*/
-IssmDouble DoubleInput::MinAbs(void){
+IssmDouble DoubleInput::MinAbs(void){/*{{{*/
 	return fabs(this->value);
 }
 /*}}}*/
-/*FUNCTION DoubleInput::GetVectorFromInputs{{{*/
-void DoubleInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){
+void DoubleInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){/*{{{*/
 
 	_error_("not supporte yet!");
@@ -201,11 +175,9 @@
 }
 /*}}}*/
-/*FUNCTION DoubleInput::GetInputAverage{{{*/
-void DoubleInput::GetInputAverage(IssmDouble* pvalue){
+void DoubleInput::GetInputAverage(IssmDouble* pvalue){/*{{{*/
 	*pvalue=value;
 }
 /*}}}*/
-/*FUNCTION DoubleInput::VerticallyIntegrate{{{*/
-void DoubleInput::VerticallyIntegrate(Input* thickness_input){
+void DoubleInput::VerticallyIntegrate(Input* thickness_input){/*{{{*/
 
 	/*Intermediaries*/
@@ -228,6 +200,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleInput::PointwiseDivide{{{*/
-Input* DoubleInput::PointwiseDivide(Input* inputB){
+Input* DoubleInput::PointwiseDivide(Input* inputB){/*{{{*/
 
 	/*Ouput*/
@@ -248,6 +219,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleInput::PointwiseMin{{{*/
-Input* DoubleInput::PointwiseMin(Input* input){
+Input* DoubleInput::PointwiseMin(Input* input){/*{{{*/
 
 	/*Ouput*/
@@ -269,6 +239,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleInput::PointwiseMax{{{*/
-Input* DoubleInput::PointwiseMax(Input* input){
+Input* DoubleInput::PointwiseMax(Input* input){/*{{{*/
 
 	/*Ouput*/
@@ -290,6 +259,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleInput::Configure{{{*/
-void DoubleInput::Configure(Parameters* parameters){
+void DoubleInput::Configure(Parameters* parameters){/*{{{*/
 	/*do nothing: */
 }
Index: /issm/trunk-jpl/src/c/classes/Inputs/Inputs.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/Inputs.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Inputs/Inputs.cpp	(revision 18064)
@@ -19,11 +19,9 @@
 
 /*Object constructors and destructor*/
-/*FUNCTION Inputs::Inputs(){{{*/
-Inputs::Inputs(){
+Inputs::Inputs(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION Inputs::~Inputs(){{{*/
-Inputs::~Inputs(){
+Inputs::~Inputs(){/*{{{*/
 	return;
 }
@@ -31,6 +29,5 @@
 
 /*Object management*/
-/*FUNCTION Inputs::GetInputValue(bool* pvalue,int enum-type){{{*/
-void Inputs::GetInputValue(bool* pvalue,int enum_type){
+void Inputs::GetInputValue(bool* pvalue,int enum_type){/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -59,6 +56,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::GetInputValue(int* pvalue,int enum-type){{{*/
-void Inputs::GetInputValue(int* pvalue,int enum_type){
+void Inputs::GetInputValue(int* pvalue,int enum_type){/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -87,6 +83,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::GetInputValue(IssmDouble* pvalue,int enum-type){{{*/
-void Inputs::GetInputValue(IssmDouble* pvalue,int enum_type){
+void Inputs::GetInputValue(IssmDouble* pvalue,int enum_type){/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -115,6 +110,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::GetInputAverage{{{*/
-void Inputs::GetInputAverage(IssmDouble* pvalue,int enum_type){
+void Inputs::GetInputAverage(IssmDouble* pvalue,int enum_type){/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -143,6 +137,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::AddInput{{{*/
-int  Inputs::AddInput(Input* in_input){
+int  Inputs::AddInput(Input* in_input){/*{{{*/
 
 	/*First, go through dataset of inputs and check whether any input 
@@ -169,6 +162,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::ChangeEnum{{{*/
-void  Inputs::ChangeEnum(int oldenumtype,int newenumtype){
+void  Inputs::ChangeEnum(int oldenumtype,int newenumtype){/*{{{*/
 
 	/*Go through dataset of inputs and look for input with 
@@ -199,6 +191,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::ConstrainMin{{{*/
-void  Inputs::ConstrainMin(int constrain_enum, IssmDouble minimum){
+void  Inputs::ConstrainMin(int constrain_enum, IssmDouble minimum){/*{{{*/
 
 	/*Find x and y inputs: */
@@ -212,6 +203,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::InfinityNorm{{{*/
-IssmDouble Inputs::InfinityNorm(int enumtype){
+IssmDouble Inputs::InfinityNorm(int enumtype){/*{{{*/
 
 	/*Output*/
@@ -233,6 +223,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::Max{{{*/
-IssmDouble Inputs::Max(int enumtype){
+IssmDouble Inputs::Max(int enumtype){/*{{{*/
 
 	/*Output*/
@@ -254,6 +243,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::MaxAbs{{{*/
-IssmDouble Inputs::MaxAbs(int enumtype){
+IssmDouble Inputs::MaxAbs(int enumtype){/*{{{*/
 
 	/*Output*/
@@ -275,6 +263,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::Min{{{*/
-IssmDouble Inputs::Min(int enumtype){
+IssmDouble Inputs::Min(int enumtype){/*{{{*/
 
 	/*Output*/
@@ -296,6 +283,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::MinAbs{{{*/
-IssmDouble Inputs::MinAbs(int enumtype){
+IssmDouble Inputs::MinAbs(int enumtype){/*{{{*/
 
 	/*Output*/
@@ -317,6 +303,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::GetInput{{{*/
-Input* Inputs::GetInput(int enum_name){
+Input* Inputs::GetInput(int enum_name){/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -334,6 +319,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::DeleteInput{{{*/
-int  Inputs::DeleteInput(int enum_type){
+int  Inputs::DeleteInput(int enum_type){/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -354,6 +338,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::DuplicateInput{{{*/
-void  Inputs::DuplicateInput(int original_enum,int new_enum){
+void  Inputs::DuplicateInput(int original_enum,int new_enum){/*{{{*/
 
 	/*Make a copy of the original input: */
@@ -369,6 +352,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::SpawnTriaInputs{{{*/
-Inputs* Inputs::SpawnTriaInputs(int index1,int index2,int index3){
+Inputs* Inputs::SpawnTriaInputs(int index1,int index2,int index3){/*{{{*/
 
 	/*Intermediary*/
@@ -395,6 +377,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::SpawnSegInputs{{{*/
-Inputs* Inputs::SpawnSegInputs(int index1,int index2){
+Inputs* Inputs::SpawnSegInputs(int index1,int index2){/*{{{*/
 
 	/*Intermediary*/
@@ -421,6 +402,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::AXPY{{{*/
-void  Inputs::AXPY(int inputy_enum, IssmDouble scalar, int inputx_enum){
+void  Inputs::AXPY(int inputy_enum, IssmDouble scalar, int inputx_enum){/*{{{*/
 
 	/*Find x and y inputs: */
@@ -436,6 +416,5 @@
 }
 /*}}}*/
-/*FUNCTION Inputs::Configure{{{*/
-void Inputs::Configure(Parameters* parameters){
+void Inputs::Configure(Parameters* parameters){/*{{{*/
 
 	vector<Object*>::iterator object;
Index: /issm/trunk-jpl/src/c/classes/Inputs/IntInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/IntInput.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Inputs/IntInput.cpp	(revision 18064)
@@ -13,11 +13,9 @@
 
 /*IntInput constructors and destructor*/
-/*FUNCTION IntInput::IntInput(){{{*/
-IntInput::IntInput(){
+IntInput::IntInput(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION IntInput::IntInput(IssmDouble* values){{{*/
-IntInput::IntInput(int in_enum_type,IssmInt in_value){
+IntInput::IntInput(int in_enum_type,IssmInt in_value){/*{{{*/
 
 	enum_type=in_enum_type;
@@ -25,6 +23,5 @@
 }
 /*}}}*/
-/*FUNCTION IntInput::~IntInput(){{{*/
-IntInput::~IntInput(){
+IntInput::~IntInput(){/*{{{*/
 	return;
 }
@@ -32,15 +29,12 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION IntInput::DeepEcho{{{*/
-void IntInput::DeepEcho(void){
+void IntInput::DeepEcho(void){/*{{{*/
 
 	_printf_(setw(15)<<"   IntInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<this->value<<"\n");
 }
 /*}}}*/
-/*FUNCTION IntInput::Id{{{*/
-int    IntInput::Id(void){ return -1; }
+int    IntInput::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION IntInput::ObjectEnum{{{*/
-int IntInput::ObjectEnum(void){
+int IntInput::ObjectEnum(void){/*{{{*/
 
 	return IntInputEnum;
@@ -48,6 +42,5 @@
 }
 /*}}}*/
-/*FUNCTION IntInput::copy{{{*/
-Object* IntInput::copy() {
+Object* IntInput::copy() {/*{{{*/
 
 	return new IntInput(this->enum_type,this->value);
@@ -57,11 +50,9 @@
 
 /*IntInput management*/
-/*FUNCTION IntInput::Echo {{{*/
-void IntInput::Echo(void){
+void IntInput::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION IntInput::InstanceEnum{{{*/
-int IntInput::InstanceEnum(void){
+int IntInput::InstanceEnum(void){/*{{{*/
 
 	return this->enum_type;
@@ -69,6 +60,5 @@
 }
 /*}}}*/
-/*FUNCTION IntInput::SpawnTriaInput{{{*/
-Input* IntInput::SpawnTriaInput(int index1,int index2,int index3){
+Input* IntInput::SpawnTriaInput(int index1,int index2,int index3){/*{{{*/
 
 	/*output*/
@@ -83,6 +73,5 @@
 }
 /*}}}*/
-/*FUNCTION IntInput::SpawnSegInput{{{*/
-Input* IntInput::SpawnSegInput(int index1,int index2){
+Input* IntInput::SpawnSegInput(int index1,int index2){/*{{{*/
 
 	/*output*/
@@ -99,27 +88,21 @@
 
 /*Object functions*/
-/*FUNCTION IntInput::GetInputValue(bool* pvalue) {{{*/
-void IntInput::GetInputValue(bool* pvalue){_error_("not supported yet!");}
+void IntInput::GetInputValue(bool* pvalue){_error_("not supported yet!");}/*{{{*/
 /*}}}*/
-/*FUNCTION IntInput::GetInputValue(int* pvalue){{{*/
-void IntInput::GetInputValue(int* pvalue){
+void IntInput::GetInputValue(int* pvalue){/*{{{*/
 	*pvalue=value;
 }
 /*}}}*/
-/*FUNCTION IntInput::GetInputValue(IssmDouble* pvalue){{{*/
-void IntInput::GetInputValue(IssmDouble* pvalue){
+void IntInput::GetInputValue(IssmDouble* pvalue){/*{{{*/
 	_error_("IntInput cannot return a IssmDouble in parallel");
 }
 /*}}}*/
-/*FUNCTION IntInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){{{*/
-void IntInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){_error_("not supported yet!");}
+void IntInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){_error_("not supported yet!");}/*{{{*/
 /*}}}*/
-/*FUNCTION IntInput::ChangeEnum{{{*/
-void IntInput::ChangeEnum(int newenumtype){
+void IntInput::ChangeEnum(int newenumtype){/*{{{*/
 	this->enum_type=newenumtype;
 }
 /*}}}*/
-/*FUNCTION IntInput::SquareMin{{{*/
-void IntInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){
+void IntInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){/*{{{*/
 
 	/*square min of an integer is the square of the integer itself: */
@@ -127,12 +110,10 @@
 }
 /*}}}*/
-/*FUNCTION IntInput::Scale{{{*/
-void IntInput::Scale(IssmDouble scale_factor){
+void IntInput::Scale(IssmDouble scale_factor){/*{{{*/
 	IssmDouble dvalue=(IssmDouble)value*scale_factor;
 	value=reCast<int>(dvalue);
 }
 /*}}}*/
-/*FUNCTION IntInput::AXPY{{{*/
-void IntInput::AXPY(Input* xinput,IssmDouble scalar){
+void IntInput::AXPY(Input* xinput,IssmDouble scalar){/*{{{*/
 
 	IssmDouble dvalue;
@@ -156,6 +137,5 @@
 }
 /*}}}*/
-/*FUNCTION IntInput::Constrain{{{*/
-void IntInput::Constrain(IssmDouble cm_min, IssmDouble cm_max){
+void IntInput::Constrain(IssmDouble cm_min, IssmDouble cm_max){/*{{{*/
 
 	if(!xIsNan<IssmDouble>(cm_min)) if (this->value<cm_min)this->value=reCast<int>(cm_min);
@@ -164,6 +144,5 @@
 }
 /*}}}*/
-/*FUNCTION IntInput::GetVectorFromInputs{{{*/
-void IntInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){
+void IntInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){/*{{{*/
 
 	_error_("not supporte yet!");
@@ -171,6 +150,5 @@
 }
 /*}}}*/
-/*FUNCTION IntInput::Configure{{{*/
-void IntInput::Configure(Parameters* parameters){
+void IntInput::Configure(Parameters* parameters){/*{{{*/
 	/*do nothing: */
 }
Index: /issm/trunk-jpl/src/c/classes/Inputs/PentaInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/PentaInput.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Inputs/PentaInput.cpp	(revision 18064)
@@ -13,11 +13,9 @@
 
 /*PentaInput constructors and destructor*/
-/*FUNCTION PentaInput::PentaInput(){{{*/
-PentaInput::PentaInput(){
+PentaInput::PentaInput(){/*{{{*/
 	values = NULL;
 }
 /*}}}*/
-/*FUNCTION PentaInput::PentaInput(int in_enum_type,IssmDouble* values,int element_type){{{*/
-PentaInput::PentaInput(int in_enum_type,IssmDouble* in_values,int element_type_in)
+PentaInput::PentaInput(int in_enum_type,IssmDouble* in_values,int element_type_in)/*{{{*/
 		:PentaRef(1)
 {
@@ -35,6 +33,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::~PentaInput(){{{*/
-PentaInput::~PentaInput(){
+PentaInput::~PentaInput(){/*{{{*/
 	xDelete<IssmDouble>(this->values);
 }
@@ -42,11 +39,9 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION PentaInput::Echo {{{*/
-void PentaInput::Echo(void){
+void PentaInput::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION PentaInput::DeepEcho{{{*/
-void PentaInput::DeepEcho(void){
+void PentaInput::DeepEcho(void){/*{{{*/
 
 	_printf_(setw(15)<<"   PentaInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" [");
@@ -55,9 +50,7 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::Id{{{*/
-int    PentaInput::Id(void){ return -1; }
-/*}}}*/
-/*FUNCTION PentaInput::ObjectEnum{{{*/
-int PentaInput::ObjectEnum(void){
+int    PentaInput::Id(void){ return -1; }/*{{{*/
+/*}}}*/
+int PentaInput::ObjectEnum(void){/*{{{*/
 
 	return PentaInputEnum;
@@ -65,6 +58,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::copy{{{*/
-Object* PentaInput::copy() {
+Object* PentaInput::copy() {/*{{{*/
 
 	return new PentaInput(this->enum_type,this->values,this->element_type);
@@ -74,6 +66,5 @@
 
 /*PentaInput management*/
-/*FUNCTION PentaInput::InstanceEnum{{{*/
-int PentaInput::InstanceEnum(void){
+int PentaInput::InstanceEnum(void){/*{{{*/
 
 	return this->enum_type;
@@ -81,6 +72,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::SpawnTriaInput{{{*/
-Input* PentaInput::SpawnTriaInput(int index1,int index2,int index3){
+Input* PentaInput::SpawnTriaInput(int index1,int index2,int index3){/*{{{*/
 
 	/*output*/
@@ -112,12 +102,10 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::SpawnSegInput{{{*/
-Input* PentaInput::SpawnSegInput(int index1,int index2){
+Input* PentaInput::SpawnSegInput(int index1,int index2){/*{{{*/
 
 	_error_("not supported");
 }
 /*}}}*/
-/*FUNCTION PentaInput::GetResultInterpolation{{{*/
-int  PentaInput::GetResultInterpolation(void){
+int  PentaInput::GetResultInterpolation(void){/*{{{*/
 
 	if(this->element_type==P0Enum){
@@ -128,6 +116,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::GetResultNumberOfNodes{{{*/
-int  PentaInput::GetResultNumberOfNodes(void){
+int  PentaInput::GetResultNumberOfNodes(void){/*{{{*/
 
 	return this->NumberofNodes();;
@@ -135,6 +122,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::ResultToPatch{{{*/
-void PentaInput::ResultToPatch(IssmDouble* values,int nodesperelement,int sid){
+void PentaInput::ResultToPatch(IssmDouble* values,int nodesperelement,int sid){/*{{{*/
 
 	int numnodes = this->NumberofNodes();
@@ -150,6 +136,5 @@
 
 /*Object functions*/
-/*FUNCTION PentaInput::GetInputValue(IssmDouble* pvalue){{{*/
-void PentaInput::GetInputValue(IssmDouble* pvalue){
+void PentaInput::GetInputValue(IssmDouble* pvalue){/*{{{*/
 
 	if(this->element_type==P0Enum){
@@ -159,6 +144,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){{{*/
-void PentaInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){
+void PentaInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/
 
 	/*Call PentaRef function*/
@@ -168,6 +152,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::GetInputDerivativeValue(IssmDouble* p, IssmDouble* xyz_list, Gauss* gauss){{{*/
-void PentaInput::GetInputDerivativeValue(IssmDouble* p, IssmDouble* xyz_list,Gauss* gauss){
+void PentaInput::GetInputDerivativeValue(IssmDouble* p, IssmDouble* xyz_list,Gauss* gauss){/*{{{*/
 
 	/*Call PentaRef function*/
@@ -176,11 +159,9 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::ChangeEnum{{{*/
-void PentaInput::ChangeEnum(int newenumtype){
+void PentaInput::ChangeEnum(int newenumtype){/*{{{*/
 	this->enum_type=newenumtype;
 }
 /*}}}*/
-/*FUNCTION PentaInput::GetInputAverage{{{*/
-void PentaInput::GetInputAverage(IssmDouble* pvalue){
+void PentaInput::GetInputAverage(IssmDouble* pvalue){/*{{{*/
 
 	int        numnodes  = this->NumberofNodes();
@@ -196,6 +177,5 @@
 
 /*Intermediary*/
-/*FUNCTION PentaInput::SquareMin{{{*/
-void PentaInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){
+void PentaInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){/*{{{*/
 
 	int        numnodes=this->NumberofNodes();
@@ -211,6 +191,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::ConstrainMin{{{*/
-void PentaInput::ConstrainMin(IssmDouble minimum){
+void PentaInput::ConstrainMin(IssmDouble minimum){/*{{{*/
 
 	int numnodes = this->NumberofNodes();
@@ -218,6 +197,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::InfinityNorm{{{*/
-IssmDouble PentaInput::InfinityNorm(void){
+IssmDouble PentaInput::InfinityNorm(void){/*{{{*/
 
 	/*Output*/
@@ -229,6 +207,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::Max{{{*/
-IssmDouble PentaInput::Max(void){
+IssmDouble PentaInput::Max(void){/*{{{*/
 
 	int  numnodes=this->NumberofNodes();
@@ -241,6 +218,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::MaxAbs{{{*/
-IssmDouble PentaInput::MaxAbs(void){
+IssmDouble PentaInput::MaxAbs(void){/*{{{*/
 
 	int  numnodes=this->NumberofNodes();
@@ -253,6 +229,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::Min{{{*/
-IssmDouble PentaInput::Min(void){
+IssmDouble PentaInput::Min(void){/*{{{*/
 
 	const int  numnodes=this->NumberofNodes();
@@ -265,6 +240,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::MinAbs{{{*/
-IssmDouble PentaInput::MinAbs(void){
+IssmDouble PentaInput::MinAbs(void){/*{{{*/
 
 	const int  numnodes=this->NumberofNodes();
@@ -277,6 +251,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::Scale{{{*/
-void PentaInput::Scale(IssmDouble scale_factor){
+void PentaInput::Scale(IssmDouble scale_factor){/*{{{*/
 
 	const int numnodes=this->NumberofNodes();
@@ -284,6 +257,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::AXPY{{{*/
-void PentaInput::AXPY(Input* xinput,IssmDouble scalar){
+void PentaInput::AXPY(Input* xinput,IssmDouble scalar){/*{{{*/
 
 	const int numnodes=this->NumberofNodes();
@@ -306,6 +278,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::Constrain{{{*/
-void PentaInput::Constrain(IssmDouble cm_min, IssmDouble cm_max){
+void PentaInput::Constrain(IssmDouble cm_min, IssmDouble cm_max){/*{{{*/
 
 	int i;
@@ -317,6 +288,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::Extrude{{{*/
-void PentaInput::Extrude(void){
+void PentaInput::Extrude(void){/*{{{*/
 
 	switch(this->element_type){
@@ -329,6 +299,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::VerticallyIntegrate{{{*/
-void PentaInput::VerticallyIntegrate(Input* thickness_input){
+void PentaInput::VerticallyIntegrate(Input* thickness_input){/*{{{*/
 
 	IssmDouble thickness;
@@ -360,6 +329,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::PointwiseDivide{{{*/
-Input* PentaInput::PointwiseDivide(Input* inputB){
+Input* PentaInput::PointwiseDivide(Input* inputB){/*{{{*/
 
 	/*Ouput*/
@@ -393,6 +361,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::PointwiseMin{{{*/
-Input* PentaInput::PointwiseMin(Input* inputB){
+Input* PentaInput::PointwiseMin(Input* inputB){/*{{{*/
 
 	/*Ouput*/
@@ -424,6 +391,5 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::PointwiseMax{{{*/
-Input* PentaInput::PointwiseMax(Input* inputB){
+Input* PentaInput::PointwiseMax(Input* inputB){/*{{{*/
 
 	/*Ouput*/
@@ -455,11 +421,9 @@
 }
 /*}}}*/
-/*FUNCTION PentaInput::GetVectorFromInputs{{{*/
-void PentaInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){
+void PentaInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){/*{{{*/
 	const int numvertices=6;
 	vector->SetValues(numvertices,doflist,this->values,INS_VAL);
 } /*}}}*/
-/*FUNCTION PentaInput::Configure{{{*/
-void PentaInput::Configure(Parameters* parameters){
+void PentaInput::Configure(Parameters* parameters){/*{{{*/
 	/*do nothing: */
 }
Index: /issm/trunk-jpl/src/c/classes/Inputs/SegInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/SegInput.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Inputs/SegInput.cpp	(revision 18064)
@@ -13,11 +13,9 @@
 
 /*SegInput constructors and destructor*/
-/*FUNCTION SegInput::SegInput(){{{*/
-SegInput::SegInput(){
+SegInput::SegInput(){/*{{{*/
 	values = NULL;
 }
 /*}}}*/
-/*FUNCTION SegInput::SegInput(int in_enum_type,IssmDouble* invalues,element_type_in){{{*/
-SegInput::SegInput(int in_enum_type,IssmDouble* in_values,int element_type_in)
+SegInput::SegInput(int in_enum_type,IssmDouble* in_values,int element_type_in)/*{{{*/
 	:SegRef(1)
 {
@@ -35,6 +33,5 @@
 }
 /*}}}*/
-/*FUNCTION SegInput::~SegInput(){{{*/
-SegInput::~SegInput(){
+SegInput::~SegInput(){/*{{{*/
 	xDelete<IssmDouble>(this->values);
 }
@@ -42,11 +39,9 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION SegInput::Echo {{{*/
-void SegInput::Echo(void){
+void SegInput::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION SegInput::DeepEcho{{{*/
-void SegInput::DeepEcho(void){
+void SegInput::DeepEcho(void){/*{{{*/
 
 	_printf_(setw(15)<<"   SegInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" [");
@@ -55,9 +50,7 @@
 }
 /*}}}*/
-/*FUNCTION SegInput::Id{{{*/
-int    SegInput::Id(void){ return -1; }
+int    SegInput::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION SegInput::ObjectEnum{{{*/
-int SegInput::ObjectEnum(void){
+int SegInput::ObjectEnum(void){/*{{{*/
 
 	return SegInputEnum;
@@ -65,6 +58,5 @@
 }
 /*}}}*/
-/*FUNCTION SegInput::copy{{{*/
-Object* SegInput::copy() {
+Object* SegInput::copy() {/*{{{*/
 
 	return new SegInput(this->enum_type,this->values,this->element_type);
@@ -74,6 +66,5 @@
 
 /*SegInput management*/
-/*FUNCTION SegInput::InstanceEnum{{{*/
-int SegInput::InstanceEnum(void){
+int SegInput::InstanceEnum(void){/*{{{*/
 
 	return this->enum_type;
@@ -83,6 +74,5 @@
 
 /*Object functions*/
-/*FUNCTION SegInput::GetInputAverage{{{*/
-void SegInput::GetInputAverage(IssmDouble* pvalue){
+void SegInput::GetInputAverage(IssmDouble* pvalue){/*{{{*/
 
 	int        numnodes  = this->NumberofNodes();
@@ -96,6 +86,5 @@
 }
 /*}}}*/
-/*FUNCTION SegInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){{{*/
-void SegInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){
+void SegInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/
 
 	/*Call SegRef function*/
@@ -105,6 +94,5 @@
 }
 /*}}}*/
-/*FUNCTION SegInput::GetInputDerivativeValue(IssmDouble* p, IssmDouble* xyz_list, Gauss* gauss){{{*/
-void SegInput::GetInputDerivativeValue(IssmDouble* p, IssmDouble* xyz_list,Gauss* gauss){
+void SegInput::GetInputDerivativeValue(IssmDouble* p, IssmDouble* xyz_list,Gauss* gauss){/*{{{*/
 
 	/*Call SegRef function*/
@@ -113,11 +101,9 @@
 }
 /*}}}*/
-/*FUNCTION SegInput::Configure{{{*/
-void SegInput::Configure(Parameters* parameters){
+void SegInput::Configure(Parameters* parameters){/*{{{*/
 	/*do nothing: */
 }
 /*}}}*/
-/*FUNCTION SegInput::Min{{{*/
-IssmDouble SegInput::Min(void){
+IssmDouble SegInput::Min(void){/*{{{*/
 
 	const int  numnodes=this->NumberofNodes();
Index: /issm/trunk-jpl/src/c/classes/Inputs/TetraInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/TetraInput.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Inputs/TetraInput.cpp	(revision 18064)
@@ -13,11 +13,9 @@
 
 /*TetraInput constructors and destructor*/
-/*FUNCTION TetraInput::TetraInput(){{{*/
-TetraInput::TetraInput(){
+TetraInput::TetraInput(){/*{{{*/
 	values = NULL;
 }
 /*}}}*/
-/*FUNCTION TetraInput::TetraInput(int in_enum_type,IssmDouble* invalues,element_type_in){{{*/
-TetraInput::TetraInput(int in_enum_type,IssmDouble* in_values,int element_type_in)
+TetraInput::TetraInput(int in_enum_type,IssmDouble* in_values,int element_type_in)/*{{{*/
 	:TetraRef(1)
 {
@@ -35,6 +33,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::~TetraInput(){{{*/
-TetraInput::~TetraInput(){
+TetraInput::~TetraInput(){/*{{{*/
 	xDelete<IssmDouble>(this->values);
 }
@@ -42,11 +39,9 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION TetraInput::Echo {{{*/
-void TetraInput::Echo(void){
+void TetraInput::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION TetraInput::DeepEcho{{{*/
-void TetraInput::DeepEcho(void){
+void TetraInput::DeepEcho(void){/*{{{*/
 
 	_printf_(setw(15)<<"   TetraInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" [");
@@ -55,9 +50,7 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::Id{{{*/
-int    TetraInput::Id(void){ return -1; }
-/*}}}*/
-/*FUNCTION TetraInput::ObjectEnum{{{*/
-int TetraInput::ObjectEnum(void){
+int    TetraInput::Id(void){ return -1; }/*{{{*/
+/*}}}*/
+int TetraInput::ObjectEnum(void){/*{{{*/
 
 	return TetraInputEnum;
@@ -65,6 +58,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::copy{{{*/
-Object* TetraInput::copy() {
+Object* TetraInput::copy() {/*{{{*/
 
 	return new TetraInput(this->enum_type,this->values,this->element_type);
@@ -74,6 +66,5 @@
 
 /*TetraInput management*/
-/*FUNCTION TetraInput::InstanceEnum{{{*/
-int TetraInput::InstanceEnum(void){
+int TetraInput::InstanceEnum(void){/*{{{*/
 
 	return this->enum_type;
@@ -81,6 +72,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::GetResultInterpolation{{{*/
-int  TetraInput::GetResultInterpolation(void){
+int  TetraInput::GetResultInterpolation(void){/*{{{*/
 
 	if(this->element_type==P0Enum){
@@ -91,6 +81,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::GetResultNumberOfNodes{{{*/
-int  TetraInput::GetResultNumberOfNodes(void){
+int  TetraInput::GetResultNumberOfNodes(void){/*{{{*/
 
 	return this->NumberofNodes();
@@ -98,6 +87,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::ResultToPatch{{{*/
-void TetraInput::ResultToPatch(IssmDouble* values,int nodesperelement,int sid){
+void TetraInput::ResultToPatch(IssmDouble* values,int nodesperelement,int sid){/*{{{*/
 
 	int numnodes = this->NumberofNodes();
@@ -113,6 +101,5 @@
 
 /*Object functions*/
-/*FUNCTION TetraInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){{{*/
-void TetraInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){
+void TetraInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/
 
 	/*Call TetraRef function*/
@@ -122,6 +109,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::GetInputDerivativeValue(IssmDouble* p, IssmDouble* xyz_list, Gauss* gauss){{{*/
-void TetraInput::GetInputDerivativeValue(IssmDouble* p, IssmDouble* xyz_list, Gauss* gauss){
+void TetraInput::GetInputDerivativeValue(IssmDouble* p, IssmDouble* xyz_list, Gauss* gauss){/*{{{*/
 
 	/*Call TetraRef function*/
@@ -130,11 +116,9 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::ChangeEnum{{{*/
-void TetraInput::ChangeEnum(int newenumtype){
+void TetraInput::ChangeEnum(int newenumtype){/*{{{*/
 	this->enum_type=newenumtype;
 }
 /*}}}*/
-/*FUNCTION TetraInput::GetInputAverage{{{*/
-void TetraInput::GetInputAverage(IssmDouble* pvalue){
+void TetraInput::GetInputAverage(IssmDouble* pvalue){/*{{{*/
 
 	int        numnodes  = this->NumberofNodes();
@@ -148,6 +132,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::GetInputAllTimeAverages{{{*/
-void TetraInput::GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){
+void TetraInput::GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){/*{{{*/
 
 	IssmDouble* outvalues=NULL;
@@ -168,6 +151,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::GetInputUpToCurrentTimeAverages{{{*/
-void TetraInput::GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){
+void TetraInput::GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){/*{{{*/
 
 	IssmDouble* outvalues=NULL;
@@ -188,6 +170,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::SpawnTriaInput{{{*/
-Input* TetraInput::SpawnTriaInput(int index1,int index2,int index3){
+Input* TetraInput::SpawnTriaInput(int index1,int index2,int index3){/*{{{*/
 
 	/*output*/
@@ -221,6 +202,5 @@
 
 /*Intermediary*/
-/*FUNCTION TetraInput::SquareMin{{{*/
-void TetraInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){
+void TetraInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){/*{{{*/
 
 	int        numnodes=this->NumberofNodes();
@@ -236,6 +216,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::ContrainMin{{{*/
-void TetraInput::ConstrainMin(IssmDouble minimum){
+void TetraInput::ConstrainMin(IssmDouble minimum){/*{{{*/
 
 	int numnodes = this->NumberofNodes();
@@ -243,6 +222,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::InfinityNorm{{{*/
-IssmDouble TetraInput::InfinityNorm(void){
+IssmDouble TetraInput::InfinityNorm(void){/*{{{*/
 
 	/*Output*/
@@ -254,6 +232,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::Max{{{*/
-IssmDouble TetraInput::Max(void){
+IssmDouble TetraInput::Max(void){/*{{{*/
 
 	int  numnodes=this->NumberofNodes();
@@ -266,6 +243,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::MaxAbs{{{*/
-IssmDouble TetraInput::MaxAbs(void){
+IssmDouble TetraInput::MaxAbs(void){/*{{{*/
 
 	int  numnodes=this->NumberofNodes();
@@ -278,6 +254,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::Min{{{*/
-IssmDouble TetraInput::Min(void){
+IssmDouble TetraInput::Min(void){/*{{{*/
 
 	const int  numnodes=this->NumberofNodes();
@@ -290,6 +265,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::MinAbs{{{*/
-IssmDouble TetraInput::MinAbs(void){
+IssmDouble TetraInput::MinAbs(void){/*{{{*/
 
 	const int  numnodes=this->NumberofNodes();
@@ -302,6 +276,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::Scale{{{*/
-void TetraInput::Scale(IssmDouble scale_factor){
+void TetraInput::Scale(IssmDouble scale_factor){/*{{{*/
 
 	const int numnodes=this->NumberofNodes();
@@ -309,6 +282,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::Set{{{*/
-void TetraInput::Set(IssmDouble setvalue){
+void TetraInput::Set(IssmDouble setvalue){/*{{{*/
 
 	const int numnodes=this->NumberofNodes();
@@ -316,6 +288,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::AXPY{{{*/
-void TetraInput::AXPY(Input* xinput,IssmDouble scalar){
+void TetraInput::AXPY(Input* xinput,IssmDouble scalar){/*{{{*/
 
 	const int numnodes=this->NumberofNodes();
@@ -332,6 +303,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::Constrain{{{*/
-void TetraInput::Constrain(IssmDouble cm_min, IssmDouble cm_max){
+void TetraInput::Constrain(IssmDouble cm_min, IssmDouble cm_max){/*{{{*/
 
 	int i;
@@ -343,11 +313,9 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::GetVectorFromInputs{{{*/
-void TetraInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){
+void TetraInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){/*{{{*/
 	const int numvertices=4;
 	vector->SetValues(numvertices,doflist,this->values,INS_VAL);
 } /*}}}*/
-/*FUNCTION TetraInput::PointwiseMin{{{*/
-Input* TetraInput::PointwiseMin(Input* inputB){
+Input* TetraInput::PointwiseMin(Input* inputB){/*{{{*/
 
 	/*Ouput*/
@@ -380,6 +348,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::PointwiseMax{{{*/
-Input* TetraInput::PointwiseMax(Input* inputB){
+Input* TetraInput::PointwiseMax(Input* inputB){/*{{{*/
 
 	/*Ouput*/
@@ -412,6 +379,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::PointwiseDivide{{{*/
-Input* TetraInput::PointwiseDivide(Input* inputB){
+Input* TetraInput::PointwiseDivide(Input* inputB){/*{{{*/
 
 	/*Ouput*/
@@ -445,6 +411,5 @@
 }
 /*}}}*/
-/*FUNCTION TetraInput::Configure{{{*/
-void TetraInput::Configure(Parameters* parameters){
+void TetraInput::Configure(Parameters* parameters){/*{{{*/
 	/*do nothing: */
 }
Index: /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 18064)
@@ -14,6 +14,5 @@
 
 /*TransientInput constructors and destructor*/
-/*FUNCTION TransientInput::TransientInput(){{{*/
-TransientInput::TransientInput(){
+TransientInput::TransientInput(){/*{{{*/
 
 	enum_type=UNDEF;
@@ -25,6 +24,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::TransientInput(int in_enum_type){{{*/
-TransientInput::TransientInput(int in_enum_type)
+TransientInput::TransientInput(int in_enum_type)/*{{{*/
 {
 	/*Set Enum*/
@@ -39,6 +37,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::TransientInput(int in_enum_type,IssmDouble* timesin,int N){{{*/
-TransientInput::TransientInput(int in_enum_type,IssmDouble* timesin,int N){
+TransientInput::TransientInput(int in_enum_type,IssmDouble* timesin,int N){/*{{{*/
 
 	/*Set Enum*/
@@ -54,6 +51,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::~TransientInput{{{*/
-TransientInput::~TransientInput(){
+TransientInput::~TransientInput(){/*{{{*/
 	xDelete(this->timesteps);
 	this->timesteps=NULL;
@@ -66,11 +62,9 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION TransientInput::Echo {{{*/
-void TransientInput::Echo(void){
+void TransientInput::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION TransientInput::DeepEcho{{{*/
-void TransientInput::DeepEcho(void){
+void TransientInput::DeepEcho(void){/*{{{*/
 
 	int i;
@@ -86,9 +80,7 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::Id{{{*/
-int    TransientInput::Id(void){ return -1; }
-/*}}}*/
-/*FUNCTION TransientInput::ObjectEnum{{{*/
-int TransientInput::ObjectEnum(void){
+int    TransientInput::Id(void){ return -1; }/*{{{*/
+/*}}}*/
+int TransientInput::ObjectEnum(void){/*{{{*/
 
 	return TransientInputEnum;
@@ -96,6 +88,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::copy{{{*/
-Object* TransientInput::copy() {
+Object* TransientInput::copy() {/*{{{*/
 
 	TransientInput* output=NULL;
@@ -115,6 +106,5 @@
 
 /*TransientInput management*/
-/*FUNCTION TransientInput::InstanceEnum{{{*/
-int TransientInput::InstanceEnum(void){
+int TransientInput::InstanceEnum(void){/*{{{*/
 
 	return this->enum_type;
@@ -122,6 +112,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::SpawnTriaInput{{{*/
-Input* TransientInput::SpawnTriaInput(int index1,int index2,int index3){
+Input* TransientInput::SpawnTriaInput(int index1,int index2,int index3){/*{{{*/
 
 	/*output*/
@@ -142,6 +131,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::SpawnSegInput{{{*/
-Input* TransientInput::SpawnSegInput(int index1,int index2){
+Input* TransientInput::SpawnSegInput(int index1,int index2){/*{{{*/
 
 	/*output*/
@@ -164,6 +152,5 @@
 
 /*Object functions*/
-/*FUNCTION TransientInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){{{*/
-void TransientInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){
+void TransientInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/
 	IssmDouble time;
 
@@ -180,6 +167,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss,IssmDouble time){{{*/
-void TransientInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss,IssmDouble time){
+void TransientInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss,IssmDouble time){/*{{{*/
 
 	/*Retrieve interpolated values for this time step: */
@@ -192,6 +178,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::GetInputDerivativeValue(IssmDouble* p, IssmDouble* xyz_list, Gauss* gauss){{{*/
-void TransientInput::GetInputDerivativeValue(IssmDouble* p, IssmDouble* xyz_list, Gauss* gauss){
+void TransientInput::GetInputDerivativeValue(IssmDouble* p, IssmDouble* xyz_list, Gauss* gauss){/*{{{*/
 
 	IssmDouble time;
@@ -209,11 +194,9 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::ChangeEnum{{{*/
-void TransientInput::ChangeEnum(int newenumtype){
+void TransientInput::ChangeEnum(int newenumtype){/*{{{*/
 	this->enum_type=newenumtype;
 }
 /*}}}*/
-/*FUNCTION TransientInput::GetInputAverage{{{*/
-void TransientInput::GetInputAverage(IssmDouble* pvalue){
+void TransientInput::GetInputAverage(IssmDouble* pvalue){/*{{{*/
 
 	IssmDouble time;
@@ -232,6 +215,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::GetInputAllTimeAverages{{{*/
-void TransientInput::GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){
+void TransientInput::GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){/*{{{*/
 
 	int i;
@@ -254,6 +236,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::GetInputUpToCurrentTimeAverages{{{*/
-void TransientInput::GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){
+void TransientInput::GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){/*{{{*/
 
 	int         i;
@@ -299,6 +280,5 @@
 
 /*Intermediary*/
-/*FUNCTION TransientInput::AddTimeInput{{{*/
-void TransientInput::AddTimeInput(Input* input,IssmDouble time){
+void TransientInput::AddTimeInput(Input* input,IssmDouble time){/*{{{*/
 
 	/*insert values at time step: */
@@ -328,6 +308,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::AddTimeInput{{{*/
-void TransientInput::AddTimeInput(Input* input){
+void TransientInput::AddTimeInput(Input* input){/*{{{*/
 
 	_assert_(this->inputs->Size()<this->numtimesteps);
@@ -336,6 +315,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::GetResultInterpolation{{{*/
-int TransientInput::GetResultInterpolation(void){
+int TransientInput::GetResultInterpolation(void){/*{{{*/
 
 	IssmDouble time;
@@ -352,6 +330,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::GetResultNumberOfNodes{{{*/
-int TransientInput::GetResultNumberOfNodes(void){
+int TransientInput::GetResultNumberOfNodes(void){/*{{{*/
 
 	IssmDouble time;
@@ -368,6 +345,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::Extrude{{{*/
-void TransientInput::Extrude(void){
+void TransientInput::Extrude(void){/*{{{*/
 
 	for(int i=0;i<this->numtimesteps;i++){
@@ -376,6 +352,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::SquareMin{{{*/
-void TransientInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){
+void TransientInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){/*{{{*/
 
 	IssmDouble time;
@@ -394,6 +369,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::InfinityNorm{{{*/
-IssmDouble TransientInput::InfinityNorm(void){
+IssmDouble TransientInput::InfinityNorm(void){/*{{{*/
 
 	IssmDouble time;
@@ -414,6 +388,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::Max{{{*/
-IssmDouble TransientInput::Max(void){
+IssmDouble TransientInput::Max(void){/*{{{*/
 
 	IssmDouble time;
@@ -434,6 +407,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::MaxAbs{{{*/
-IssmDouble TransientInput::MaxAbs(void){
+IssmDouble TransientInput::MaxAbs(void){/*{{{*/
 
 	IssmDouble time;
@@ -455,6 +427,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::Min{{{*/
-IssmDouble TransientInput::Min(void){
+IssmDouble TransientInput::Min(void){/*{{{*/
 
 	IssmDouble time;
@@ -476,6 +447,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::MinAbs{{{*/
-IssmDouble TransientInput::MinAbs(void){
+IssmDouble TransientInput::MinAbs(void){/*{{{*/
 
 	IssmDouble time;
@@ -496,6 +466,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::GetVectorFromInputs{{{*/
-void TransientInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){
+void TransientInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){/*{{{*/
 
 	IssmDouble time;
@@ -513,6 +482,5 @@
 
 } /*}}}*/
-/*FUNCTION TransientInput::GetTimeInput{{{*/
-Input* TransientInput::GetTimeInput(IssmDouble intime){
+Input* TransientInput::GetTimeInput(IssmDouble intime){/*{{{*/
 
 	IssmDouble deltat;
@@ -563,6 +531,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientInput::Configure{{{*/
-void TransientInput::Configure(Parameters* parameters){
+void TransientInput::Configure(Parameters* parameters){/*{{{*/
 	this->parameters=parameters;
 }
Index: /issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp	(revision 18064)
@@ -13,11 +13,9 @@
 
 /*TriaInput constructors and destructor*/
-/*FUNCTION TriaInput::TriaInput(){{{*/
-TriaInput::TriaInput(){
+TriaInput::TriaInput(){/*{{{*/
 	values = NULL;
 }
 /*}}}*/
-/*FUNCTION TriaInput::TriaInput(int in_enum_type,IssmDouble* invalues,element_type_in){{{*/
-TriaInput::TriaInput(int in_enum_type,IssmDouble* in_values,int element_type_in)
+TriaInput::TriaInput(int in_enum_type,IssmDouble* in_values,int element_type_in)/*{{{*/
 	:TriaRef(1)
 {
@@ -35,6 +33,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::~TriaInput(){{{*/
-TriaInput::~TriaInput(){
+TriaInput::~TriaInput(){/*{{{*/
 	xDelete<IssmDouble>(this->values);
 }
@@ -42,11 +39,9 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION TriaInput::Echo {{{*/
-void TriaInput::Echo(void){
+void TriaInput::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION TriaInput::DeepEcho{{{*/
-void TriaInput::DeepEcho(void){
+void TriaInput::DeepEcho(void){/*{{{*/
 
 	_printf_(setw(15)<<"   TriaInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" [");
@@ -55,9 +50,7 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::Id{{{*/
-int    TriaInput::Id(void){ return -1; }
-/*}}}*/
-/*FUNCTION TriaInput::ObjectEnum{{{*/
-int TriaInput::ObjectEnum(void){
+int    TriaInput::Id(void){ return -1; }/*{{{*/
+/*}}}*/
+int TriaInput::ObjectEnum(void){/*{{{*/
 
 	return TriaInputEnum;
@@ -65,6 +58,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::copy{{{*/
-Object* TriaInput::copy() {
+Object* TriaInput::copy() {/*{{{*/
 
 	return new TriaInput(this->enum_type,this->values,this->element_type);
@@ -74,6 +66,5 @@
 
 /*TriaInput management*/
-/*FUNCTION TriaInput::InstanceEnum{{{*/
-int TriaInput::InstanceEnum(void){
+int TriaInput::InstanceEnum(void){/*{{{*/
 
 	return this->enum_type;
@@ -81,6 +72,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::SpawnTriaInput{{{*/
-Input* TriaInput::SpawnTriaInput(int index1,int index2,int index3){
+Input* TriaInput::SpawnTriaInput(int index1,int index2,int index3){/*{{{*/
 
 	/*output*/
@@ -95,6 +85,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::SpawnSegInput{{{*/
-Input* TriaInput::SpawnSegInput(int index1,int index2){
+Input* TriaInput::SpawnSegInput(int index1,int index2){/*{{{*/
 
 	/*output*/
@@ -121,6 +110,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::GetResultInterpolation{{{*/
-int  TriaInput::GetResultInterpolation(void){
+int  TriaInput::GetResultInterpolation(void){/*{{{*/
 
 	if(this->element_type==P0Enum){
@@ -131,6 +119,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::GetResultNumberOfNodes{{{*/
-int  TriaInput::GetResultNumberOfNodes(void){
+int  TriaInput::GetResultNumberOfNodes(void){/*{{{*/
 
 	return this->NumberofNodes();
@@ -138,6 +125,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::ResultToPatch{{{*/
-void TriaInput::ResultToPatch(IssmDouble* values,int nodesperelement,int sid){
+void TriaInput::ResultToPatch(IssmDouble* values,int nodesperelement,int sid){/*{{{*/
 
 	int numnodes = this->NumberofNodes();
@@ -153,6 +139,5 @@
 
 /*Object functions*/
-/*FUNCTION TriaInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){{{*/
-void TriaInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){
+void TriaInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/
 
 	/*Call TriaRef function*/
@@ -162,6 +147,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::GetInputDerivativeValue(IssmDouble* p, IssmDouble* xyz_list, Gauss* gauss){{{*/
-void TriaInput::GetInputDerivativeValue(IssmDouble* p, IssmDouble* xyz_list, Gauss* gauss){
+void TriaInput::GetInputDerivativeValue(IssmDouble* p, IssmDouble* xyz_list, Gauss* gauss){/*{{{*/
 
 	/*Call TriaRef function*/
@@ -170,11 +154,9 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::ChangeEnum{{{*/
-void TriaInput::ChangeEnum(int newenumtype){
+void TriaInput::ChangeEnum(int newenumtype){/*{{{*/
 	this->enum_type=newenumtype;
 }
 /*}}}*/
-/*FUNCTION TriaInput::GetInputAverage{{{*/
-void TriaInput::GetInputAverage(IssmDouble* pvalue){
+void TriaInput::GetInputAverage(IssmDouble* pvalue){/*{{{*/
 
 	int        numnodes  = this->NumberofNodes();
@@ -188,6 +170,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::GetInputAllTimeAverages{{{*/
-void TriaInput::GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){
+void TriaInput::GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){/*{{{*/
 
 	IssmDouble* outvalues=NULL;
@@ -208,6 +189,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::GetInputUpToCurrentTimeAverages{{{*/
-void TriaInput::GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){
+void TriaInput::GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){/*{{{*/
 
 	IssmDouble* outvalues=NULL;
@@ -230,6 +210,5 @@
 
 /*Intermediary*/
-/*FUNCTION TriaInput::SquareMin{{{*/
-void TriaInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){
+void TriaInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){/*{{{*/
 
 	int        numnodes=this->NumberofNodes();
@@ -245,6 +224,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::ContrainMin{{{*/
-void TriaInput::ConstrainMin(IssmDouble minimum){
+void TriaInput::ConstrainMin(IssmDouble minimum){/*{{{*/
 
 	int numnodes = this->NumberofNodes();
@@ -252,6 +230,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::InfinityNorm{{{*/
-IssmDouble TriaInput::InfinityNorm(void){
+IssmDouble TriaInput::InfinityNorm(void){/*{{{*/
 
 	/*Output*/
@@ -263,6 +240,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::Max{{{*/
-IssmDouble TriaInput::Max(void){
+IssmDouble TriaInput::Max(void){/*{{{*/
 
 	int  numnodes=this->NumberofNodes();
@@ -275,6 +251,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::MaxAbs{{{*/
-IssmDouble TriaInput::MaxAbs(void){
+IssmDouble TriaInput::MaxAbs(void){/*{{{*/
 
 	int  numnodes=this->NumberofNodes();
@@ -287,6 +262,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::Min{{{*/
-IssmDouble TriaInput::Min(void){
+IssmDouble TriaInput::Min(void){/*{{{*/
 
 	const int  numnodes=this->NumberofNodes();
@@ -299,6 +273,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::MinAbs{{{*/
-IssmDouble TriaInput::MinAbs(void){
+IssmDouble TriaInput::MinAbs(void){/*{{{*/
 
 	const int  numnodes=this->NumberofNodes();
@@ -311,6 +284,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::Scale{{{*/
-void TriaInput::Scale(IssmDouble scale_factor){
+void TriaInput::Scale(IssmDouble scale_factor){/*{{{*/
 
 	const int numnodes=this->NumberofNodes();
@@ -318,6 +290,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::Set{{{*/
-void TriaInput::Set(IssmDouble setvalue){
+void TriaInput::Set(IssmDouble setvalue){/*{{{*/
 
 	const int numnodes=this->NumberofNodes();
@@ -325,6 +296,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::AXPY{{{*/
-void TriaInput::AXPY(Input* xinput,IssmDouble scalar){
+void TriaInput::AXPY(Input* xinput,IssmDouble scalar){/*{{{*/
 
 	const int numnodes=this->NumberofNodes();
@@ -341,6 +311,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::Constrain{{{*/
-void TriaInput::Constrain(IssmDouble cm_min, IssmDouble cm_max){
+void TriaInput::Constrain(IssmDouble cm_min, IssmDouble cm_max){/*{{{*/
 
 	int i;
@@ -352,11 +321,9 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::GetVectorFromInputs{{{*/
-void TriaInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){
+void TriaInput::GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){/*{{{*/
 	const int numvertices=3;
 	vector->SetValues(numvertices,doflist,this->values,INS_VAL);
 } /*}}}*/
-/*FUNCTION TriaInput::PointwiseMin{{{*/
-Input* TriaInput::PointwiseMin(Input* inputB){
+Input* TriaInput::PointwiseMin(Input* inputB){/*{{{*/
 
 	/*Ouput*/
@@ -389,6 +356,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::PointwiseMax{{{*/
-Input* TriaInput::PointwiseMax(Input* inputB){
+Input* TriaInput::PointwiseMax(Input* inputB){/*{{{*/
 
 	/*Ouput*/
@@ -421,6 +387,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::PointwiseDivide{{{*/
-Input* TriaInput::PointwiseDivide(Input* inputB){
+Input* TriaInput::PointwiseDivide(Input* inputB){/*{{{*/
 
 	/*Ouput*/
@@ -454,6 +419,5 @@
 }
 /*}}}*/
-/*FUNCTION TriaInput::Configure{{{*/
-void TriaInput::Configure(Parameters* parameters){
+void TriaInput::Configure(Parameters* parameters){/*{{{*/
 	/*do nothing: */
 }
Index: /issm/trunk-jpl/src/c/classes/IoModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 18064)
@@ -19,6 +19,5 @@
 #include "../shared/shared.h"
 
-/*FUNCTION IoModel::IoModel(){{{*/
-IoModel::IoModel(){
+IoModel::IoModel(){/*{{{*/
 	this->fid=NULL;
 	this->data=NULL;
@@ -51,6 +50,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::IoModel(FILE*  iomodel_handle){{{*/
-IoModel::IoModel(FILE* iomodel_handle){
+IoModel::IoModel(FILE* iomodel_handle){/*{{{*/
 
 	/*First, keep track of the file handle: */
@@ -97,6 +95,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::~IoModel(){{{*/
-IoModel::~IoModel(){
+IoModel::~IoModel(){/*{{{*/
 
 	/*Delete independents*/
@@ -140,6 +137,5 @@
 /*}}}*/
 
-/*FUNCTION IoModel::CheckEnumSync{{{*/
-void  IoModel::CheckEnumSync(void){
+void  IoModel::CheckEnumSync(void){/*{{{*/
 
 	int record_enum,record_length;
@@ -226,6 +222,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::Constant(bool* poutput,int constant_enum){{{*/
-void IoModel::Constant(bool* poutput,int constant_enum){
+void IoModel::Constant(bool* poutput,int constant_enum){/*{{{*/
 
 	_assert_(constant_enum>=0);
@@ -235,6 +230,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::Constant(int* poutput,int constant_enum){{{*/
-void IoModel::Constant(int* poutput,int constant_enum){
+void IoModel::Constant(int* poutput,int constant_enum){/*{{{*/
 
 	_assert_(constant_enum>=0);
@@ -244,6 +238,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::Constant(IssmDouble* poutput,int constant_enum){{{*/
-void IoModel::Constant(IssmDouble* poutput,int constant_enum){
+void IoModel::Constant(IssmDouble* poutput,int constant_enum){/*{{{*/
 
 	_assert_(constant_enum>=0);
@@ -253,6 +246,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::Constant(char** poutput,int constant_enum){{{*/
-void IoModel::Constant(char** poutput,int constant_enum){
+void IoModel::Constant(char** poutput,int constant_enum){/*{{{*/
 
 	_assert_(constant_enum>=0);
@@ -262,6 +254,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::CopyConstantObject{{{*/
-Param* IoModel::CopyConstantObject(int constant_enum){
+Param* IoModel::CopyConstantObject(int constant_enum){/*{{{*/
 
 	_assert_(this->constants);
@@ -274,6 +265,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::Data{{{*/
-IssmDouble* IoModel::Data(int data_enum){
+IssmDouble* IoModel::Data(int data_enum){/*{{{*/
 
 	_assert_(data_enum<MaximumNumberOfDefinitionsEnum);
@@ -283,6 +273,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::StartTrace{{{*/
-void IoModel::StartTrace(void){
+void IoModel::StartTrace(void){/*{{{*/
 
 	bool autodiff = false;
@@ -322,6 +311,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::DeclareIndependents{{{*/
-void IoModel::DeclareIndependents(void){
+void IoModel::DeclareIndependents(void){/*{{{*/
 
 	int  i;
@@ -374,6 +362,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::DeleteData(int num,...){{{*/
-void  IoModel::DeleteData(int num,...){
+void  IoModel::DeleteData(int num,...){/*{{{*/
 
 	va_list ap;
@@ -391,6 +378,5 @@
 	va_end(ap);
 } /*}}}*/
-/*FUNCTION IoModel::DeleteData(IssmDouble* {{{*/
-void  IoModel::DeleteData(IssmDouble* vector, int dataenum){
+void  IoModel::DeleteData(IssmDouble* vector, int dataenum){/*{{{*/
 
 	/*do not erase independent variables for the AD mode computations!: */
@@ -398,6 +384,5 @@
 
 } /*}}}*/
-/*FUNCTION IoModel::DeleteData(char*** pstringarray, int numstrings, int dataenum) {{{*/
-void  IoModel::DeleteData(char*** pstringarray, int numstrings, int dataenum){
+void  IoModel::DeleteData(char*** pstringarray, int numstrings, int dataenum){/*{{{*/
 
 	int i;
@@ -413,6 +398,5 @@
 	*pstringarray=NULL;
 } /*}}}*/
-/*FUNCTION IoModel::FetchConstants{{{*/
-void  IoModel::FetchConstants(void){
+void  IoModel::FetchConstants(void){/*{{{*/
 
 	int my_rank;
@@ -637,6 +621,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchData(bool*         pbool,int data_enum){{{*/
-void  IoModel::FetchData(bool* pboolean,int data_enum){
+void  IoModel::FetchData(bool* pboolean,int data_enum){/*{{{*/
 
 	int my_rank;
@@ -666,6 +649,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchData(int*          pinteger,int data_enum){{{*/
-void  IoModel::FetchData(int* pinteger,int data_enum){
+void  IoModel::FetchData(int* pinteger,int data_enum){/*{{{*/
 
 	int my_rank;
@@ -694,6 +676,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchData(IssmDouble*   pscalar,int data_enum){{{*/
-void  IoModel::FetchData(IssmDouble* pscalar,int data_enum){
+void  IoModel::FetchData(IssmDouble* pscalar,int data_enum){/*{{{*/
 
 	int my_rank;
@@ -722,6 +703,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchData(char**        pstring,int data_enum){{{*/
-void  IoModel::FetchData(char** pstring,int data_enum){
+void  IoModel::FetchData(char** pstring,int data_enum){/*{{{*/
 
 	int my_rank;
@@ -769,6 +749,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchData(int**         pintegerematrix,int* pM,int* pN,int data_enum){{{*/
-void  IoModel::FetchData(int** pmatrix,int* pM,int* pN,int data_enum){
+void  IoModel::FetchData(int** pmatrix,int* pM,int* pN,int data_enum){/*{{{*/
 
 	int my_rank;
@@ -838,6 +817,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchData(IssmDouble**  pIssmDoublematrix,int* pM,int* pN,int data_enum){{{*/
-void  IoModel::FetchData(IssmDouble** pmatrix,int* pM,int* pN,int data_enum){
+void  IoModel::FetchData(IssmDouble** pmatrix,int* pM,int* pN,int data_enum){/*{{{*/
 
 	int my_rank;
@@ -898,6 +876,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchData(char***       pstrings,int* pnumstrings,int data_enum){{{*/
-void  IoModel::FetchData(char*** pstrings,int* pnumstrings,int data_enum){
+void  IoModel::FetchData(char*** pstrings,int* pnumstrings,int data_enum){/*{{{*/
 
 	int my_rank;
@@ -964,6 +941,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchData(IssmDouble*** pmatrices,int** pmdims,int** pndims, int* pM,int data_enum){{{*/
-void  IoModel::FetchData(IssmDouble*** pmatrices,int** pmdims,int** pndims, int* pnumrecords,int data_enum){
+void  IoModel::FetchData(IssmDouble*** pmatrices,int** pmdims,int** pndims, int* pnumrecords,int data_enum){/*{{{*/
 
 	int i;
@@ -1050,6 +1026,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchData(Option**  poption,int data_enum){{{*/
-void  IoModel::FetchData(Option** poption,int index){
+void  IoModel::FetchData(Option** poption,int index){/*{{{*/
 
 	/*output: */
@@ -1096,6 +1071,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchData(int num,...){{{*/
-void  IoModel::FetchData(int num,...){
+void  IoModel::FetchData(int num,...){/*{{{*/
 
 	va_list     ap;
@@ -1138,6 +1112,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchMultipleData(char***       pstrings,int* pnumstrings,int data_enum){{{*/
-void  IoModel::FetchMultipleData(char*** pstrings,int* pnumstrings,int data_enum){
+void  IoModel::FetchMultipleData(char*** pstrings,int* pnumstrings,int data_enum){/*{{{*/
 
 	int  num_instances;
@@ -1203,6 +1176,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchMultipleData(int** pvector, int* pM,int data_enum){{{*/
-void  IoModel::FetchMultipleData(int** pvector, int* pnum_instances,int data_enum){
+void  IoModel::FetchMultipleData(int** pvector, int* pnum_instances,int data_enum){/*{{{*/
 
 	int     num_instances;
@@ -1257,6 +1229,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchMultipleData(IssmDouble*** pmatrices,int** pmdims,int** pndims, int* pM,int data_enum){{{*/
-void  IoModel::FetchMultipleData(IssmDouble*** pmatrices,int** pmdims,int** pndims, int* pnumrecords,int data_enum){
+void  IoModel::FetchMultipleData(IssmDouble*** pmatrices,int** pmdims,int** pndims, int* pnumrecords,int data_enum){/*{{{*/
 
 	int     num_instances;
@@ -1362,6 +1333,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchMultipleData(int*** pmatrices,int** pmdims,int** pndims, int* pM,int data_enum){{{*/
-void  IoModel::FetchMultipleData(int*** pmatrices,int** pmdims,int** pndims, int* pnumrecords,int data_enum){
+void  IoModel::FetchMultipleData(int*** pmatrices,int** pmdims,int** pndims, int* pnumrecords,int data_enum){/*{{{*/
 
 	int     num_instances;
@@ -1469,6 +1439,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchDataToInput(Elements* elements,int vector_enum,IssmDouble default_value){{{*/
-void IoModel::FetchDataToInput(Elements* elements,int vector_enum,IssmDouble default_value){
+void IoModel::FetchDataToInput(Elements* elements,int vector_enum,IssmDouble default_value){/*{{{*/
 
 	/*intermediary: */
@@ -1495,6 +1464,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchDataToInput(Elements* elements,int vector_enum){{{*/
-void IoModel::FetchDataToInput(Elements* elements,int vector_enum){
+void IoModel::FetchDataToInput(Elements* elements,int vector_enum){/*{{{*/
 
 	/*intermediary: */
@@ -1568,6 +1536,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::LastIndex{{{*/
-void IoModel::LastIndex(int *pindex){
+void IoModel::LastIndex(int *pindex){/*{{{*/
 
 	int my_rank;
@@ -1669,6 +1636,5 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::SetFilePointersToData{{{*/
-fpos_t* IoModel::SetFilePointersToData(int** pcodes,int** pvector_types, int* pnum_instances, int data_enum){
+fpos_t* IoModel::SetFilePointersToData(int** pcodes,int** pvector_types, int* pnum_instances, int data_enum){/*{{{*/
 
 	int     found          = 0;
Index: /issm/trunk-jpl/src/c/classes/Loads/Friction.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 18064)
@@ -16,6 +16,5 @@
 
 /*Constructors/destructors*/
-/*FUNCTION Friction::Friction() {{{*/
-Friction::Friction(){
+Friction::Friction(){/*{{{*/
 	this->element=NULL;
 	this->dim=0;
@@ -24,6 +23,5 @@
 }
 /*}}}*/
-/*FUNCTION Friction::Friction(Element* element,int dim){{{*/
-Friction::Friction(Element* element_in,int dim_in){
+Friction::Friction(Element* element_in,int dim_in){/*{{{*/
 
 	this->element=element_in;
@@ -32,18 +30,15 @@
 }
 /*}}}*/
-/*FUNCTION Friction::~Friction() {{{*/
-Friction::~Friction(){
+Friction::~Friction(){/*{{{*/
 }
 /*}}}*/
 
 /*methods: */
-/*FUNCTION Friction::Echo {{{*/
-void Friction::Echo(void){
+void Friction::Echo(void){/*{{{*/
 	_printf_("Friction:\n");
 	_printf_("   dim: " << this->dim<< "\n");
 }
 /*}}}*/
-/*FUNCTION Friction::GetAlpha2{{{*/
-void Friction::GetAlpha2(IssmDouble* palpha2, Gauss* gauss){
+void Friction::GetAlpha2(IssmDouble* palpha2, Gauss* gauss){/*{{{*/
 
 	switch(this->law){
@@ -59,6 +54,5 @@
 
 }/*}}}*/
-/*FUNCTION Friction::GetAlpha2{{{*/
-void Friction::GetAlpha2Viscous(IssmDouble* palpha2, Gauss* gauss){
+void Friction::GetAlpha2Viscous(IssmDouble* palpha2, Gauss* gauss){/*{{{*/
 
 	/*This routine calculates the basal friction coefficient 
@@ -120,6 +114,5 @@
 	*palpha2=alpha2;
 }/*}}}*/
-/*FUNCTION Friction::GetAlpha2Weertman{{{*/
-void Friction::GetAlpha2Weertman(IssmDouble* palpha2, Gauss* gauss){
+void Friction::GetAlpha2Weertman(IssmDouble* palpha2, Gauss* gauss){/*{{{*/
 
 	/*This routine calculates the basal friction coefficient alpha2= C^-1/m |v|^(1/m-1) */
@@ -162,6 +155,5 @@
 	*palpha2=alpha2;
 }/*}}}*/
-/*FUNCTION Friction::GetAlphaComplement(IssmDouble* palpha_complement, Gauss* gauss,int vxenum,int vyenum,int vzenum) {{{*/
-void Friction::GetAlphaComplement(IssmDouble* palpha_complement, Gauss* gauss){
+void Friction::GetAlphaComplement(IssmDouble* palpha_complement, Gauss* gauss){/*{{{*/
 
 	/* FrictionGetAlpha2 computes alpha2= drag^2 * Neff ^r * vel ^s, with Neff=rho_ice*g*thickness+rho_ice*g*bed, r=q/p and s=1/p. 
Index: /issm/trunk-jpl/src/c/classes/Loads/Loads.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Loads.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Loads/Loads.cpp	(revision 18064)
@@ -23,12 +23,10 @@
 
 /*Object constructors and destructor*/
-/*FUNCTION Loads::Loads(){{{*/
-Loads::Loads(){
+Loads::Loads(){/*{{{*/
 	enum_type=LoadsEnum;
 	return;
 }
 /*}}}*/
-/*FUNCTION Loads::~Loads(){{{*/
-Loads::~Loads(){
+Loads::~Loads(){/*{{{*/
 	return;
 }
@@ -36,6 +34,5 @@
 
 /*Numerics:*/
-/*FUNCTION Loads::Configure{{{*/
-void Loads::Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters){
+void Loads::Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters){/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -51,6 +48,5 @@
 }
 /*}}}*/
-/*FUNCTION Loads::IsPenalty{{{*/
-bool Loads::IsPenalty(int analysis_type){
+bool Loads::IsPenalty(int analysis_type){/*{{{*/
 
 	int ispenalty=0;
@@ -76,6 +72,5 @@
 }
 /*}}}*/
-/*FUNCTION Loads::MaxNumNodes{{{*/
-int Loads::MaxNumNodes(int analysis_type){
+int Loads::MaxNumNodes(int analysis_type){/*{{{*/
 
 	int max=0;
@@ -100,6 +95,5 @@
 }
 /*}}}*/
-/*FUNCTION Loads::NumberOfLoads(){{{*/
-int Loads::NumberOfLoads(void){
+int Loads::NumberOfLoads(void){/*{{{*/
 
 	int localloads;
@@ -116,6 +110,5 @@
 }
 /*}}}*/
-/*FUNCTION Loads::NumberOfLoads(int analysis){{{*/
-int Loads::NumberOfLoads(int analysis_type){
+int Loads::NumberOfLoads(int analysis_type){/*{{{*/
 
 	int localloads = 0;
@@ -138,12 +131,10 @@
 }
 /*}}}*/
-/*FUNCTION Loads::Size(){{{*/
-int Loads::Size(void){
+int Loads::Size(void){/*{{{*/
 
 	return this->DataSet::Size();
 }
 /*}}}*/
-/*FUNCTION Loads::Size(int analysis){{{*/
-int Loads::Size(int analysis_type){
+int Loads::Size(int analysis_type){/*{{{*/
 
 	int localloads = 0;
@@ -161,6 +152,5 @@
 }
 /*}}}*/
-/*FUNCTION Loads::SetCurrentConfiguration{{{*/
-void Loads::SetCurrentConfiguration(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters){
+void Loads::SetCurrentConfiguration(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters){/*{{{*/
 
 	vector<Object*>::iterator object;
Index: /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.cpp	(revision 18064)
@@ -21,6 +21,5 @@
 
 /*Numericalflux constructors and destructor*/
-/*FUNCTION Numericalflux::Numericalflux(){{{*/
-Numericalflux::Numericalflux(){
+Numericalflux::Numericalflux(){/*{{{*/
 	this->parameters = NULL;
 	this->helement   = NULL;
@@ -31,6 +30,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::Numericalflux(int id, int i, IoModel* iomodel, int analysis_type) {{{*/
-Numericalflux::Numericalflux(int numericalflux_id,int i,int index,IoModel* iomodel, int in_analysis_type){
+Numericalflux::Numericalflux(int numericalflux_id,int i,int index,IoModel* iomodel, int in_analysis_type){/*{{{*/
 
 	/* Intermediary */
@@ -124,6 +122,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::~Numericalflux(){{{*/
-Numericalflux::~Numericalflux(){
+Numericalflux::~Numericalflux(){/*{{{*/
 	this->parameters=NULL;
 	delete helement;
@@ -134,6 +131,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION Numericalflux::Echo {{{*/
-void Numericalflux::Echo(void){
+void Numericalflux::Echo(void){/*{{{*/
 	_printf_("Numericalflux:\n");
 	_printf_("   id: " << id << "\n");
@@ -146,6 +142,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::DeepEcho {{{*/
-void Numericalflux::DeepEcho(void){
+void Numericalflux::DeepEcho(void){/*{{{*/
 
 	_printf_("Numericalflux:\n");
@@ -163,11 +158,9 @@
 }		
 /*}}}*/
-/*FUNCTION Numericalflux::Id {{{*/
-int    Numericalflux::Id(void){
+int    Numericalflux::Id(void){/*{{{*/
 	return id;
 }
 /*}}}*/
-/*FUNCTION Numericalflux::ObjectEnum{{{*/
-int Numericalflux::ObjectEnum(void){
+int Numericalflux::ObjectEnum(void){/*{{{*/
 
 	return NumericalfluxEnum;
@@ -175,6 +168,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::copy {{{*/
-Object* Numericalflux::copy() {
+Object* Numericalflux::copy() {/*{{{*/
 
 	Numericalflux* numericalflux=NULL;
@@ -205,6 +197,5 @@
 
 /*Load virtual functions definitions:*/
-/*FUNCTION Numericalflux::Configure {{{*/
-void  Numericalflux::Configure(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){
+void  Numericalflux::Configure(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){/*{{{*/
 
 	/*Take care of hooking up all objects for this element, ie links the objects in the hooks to their respective 
@@ -223,11 +214,9 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::SetCurrentConfiguration {{{*/
-void  Numericalflux::SetCurrentConfiguration(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){
-
-}
-/*}}}*/
-/*FUNCTION Numericalflux::CreateKMatrix {{{*/
-void  Numericalflux::CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){
+void  Numericalflux::SetCurrentConfiguration(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){/*{{{*/
+
+}
+/*}}}*/
+void  Numericalflux::CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){/*{{{*/
 
 	/*recover some parameters*/
@@ -259,6 +248,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::CreatePVector {{{*/
-void  Numericalflux::CreatePVector(Vector<IssmDouble>* pf){
+void  Numericalflux::CreatePVector(Vector<IssmDouble>* pf){/*{{{*/
 
 	/*recover some parameters*/
@@ -289,6 +277,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::GetNodesSidList{{{*/
-void Numericalflux::GetNodesSidList(int* sidlist){
+void Numericalflux::GetNodesSidList(int* sidlist){/*{{{*/
 
 	_assert_(sidlist);
@@ -307,6 +294,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::GetNodesLidList{{{*/
-void Numericalflux::GetNodesLidList(int* lidlist){
+void Numericalflux::GetNodesLidList(int* lidlist){/*{{{*/
 
 	_assert_(lidlist);
@@ -325,6 +311,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::GetNumberOfNodes{{{*/
-int Numericalflux::GetNumberOfNodes(void){
+int Numericalflux::GetNumberOfNodes(void){/*{{{*/
 
 	switch(this->flux_type){
@@ -339,11 +324,9 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::IsPenalty{{{*/
-bool Numericalflux::IsPenalty(void){
+bool Numericalflux::IsPenalty(void){/*{{{*/
 	return false;
 }
 /*}}}*/
-/*FUNCTION Numericalflux::PenaltyCreateKMatrix {{{*/
-void  Numericalflux::PenaltyCreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs,IssmDouble kmax){
+void  Numericalflux::PenaltyCreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs,IssmDouble kmax){/*{{{*/
 
 	/*No stiffness loads applied, do nothing: */
@@ -352,6 +335,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::PenaltyCreatePVector{{{*/
-void  Numericalflux::PenaltyCreatePVector(Vector<IssmDouble>* pf,IssmDouble kmax){
+void  Numericalflux::PenaltyCreatePVector(Vector<IssmDouble>* pf,IssmDouble kmax){/*{{{*/
 
 	/*No penalty loads applied, do nothing: */
@@ -360,12 +342,10 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::InAnalysis{{{*/
-bool Numericalflux::InAnalysis(int in_analysis_type){
+bool Numericalflux::InAnalysis(int in_analysis_type){/*{{{*/
 	if (in_analysis_type==this->analysis_type) return true;
 	else return false;
 }
 /*}}}*/
-/*FUNCTION Numericalflux::SetwiseNodeConnectivity{{{*/
-void Numericalflux::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){
+void Numericalflux::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){/*{{{*/
 
 	/*Output */
@@ -423,6 +403,5 @@
 
 /*Numericalflux management*/
-/*FUNCTION Numericalflux::CreateKMatrixMasstransport{{{*/
-ElementMatrix* Numericalflux::CreateKMatrixMasstransport(void){
+ElementMatrix* Numericalflux::CreateKMatrixMasstransport(void){/*{{{*/
 
 	switch(this->flux_type){
@@ -436,6 +415,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::CreateKMatrixMasstransportInternal {{{*/
-ElementMatrix* Numericalflux::CreateKMatrixMasstransportInternal(void){
+ElementMatrix* Numericalflux::CreateKMatrixMasstransportInternal(void){/*{{{*/
 
 	/* constants*/
@@ -501,6 +479,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::CreateKMatrixMasstransportBoundary {{{*/
-ElementMatrix* Numericalflux::CreateKMatrixMasstransportBoundary(void){
+ElementMatrix* Numericalflux::CreateKMatrixMasstransportBoundary(void){/*{{{*/
 
 	/* constants*/
@@ -573,6 +550,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::CreateKMatrixBalancethickness{{{*/
-ElementMatrix* Numericalflux::CreateKMatrixBalancethickness(void){
+ElementMatrix* Numericalflux::CreateKMatrixBalancethickness(void){/*{{{*/
 
 	switch(this->flux_type){
@@ -586,6 +562,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::CreateKMatrixBalancethicknessInternal {{{*/
-ElementMatrix* Numericalflux::CreateKMatrixBalancethicknessInternal(void){
+ElementMatrix* Numericalflux::CreateKMatrixBalancethicknessInternal(void){/*{{{*/
 
 	/* constants*/
@@ -650,6 +625,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::CreateKMatrixBalancethicknessBoundary {{{*/
-ElementMatrix* Numericalflux::CreateKMatrixBalancethicknessBoundary(void){
+ElementMatrix* Numericalflux::CreateKMatrixBalancethicknessBoundary(void){/*{{{*/
 
 	/* constants*/
@@ -721,6 +695,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::CreateKMatrixAdjointBalancethickness{{{*/
-ElementMatrix* Numericalflux::CreateKMatrixAdjointBalancethickness(void){
+ElementMatrix* Numericalflux::CreateKMatrixAdjointBalancethickness(void){/*{{{*/
 
 	switch(this->flux_type){
@@ -734,6 +707,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::CreateKMatrixAdjointBalancethicknessInternal {{{*/
-ElementMatrix* Numericalflux::CreateKMatrixAdjointBalancethicknessInternal(void){
+ElementMatrix* Numericalflux::CreateKMatrixAdjointBalancethicknessInternal(void){/*{{{*/
 
 	ElementMatrix* Ke=CreateKMatrixBalancethicknessInternal();
@@ -742,6 +714,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::CreateKMatrixAdjointBalancethicknessBoundary {{{*/
-ElementMatrix* Numericalflux::CreateKMatrixAdjointBalancethicknessBoundary(void){
+ElementMatrix* Numericalflux::CreateKMatrixAdjointBalancethicknessBoundary(void){/*{{{*/
 
 	ElementMatrix* Ke=CreateKMatrixBalancethicknessBoundary();
@@ -750,6 +721,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::CreatePVectorMasstransport{{{*/
-ElementVector* Numericalflux::CreatePVectorMasstransport(void){
+ElementVector* Numericalflux::CreatePVectorMasstransport(void){/*{{{*/
 
 	switch(this->flux_type){
@@ -763,6 +733,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::CreatePVectorMasstransportInternal{{{*/
-ElementVector* Numericalflux::CreatePVectorMasstransportInternal(void){
+ElementVector* Numericalflux::CreatePVectorMasstransportInternal(void){/*{{{*/
 
 	/*Nothing added to PVector*/
@@ -771,6 +740,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::CreatePVectorMasstransportBoundary{{{*/
-ElementVector* Numericalflux::CreatePVectorMasstransportBoundary(void){
+ElementVector* Numericalflux::CreatePVectorMasstransportBoundary(void){/*{{{*/
 
 	/* constants*/
@@ -841,6 +809,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::CreatePVectorBalancethickness{{{*/
-ElementVector* Numericalflux::CreatePVectorBalancethickness(void){
+ElementVector* Numericalflux::CreatePVectorBalancethickness(void){/*{{{*/
 
 	switch(this->flux_type){
@@ -854,6 +821,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::CreatePVectorBalancethicknessInternal{{{*/
-ElementVector* Numericalflux::CreatePVectorBalancethicknessInternal(void){
+ElementVector* Numericalflux::CreatePVectorBalancethicknessInternal(void){/*{{{*/
 
 	/*Nothing added to PVector*/
@@ -862,6 +828,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::CreatePVectorBalancethicknessBoundary{{{*/
-ElementVector* Numericalflux::CreatePVectorBalancethicknessBoundary(void){
+ElementVector* Numericalflux::CreatePVectorBalancethicknessBoundary(void){/*{{{*/
 
 	/* constants*/
@@ -929,6 +894,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::CreatePVectorAdjointBalancethickness{{{*/
-ElementVector* Numericalflux::CreatePVectorAdjointBalancethickness(void){
+ElementVector* Numericalflux::CreatePVectorAdjointBalancethickness(void){/*{{{*/
 
 	/*No PVector for the Adjoint*/
@@ -936,6 +900,5 @@
 }
 /*}}}*/
-/*FUNCTION Numericalflux::GetNormal {{{*/
-void Numericalflux:: GetNormal(IssmDouble* normal,IssmDouble xyz_list[4][3]){
+void Numericalflux:: GetNormal(IssmDouble* normal,IssmDouble xyz_list[4][3]){/*{{{*/
 
 	/*Build unit outward pointing vector*/
Index: /issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp	(revision 18064)
@@ -20,6 +20,5 @@
 
 /*Pengrid constructors and destructor*/
-/*FUNCTION Pengrid::Pengrid(){{{*/
-Pengrid::Pengrid(){
+Pengrid::Pengrid(){/*{{{*/
 	this->parameters=NULL;
 	this->hnode=NULL;
@@ -36,6 +35,5 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::Pengrid(int index, int id, IoModel* iomodel,int analysis_type){{{*/
-Pengrid::Pengrid(int id, int index, IoModel* iomodel, int in_analysis_type){ //i is the element index
+Pengrid::Pengrid(int id, int index, IoModel* iomodel, int in_analysis_type){ //i is the element index/*{{{*/
 
 	int pengrid_node_id;
@@ -74,6 +72,5 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::~Pengrid(){{{*/
-Pengrid::~Pengrid(){
+Pengrid::~Pengrid(){/*{{{*/
 	delete hnode;
 	delete helement;
@@ -84,11 +81,9 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION Pengrid::Echo {{{*/
-void Pengrid::Echo(void){
+void Pengrid::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION Pengrid::DeepEcho{{{*/
-void Pengrid::DeepEcho(void){
+void Pengrid::DeepEcho(void){/*{{{*/
 
 	_printf_("Pengrid:\n");
@@ -104,15 +99,12 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::Id {{{*/
-int    Pengrid::Id(void){ return id; }
-/*}}}*/
-/*FUNCTION Pengrid::ObjectEnum{{{*/
-int Pengrid::ObjectEnum(void){
+int    Pengrid::Id(void){ return id; }/*{{{*/
+/*}}}*/
+int Pengrid::ObjectEnum(void){/*{{{*/
 
 	return PengridEnum;
 }
 /*}}}*/
-/*FUNCTION Icefront::copy {{{*/
-Object* Pengrid::copy() {
+Object* Pengrid::copy() {/*{{{*/
 
 	Pengrid* pengrid=NULL;
@@ -147,6 +139,5 @@
 
 /*Load virtual functions definitions:*/
-/*FUNCTION Pengrid::Configure {{{*/
-void  Pengrid::Configure(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){
+void  Pengrid::Configure(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){/*{{{*/
 
 	/*Take care of hooking up all objects for this load, ie links the objects in the hooks to their respective 
@@ -165,11 +156,9 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::SetCurrentConfiguration {{{*/
-void  Pengrid::SetCurrentConfiguration(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){
-
-}
-/*}}}*/
-/*FUNCTION Pengrid::CreateKMatrix {{{*/
-void  Pengrid::CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){
+void  Pengrid::SetCurrentConfiguration(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){/*{{{*/
+
+}
+/*}}}*/
+void  Pengrid::CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){/*{{{*/
 
 	/*No loads applied, do nothing: */
@@ -178,6 +167,5 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::CreatePVector {{{*/
-void  Pengrid::CreatePVector(Vector<IssmDouble>* pf){
+void  Pengrid::CreatePVector(Vector<IssmDouble>* pf){/*{{{*/
 
 	ElementVector* pe=NULL;
@@ -201,6 +189,5 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::GetNodesSidList{{{*/
-void Pengrid::GetNodesSidList(int* sidlist){
+void Pengrid::GetNodesSidList(int* sidlist){/*{{{*/
 
 	_assert_(sidlist);
@@ -210,6 +197,5 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::GetNodesLidList{{{*/
-void Pengrid::GetNodesLidList(int* lidlist){
+void Pengrid::GetNodesLidList(int* lidlist){/*{{{*/
 
 	_assert_(lidlist);
@@ -219,12 +205,10 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::GetNumberOfNodes{{{*/
-int Pengrid::GetNumberOfNodes(void){
+int Pengrid::GetNumberOfNodes(void){/*{{{*/
 
 	return NUMVERTICES;
 }
 /*}}}*/
-/*FUNCTION Pengrid::PenaltyCreateMatrix {{{*/
-void  Pengrid::PenaltyCreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs,IssmDouble kmax){
+void  Pengrid::PenaltyCreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs,IssmDouble kmax){/*{{{*/
 
 	/*Retrieve parameters: */
@@ -254,6 +238,5 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::PenaltyCreatePVector {{{*/
-void  Pengrid::PenaltyCreatePVector(Vector<IssmDouble>* pf,IssmDouble kmax){
+void  Pengrid::PenaltyCreatePVector(Vector<IssmDouble>* pf,IssmDouble kmax){/*{{{*/
 
 	/*Retrieve parameters: */
@@ -285,17 +268,14 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::InAnalysis{{{*/
-bool Pengrid::InAnalysis(int in_analysis_type){
+bool Pengrid::InAnalysis(int in_analysis_type){/*{{{*/
 	if (in_analysis_type==this->analysis_type)return true;
 	else return false;
 }
 /*}}}*/
-/*FUNCTION Pengrid::IsPenalty{{{*/
-bool Pengrid::IsPenalty(void){
+bool Pengrid::IsPenalty(void){/*{{{*/
 	return true;
 }
 /*}}}*/
-/*FUNCTION Pengrid::SetwiseNodeConnectivity{{{*/
-void Pengrid::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){
+void Pengrid::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){/*{{{*/
 
 	/*Output */
@@ -349,31 +329,25 @@
 
 /*Update virtual functions definitions:*/
-/*FUNCTION Pengrid::InputUpdateFromVector(IssmDouble* vector, int name, int type) {{{*/
-void  Pengrid::InputUpdateFromVector(IssmDouble* vector, int name, int type){
+void  Pengrid::InputUpdateFromVector(IssmDouble* vector, int name, int type){/*{{{*/
 	/*Nothing updated yet*/
 }
 /*}}}*/
-/*FUNCTION Pengrid::InputUpdateFromMatrixDakota(IssmDouble* vector, int nrows, int ncols, int name, int type) {{{*/
-void  Pengrid::InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols, int name, int type){
+void  Pengrid::InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols, int name, int type){/*{{{*/
 	/*Nothing updated yet*/
 }
 /*}}}*/
-/*FUNCTION Pengrid::InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type) {{{*/
-void  Pengrid::InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){
+void  Pengrid::InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){/*{{{*/
 	/*Nothing updated yet*/
 }
 /*}}}*/
-/*FUNCTION Pengrid::InputUpdateFromConstant(IssmDouble constant, int name) {{{*/
-void  Pengrid::InputUpdateFromConstant(IssmDouble constant, int name){
+void  Pengrid::InputUpdateFromConstant(IssmDouble constant, int name){/*{{{*/
 	/*Nothing*/
 }
 /*}}}*/
-/*FUNCTION Pengrid::InputUpdateFromConstant(int constant, int name) {{{*/
-void  Pengrid::InputUpdateFromConstant(int constant, int name){
+void  Pengrid::InputUpdateFromConstant(int constant, int name){/*{{{*/
 	/*Nothing updated yet*/
 }
 /*}}}*/
-/*FUNCTION Pengrid::InputUpdateFromConstant(bool constant, int name) {{{*/
-void  Pengrid::InputUpdateFromConstant(bool constant, int name){
+void  Pengrid::InputUpdateFromConstant(bool constant, int name){/*{{{*/
 
 	switch(name){
@@ -388,6 +362,5 @@
 
 /*Pengrid management:*/
-/*FUNCTION Pengrid::ConstraintActivate {{{*/
-void  Pengrid::ConstraintActivate(int* punstable){
+void  Pengrid::ConstraintActivate(int* punstable){/*{{{*/
 
 	int analysis_type;
@@ -417,6 +390,5 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::ConstraintActivateThermal {{{*/
-void  Pengrid::ConstraintActivateThermal(int* punstable){
+void  Pengrid::ConstraintActivateThermal(int* punstable){/*{{{*/
 
 	//   The penalty is stable if it doesn't change during to successive iterations.   
@@ -481,6 +453,5 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::PenaltyCreateKMatrixMelting {{{*/
-ElementMatrix* Pengrid::PenaltyCreateKMatrixMelting(IssmDouble kmax){
+ElementMatrix* Pengrid::PenaltyCreateKMatrixMelting(IssmDouble kmax){/*{{{*/
 
 	IssmDouble pressure,temperature,t_pmp;
@@ -510,6 +481,5 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::PenaltyCreateKMatrixThermal {{{*/
-ElementMatrix* Pengrid::PenaltyCreateKMatrixThermal(IssmDouble kmax){
+ElementMatrix* Pengrid::PenaltyCreateKMatrixThermal(IssmDouble kmax){/*{{{*/
 
 	IssmDouble    penalty_factor;
@@ -528,6 +498,5 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::PenaltyCreatePVectorMelting {{{*/
-ElementVector* Pengrid::PenaltyCreatePVectorMelting(IssmDouble kmax){
+ElementVector* Pengrid::PenaltyCreatePVectorMelting(IssmDouble kmax){/*{{{*/
 
 	IssmDouble pressure;
@@ -570,6 +539,5 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::PenaltyCreatePVectorThermal {{{*/
-ElementVector* Pengrid::PenaltyCreatePVectorThermal(IssmDouble kmax){
+ElementVector* Pengrid::PenaltyCreatePVectorThermal(IssmDouble kmax){/*{{{*/
 
 	IssmDouble pressure;
@@ -596,6 +564,5 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::ConstraintActivateHydrologyDCInefficient{{{*/
-void  Pengrid::ConstraintActivateHydrologyDCInefficient(int* punstable){
+void  Pengrid::ConstraintActivateHydrologyDCInefficient(int* punstable){/*{{{*/
 
 	//   The penalty is stable if it doesn't change during two consecutive iterations.   
@@ -657,6 +624,5 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::PenaltyCreateKMatrixHydrologyDCInefficient {{{*/
-ElementMatrix* Pengrid::PenaltyCreateKMatrixHydrologyDCInefficient(IssmDouble kmax){
+ElementMatrix* Pengrid::PenaltyCreateKMatrixHydrologyDCInefficient(IssmDouble kmax){/*{{{*/
 	IssmDouble    penalty_factor;
 
@@ -674,6 +640,5 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::PenaltyCreatePVectorHydrologyDCInefficient {{{*/
-ElementVector* Pengrid::PenaltyCreatePVectorHydrologyDCInefficient(IssmDouble kmax){
+ElementVector* Pengrid::PenaltyCreatePVectorHydrologyDCInefficient(IssmDouble kmax){/*{{{*/
 
 	IssmDouble h_max;
@@ -699,6 +664,5 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::CreatePVectorHydrologyDCInefficient {{{*/
-ElementVector* Pengrid::CreatePVectorHydrologyDCInefficient(void){
+ElementVector* Pengrid::CreatePVectorHydrologyDCInefficient(void){/*{{{*/
 
 	IssmDouble moulin_load,dt;
@@ -716,6 +680,5 @@
  }
 /*}}}*/
-/*FUNCTION Pengrid::ResetConstraint {{{*/
-void  Pengrid::ResetConstraint(void){
+void  Pengrid::ResetConstraint(void){/*{{{*/
 	active         = 0;
 	zigzag_counter = 0;
Index: /issm/trunk-jpl/src/c/classes/Loads/Penpair.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Penpair.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Loads/Penpair.cpp	(revision 18064)
@@ -19,6 +19,5 @@
 
 /*Penpair constructors and destructor*/
-/*FUNCTION Penpair::constructor {{{*/
-Penpair::Penpair(){
+Penpair::Penpair(){/*{{{*/
 
 	this->hnodes=NULL;
@@ -28,6 +27,5 @@
 }
 /*}}}*/
-/*FUNCTION Penpair::creation {{{*/
-Penpair::Penpair(int penpair_id, int* penpair_node_ids,int in_analysis_type){
+Penpair::Penpair(int penpair_id, int* penpair_node_ids,int in_analysis_type){/*{{{*/
 
 	this->id=penpair_id;
@@ -40,6 +38,5 @@
 }
 /*}}}*/
-/*FUNCTION Penpair::destructor {{{*/
-Penpair::~Penpair(){
+Penpair::~Penpair(){/*{{{*/
 	delete hnodes;
 	return;
@@ -48,6 +45,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION Penpair::Echo {{{*/
-void Penpair::Echo(void){
+void Penpair::Echo(void){/*{{{*/
 
 	_printf_("Penpair:\n");
@@ -59,6 +55,5 @@
 }
 /*}}}*/
-/*FUNCTION Penpair::DeepEcho {{{*/
-void Penpair::DeepEcho(void){
+void Penpair::DeepEcho(void){/*{{{*/
 
 	_printf_("Penpair:\n");
@@ -70,15 +65,12 @@
 }		
 /*}}}*/
-/*FUNCTION Penpair::Id {{{*/
-int    Penpair::Id(void){ return id; }
-/*}}}*/
-/*FUNCTION Penpair::ObjectEnum{{{*/
-int Penpair::ObjectEnum(void){
+int    Penpair::Id(void){ return id; }/*{{{*/
+/*}}}*/
+int Penpair::ObjectEnum(void){/*{{{*/
 
 	return PenpairEnum;
 }
 /*}}}*/
-/*FUNCTION Penpair::copy {{{*/
-Object* Penpair::copy() {
+Object* Penpair::copy() {/*{{{*/
 
 	Penpair* penpair=NULL;
@@ -103,6 +95,5 @@
 
 /*Load virtual functions definitions:*/
-/*FUNCTION Penpair::Configure {{{*/
-void  Penpair::Configure(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){
+void  Penpair::Configure(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){/*{{{*/
 
 	/*Take care of hooking up all objects for this element, ie links the objects in the hooks to their respective 
@@ -118,11 +109,9 @@
 }
 /*}}}*/
-/*FUNCTION Penpair::SetCurrentConfiguration {{{*/
-void  Penpair::SetCurrentConfiguration(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){
-
-}
-/*}}}*/
-/*FUNCTION Penpair::CreateKMatrix {{{*/
-void  Penpair::CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){
+void  Penpair::SetCurrentConfiguration(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){/*{{{*/
+
+}
+/*}}}*/
+void  Penpair::CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){/*{{{*/
 	/*If you code this piece, don't forget that a penalty will be inactive if it is dealing with clone nodes*/
 	/*No loads applied, do nothing: */
@@ -131,6 +120,5 @@
 }
 /*}}}*/
-/*FUNCTION Penpair::CreatePVector {{{*/
-void  Penpair::CreatePVector(Vector<IssmDouble>* pf){
+void  Penpair::CreatePVector(Vector<IssmDouble>* pf){/*{{{*/
 
 	/*No loads applied, do nothing: */
@@ -139,11 +127,9 @@
 }
 /*}}}*/
-/*FUNCTION Penpair::CreateJacobianMatrix{{{*/
-void  Penpair::CreateJacobianMatrix(Matrix<IssmDouble>* Jff){
+void  Penpair::CreateJacobianMatrix(Matrix<IssmDouble>* Jff){/*{{{*/
 	this->CreateKMatrix(Jff,NULL);
 }
 /*}}}*/
-/*FUNCTION Penpair::GetNodesSidList{{{*/
-void Penpair::GetNodesSidList(int* sidlist){
+void Penpair::GetNodesSidList(int* sidlist){/*{{{*/
 
 	_assert_(sidlist);
@@ -153,6 +139,5 @@
 }
 /*}}}*/
-/*FUNCTION Penpair::GetNodesLidList{{{*/
-void Penpair::GetNodesLidList(int* lidlist){
+void Penpair::GetNodesLidList(int* lidlist){/*{{{*/
 
 	_assert_(lidlist);
@@ -162,17 +147,14 @@
 }
 /*}}}*/
-/*FUNCTION Penpair::GetNumberOfNodes{{{*/
-int Penpair::GetNumberOfNodes(void){
+int Penpair::GetNumberOfNodes(void){/*{{{*/
 
 	return NUMVERTICES;
 }
 /*}}}*/
-/*FUNCTION Penpair::IsPenalty{{{*/
-bool Penpair::IsPenalty(void){
+bool Penpair::IsPenalty(void){/*{{{*/
 	return true;
 }
 /*}}}*/
-/*FUNCTION Penpair::PenaltyCreateKMatrix {{{*/
-void  Penpair::PenaltyCreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs,IssmDouble kmax){
+void  Penpair::PenaltyCreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs,IssmDouble kmax){/*{{{*/
 
 	/*Retrieve parameters: */
@@ -199,23 +181,19 @@
 }
 /*}}}*/
-/*FUNCTION Penpair::PenaltyCreatePVector {{{*/
-void  Penpair::PenaltyCreatePVector(Vector<IssmDouble>* pf,IssmDouble kmax){
+void  Penpair::PenaltyCreatePVector(Vector<IssmDouble>* pf,IssmDouble kmax){/*{{{*/
 	/*No loads applied, do nothing: */
 	return;
 }
 /*}}}*/
-/*FUNCTION Penpair::PenaltyCreateJacobianMatrix{{{*/
-void  Penpair::PenaltyCreateJacobianMatrix(Matrix<IssmDouble>* Jff,IssmDouble kmax){
+void  Penpair::PenaltyCreateJacobianMatrix(Matrix<IssmDouble>* Jff,IssmDouble kmax){/*{{{*/
 	this->PenaltyCreateKMatrix(Jff,NULL,kmax);
 }
 /*}}}*/
-/*FUNCTION Penpair::InAnalysis{{{*/
-bool Penpair::InAnalysis(int in_analysis_type){
+bool Penpair::InAnalysis(int in_analysis_type){/*{{{*/
 	if (in_analysis_type==this->analysis_type)return true;
 	else return false;
 }
 /*}}}*/
-/*FUNCTION Penpair::SetwiseNodeConnectivity{{{*/
-void Penpair::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){
+void Penpair::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){/*{{{*/
 
 	/*Output */
@@ -273,21 +251,17 @@
 
 /*Update virtual functions definitions:*/
-/*FUNCTION Penpair::InputUpdateFromConstant(IssmDouble constant, int name) {{{*/
-void  Penpair::InputUpdateFromConstant(IssmDouble constant, int name){
+void  Penpair::InputUpdateFromConstant(IssmDouble constant, int name){/*{{{*/
 	/*Nothing updated yet*/
 }
 /*}}}*/
-/*FUNCTION Penpair::InputUpdateFromConstant(int constant, int name) {{{*/
-void  Penpair::InputUpdateFromConstant(int constant, int name){
+void  Penpair::InputUpdateFromConstant(int constant, int name){/*{{{*/
 	/*Nothing updated yet*/
 }
 /*}}}*/
-/*FUNCTION Penpair::InputUpdateFromConstant(bool constant, int name) {{{*/
-void  Penpair::InputUpdateFromConstant(bool constant, int name){
+void  Penpair::InputUpdateFromConstant(bool constant, int name){/*{{{*/
 	/*Nothing updated yet*/
 }
 /*}}}*/
-/*FUNCTION Penpair::InputUpdateFromVector(IssmDouble* vector, int name, int type) {{{*/
-void  Penpair::InputUpdateFromVector(IssmDouble* vector, int name, int type){
+void  Penpair::InputUpdateFromVector(IssmDouble* vector, int name, int type){/*{{{*/
 	/*Nothing updated yet*/
 }
@@ -295,6 +269,5 @@
 
 /*Penpair management:*/
-/*FUNCTION Penpair::PenaltyCreateKMatrixStressbalanceHoriz{{{*/
-ElementMatrix* Penpair::PenaltyCreateKMatrixStressbalanceHoriz(IssmDouble kmax){
+ElementMatrix* Penpair::PenaltyCreateKMatrixStressbalanceHoriz(IssmDouble kmax){/*{{{*/
 
 	int    approximation0=nodes[0]->GetApproximation();
@@ -329,6 +302,5 @@
 }
 /*}}}*/
-/*FUNCTION Penpair::PenaltyCreateKMatrixStressbalanceSSAHO {{{*/
-ElementMatrix* Penpair::PenaltyCreateKMatrixStressbalanceSSAHO(IssmDouble kmax){
+ElementMatrix* Penpair::PenaltyCreateKMatrixStressbalanceSSAHO(IssmDouble kmax){/*{{{*/
 
 	const int numdof=NUMVERTICES*NDOF2;
@@ -356,6 +328,5 @@
 }
 /*}}}*/
-/*FUNCTION Penpair::PenaltyCreateKMatrixStressbalanceFS {{{*/
-ElementMatrix* Penpair::PenaltyCreateKMatrixStressbalanceFS(IssmDouble kmax){
+ElementMatrix* Penpair::PenaltyCreateKMatrixStressbalanceFS(IssmDouble kmax){/*{{{*/
 
 	const int  numdof=NUMVERTICES*NDOF3;
@@ -388,6 +359,5 @@
 }
 /*}}}*/
-/*FUNCTION Penpair::PenaltyCreateKMatrixMasstransport {{{*/
-ElementMatrix* Penpair::PenaltyCreateKMatrixMasstransport(IssmDouble kmax){
+ElementMatrix* Penpair::PenaltyCreateKMatrixMasstransport(IssmDouble kmax){/*{{{*/
 
 	const int numdof=NUMVERTICES*NDOF1;
Index: /issm/trunk-jpl/src/c/classes/Loads/Riftfront.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Riftfront.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Loads/Riftfront.cpp	(revision 18064)
@@ -20,6 +20,5 @@
 
 /*Riftfront constructors and destructor*/
-/*FUNCTION Riftfront::Riftfront(){{{*/
-Riftfront::Riftfront(){
+Riftfront::Riftfront(){/*{{{*/
 	this->parameters=NULL;
 	this->hnodes=NULL;
@@ -31,6 +30,5 @@
 }
 /*}}}*/
-/*FUNCTION Riftfront::Riftfront(int id, int i, IoModel* iomodel,int analysis_type){{{*/
-Riftfront::Riftfront(int riftfront_id,int i, IoModel* iomodel,int riftfront_analysis_type){
+Riftfront::Riftfront(int riftfront_id,int i, IoModel* iomodel,int riftfront_analysis_type){/*{{{*/
 
 	/*data: */
@@ -101,6 +99,5 @@
 }
 /*}}}*/
-/*FUNCTION Riftfront::~Riftfront(){{{*/
-Riftfront::~Riftfront(){
+Riftfront::~Riftfront(){/*{{{*/
 	this->parameters=NULL;
 	delete hnodes;
@@ -111,6 +108,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION Riftfront::Echo {{{*/
-void Riftfront::Echo(void){
+void Riftfront::Echo(void){/*{{{*/
 
 	_printf_("Riftfront:\n");
@@ -138,6 +134,5 @@
 }
 /*}}}*/
-/*FUNCTION Riftfront::DeepEcho{{{*/
-void Riftfront::DeepEcho(void){
+void Riftfront::DeepEcho(void){/*{{{*/
 
 	_printf_("Riftfront:\n");
@@ -151,9 +146,7 @@
 }
 /*}}}*/
-/*FUNCTION Riftfront::Id {{{*/
-int    Riftfront::Id(void){ return id; }
-/*}}}*/
-/*FUNCTION Riftfront::ObjectEnum{{{*/
-int Riftfront::ObjectEnum(void){
+int    Riftfront::Id(void){ return id; }/*{{{*/
+/*}}}*/
+int Riftfront::ObjectEnum(void){/*{{{*/
 
 	return RiftfrontEnum;
@@ -161,6 +154,5 @@
 }
 /*}}}*/
-/*FUNCTION Riftfront::copy {{{*/
-Object* Riftfront::copy() {
+Object* Riftfront::copy() {/*{{{*/
 
 	Riftfront* riftfront=NULL;
@@ -209,15 +201,12 @@
 
 /*Update virtual functions definitions:*/
-/*FUNCTION Riftfront::InputUpdateFromConstant(bool constant,int name) {{{*/
-void  Riftfront::InputUpdateFromConstant(bool constant,int name){
-}
-/*}}}*/
-/*FUNCTION Riftfront::InputUpdateFromConstant(IssmDouble constant,int name) {{{*/
-void  Riftfront::InputUpdateFromConstant(IssmDouble constant,int name){
-
-}
-/*}}}*/
-/*FUNCTION Riftfront::InputUpdateFromVector(IssmDouble* constant,int name) {{{*/
-void    Riftfront::InputUpdateFromVector(IssmDouble* vector, int name, int type){
+void  Riftfront::InputUpdateFromConstant(bool constant,int name){/*{{{*/
+}
+/*}}}*/
+void  Riftfront::InputUpdateFromConstant(IssmDouble constant,int name){/*{{{*/
+
+}
+/*}}}*/
+void    Riftfront::InputUpdateFromVector(IssmDouble* vector, int name, int type){/*{{{*/
 
 	_error_("not implemented yet");
@@ -227,6 +216,5 @@
 
 /*Load virtual functions definitions:*/
-/*FUNCTION Riftfront::Configure {{{*/
-void  Riftfront::Configure(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){
+void  Riftfront::Configure(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){/*{{{*/
 
 	/*Take care of hooking up all objects for this element, ie links the objects in the hooks to their respective 
@@ -246,16 +234,13 @@
 }
 /*}}}*/
-/*FUNCTION Riftfront::IsPenalty{{{*/
-bool Riftfront::IsPenalty(void){
+bool Riftfront::IsPenalty(void){/*{{{*/
 	return true;
 }
 /*}}}*/
-/*FUNCTION Riftfront::SetCurrentConfiguration {{{*/
-void  Riftfront::SetCurrentConfiguration(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){
-
-}
-/*}}}*/
-/*FUNCTION Riftfront::PenaltyCreateKMatrix {{{*/
-void  Riftfront::PenaltyCreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs,IssmDouble kmax){
+void  Riftfront::SetCurrentConfiguration(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){/*{{{*/
+
+}
+/*}}}*/
+void  Riftfront::PenaltyCreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs,IssmDouble kmax){/*{{{*/
 
 	/*Retrieve parameters: */
@@ -282,6 +267,5 @@
 }
 /*}}}*/
-/*FUNCTION Riftfront::PenaltyCreatePVector {{{*/
-void  Riftfront::PenaltyCreatePVector(Vector<IssmDouble>* pf,IssmDouble kmax){
+void  Riftfront::PenaltyCreatePVector(Vector<IssmDouble>* pf,IssmDouble kmax){/*{{{*/
 
 	/*Retrieve parameters: */
@@ -308,18 +292,15 @@
 }
 /*}}}*/
-/*FUNCTION Riftfront::CreateKMatrix {{{*/
-void  Riftfront::CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){
+void  Riftfront::CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){/*{{{*/
 	/*do nothing: */
 	return;
 }
 /*}}}*/
-/*FUNCTION Riftfront::CreatePVector {{{*/
-void  Riftfront::CreatePVector(Vector<IssmDouble>* pf){
+void  Riftfront::CreatePVector(Vector<IssmDouble>* pf){/*{{{*/
 	/*do nothing: */
 	return;
 }
 /*}}}*/
-/*FUNCTION Riftfront::GetNodesSidList{{{*/
-void Riftfront::GetNodesSidList(int* sidlist){
+void Riftfront::GetNodesSidList(int* sidlist){/*{{{*/
 
 	_assert_(sidlist);
@@ -329,6 +310,5 @@
 }
 /*}}}*/
-/*FUNCTION Riftfront::GetNodesLidList{{{*/
-void Riftfront::GetNodesLidList(int* lidlist){
+void Riftfront::GetNodesLidList(int* lidlist){/*{{{*/
 
 	_assert_(lidlist);
@@ -338,18 +318,15 @@
 }
 /*}}}*/
-/*FUNCTION Riftfront::GetNumberOfNodes{{{*/
-int Riftfront::GetNumberOfNodes(void){
+int Riftfront::GetNumberOfNodes(void){/*{{{*/
 
 	return NUMVERTICES;
 }
 /*}}}*/
-/*FUNCTION Riftfront::InAnalysis{{{*/
-bool Riftfront::InAnalysis(int in_analysis_type){
+bool Riftfront::InAnalysis(int in_analysis_type){/*{{{*/
 	if (in_analysis_type==this->analysis_type) return true;
 	else return false;
 }
 /*}}}*/
-/*FUNCTION Riftfront::SetwiseNodeConnectivity{{{*/
-void Riftfront::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){
+void Riftfront::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){/*{{{*/
 
 	/*Output */
@@ -407,6 +384,5 @@
 
 /*Riftfront numerics*/
-/*FUNCTION Riftfront::PenaltyCreateKMatrixStressbalanceHoriz {{{*/
-ElementMatrix* Riftfront::PenaltyCreateKMatrixStressbalanceHoriz(IssmDouble kmax){
+ElementMatrix* Riftfront::PenaltyCreateKMatrixStressbalanceHoriz(IssmDouble kmax){/*{{{*/
 
 	const int   numdof = NDOF2*NUMVERTICES;
@@ -485,6 +461,5 @@
 }
 /*}}}*/
-/*FUNCTION Riftfront::PenaltyCreatePVectorStressbalanceHoriz {{{*/
-ElementVector* Riftfront::PenaltyCreatePVectorStressbalanceHoriz(IssmDouble kmax){
+ElementVector* Riftfront::PenaltyCreatePVectorStressbalanceHoriz(IssmDouble kmax){/*{{{*/
 
 	int        j;
@@ -580,8 +555,6 @@
 }
 /*}}}*/
-/*FUNCTION Riftfront::Constrain {{{*/
 #define _ZIGZAGCOUNTER_
-
-int Riftfront::Constrain(int* punstable){
+int Riftfront::Constrain(int* punstable){/*{{{*/
 
 	IssmDouble  penetration;
@@ -664,6 +637,5 @@
 }
 /*}}}*/
-/*FUNCTION Riftfront::FreezeConstraints{{{*/
-void   Riftfront::FreezeConstraints(void){
+void   Riftfront::FreezeConstraints(void){/*{{{*/
 
 	/*Just set frozen flag to 1: */
@@ -672,6 +644,5 @@
 }
 /*}}}*/
-/*FUNCTION Riftfront::IsFrozen{{{*/
-bool   Riftfront::IsFrozen(void){
+bool   Riftfront::IsFrozen(void){/*{{{*/
 
 	/*Just set frozen flag to 1: */
Index: /issm/trunk-jpl/src/c/classes/Massfluxatgate.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Massfluxatgate.h	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Massfluxatgate.h	(revision 18064)
@@ -29,6 +29,5 @@
 
 		/*Massfluxatgate constructors, destructors :*/
-		/*FUNCTION Massfluxatgate() {{{*/
-		Massfluxatgate(){
+		Massfluxatgate(){/*{{{*/
 			this->name        = 0;
 			this->numsegments = 0;
@@ -36,6 +35,5 @@
 		}
 		/*}}}*/
-		/*FUNCTION Massfluxatgate(char* name, int numsegments, doubletype* segments) {{{*/
-		Massfluxatgate(char* in_name, int in_numsegments, doubletype* in_segments) {
+		Massfluxatgate(char* in_name, int in_numsegments, doubletype* in_segments) {/*{{{*/
 			
 			int i;
@@ -63,6 +61,5 @@
 		}
 		/*}}}*/
-		/*FUNCTION Massfluxatgate(char* name, int numsegments, doubletype* x1, doubletype* y1, doubletype* x2, doubletype* y2,int* elements) {{{*/
-		Massfluxatgate(char* in_name, int in_numsegments, doubletype* in_x1, doubletype* in_y1, doubletype* in_x2, doubletype* in_y2,int* in_elements){
+		Massfluxatgate(char* in_name, int in_numsegments, doubletype* in_x1, doubletype* in_y1, doubletype* in_x2, doubletype* in_y2,int* in_elements){/*{{{*/
 
 			this->name   = xNew<char>(strlen(in_name)+1);
@@ -81,6 +78,5 @@
 		}
 		/*}}}*/
-		/*FUNCTION ~Massfluxatgate() {{{*/
-		~Massfluxatgate(){
+		~Massfluxatgate(){/*{{{*/
 			xDelete<doubletype>(this->x1);
 			xDelete<doubletype>(this->y1);
@@ -93,6 +89,5 @@
 
 		/*Object virtual function resolutoin: */
-		/*FUNCTION Echo(){{{*/
-		void Echo(void){
+		void Echo(void){/*{{{*/
 			_printf_(" Massfluxatgate: " << name << "\n");
 			_printf_("    numsegments: " << numsegments << "\n");
@@ -105,27 +100,22 @@
 		}
 		/*}}}*/
-		/*FUNCTION DeepEcho(){{{*/
-		void DeepEcho(void){
+		void DeepEcho(void){/*{{{*/
 			this->Echo();
 		}
 		/*}}}*/
-		/*FUNCTION Id(){{{*/
-		int Id(void){
+		int Id(void){/*{{{*/
 			return -1;
 		}
 		/*}}}*/
-		/*FUNCTION ObjectEnum{{{*/
-		int ObjectEnum(void){
+		int ObjectEnum(void){/*{{{*/
 			return MassfluxatgateEnum;
 		}
 		/*}}}*/
-		/*FUNCTION copy {{{*/
-		Object* copy() {
+		Object* copy() {/*{{{*/
 			return new Massfluxatgate(this->name,this->numsegments,this->x1,this->y1,this->x2,this->y2,this->elements); 
 		}
 		/*}}}*/
 		/*Definition virtual function resolutoin: */
-		/*FUNCTION char* Name() {{{*/
-		char* Name(){
+		char* Name(){/*{{{*/
 
 			char* name2=xNew<char>(strlen(this->name)+1);
@@ -135,6 +125,5 @@
 		}
 		/*}}}*/
-		/*FUNCTION doubletype* Response(FemModel* femmodel) {{{*/
-		 IssmDouble Response(FemModel* femmodel){
+		 IssmDouble Response(FemModel* femmodel){/*{{{*/
 
 			int          i,j;
Index: /issm/trunk-jpl/src/c/classes/Materials/Materials.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Materials.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Materials/Materials.cpp	(revision 18064)
@@ -19,12 +19,10 @@
 
 /*Object constructors and destructor*/
-/*FUNCTION Materials::Materials(){{{*/
-Materials::Materials(){
+Materials::Materials(){/*{{{*/
 	enum_type=MaterialsEnum;
 	return;
 }
 /*}}}*/
-/*FUNCTION Materials::~Materials(){{{*/
-Materials::~Materials(){
+Materials::~Materials(){/*{{{*/
 	return;
 }
@@ -32,6 +30,5 @@
 
 /*Object management*/
-/*FUNCTION Materials::Configure{{{*/
-void Materials::Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters){
+void Materials::Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters){/*{{{*/
 
 	vector<Object*>::iterator object;
Index: /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp	(revision 18064)
@@ -27,6 +27,5 @@
 
 /*Matice constructors and destructor*/
-/*FUNCTION Matice::Matice(){{{*/
-Matice::Matice(){
+Matice::Matice(){/*{{{*/
 	this->helement=NULL;
 	this->element=NULL;
@@ -34,6 +33,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::Matice(int id, int index, IoModel* iomodel, int num_vertices){{{*/
-Matice::Matice(int matice_mid,int index, IoModel* iomodel){
+Matice::Matice(int matice_mid,int index, IoModel* iomodel){/*{{{*/
 
 	/*Intermediaries:*/
@@ -59,6 +57,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::~Matice(){{{*/
-Matice::~Matice(){
+Matice::~Matice(){/*{{{*/
 	delete helement;
 	return;
@@ -67,6 +64,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION Matice::Echo {{{*/
-void Matice::Echo(void){
+void Matice::Echo(void){/*{{{*/
 
 	_printf_("Matice:\n");
@@ -76,6 +72,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::DeepEcho {{{*/
-void Matice::DeepEcho(void){
+void Matice::DeepEcho(void){/*{{{*/
 
 	_printf_("Matice:\n");
@@ -85,9 +80,7 @@
 }		
 /*}}}*/
-/*FUNCTION Matice::Id {{{*/
-int    Matice::Id(void){ return mid; }
-/*}}}*/
-/*FUNCTION Matice::ObjectEnum{{{*/
-int Matice::ObjectEnum(void){
+int    Matice::Id(void){ return mid; }/*{{{*/
+/*}}}*/
+int Matice::ObjectEnum(void){/*{{{*/
 
 	return MaticeEnum;
@@ -95,6 +88,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::copy() {{{*/
-Object* Matice::copy() {
+Object* Matice::copy() {/*{{{*/
 
 	/*Output*/
@@ -113,6 +105,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::copy2(Element* element) {{{*/
-Material* Matice::copy2(Element* element_in) {
+Material* Matice::copy2(Element* element_in) {/*{{{*/
 
 	/*Output*/
@@ -133,6 +124,5 @@
 
 /*Matice management*/
-/*FUNCTION Matice::Configure {{{*/
-void  Matice::Configure(Elements* elementsin){
+void  Matice::Configure(Elements* elementsin){/*{{{*/
 
 	/*Take care of hooking up all objects for this element, ie links the objects in the hooks to their respective 
@@ -142,11 +132,9 @@
 }
 /*}}}*/
-/*FUNCTION Matice::SetCurrentConfiguration {{{*/
-void  Matice::SetCurrentConfiguration(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){
-
-}
-/*}}}*/
-/*FUNCTION Matice::GetA {{{*/
-IssmDouble Matice::GetA(){
+void  Matice::SetCurrentConfiguration(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){/*{{{*/
+
+}
+/*}}}*/
+IssmDouble Matice::GetA(){/*{{{*/
 	/*
 	 * A = 1/B^n
@@ -161,6 +149,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::GetAbar {{{*/
-IssmDouble Matice::GetAbar(){
+IssmDouble Matice::GetAbar(){/*{{{*/
 	/*
 	 * A = 1/B^n
@@ -175,6 +162,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::GetB {{{*/
-IssmDouble Matice::GetB(){
+IssmDouble Matice::GetB(){/*{{{*/
 
 	/*Output*/
@@ -185,6 +171,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::GetBbar {{{*/
-IssmDouble Matice::GetBbar(){
+IssmDouble Matice::GetBbar(){/*{{{*/
 
 	/*Output*/
@@ -195,6 +180,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::GetN {{{*/
-IssmDouble Matice::GetN(){
+IssmDouble Matice::GetN(){/*{{{*/
 
 	/*Output*/
@@ -205,6 +189,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::GetD {{{*/
-IssmDouble Matice::GetD(){
+IssmDouble Matice::GetD(){/*{{{*/
 
 	_assert_(this->isdamaged);
@@ -215,6 +198,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::GetDbar {{{*/
-IssmDouble Matice::GetDbar(){
+IssmDouble Matice::GetDbar(){/*{{{*/
 
 	_assert_(this->isdamaged);
@@ -225,12 +207,10 @@
 }
 /*}}}*/
-/*FUNCTION Matice::IsDamage() {{{*/
-bool Matice::IsDamage(){
+bool Matice::IsDamage(){/*{{{*/
 
 	return this->isdamaged;
 }
 /*}}}*/
-/*FUNCTION Matice::GetViscosity {{{*/
-void  Matice::GetViscosity(IssmDouble* pviscosity,IssmDouble eps_eff){
+void  Matice::GetViscosity(IssmDouble* pviscosity,IssmDouble eps_eff){/*{{{*/
 	/*From a string tensor and a material object, return viscosity, using Glen's flow law.
 								(1-D) B
@@ -284,6 +264,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::GetViscosity_B {{{*/
-void  Matice::GetViscosity_B(IssmDouble* pdmudB,IssmDouble eps_eff){
+void  Matice::GetViscosity_B(IssmDouble* pdmudB,IssmDouble eps_eff){/*{{{*/
 
 	/*output: */
@@ -313,6 +292,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::GetViscosity_D {{{*/
-void  Matice::GetViscosity_D(IssmDouble* pdmudD,IssmDouble eps_eff){
+void  Matice::GetViscosity_D(IssmDouble* pdmudD,IssmDouble eps_eff){/*{{{*/
 
 	/*output: */
@@ -340,6 +318,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::GetViscosityBar {{{*/
-void  Matice::GetViscosityBar(IssmDouble* pviscosity,IssmDouble eps_eff){
+void  Matice::GetViscosityBar(IssmDouble* pviscosity,IssmDouble eps_eff){/*{{{*/
 	/*From a string tensor and a material object, return viscosity, using Glen's flow law.
 								(1-D) B
@@ -392,6 +369,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::GetViscosityComplement {{{*/
-void  Matice::GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* epsilon){
+void  Matice::GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* epsilon){/*{{{*/
 	/*Return viscosity accounting for steady state power law creep [Thomas and SSA, 1982]: 
 	 *
@@ -451,6 +427,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::GetViscosityDComplement {{{*/
-void  Matice::GetViscosityDComplement(IssmDouble* pviscosity_complement, IssmDouble* epsilon){
+void  Matice::GetViscosityDComplement(IssmDouble* pviscosity_complement, IssmDouble* epsilon){/*{{{*/
 	/*Return viscosity derivative for control method d(mu)/dD: 
 	 *
@@ -507,6 +482,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::GetViscosityDerivativeEpsSquare{{{*/
-void  Matice::GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* epsilon){
+void  Matice::GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* epsilon){/*{{{*/
 
 	/*output: */
@@ -541,6 +515,5 @@
 }
 /*}}}*/
-/*FUNCTION Matice::GetViscosity2dDerivativeEpsSquare{{{*/
-void  Matice::GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* epsilon){
+void  Matice::GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* epsilon){/*{{{*/
 
 	/*output: */
@@ -570,31 +543,25 @@
 }
 /*}}}*/
-/*FUNCTION Matice::InputUpdateFromVector(IssmDouble* vector, int name, int type) {{{*/
-void  Matice::InputUpdateFromVector(IssmDouble* vector, int name, int type){
-
-}
-/*}}}*/
-/*FUNCTION Matice::InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type) {{{*/
-void  Matice::InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){
-
-}
-/*}}}*/
-/*FUNCTION Matice::InputUpdateFromMatrixDakota(int* vector, int name, int type) {{{*/
-void  Matice::InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols,int name, int type){
+void  Matice::InputUpdateFromVector(IssmDouble* vector, int name, int type){/*{{{*/
+
+}
+/*}}}*/
+void  Matice::InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){/*{{{*/
+
+}
+/*}}}*/
+void  Matice::InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols,int name, int type){/*{{{*/
 	/*Nothing updated yet*/
 }
 /*}}}*/
-/*FUNCTION Matice::InputUpdateFromConstant(IssmDouble constant, int name) {{{*/
-void  Matice::InputUpdateFromConstant(IssmDouble constant, int name){
+void  Matice::InputUpdateFromConstant(IssmDouble constant, int name){/*{{{*/
 	/*Nothing updated yet*/
 }
 /*}}}*/
-/*FUNCTION Matice::InputUpdateFromConstant(int constant, int name) {{{*/
-void  Matice::InputUpdateFromConstant(int constant, int name){
+void  Matice::InputUpdateFromConstant(int constant, int name){/*{{{*/
 	/*Nothing updated yet*/
 }
 /*}}}*/
-/*FUNCTION Matice::InputUpdateFromConstant(bool constant, int name) {{{*/
-void  Matice::InputUpdateFromConstant(bool constant, int name){
+void  Matice::InputUpdateFromConstant(bool constant, int name){/*{{{*/
 	/*Nothing updated yet*/
 }
Index: /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 18064)
@@ -13,11 +13,9 @@
 
 /*Matpar constructors and destructor*/
-/*FUNCTION Matpar::Matpar() {{{*/
-Matpar::Matpar(){
+Matpar::Matpar(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION Matpar::Matpar(int matpar_mid,IoModel* iomodel){{{*/
-Matpar::Matpar(int matpar_mid, IoModel* iomodel){
+Matpar::Matpar(int matpar_mid, IoModel* iomodel){/*{{{*/
 
 	bool isefficientlayer;
@@ -94,6 +92,5 @@
 }
 /*}}}*/
-/*FUNCTION Matpar::~Matpar() {{{*/
-Matpar::~Matpar(){
+Matpar::~Matpar(){/*{{{*/
 	return;
 }
@@ -101,6 +98,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION Matpar::Echo {{{*/
-void Matpar::Echo(void){
+void Matpar::Echo(void){/*{{{*/
 
 	_printf_("Matpar:\n");
@@ -125,15 +121,12 @@
 }
 /*}}}*/
-/*FUNCTION Matpar::DeepEcho {{{*/
-void Matpar::DeepEcho(void){
+void Matpar::DeepEcho(void){/*{{{*/
 
 	this->Echo();
 }		
 /*}}}*/
-/*FUNCTION Matpar::Id {{{*/
-int    Matpar::Id(void){ return mid; }
-/*}}}*/
-/*FUNCTION Matpar::ObjectEnum{{{*/
-int Matpar::ObjectEnum(void){
+int    Matpar::Id(void){ return mid; }/*{{{*/
+/*}}}*/
+int Matpar::ObjectEnum(void){/*{{{*/
 
 	return MatparEnum;
@@ -141,6 +134,5 @@
 }
 /*}}}*/
-/*FUNCTION Matpar::copy {{{*/
-Object* Matpar::copy() {
+Object* Matpar::copy() {/*{{{*/
 	return new Matpar(*this); 
 }
@@ -148,21 +140,17 @@
 
 /*Update virtual functions definitions:*/
-/*FUNCTION Matpar::InputUpdateFromVector(IssmDouble* vector, int name, int type) {{{*/
-void   Matpar::InputUpdateFromVector(IssmDouble* vector, int name, int type){
+void   Matpar::InputUpdateFromVector(IssmDouble* vector, int name, int type){/*{{{*/
 	/*Nothing updated yet*/
 }
 /*}}}*/
-/*FUNCTION Matpar::InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type) {{{*/
-void   Matpar::InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){
+void   Matpar::InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){/*{{{*/
 	/*Nothing updated yet*/
 }
 /*}}}*/
-/*FUNCTION Matpar::InputUpdateFromMatrixDakota(IssmDouble* vector, int name, int type) {{{*/
-void  Matpar::InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols,int name, int type){
+void  Matpar::InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols,int name, int type){/*{{{*/
 	/*Nothing updated yet*/
 }
 /*}}}*/
-/*FUNCTION Matpar::InputUpdateFromConstant(IssmDouble constant, int name) {{{*/
-void   Matpar::InputUpdateFromConstant(IssmDouble constant, int name){
+void   Matpar::InputUpdateFromConstant(IssmDouble constant, int name){/*{{{*/
 
 	switch(name){
@@ -221,11 +209,9 @@
 }
 /*}}}*/
-/*FUNCTION Matpar::InputUpdateFromConstant(int constant, int name) {{{*/
-void   Matpar::InputUpdateFromConstant(int constant, int name){
+void   Matpar::InputUpdateFromConstant(int constant, int name){/*{{{*/
 	/*Nothing updated yet*/
 }
 /*}}}*/
-/*FUNCTION Matpar::InputUpdateFromConstant(bool constant, int name) {{{*/
-void   Matpar::InputUpdateFromConstant(bool constant, int name){
+void   Matpar::InputUpdateFromConstant(bool constant, int name){/*{{{*/
 	/*Nothing updated yet*/
 }
@@ -233,6 +219,5 @@
 
 /*Matpar management: */
-/*FUNCTION Matpar::Configure {{{*/
-void  Matpar::Configure(Elements* elementsin){
+void  Matpar::Configure(Elements* elementsin){/*{{{*/
 
 	/*nothing done yet!*/
@@ -240,6 +225,5 @@
 }
 /*}}}*/
-/*FUNCTION Matpar::Configure {{{*/
-IssmDouble Matpar::GetMaterialParameter(int enum_in){
+IssmDouble Matpar::GetMaterialParameter(int enum_in){/*{{{*/
 
 	switch(enum_in){
@@ -272,57 +256,46 @@
 }
 /*}}}*/
-/*FUNCTION Matpar::GetBeta {{{*/
-IssmDouble Matpar::GetBeta(){
+IssmDouble Matpar::GetBeta(){/*{{{*/
 	return beta;
 }
 /*}}}*/
-/*FUNCTION Matpar::GetG {{{*/
-IssmDouble Matpar::GetG(){
+IssmDouble Matpar::GetG(){/*{{{*/
 	return g;
 }
 /*}}}*/
-/*FUNCTION Matpar::GetMeltingPoint {{{*/
-IssmDouble Matpar::GetMeltingPoint(){
+IssmDouble Matpar::GetMeltingPoint(){/*{{{*/
 	return meltingpoint;
 }
 /*}}}*/
-/*FUNCTION Matpar::GetRhoIce {{{*/
-IssmDouble Matpar::GetRhoIce(){
+IssmDouble Matpar::GetRhoIce(){/*{{{*/
 
 	return rho_ice;
 }
 /*}}}*/
-/*FUNCTION Matpar::GetRhoWater {{{*/
-IssmDouble Matpar::GetRhoWater(){
+IssmDouble Matpar::GetRhoWater(){/*{{{*/
 	return rho_water;
 }
 /*}}}*/
-/*FUNCTION Matpar::GetRhoFreshwater {{{*/
-IssmDouble Matpar::GetRhoFreshwater(){
+IssmDouble Matpar::GetRhoFreshwater(){/*{{{*/
 	return rho_freshwater;
 }
 /*}}}*/
-/*FUNCTION Matpar::GetDesFac {{{*/
-IssmDouble Matpar::GetDesFac(){
+IssmDouble Matpar::GetDesFac(){/*{{{*/
 	return desfac;
 }
 /*}}}*/
-/*FUNCTION Matpar::GetS0p {{{*/
-IssmDouble Matpar::GetS0p(){
+IssmDouble Matpar::GetS0p(){/*{{{*/
 	return s0p;
 }
 /*}}}*/
-/*FUNCTION Matpar::TMeltingPoint {{{*/
-IssmDouble Matpar::TMeltingPoint(IssmDouble pressure){
+IssmDouble Matpar::TMeltingPoint(IssmDouble pressure){/*{{{*/
 	return meltingpoint-beta*pressure;
 }
 /*}}}*/
-/*FUNCTION Matpar::PureIceEnthalpy{{{*/
-IssmDouble Matpar::PureIceEnthalpy(IssmDouble pressure){
+IssmDouble Matpar::PureIceEnthalpy(IssmDouble pressure){/*{{{*/
 	return heatcapacity*(TMeltingPoint(pressure)-referencetemperature);
 }
 /*}}}*/
-/*FUNCTION Matpar::GetEnthalpyDiffusionParameter{{{*/
-IssmDouble Matpar::GetEnthalpyDiffusionParameter(IssmDouble enthalpy,IssmDouble pressure){
+IssmDouble Matpar::GetEnthalpyDiffusionParameter(IssmDouble enthalpy,IssmDouble pressure){/*{{{*/
 	if (enthalpy<PureIceEnthalpy(pressure))
 		return thermalconductivity/heatcapacity;
@@ -331,6 +304,5 @@
 }
 /*}}}*/
-/*FUNCTION Matpar::GetEnthalpyDiffusionParameterVolume{{{*/
-IssmDouble Matpar::GetEnthalpyDiffusionParameterVolume(int numvertices,IssmDouble* enthalpy,IssmDouble* pressure){
+IssmDouble Matpar::GetEnthalpyDiffusionParameterVolume(int numvertices,IssmDouble* enthalpy,IssmDouble* pressure){/*{{{*/
 
 	int         iv;
@@ -378,6 +350,5 @@
 }
 /*}}}*/
-/*FUNCTION Matpar::EnthalpyToThermal {{{*/
-void Matpar::EnthalpyToThermal(IssmDouble* ptemperature,IssmDouble* pwaterfraction,IssmDouble enthalpy,IssmDouble pressure){
+void Matpar::EnthalpyToThermal(IssmDouble* ptemperature,IssmDouble* pwaterfraction,IssmDouble enthalpy,IssmDouble pressure){/*{{{*/
 
 	/*Ouput*/
@@ -398,6 +369,5 @@
 }
 /*}}}*/
-/*FUNCTION Matpar::ThermalToEnthalpy {{{*/
-void Matpar::ThermalToEnthalpy(IssmDouble * penthalpy,IssmDouble temperature,IssmDouble waterfraction,IssmDouble pressure){
+void Matpar::ThermalToEnthalpy(IssmDouble * penthalpy,IssmDouble temperature,IssmDouble waterfraction,IssmDouble pressure){/*{{{*/
 
 	/*Ouput*/
@@ -415,21 +385,17 @@
 }
 /*}}}*/
-/*FUNCTION Matpar::GetLithosphereShearModulus {{{*/			 
-IssmDouble Matpar::GetLithosphereShearModulus(){		 
+IssmDouble Matpar::GetLithosphereShearModulus(){		 /*{{{*/
 	return lithosphere_shear_modulus;			 
 }		 
 /*}}}*/ 
-/*FUNCTION Matpar::GetLithosphereDensity {{{*/			 
-IssmDouble Matpar::GetLithosphereDensity(){		 
+IssmDouble Matpar::GetLithosphereDensity(){		 /*{{{*/
 	return lithosphere_density;			 
 }		 
 /*}}}*/ 
-/*FUNCTION Matpar::GetMantleDensity {{{*/			 
-IssmDouble Matpar::GetMantleDensity(){		 
+IssmDouble Matpar::GetMantleDensity(){		 /*{{{*/
 	return mantle_density;			 
 }		 
 /*}}}*/ 
-/*FUNCTION Matpar::GetMantleShearModulus {{{*/			 
-IssmDouble Matpar::GetMantleShearModulus(){		 
+IssmDouble Matpar::GetMantleShearModulus(){		 /*{{{*/
 	return mantle_shear_modulus;			 
 }		 
Index: /issm/trunk-jpl/src/c/classes/Misfit.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Misfit.h	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Misfit.h	(revision 18064)
@@ -31,6 +31,5 @@
 		
 		/*Misfit constructors, destructors :*/
-		/*FUNCTION Misfit() {{{*/
-		Misfit(){
+		Misfit(){/*{{{*/
 
 			this->name = NULL;
@@ -44,6 +43,5 @@
 		}
 		/*}}}*/
-		/*FUNCTION Misfit(char* in_name, int in_model_enum, int in_observation_enum char* in_timeinterpolation, int in_weights_enum) {{{*/
-		Misfit(char* in_name, int in_model_enum, int in_observation_enum, char* in_timeinterpolation, int in_weights_enum){
+		Misfit(char* in_name, int in_model_enum, int in_observation_enum, char* in_timeinterpolation, int in_weights_enum){/*{{{*/
 
 			this->name   = xNew<char>(strlen(in_name)+1);
@@ -61,6 +59,5 @@
 		}
 		/*}}}*/
-		/*FUNCTION ~Misfit() {{{*/
-		~Misfit(){
+		~Misfit(){/*{{{*/
 			if(this->name)xDelete(this->name);
 			if(this->timeinterpolation)xDelete(this->timeinterpolation);
@@ -70,6 +67,5 @@
 		/*}}}*/
 		/*Object virtual function resolutoin: */
-		/*FUNCTION Echo(){{{*/
-		void Echo(void){
+		void Echo(void){/*{{{*/
 			_printf_(" Misfit: " << name << "\n");
 			_printf_("    model_enum: " << model_enum << " " << EnumToStringx(model_enum) << "\n");
@@ -79,27 +75,22 @@
 		}
 		/*}}}*/
-		/*FUNCTION DeepEcho(){{{*/
-		void DeepEcho(void){
+		void DeepEcho(void){/*{{{*/
 			this->Echo();
 		}
 		/*}}}*/
-		/*FUNCTION Id(){{{*/
-		int Id(void){
+		int Id(void){/*{{{*/
 			return -1;
 		}
 		/*}}}*/
-		/*FUNCTION ObjectEnum{{{*/
-		int ObjectEnum(void){
+		int ObjectEnum(void){/*{{{*/
 			return MisfitEnum;
 		}
 		/*}}}*/
-		/*FUNCTION copy {{{*/
-		Object* copy() {
+		Object* copy() {/*{{{*/
 			return new Misfit(this->name,this->model_enum,this->observation_enum,this->timeinterpolation,this->weights_enum);
 		}
 		/*}}}*/
 		/*Definition virtual function resolutoin: */
-		/*FUNCTION char* Name() {{{*/
-		char* Name(){
+		char* Name(){/*{{{*/
 
 			char* name2=xNew<char>(strlen(this->name)+1);
@@ -109,6 +100,5 @@
 		}
 		/*}}}*/
-		/*FUNCTION IssmDouble Response(FemModel* femmodel) {{{*/
-		 IssmDouble Response(FemModel* femmodel){
+		 IssmDouble Response(FemModel* femmodel){/*{{{*/
 
 			 int i;
Index: /issm/trunk-jpl/src/c/classes/Node.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Node.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Node.cpp	(revision 18064)
@@ -17,11 +17,9 @@
 
 /*Node constructors and destructors:*/
-/*FUNCTION Node::Node() default constructor {{{*/
-Node::Node(){
+Node::Node(){/*{{{*/
 	this->approximation=0;
 }
 /*}}}*/
-/*FUNCTION Node::Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_enum,int approximation) {{{*/
-Node::Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_enum,int in_approximation){
+Node::Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_enum,int in_approximation){/*{{{*/
 
 	/*Intermediary*/
@@ -123,6 +121,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::~Node(){{{*/
-Node::~Node(){
+Node::~Node(){/*{{{*/
 	return;
 }
@@ -130,6 +127,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION Node::Echo{{{*/
-void Node::Echo(void){
+void Node::Echo(void){/*{{{*/
 
 	_printf_("Node:\n");
@@ -143,6 +139,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::DeepEcho{{{*/
-void Node::DeepEcho(void){
+void Node::DeepEcho(void){/*{{{*/
 
 	_printf_("Node:\n");
@@ -156,9 +151,7 @@
 }
 /*}}}*/
-/*FUNCTION Node::Id{{{*/
-int    Node::Id(void){ return id; }
-/*}}}*/
-/*FUNCTION Node::ObjectEnum{{{*/
-int Node::ObjectEnum(void){
+int  Node::Id(void){ return id; }/*{{{*/
+/*}}}*/
+int  Node::ObjectEnum(void){/*{{{*/
 
 	return NodeEnum;
@@ -168,6 +161,5 @@
 
 /*Node management:*/
-/*FUNCTION Node::GetDof {{{*/
-int   Node::GetDof(int dofindex,int setenum){
+int  Node::GetDof(int dofindex,int setenum){/*{{{*/
 
 	_assert_(!this->indexingupdate);
@@ -187,6 +179,5 @@
 
 } /*}}}*/
-/*FUNCTION Node::GetDofList{{{*/
-void  Node::GetDofList(int* outdoflist,int approximation_enum,int setenum){
+void Node::GetDofList(int* outdoflist,int approximation_enum,int setenum){/*{{{*/
 	int i;
 	int count=0;
@@ -251,6 +242,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::GetLocalDofList{{{*/
-void  Node::GetLocalDofList(int* outdoflist,int approximation_enum,int setenum){
+void Node::GetLocalDofList(int* outdoflist,int approximation_enum,int setenum){/*{{{*/
 	int i;
 	int count=0;
@@ -352,16 +342,13 @@
 }
 /*}}}*/
-/*FUNCTION Node::Sid{{{*/
-int Node::Sid(void){
+int  Node::Sid(void){/*{{{*/
 	return sid; 
 }
 /*}}}*/
-/*FUNCTION Node::Lid{{{*/
-int  Node::Lid(void){
+int  Node::Lid(void){/*{{{*/
 	return lid; 
 }
 /*}}}*/
-/*FUNCTION Node::GetCoordinateSystem{{{*/
-void Node::GetCoordinateSystem(IssmDouble* coord_system_out){
+void Node::GetCoordinateSystem(IssmDouble* coord_system_out){/*{{{*/
 
 	/*Copy coord_system*/
@@ -370,6 +357,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::InAnalysis{{{*/
-bool Node::InAnalysis(int in_analysis_enum){
+bool Node::InAnalysis(int in_analysis_enum){/*{{{*/
 	if (in_analysis_enum==this->analysis_enum) return true;
 	else return false;
@@ -378,6 +364,5 @@
 
 /*Node numerics:*/
-/*FUNCTION Node::ApplyConstraints{{{*/
-void  Node::ApplyConstraint(int dof,IssmDouble value){
+void Node::ApplyConstraint(int dof,IssmDouble value){/*{{{*/
 
 	/*Dof should be added in the s set, describing which 
@@ -387,6 +372,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::RequiresDofReindexing{{{*/
-bool Node::RequiresDofReindexing(void){
+bool Node::RequiresDofReindexing(void){/*{{{*/
 
 	return this->indexingupdate;
@@ -394,6 +378,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::ReindexingDone{{{*/
-void Node::ReindexingDone(void){
+void Node::ReindexingDone(void){/*{{{*/
 
 	this->indexingupdate = false;
@@ -401,6 +384,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::RelaxConstraint{{{*/
-void  Node::RelaxConstraint(int dof){
+void Node::RelaxConstraint(int dof){/*{{{*/
 
 	/*Dof should be added to the f-set, and taken out of the s-set:*/
@@ -409,6 +391,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::CreateNodalConstraints{{{*/
-void  Node::CreateNodalConstraints(Vector<IssmDouble>* ys){
+void Node::CreateNodalConstraints(Vector<IssmDouble>* ys){/*{{{*/
 
 	int i;
@@ -437,6 +418,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::DofInSSet {{{*/
-void  Node::DofInSSet(int dof){
+void Node::DofInSSet(int dof){/*{{{*/
 
 	/*Put dof for this node into the s set (ie, this dof will be constrained 
@@ -451,6 +431,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::DofInFSet {{{*/
-void  Node::DofInFSet(int dof){
+void Node::DofInFSet(int dof){/*{{{*/
 
 	/*Put dof for this node into the f set (ie, this dof will NOT be constrained 
@@ -465,6 +444,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::FreezeDof{{{*/
-void  Node::FreezeDof(int dof){
+void Node::FreezeDof(int dof){/*{{{*/
 
 	DofInSSet(dof); //with 0 displacement for this dof.
@@ -472,6 +450,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::Deactivate{{{*/
-void  Node::Deactivate(void){
+void Node::Deactivate(void){/*{{{*/
 
 	if(IsActive()){
@@ -482,6 +459,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::Activate{{{*/
-void  Node::Activate(void){
+void Node::Activate(void){/*{{{*/
 
 	if(!IsActive()){
@@ -492,6 +468,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::IsActive{{{*/
-bool Node::IsActive(void){
+bool Node::IsActive(void){/*{{{*/
 
 	return indexing.active;
@@ -499,12 +474,10 @@
 }
 /*}}}*/
-/*FUNCTION Node::GetApproximation {{{*/
-int   Node::GetApproximation(){
+int  Node::GetApproximation(){/*{{{*/
 
 	return approximation;
 }
 /*}}}*/
-/*FUNCTION Node::GetNumberOfDofs{{{*/
-int   Node::GetNumberOfDofs(int approximation_enum,int setenum){
+int  Node::GetNumberOfDofs(int approximation_enum,int setenum){/*{{{*/
 
 	/*Get number of degrees of freedom in a node, for a certain set (g,f or s-set)
@@ -553,6 +526,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::IsClone {{{*/
-int   Node::IsClone(){
+int  Node::IsClone(){/*{{{*/
 
 	return indexing.clone;
@@ -560,6 +532,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::VecMerge {{{*/
-void Node::VecMerge(Vector<IssmDouble>* ug, IssmDouble* vector_serial,int setenum){
+void Node::VecMerge(Vector<IssmDouble>* ug, IssmDouble* vector_serial,int setenum){/*{{{*/
 
 	IssmDouble *values  = NULL;
@@ -611,6 +582,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::VecReduce {{{*/
-void   Node::VecReduce(Vector<IssmDouble>* vector, IssmDouble* ug_serial,int setenum){
+void Node::VecReduce(Vector<IssmDouble>* vector, IssmDouble* ug_serial,int setenum){/*{{{*/
 
 	IssmDouble* values=NULL;
@@ -658,6 +628,5 @@
 
 /* indexing routines:*/
-/*FUNCTION Node::DistributeDofs{{{*/
-void  Node::DistributeDofs(int* pdofcount,int setenum){
+void Node::DistributeDofs(int* pdofcount,int setenum){/*{{{*/
 
 	int i;
@@ -700,6 +669,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::OffsetDofs{{{*/
-void  Node::OffsetDofs(int dofcount,int setenum){
+void Node::OffsetDofs(int dofcount,int setenum){/*{{{*/
 
 	int i;
@@ -723,6 +691,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::ShowTrueDofs{{{*/
-void  Node::ShowTrueDofs(int* truedofs, int ncols,int setenum){
+void Node::ShowTrueDofs(int* truedofs, int ncols,int setenum){/*{{{*/
 
 	int j;
@@ -748,6 +715,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::UpdateCloneDofs{{{*/
-void  Node::UpdateCloneDofs(int* alltruedofs,int ncols,int setenum){
+void Node::UpdateCloneDofs(int* alltruedofs,int ncols,int setenum){/*{{{*/
 
 	int j;
@@ -773,6 +739,5 @@
 }
 /*}}}*/
-/*FUNCTION Node::SetClone {{{*/
-void  Node::SetClone(int* minranks){
+void Node::SetClone(int* minranks){/*{{{*/
 
 	int my_rank;
Index: /issm/trunk-jpl/src/c/classes/Options/OptionUtilities.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Options/OptionUtilities.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Options/OptionUtilities.cpp	(revision 18064)
@@ -15,6 +15,5 @@
 /*}}}*/
 
-/*FUNCTION ColumnWiseDimsFromIndex{{{*/
-int ColumnWiseDimsFromIndex(int* dims,int index,int* size,int ndims){
+int ColumnWiseDimsFromIndex(int* dims,int index,int* size,int ndims){/*{{{*/
 
 	int   i;
@@ -34,6 +33,5 @@
 	return(0);
 }/*}}}*/
-/*FUNCTION IndexFromColumnWiseDims{{{*/
-int IndexFromColumnWiseDims(int* dims, int* size, int ndims) {
+int IndexFromColumnWiseDims(int* dims, int* size, int ndims) {/*{{{*/
 
 	int   i;
@@ -53,6 +51,5 @@
 	return(index);
 }/*}}}*/
-/*FUNCTION RowWiseDimsFromIndex{{{*/
-int RowWiseDimsFromIndex(int* dims, int index, int* size, int ndims) {
+int RowWiseDimsFromIndex(int* dims, int index, int* size, int ndims) {/*{{{*/
 
 	int   i;
@@ -72,6 +69,5 @@
 	return(0);
 }/*}}}*/
-/*FUNCTION IndexFromRowWiseDims{{{*/
-int IndexFromRowWiseDims(int* dims, int* size, int ndims) {
+int IndexFromRowWiseDims(int* dims, int* size, int ndims) {/*{{{*/
 
 	int   i;
@@ -91,6 +87,5 @@
 	return(index);
 }/*}}}*/
-/*FUNCTION StringFromDims{{{*/
-int StringFromDims(char* cstr, int* dims, int ndims) {
+int StringFromDims(char* cstr, int* dims, int ndims) {/*{{{*/
 
 	sprintf(&cstr[0],"[");
@@ -100,6 +95,5 @@
 	return(0);
 }/*}}}*/
-/*FUNCTION StringFromSize{{{*/
-int StringFromSize(char* cstr, int* size, int ndims) {
+int StringFromSize(char* cstr, int* size, int ndims) {/*{{{*/
 
 	sprintf(&cstr[0],"[");
Index: /issm/trunk-jpl/src/c/classes/Options/Options.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Options/Options.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Options/Options.cpp	(revision 18064)
@@ -21,11 +21,9 @@
 
 /*Object constructors and destructor*/
-/*FUNCTION Options::Options(){{{*/
-Options::Options(){
+Options::Options(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION Options::~Options(){{{*/
-Options::~Options(){
+Options::~Options(){/*{{{*/
 	return;
 }
@@ -33,6 +31,5 @@
 
 /*Object management*/
-/*FUNCTION Options::AddOption{{{*/
-int  Options::AddOption(Option* in_option){
+int  Options::AddOption(Option* in_option){/*{{{*/
 
 	char* name=NULL;
@@ -68,6 +65,5 @@
 }
 /*}}}*/
-/*FUNCTION Options::GetOption{{{*/
-Option* Options::GetOption(const char* name){
+Option* Options::GetOption(const char* name){/*{{{*/
 
 	vector<Object*>::iterator object;
Index: /issm/trunk-jpl/src/c/classes/Params/BoolParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/BoolParam.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/BoolParam.cpp	(revision 18064)
@@ -16,11 +16,9 @@
 
 /*BoolParam constructors and destructor*/
-/*FUNCTION BoolParam::BoolParam(){{{*/
-BoolParam::BoolParam(){
+BoolParam::BoolParam(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION BoolParam::BoolParam(int enum_type,bool value){{{*/
-BoolParam::BoolParam(int in_enum_type,bool in_value){
+BoolParam::BoolParam(int in_enum_type,bool in_value){/*{{{*/
 
 	enum_type=in_enum_type;
@@ -28,6 +26,5 @@
 }
 /*}}}*/
-/*FUNCTION BoolParam::~BoolParam(){{{*/
-BoolParam::~BoolParam(){
+BoolParam::~BoolParam(){/*{{{*/
 	return;
 }
@@ -35,19 +32,15 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION BoolParam::Echo {{{*/
-void BoolParam::Echo(void){
+void BoolParam::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION BoolParam::DeepEcho{{{*/
-void BoolParam::DeepEcho(void){
+void BoolParam::DeepEcho(void){/*{{{*/
 	_printf_(setw(22)<<"   BoolParam "<<setw(35)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false")<<"\n");
 }
 /*}}}*/
-/*FUNCTION BoolParam::Id{{{*/
-int    BoolParam::Id(void){ return -1; }
+int    BoolParam::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION BoolParam::ObjectEnum{{{*/
-int BoolParam::ObjectEnum(void){
+int BoolParam::ObjectEnum(void){/*{{{*/
 
 	return BoolParamEnum;
@@ -55,6 +48,5 @@
 }
 /*}}}*/
-/*FUNCTION BoolParam::copy{{{*/
-Object* BoolParam::copy() {
+Object* BoolParam::copy() {/*{{{*/
 
 	return new BoolParam(this->enum_type,this->value);
Index: /issm/trunk-jpl/src/c/classes/Params/DataSetParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/DataSetParam.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/DataSetParam.cpp	(revision 18064)
@@ -16,12 +16,10 @@
 
 /*DataSetParam constructors and destructor*/
-/*FUNCTION DataSetParam::DataSetParam(){{{*/
-DataSetParam::DataSetParam(){
+DataSetParam::DataSetParam(){/*{{{*/
 	value=NULL;
 	return;
 }
 /*}}}*/
-/*FUNCTION DataSetParam::DataSetParam(int enum_type,DataSet *value){{{*/
-DataSetParam::DataSetParam(int in_enum_type,DataSet* in_value){
+DataSetParam::DataSetParam(int in_enum_type,DataSet* in_value){/*{{{*/
 
 	enum_type=in_enum_type;
@@ -29,6 +27,5 @@
 }
 /*}}}*/
-/*FUNCTION DataSetParam::~DataSetParam(){{{*/
-DataSetParam::~DataSetParam(){
+DataSetParam::~DataSetParam(){/*{{{*/
 	delete value;
 }
@@ -36,11 +33,9 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION DataSetParam::Echo {{{*/
-void DataSetParam::Echo(void){
+void DataSetParam::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION DataSetParam::DeepEcho{{{*/
-void DataSetParam::DeepEcho(void){
+void DataSetParam::DeepEcho(void){/*{{{*/
 
 	_printf_(setw(22)<<"   DataSetParam "<<setw(35)<<left<<EnumToStringx(this->enum_type)<<" ----- begin\n");
@@ -49,9 +44,7 @@
 }
 /*}}}*/
-/*FUNCTION DataSetParam::Id{{{*/
-int    DataSetParam::Id(void){ return -1; }
+int    DataSetParam::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION DataSetParam::ObjectEnum{{{*/
-int DataSetParam::ObjectEnum(void){
+int DataSetParam::ObjectEnum(void){/*{{{*/
 
 	return DataSetParamEnum;
@@ -59,6 +52,5 @@
 }
 /*}}}*/
-/*FUNCTION DataSetParam::copy{{{*/
-Object* DataSetParam::copy() {
+Object* DataSetParam::copy() {/*{{{*/
 
 	return new DataSetParam(this->enum_type,this->value);
@@ -68,6 +60,5 @@
 
 /*DataSetParam virtual functions definitions: */
-/*FUNCTION DataSetParam::GetParameterValue{{{*/
-void DataSetParam::GetParameterValue(DataSet** pdataset){
+void DataSetParam::GetParameterValue(DataSet** pdataset){/*{{{*/
 	*pdataset=value->Copy();
 }
Index: /issm/trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.cpp	(revision 18064)
@@ -16,11 +16,9 @@
 
 /*DoubleMatArrayParam constructors and destructor*/
-/*FUNCTION DoubleMatArrayParam::DoubleMatArrayParam(){{{*/
-DoubleMatArrayParam::DoubleMatArrayParam(){
+DoubleMatArrayParam::DoubleMatArrayParam(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION DoubleMatArrayParam::DoubleMatArrayParam(int enum_type,IssmDouble** array, int M, int* mdim_array, int* ndim_array){{{*/
-DoubleMatArrayParam::DoubleMatArrayParam(int in_enum_type,IssmDouble** in_array, int in_M, int* in_mdim_array, int* in_ndim_array){
+DoubleMatArrayParam::DoubleMatArrayParam(int in_enum_type,IssmDouble** in_array, int in_M, int* in_mdim_array, int* in_ndim_array){/*{{{*/
 
 	int i;
@@ -59,6 +57,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleMatArrayParam::~DoubleMatArrayParam(){{{*/
-DoubleMatArrayParam::~DoubleMatArrayParam(){
+DoubleMatArrayParam::~DoubleMatArrayParam(){/*{{{*/
 
 	int i;
@@ -79,6 +76,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION DoubleMatArrayParam::Echo {{{*/
-void DoubleMatArrayParam::Echo(void){
+void DoubleMatArrayParam::Echo(void){/*{{{*/
 
 	_printf_("DoubleMatArrayParam:\n");
@@ -89,6 +85,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleMatArrayParam::DeepEcho{{{*/
-void DoubleMatArrayParam::DeepEcho(void){
+void DoubleMatArrayParam::DeepEcho(void){/*{{{*/
 
 	int i,j,k;
@@ -113,9 +108,7 @@
 }
 /*}}}*/
-/*FUNCTION DoubleMatArrayParam::Id{{{*/
-int    DoubleMatArrayParam::Id(void){ return -1; }
-/*}}}*/
-/*FUNCTION DoubleMatArrayParam::ObjectEnum{{{*/
-int DoubleMatArrayParam::ObjectEnum(void){
+int    DoubleMatArrayParam::Id(void){ return -1; }/*{{{*/
+/*}}}*/
+int DoubleMatArrayParam::ObjectEnum(void){/*{{{*/
 
 	return DoubleMatArrayParamEnum;
@@ -123,6 +116,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleMatArrayParam::copy{{{*/
-Object* DoubleMatArrayParam::copy() {
+Object* DoubleMatArrayParam::copy() {/*{{{*/
 
 	return new DoubleMatArrayParam(this->enum_type,this->array, this->M, this->mdim_array,this->ndim_array);
@@ -132,6 +124,5 @@
 
 /*DoubleMatArrayParam virtual functions definitions: */
-/*FUNCTION DoubleMatArrayParam::GetParameterValue(IssmDouble*** parray, int* pM,int** pmdims, int** pndims){{{*/
-void  DoubleMatArrayParam::GetParameterValue(IssmDouble*** pout_array, int* pout_M,int** pout_mdim_array, int** pout_ndim_array){
+void  DoubleMatArrayParam::GetParameterValue(IssmDouble*** pout_array, int* pout_M,int** pout_mdim_array, int** pout_ndim_array){/*{{{*/
 
 	int i,m,n;
@@ -183,6 +174,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleMatArrayParam::SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){{{*/
-void  DoubleMatArrayParam::SetValue(IssmDouble** in_array, int in_M, int* in_mdim_array, int* in_ndim_array){
+void  DoubleMatArrayParam::SetValue(IssmDouble** in_array, int in_M, int* in_mdim_array, int* in_ndim_array){/*{{{*/
 
 	int i,m,n;
Index: /issm/trunk-jpl/src/c/classes/Params/DoubleMatParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/DoubleMatParam.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/DoubleMatParam.cpp	(revision 18064)
@@ -16,11 +16,9 @@
 
 /*DoubleMatParam constructors and destructor*/
-/*FUNCTION DoubleMatParam::DoubleMatParam(){{{*/
-DoubleMatParam::DoubleMatParam(){
+DoubleMatParam::DoubleMatParam(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION DoubleMatParam::DoubleMatParam(int enum_type,IssmDoubleMat value){{{*/
-DoubleMatParam::DoubleMatParam(int in_enum_type,IssmDouble* in_value, int in_M,int in_N){
+DoubleMatParam::DoubleMatParam(int in_enum_type,IssmDouble* in_value, int in_M,int in_N){/*{{{*/
 
 	enum_type=in_enum_type;
@@ -32,6 +30,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleMatParam::~DoubleMatParam(){{{*/
-DoubleMatParam::~DoubleMatParam(){
+DoubleMatParam::~DoubleMatParam(){/*{{{*/
 	xDelete<IssmDouble>(value);
 	return;
@@ -40,6 +37,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION DoubleMatParam::Echo {{{*/
-void DoubleMatParam::Echo(void){
+void DoubleMatParam::Echo(void){/*{{{*/
 
 	_printf_("DoubleMatParam:\n");
@@ -49,6 +45,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleMatParam::DeepEcho{{{*/
-void DoubleMatParam::DeepEcho(void){
+void DoubleMatParam::DeepEcho(void){/*{{{*/
 
 	int i,j;
@@ -64,9 +59,7 @@
 }
 /*}}}*/
-/*FUNCTION DoubleMatParam::Id{{{*/
-int    DoubleMatParam::Id(void){ return -1; }
+int    DoubleMatParam::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION DoubleMatParam::ObjectEnum{{{*/
-int DoubleMatParam::ObjectEnum(void){
+int DoubleMatParam::ObjectEnum(void){/*{{{*/
 
 	return DoubleMatParamEnum;
@@ -74,6 +67,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleMatParam::copy{{{*/
-Object* DoubleMatParam::copy() {
+Object* DoubleMatParam::copy() {/*{{{*/
 
 	return new DoubleMatParam(this->enum_type,this->value,this->M,this->N);
@@ -83,6 +75,5 @@
 
 /*DoubleMatParam virtual functions definitions: */
-/*FUNCTION DoubleMatParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){{{*/
-void  DoubleMatParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){
+void  DoubleMatParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){/*{{{*/
 	IssmDouble* output=NULL;
 
@@ -96,11 +87,9 @@
 }
 /*}}}*/
-/*FUNCTION DoubleMatParam::GetParameterValue(int** pintarray,int* pM,int* pN){{{*/
-void  DoubleMatParam::GetParameterValue(int** pintarray,int* pM,int* pN){
+void  DoubleMatParam::GetParameterValue(int** pintarray,int* pM,int* pN){/*{{{*/
 	_error_("DoubleMat of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of int");
 }
 /*}}}*/
-/*FUNCTION DoubleMatParam::SetValue{{{*/
-void  DoubleMatParam::SetValue(IssmDouble* IssmDoublearray,int in_M,int in_N){
+void  DoubleMatParam::SetValue(IssmDouble* IssmDoublearray,int in_M,int in_N){/*{{{*/
 
 	/*avoid leak: */
Index: /issm/trunk-jpl/src/c/classes/Params/DoubleParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/DoubleParam.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/DoubleParam.cpp	(revision 18064)
@@ -13,11 +13,9 @@
 
 /*DoubleParam constructors and destructor*/
-/*FUNCTION DoubleParam::DoubleParam(){{{*/
-DoubleParam::DoubleParam(){
+DoubleParam::DoubleParam(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION DoubleParam::DoubleParam(int enum_type,IssmDouble value){{{*/
-DoubleParam::DoubleParam(int in_enum_type,IssmDouble in_value){
+DoubleParam::DoubleParam(int in_enum_type,IssmDouble in_value){/*{{{*/
 
 	enum_type=in_enum_type;
@@ -25,6 +23,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleParam::~DoubleParam(){{{*/
-DoubleParam::~DoubleParam(){
+DoubleParam::~DoubleParam(){/*{{{*/
 	return;
 }
@@ -32,20 +29,16 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION DoubleParam::Echo {{{*/
-void DoubleParam::Echo(void){
+void DoubleParam::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION DoubleParam::DeepEcho{{{*/
-void DoubleParam::DeepEcho(void){
+void DoubleParam::DeepEcho(void){/*{{{*/
 
 	_printf_(setw(22)<<"   DoubleParam "<<setw(35)<<left<<EnumToStringx(this->enum_type)<<" "<<this->value<<"\n");
 }
 /*}}}*/
-/*FUNCTION DoubleParam::Id{{{*/
-int    DoubleParam::Id(void){ return -1; }
+int    DoubleParam::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION DoubleParam::ObjectEnum{{{*/
-int DoubleParam::ObjectEnum(void){
+int DoubleParam::ObjectEnum(void){/*{{{*/
 
 	return DoubleParamEnum;
@@ -53,6 +46,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleParam::copy{{{*/
-Object* DoubleParam::copy() {
+Object* DoubleParam::copy() {/*{{{*/
 
 	return new DoubleParam(this->enum_type,this->value);
@@ -62,31 +54,25 @@
 
 /*DoubleParam virtual functions definitions: */
-/*FUNCTION DoubleParam::GetParameterValue(int* pinteger){{{*/
-void DoubleParam::GetParameterValue(int* pinteger){
+void DoubleParam::GetParameterValue(int* pinteger){/*{{{*/
 	_error_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");
 }
 /*}}}*/
-/*FUNCTION DoubleParam::GetParameterValue(bool* pbool){{{*/
-void DoubleParam::GetParameterValue(bool* pbool){
+void DoubleParam::GetParameterValue(bool* pbool){/*{{{*/
 	_error_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an bool");
 }
 /*}}}*/
-/*FUNCTION DoubleParam::GetParameterValue(int** pintarray,int* pM){{{*/
-void DoubleParam::GetParameterValue(int** pintarray,int* pM){
+void DoubleParam::GetParameterValue(int** pintarray,int* pM){/*{{{*/
 	_error_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");
 }
 /*}}}*/
-/*FUNCTION DoubleParam::GetParameterValue(int** pintarray,int* pM,int* pN){{{*/
-void DoubleParam::GetParameterValue(int** pintarray,int* pM,int* pN){
+void DoubleParam::GetParameterValue(int** pintarray,int* pM,int* pN){/*{{{*/
 	_error_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of integers");
 }
 /*}}}*/
-/*FUNCTION DoubleParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){{{*/
-void DoubleParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){
+void DoubleParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){/*{{{*/
 	_error_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of IssmDouble");
 }
 /*}}}*/
-/*FUNCTION DoubleParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){{{*/
-void DoubleParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){
+void DoubleParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){/*{{{*/
 	_error_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of IssmDouble");
 }
Index: /issm/trunk-jpl/src/c/classes/Params/DoubleTransientMatParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/DoubleTransientMatParam.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/DoubleTransientMatParam.cpp	(revision 18064)
@@ -15,6 +15,5 @@
 /*}}}*/
 
-/*FUNCTION DoubleTransientMatParam::DoubleTransientMatParam(int enum_type,IssmDoubleMat value){{{*/
-DoubleTransientMatParam::DoubleTransientMatParam(int in_enum_type,IssmDouble* in_value, int in_M,int in_N):DoubleMatParam(in_enum_type,in_value,in_M,in_N){
+DoubleTransientMatParam::DoubleTransientMatParam(int in_enum_type,IssmDouble* in_value, int in_M,int in_N):DoubleMatParam(in_enum_type,in_value,in_M,in_N){/*{{{*/
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Params/DoubleVecParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/DoubleVecParam.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/DoubleVecParam.cpp	(revision 18064)
@@ -16,11 +16,9 @@
 
 /*DoubleVecParam constructors and destructor*/
-/*FUNCTION DoubleVecParam::DoubleVecParam(){{{*/
-DoubleVecParam::DoubleVecParam(){
+DoubleVecParam::DoubleVecParam(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION DoubleVecParam::DoubleVecParam(int enum_type,IssmDoubleVec values,int M){{{*/
-DoubleVecParam::DoubleVecParam(int in_enum_type,IssmDouble* in_values, int in_M){
+DoubleVecParam::DoubleVecParam(int in_enum_type,IssmDouble* in_values, int in_M){/*{{{*/
 
 	enum_type=in_enum_type;
@@ -31,6 +29,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleVecParam::~DoubleVecParam(){{{*/
-DoubleVecParam::~DoubleVecParam(){
+DoubleVecParam::~DoubleVecParam(){/*{{{*/
 	xDelete<IssmDouble>(values);
 	return;
@@ -39,6 +36,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION DoubleVecParam::Echo {{{*/
-void DoubleVecParam::Echo(void){
+void DoubleVecParam::Echo(void){/*{{{*/
 
 	_printf_(setw(22)<<"   DoubleVecParam "<<setw(35)<<left<<EnumToStringx(this->enum_type)<<" size: "<<this->M<<"\n");
@@ -46,6 +42,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleVecParam::DeepEcho{{{*/
-void DoubleVecParam::DeepEcho(void){
+void DoubleVecParam::DeepEcho(void){/*{{{*/
 	_printf_(setw(22)<<"   DoubleVecParam "<<setw(35)<<left<<EnumToStringx(this->enum_type)<<" "<<"[");
 	for(int i=0;i<this->M;i++) _printf_(" "<< this->values[i]);
@@ -53,9 +48,7 @@
 }
 /*}}}*/
-/*FUNCTION DoubleVecParam::Id{{{*/
-int    DoubleVecParam::Id(void){ return -1; }
+int    DoubleVecParam::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION DoubleVecParam::ObjectEnum{{{*/
-int DoubleVecParam::ObjectEnum(void){
+int DoubleVecParam::ObjectEnum(void){/*{{{*/
 
 	return DoubleVecParamEnum;
@@ -63,6 +56,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleVecParam::copy{{{*/
-Object* DoubleVecParam::copy() {
+Object* DoubleVecParam::copy() {/*{{{*/
 
 	return new DoubleVecParam(this->enum_type,this->values,this->M);
@@ -72,6 +64,5 @@
 
 /*DoubleVecParam virtual functions definitions: */
-/*FUNCTION DoubleVecParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){{{*/
-void  DoubleVecParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){
+void  DoubleVecParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){/*{{{*/
 	IssmDouble* output=NULL;
 	int M;
@@ -86,6 +77,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleVecParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){{{*/
-void  DoubleVecParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){
+void  DoubleVecParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){/*{{{*/
 	IssmDouble* output=NULL;
 	int M;
@@ -103,11 +93,9 @@
 }
 /*}}}*/
-/*FUNCTION DoubleVecParam::GetParameterValue(int** pintarray,int* pM){{{*/
-void  DoubleVecParam::GetParameterValue(int** pintarray,int* pM){
+void  DoubleVecParam::GetParameterValue(int** pintarray,int* pM){/*{{{*/
 	_error_("DoubleVec param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of int");
 }
 /*}}}*/
-/*FUNCTION DoubleVecParam::SetValue{{{*/
-void  DoubleVecParam::SetValue(IssmDouble* IssmDoublearray,int in_M){
+void  DoubleVecParam::SetValue(IssmDouble* IssmDoublearray,int in_M){/*{{{*/
 
 	/*avoid leak: */
Index: /issm/trunk-jpl/src/c/classes/Params/FileParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/FileParam.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/FileParam.cpp	(revision 18064)
@@ -16,11 +16,9 @@
 
 /*FileParam constructors and destructor*/
-/*FUNCTION FileParam::FileParam(){{{*/
-FileParam::FileParam(){
+FileParam::FileParam(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION FileParam::FileParam(int enum_type,FILE *value){{{*/
-FileParam::FileParam(int in_enum_type,FILE* in_value){
+FileParam::FileParam(int in_enum_type,FILE* in_value){/*{{{*/
 
 	enum_type=in_enum_type;
@@ -28,6 +26,5 @@
 }
 /*}}}*/
-/*FUNCTION FileParam::~FileParam(){{{*/
-FileParam::~FileParam(){
+FileParam::~FileParam(){/*{{{*/
 	return;
 }
@@ -35,20 +32,16 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION FileParam::Echo {{{*/
-void FileParam::Echo(void){
+void FileParam::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION FileParam::DeepEcho{{{*/
-void FileParam::DeepEcho(void){
+void FileParam::DeepEcho(void){/*{{{*/
 
 	_printf_(setw(22)<<"   FileParam "<<setw(35)<<left<<EnumToStringx(this->enum_type)<<" "<<this->value<<"\n");
 }
 /*}}}*/
-/*FUNCTION FileParam::Id{{{*/
-int    FileParam::Id(void){ return -1; }
+int    FileParam::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION FileParam::ObjectEnum{{{*/
-int FileParam::ObjectEnum(void){
+int FileParam::ObjectEnum(void){/*{{{*/
 
 	return FileParamEnum;
@@ -56,6 +49,5 @@
 }
 /*}}}*/
-/*FUNCTION FileParam::copy{{{*/
-Object* FileParam::copy() {
+Object* FileParam::copy() {/*{{{*/
 
 	return new FileParam(this->enum_type,this->value);
Index: /issm/trunk-jpl/src/c/classes/Params/IntMatParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/IntMatParam.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/IntMatParam.cpp	(revision 18064)
@@ -16,11 +16,9 @@
 
 /*IntMatParam constructors and destructor*/
-/*FUNCTION IntMatParam::IntMatParam(){{{*/
-IntMatParam::IntMatParam(){
+IntMatParam::IntMatParam(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION IntMatParam::IntMatParam(int enum_type,IssmIntMat value){{{*/
-IntMatParam::IntMatParam(int in_enum_type,int* in_value, int in_M,int in_N){
+IntMatParam::IntMatParam(int in_enum_type,int* in_value, int in_M,int in_N){/*{{{*/
 
 	enum_type=in_enum_type;
@@ -32,6 +30,5 @@
 }
 /*}}}*/
-/*FUNCTION IntMatParam::~IntMatParam(){{{*/
-IntMatParam::~IntMatParam(){
+IntMatParam::~IntMatParam(){/*{{{*/
 	xDelete<int>(value);
 	return;
@@ -40,6 +37,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION IntMatParam::Echo {{{*/
-void IntMatParam::Echo(void){
+void IntMatParam::Echo(void){/*{{{*/
 
 	_printf_("IntMatParam:\n");
@@ -49,6 +45,5 @@
 }
 /*}}}*/
-/*FUNCTION IntMatParam::DeepEcho{{{*/
-void IntMatParam::DeepEcho(void){
+void IntMatParam::DeepEcho(void){/*{{{*/
 
 	int i,j;
@@ -64,9 +59,7 @@
 }
 /*}}}*/
-/*FUNCTION IntMatParam::Id{{{*/
-int    IntMatParam::Id(void){ return -1; }
+int    IntMatParam::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION IntMatParam::ObjectEnum{{{*/
-int IntMatParam::ObjectEnum(void){
+int IntMatParam::ObjectEnum(void){/*{{{*/
 
 	return IntMatParamEnum;
@@ -74,6 +67,5 @@
 }
 /*}}}*/
-/*FUNCTION IntMatParam::copy{{{*/
-Object* IntMatParam::copy() {
+Object* IntMatParam::copy() {/*{{{*/
 
 	return new IntMatParam(this->enum_type,this->value,this->M,this->N);
@@ -83,6 +75,5 @@
 
 /*IntMatParam virtual functions definitions: */
-/*FUNCTION IntMatParam::GetParameterValue{{{*/
-void  IntMatParam::GetParameterValue(int** pintarray,int* pM,int* pN){
+void  IntMatParam::GetParameterValue(int** pintarray,int* pM,int* pN){/*{{{*/
 	int* output=NULL;
 
@@ -96,6 +87,5 @@
 }
 /*}}}*/
-/*FUNCTION IntMatParam::SetValue{{{*/
-void  IntMatParam::SetValue(int* intarray,int in_M,int in_N){
+void  IntMatParam::SetValue(int* intarray,int in_M,int in_N){/*{{{*/
 
 	/*avoid leak: */
Index: /issm/trunk-jpl/src/c/classes/Params/IntParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/IntParam.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/IntParam.cpp	(revision 18064)
@@ -16,11 +16,9 @@
 
 /*IntParam constructors and destructor*/
-/*FUNCTION IntParam::IntParam(){{{*/
-IntParam::IntParam(){
+IntParam::IntParam(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION IntParam::IntParam(int enum_type,IssmInt value){{{*/
-IntParam::IntParam(int in_enum_type,IssmInt in_value){
+IntParam::IntParam(int in_enum_type,IssmInt in_value){/*{{{*/
 
 	enum_type=in_enum_type;
@@ -28,6 +26,5 @@
 }
 /*}}}*/
-/*FUNCTION IntParam::~IntParam(){{{*/
-IntParam::~IntParam(){
+IntParam::~IntParam(){/*{{{*/
 	return;
 }
@@ -35,20 +32,16 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION IntParam::Echo {{{*/
-void IntParam::Echo(void){
+void IntParam::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION IntParam::DeepEcho{{{*/
-void IntParam::DeepEcho(void){
+void IntParam::DeepEcho(void){/*{{{*/
 
 	_printf_(setw(22)<<"   IntParam "<<setw(35)<<left<<EnumToStringx(this->enum_type)<<" "<<this->value<<"\n");
 }
 /*}}}*/
-/*FUNCTION IntParam::Id{{{*/
-int    IntParam::Id(void){ return -1; }
+int    IntParam::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION IntParam::ObjectEnum{{{*/
-int IntParam::ObjectEnum(void){
+int IntParam::ObjectEnum(void){/*{{{*/
 
 	return IntParamEnum;
@@ -56,6 +49,5 @@
 }
 /*}}}*/
-/*FUNCTION IntParam::copy{{{*/
-Object* IntParam::copy() {
+Object* IntParam::copy() {/*{{{*/
 
 	return new IntParam(this->enum_type,this->value);
Index: /issm/trunk-jpl/src/c/classes/Params/IntVecParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/IntVecParam.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/IntVecParam.cpp	(revision 18064)
@@ -16,11 +16,9 @@
 
 /*IntVecParam constructors and destructor*/
-/*FUNCTION IntVecParam::IntVecParam(){{{*/
-IntVecParam::IntVecParam(){
+IntVecParam::IntVecParam(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION IntVecParam::IntVecParam(int enum_type,int* values,int M){{{*/
-IntVecParam::IntVecParam(int in_enum_type,int* in_values, int in_M){
+IntVecParam::IntVecParam(int in_enum_type,int* in_values, int in_M){/*{{{*/
 
 	enum_type=in_enum_type;
@@ -34,6 +32,5 @@
 }
 /*}}}*/
-/*FUNCTION IntVecParam::IntVecParam(int enum_type,IssmDouble* values,int M){{{*/
-IntVecParam::IntVecParam(int in_enum_type,IssmDouble* in_values, int in_M){
+IntVecParam::IntVecParam(int in_enum_type,IssmDouble* in_values, int in_M){/*{{{*/
 
 	enum_type=in_enum_type;
@@ -47,6 +44,5 @@
 }
 /*}}}*/
-/*FUNCTION IntVecParam::~IntVecParam(){{{*/
-IntVecParam::~IntVecParam(){
+IntVecParam::~IntVecParam(){/*{{{*/
 	xDelete<int>(values);
 	return;
@@ -55,6 +51,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION IntVecParam::Echo {{{*/
-void IntVecParam::Echo(void){
+void IntVecParam::Echo(void){/*{{{*/
 
 	_printf_("IntVecParam:\n");
@@ -64,6 +59,5 @@
 }
 /*}}}*/
-/*FUNCTION IntVecParam::DeepEcho{{{*/
-void IntVecParam::DeepEcho(void){
+void IntVecParam::DeepEcho(void){/*{{{*/
 
 	int i;
@@ -77,9 +71,7 @@
 }
 /*}}}*/
-/*FUNCTION IntVecParam::Id{{{*/
-int    IntVecParam::Id(void){ return -1; }
+int    IntVecParam::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION IntVecParam::ObjectEnum{{{*/
-int IntVecParam::ObjectEnum(void){
+int IntVecParam::ObjectEnum(void){/*{{{*/
 
 	return IntVecParamEnum;
@@ -87,6 +79,5 @@
 }
 /*}}}*/
-/*FUNCTION IntVecParam::copy{{{*/
-Object* IntVecParam::copy() {
+Object* IntVecParam::copy() {/*{{{*/
 
 	return new IntVecParam(this->enum_type,this->values,this->M);
@@ -96,6 +87,5 @@
 
 /*IntVecParam virtual functions definitions: */
-/*FUNCTION IntVecParam::GetParameterValue{{{*/
-void  IntVecParam::GetParameterValue(int** pintarray,int* pM){
+void  IntVecParam::GetParameterValue(int** pintarray,int* pM){/*{{{*/
 	int* output=NULL;
 
@@ -110,6 +100,5 @@
 }
 /*}}}*/
-/*FUNCTION IntVecParam::SetValue{{{*/
-void  IntVecParam::SetValue(int* intarray,int in_M){
+void  IntVecParam::SetValue(int* intarray,int in_M){/*{{{*/
 
 	/*avoid leak: */
Index: /issm/trunk-jpl/src/c/classes/Params/MatrixParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/MatrixParam.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/MatrixParam.cpp	(revision 18064)
@@ -16,11 +16,9 @@
 
 /*MatrixParam constructors and destructor*/
-/*FUNCTION MatrixParam::MatrixParam(){{{*/
-MatrixParam::MatrixParam(){
+MatrixParam::MatrixParam(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION MatrixParam::MatrixParam(int enum_type,Matrix<IssmDouble>* value){{{*/
-MatrixParam::MatrixParam(int in_enum_type,Matrix<IssmDouble>* in_value){
+MatrixParam::MatrixParam(int in_enum_type,Matrix<IssmDouble>* in_value){/*{{{*/
 
 	enum_type=in_enum_type;
@@ -32,6 +30,5 @@
 }
 /*}}}*/
-/*FUNCTION MatrixParam::~MatrixParam(){{{*/
-MatrixParam::~MatrixParam(){
+MatrixParam::~MatrixParam(){/*{{{*/
 	delete value;
 }
@@ -39,6 +36,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION MatrixParam::Echo {{{*/
-void MatrixParam::Echo(void){
+void MatrixParam::Echo(void){/*{{{*/
 
 	_printf_("MatrixParam:\n");
@@ -47,6 +43,5 @@
 }
 /*}}}*/
-/*FUNCTION MatrixParam::DeepEcho{{{*/
-void MatrixParam::DeepEcho(void){
+void MatrixParam::DeepEcho(void){/*{{{*/
 
 	_printf_("MatrixParam:\n");
@@ -55,9 +50,7 @@
 }
 /*}}}*/
-/*FUNCTION MatrixParam::Id{{{*/
-int    MatrixParam::Id(void){ return -1; }
+int    MatrixParam::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION MatrixParam::ObjectEnum{{{*/
-int MatrixParam::ObjectEnum(void){
+int MatrixParam::ObjectEnum(void){/*{{{*/
 
 	return MatrixParamEnum;
@@ -65,6 +58,5 @@
 }
 /*}}}*/
-/*FUNCTION MatrixParam::copy{{{*/
-Object* MatrixParam::copy() {
+Object* MatrixParam::copy() {/*{{{*/
 
 	return new MatrixParam(this->enum_type,this->value);
@@ -74,6 +66,5 @@
 
 /*MatrixParam virtual functions definitions: */
-/*FUNCTION MatrixParam::GetParameterValue{{{*/
-void  MatrixParam::GetParameterValue(Matrix<IssmDouble>** poutput){
+void  MatrixParam::GetParameterValue(Matrix<IssmDouble>** poutput){/*{{{*/
 	Matrix<IssmDouble>* output=NULL;
 
@@ -84,6 +75,5 @@
 }
 /*}}}*/
-/*FUNCTION MatrixParam::SetValue{{{*/
-void  MatrixParam::SetValue(Matrix<IssmDouble>* matrix){
+void  MatrixParam::SetValue(Matrix<IssmDouble>* matrix){/*{{{*/
 
 	/*avoid leak: */
Index: /issm/trunk-jpl/src/c/classes/Params/Parameters.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/Parameters.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/Parameters.cpp	(revision 18064)
@@ -40,12 +40,10 @@
 
 /*Object constructors and destructor*/
-/*FUNCTION Parameters::Parameters(){{{*/
-Parameters::Parameters(){
+Parameters::Parameters(){/*{{{*/
 	enum_type=ParametersEnum;
 	return;
 }
 /*}}}*/
-/*FUNCTION Parameters::~Parameters(){{{*/
-Parameters::~Parameters(){
+Parameters::~Parameters(){/*{{{*/
 	return;
 }
@@ -53,6 +51,5 @@
 
 /*Object management*/
-/*FUNCTION Parameters::Exist{{{*/
-bool Parameters::Exist(int enum_type){
+bool Parameters::Exist(int enum_type){/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -66,6 +63,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::FindParam(bool* pbool,int enum_type){{{*/
-void Parameters::FindParam(bool* pbool,int enum_type){ _assert_(this);
+void Parameters::FindParam(bool* pbool,int enum_type){ _assert_(this);/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -83,6 +79,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::FindParam(int* pinteger,int enum_type){{{*/
-void Parameters::FindParam(int* pinteger,int enum_type){ _assert_(this);
+void Parameters::FindParam(int* pinteger,int enum_type){ _assert_(this);/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -100,6 +95,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::FindParam(IssmDouble* pscalar, int enum_type){{{*/
-void Parameters::FindParam(IssmDouble* pscalar, int enum_type){ _assert_(this);
+void Parameters::FindParam(IssmDouble* pscalar, int enum_type){ _assert_(this);/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -117,6 +111,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::FindParam(IssmDouble* pscalar, int enum_type,IssmDouble time){{{*/
-void Parameters::FindParam(IssmDouble* pscalar, int enum_type,IssmDouble time){ _assert_(this);
+void Parameters::FindParam(IssmDouble* pscalar, int enum_type,IssmDouble time){ _assert_(this);/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -134,6 +127,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::FindParam(char** pstring,int enum_type){{{*/
-void Parameters::FindParam(char** pstring,int enum_type){ _assert_(this);
+void Parameters::FindParam(char** pstring,int enum_type){ _assert_(this);/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -152,6 +144,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::FindParam(char*** pstringarray,int* pM,int enum_type){{{*/
-void Parameters::FindParam(char*** pstringarray,int* pM,int enum_type){ _assert_(this);
+void Parameters::FindParam(char*** pstringarray,int* pM,int enum_type){ _assert_(this);/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -170,6 +161,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::FindParam(int** pintarray,int* pM,int enum_type){{{*/
-void Parameters::FindParam(int** pintarray,int* pM, int enum_type){ _assert_(this);
+void Parameters::FindParam(int** pintarray,int* pM, int enum_type){ _assert_(this);/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -188,6 +178,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::FindParam(int** pintarray,int* pM,int* pN,int enum_type){{{*/
-void Parameters::FindParam(int** pintarray,int* pM,int *pN,int enum_type){ _assert_(this);
+void Parameters::FindParam(int** pintarray,int* pM,int *pN,int enum_type){ _assert_(this);/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -206,6 +195,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::FindParam(IssmDouble** pIssmDoublearray,int* pM,int enum_type){{{*/
-void Parameters::FindParam(IssmDouble** pIssmDoublearray,int* pM, int enum_type){ _assert_(this);
+void Parameters::FindParam(IssmDouble** pIssmDoublearray,int* pM, int enum_type){ _assert_(this);/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -224,6 +212,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::FindParam(IssmDouble** pIssmDoublearray,int* pM, int* pN,int enum_type){{{*/
-void Parameters::FindParam(IssmDouble** pIssmDoublearray,int* pM, int* pN,int enum_type){ _assert_(this);
+void Parameters::FindParam(IssmDouble** pIssmDoublearray,int* pM, int* pN,int enum_type){ _assert_(this);/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -242,6 +229,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::FindParam(IssmDouble*** parray,int* pM,int** pmdims_array,int** pndims_array,int enum_type){{{*/
-void Parameters::FindParam(IssmDouble*** parray,int* pM,int** pmdims_array,int** pndims_array,int enum_type){ _assert_(this);
+void Parameters::FindParam(IssmDouble*** parray,int* pM,int** pmdims_array,int** pndims_array,int enum_type){ _assert_(this);/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -259,6 +245,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::FindParam(Vector<IssmDouble>** pvec,int enum_type){{{*/
-void Parameters::FindParam(Vector<IssmDouble>** pvec,int enum_type){ _assert_(this);
+void Parameters::FindParam(Vector<IssmDouble>** pvec,int enum_type){ _assert_(this);/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -277,6 +262,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::FindParam(Matrix<IssmDouble>** pmat,int enum_type){{{*/
-void Parameters::FindParam(Matrix<IssmDouble>** pmat,int enum_type){ _assert_(this);
+void Parameters::FindParam(Matrix<IssmDouble>** pmat,int enum_type){ _assert_(this);/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -295,6 +279,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::FindParam(FILE** pfid,int enum_type){{{*/
-void Parameters::FindParam(FILE** pfid,int enum_type){ _assert_(this);
+void Parameters::FindParam(FILE** pfid,int enum_type){ _assert_(this);/*{{{*/
 
 	vector<Object*>::iterator object;
@@ -312,6 +295,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::FindParam(DataSet** pdataset,int enum_type){{{*/
-void Parameters::FindParam(DataSet** pdataset,int enum_type){ 
+void Parameters::FindParam(DataSet** pdataset,int enum_type){ /*{{{*/
 	_assert_(this);
 
@@ -331,6 +313,5 @@
 /*}}}*/
 
-/*FUNCTION Parameters::SetParam(bool boolean,int enum_type);{{{*/
-void   Parameters::SetParam(bool boolean,int enum_type){
+void   Parameters::SetParam(bool boolean,int enum_type){/*{{{*/
 
 	Param* param=NULL;
@@ -343,6 +324,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::SetParam(int integer,int enum_type);{{{*/
-void   Parameters::SetParam(int integer,int enum_type){
+void   Parameters::SetParam(int integer,int enum_type){/*{{{*/
 
 	Param* param=NULL;
@@ -355,6 +335,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::SetParam(IssmDouble scalar,int enum_type);{{{*/
-void   Parameters::SetParam(IssmDouble scalar,int enum_type){
+void   Parameters::SetParam(IssmDouble scalar,int enum_type){/*{{{*/
 
 	Param* param=NULL;
@@ -367,6 +346,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::SetParam(char* string,int enum_type);{{{*/
-void   Parameters::SetParam(char* string,int enum_type){
+void   Parameters::SetParam(char* string,int enum_type){/*{{{*/
 
 	Param* param=NULL;
@@ -379,6 +357,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::SetParam(char** stringarray,int M, int enum_type);{{{*/
-void   Parameters::SetParam(char** stringarray,int M, int enum_type){
+void   Parameters::SetParam(char** stringarray,int M, int enum_type){/*{{{*/
 
 	Param* param=NULL;
@@ -391,6 +368,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::SetParam(IssmDouble* IssmDoublearray,int M,int enum_type);{{{*/
-void   Parameters::SetParam(IssmDouble* IssmDoublearray,int M, int enum_type){
+void   Parameters::SetParam(IssmDouble* IssmDoublearray,int M, int enum_type){/*{{{*/
 
 	Param* param=NULL;
@@ -403,6 +379,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::SetParam(IssmDouble* IssmDoublearray,int M,int N, int enum_type);{{{*/
-void   Parameters::SetParam(IssmDouble* IssmDoublearray,int M, int N, int enum_type){
+void   Parameters::SetParam(IssmDouble* IssmDoublearray,int M, int N, int enum_type){/*{{{*/
 
 	Param* param=NULL;
@@ -415,6 +390,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::SetParam(int* intarray,int M,int enum_type);{{{*/
-void   Parameters::SetParam(int* intarray,int M, int enum_type){
+void   Parameters::SetParam(int* intarray,int M, int enum_type){/*{{{*/
 
 	Param* param=NULL;
@@ -427,6 +401,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::SetParam(int* intarray,int M,int N, int enum_type);{{{*/
-void   Parameters::SetParam(int* intarray,int M, int N, int enum_type){
+void   Parameters::SetParam(int* intarray,int M, int N, int enum_type){/*{{{*/
 
 	Param* param=NULL;
@@ -439,6 +412,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::SetParam(Vector<IssmDouble>* vector,int enum_type);{{{*/
-void   Parameters::SetParam(Vector<IssmDouble>* vector,int enum_type){
+void   Parameters::SetParam(Vector<IssmDouble>* vector,int enum_type){/*{{{*/
 
 	Param* param=NULL;
@@ -451,6 +423,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::SetParam(Matrix<IssmDouble>* matrix,int enum_type);{{{*/
-void   Parameters::SetParam(Matrix<IssmDouble>* matrix,int enum_type){
+void   Parameters::SetParam(Matrix<IssmDouble>* matrix,int enum_type){/*{{{*/
 
 	Param* param=NULL;
@@ -463,6 +434,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::SetParam(FILE* fid,int enum_type);{{{*/
-void   Parameters::SetParam(FILE* fid,int enum_type){
+void   Parameters::SetParam(FILE* fid,int enum_type){/*{{{*/
 
 	Param* param=NULL;
@@ -475,6 +445,5 @@
 }
 /*}}}*/
-/*FUNCTION Parameters::SetParam(DataSet* dataset, int enum_type);{{{*/
-void   Parameters::SetParam(DataSet* dataset,int enum_type){
+void   Parameters::SetParam(DataSet* dataset,int enum_type){/*{{{*/
 
 	Param* param=NULL;
@@ -488,6 +457,5 @@
 /*}}}*/
 
-/*FUNCTION Parameters::FindParamObject{{{*/
-Object* Parameters::FindParamObject(int enum_type){
+Object* Parameters::FindParamObject(int enum_type){/*{{{*/
 
 	vector<Object*>::iterator object;
Index: /issm/trunk-jpl/src/c/classes/Params/StringArrayParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/StringArrayParam.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/StringArrayParam.cpp	(revision 18064)
@@ -16,11 +16,9 @@
 
 /*StringArrayParam constructors and destructor*/
-/*FUNCTION StringArrayParam::StringArrayParam(){{{*/
-StringArrayParam::StringArrayParam(){
+StringArrayParam::StringArrayParam(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION StringArrayParam::StringArrayParam(int enum_type,char** in_values,int in_numstrings){{{*/
-StringArrayParam::StringArrayParam(int in_enum_type,char** in_values, int in_numstrings){
+StringArrayParam::StringArrayParam(int in_enum_type,char** in_values, int in_numstrings){/*{{{*/
 
 	int i;
@@ -44,6 +42,5 @@
 }
 /*}}}*/
-/*FUNCTION StringArrayParam::~StringArrayParam(){{{*/
-StringArrayParam::~StringArrayParam(){
+StringArrayParam::~StringArrayParam(){/*{{{*/
 
 	int i;
@@ -59,11 +56,9 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION StringArrayParam::Echo {{{*/
-void StringArrayParam::Echo(void){
+void StringArrayParam::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION StringArrayParam::DeepEcho{{{*/
-void StringArrayParam::DeepEcho(void){
+void StringArrayParam::DeepEcho(void){/*{{{*/
 
 	_printf_(setw(22)<<"   StringArrayParam "<<setw(35)<<left<<EnumToStringx(this->enum_type)<<" {");
@@ -72,9 +67,7 @@
 }
 /*}}}*/
-/*FUNCTION StringArrayParam::Id{{{*/
-int    StringArrayParam::Id(void){ return -1; }
+int    StringArrayParam::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION StringArrayParam::ObjectEnum{{{*/
-int StringArrayParam::ObjectEnum(void){
+int StringArrayParam::ObjectEnum(void){/*{{{*/
 
 	return StringArrayParamEnum;
@@ -82,6 +75,5 @@
 }
 /*}}}*/
-/*FUNCTION StringArrayParam::copy{{{*/
-Object* StringArrayParam::copy() {
+Object* StringArrayParam::copy() {/*{{{*/
 
 	return new StringArrayParam(this->enum_type,this->value,this->numstrings);
@@ -91,6 +83,5 @@
 
 /*StringArrayParam virtual functions definitions: */
-/*FUNCTION StringArrayParam::GetParameterValue{{{*/
-void  StringArrayParam::GetParameterValue(char*** pstringarray,int* pM){
+void  StringArrayParam::GetParameterValue(char*** pstringarray,int* pM){/*{{{*/
 
 	int   i;
@@ -122,6 +113,5 @@
 }
 /*}}}*/
-/*FUNCTION StringArrayParam::SetValue{{{*/
-void  StringArrayParam::SetValue(char** stringarray,int M){
+void  StringArrayParam::SetValue(char** stringarray,int M){/*{{{*/
 
 	int   i;
Index: /issm/trunk-jpl/src/c/classes/Params/StringParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/StringParam.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/StringParam.cpp	(revision 18064)
@@ -16,11 +16,9 @@
 
 /*StringParam constructors and destructor*/
-/*FUNCTION StringParam::StringParam(){{{*/
-StringParam::StringParam(){
+StringParam::StringParam(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION StringParam::StringParam(int enum_type,IssmString value){{{*/
-StringParam::StringParam(int in_enum_type,char* in_value){
+StringParam::StringParam(int in_enum_type,char* in_value){/*{{{*/
 
 	enum_type=in_enum_type;
@@ -30,6 +28,5 @@
 }
 /*}}}*/
-/*FUNCTION StringParam::~StringParam(){{{*/
-StringParam::~StringParam(){
+StringParam::~StringParam(){/*{{{*/
 	xDelete<char>(value);
 }
@@ -37,19 +34,15 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION StringParam::Echo {{{*/
-void StringParam::Echo(void){
+void StringParam::Echo(void){/*{{{*/
 	this->DeepEcho();
 }
 /*}}}*/
-/*FUNCTION StringParam::DeepEcho{{{*/
-void StringParam::DeepEcho(void){
+void StringParam::DeepEcho(void){/*{{{*/
 	_printf_(setw(22)<<"   StringParam "<<setw(35)<<left<<EnumToStringx(this->enum_type)<<" "<<this->value<<"\n");
 }
 /*}}}*/
-/*FUNCTION StringParam::Id{{{*/
-int    StringParam::Id(void){ return -1; }
+int    StringParam::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION StringParam::ObjectEnum{{{*/
-int StringParam::ObjectEnum(void){
+int StringParam::ObjectEnum(void){/*{{{*/
 
 	return StringParamEnum;
@@ -57,6 +50,5 @@
 }
 /*}}}*/
-/*FUNCTION StringParam::copy{{{*/
-Object* StringParam::copy() {
+Object* StringParam::copy() {/*{{{*/
 
 	return new StringParam(this->enum_type,this->value);
@@ -66,6 +58,5 @@
 
 /*StringParam virtual functions definitions: */
-/*FUNCTION StringParam::GetParameterValue{{{*/
-void  StringParam::GetParameterValue(char** pstring){
+void  StringParam::GetParameterValue(char** pstring){/*{{{*/
 
 	char* outstring=NULL;
@@ -81,6 +72,5 @@
 }
 /*}}}*/
-/*FUNCTION StringParam::SetValue{{{*/
-void  StringParam::SetValue(char* string){
+void  StringParam::SetValue(char* string){/*{{{*/
 
 	int   stringsize;
Index: /issm/trunk-jpl/src/c/classes/Params/TransientParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/TransientParam.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/TransientParam.cpp	(revision 18064)
@@ -16,11 +16,9 @@
 
 /*TransientParam constructors and destructor*/
-/*FUNCTION TransientParam::TransientParam(){{{*/
-TransientParam::TransientParam(){
+TransientParam::TransientParam(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION TransientParam::TransientParam(int enum_type,IssmDoubleMat value){{{*/
-TransientParam::TransientParam(int in_enum_type,IssmDouble* in_values,IssmDouble* in_time,int in_N){
+TransientParam::TransientParam(int in_enum_type,IssmDouble* in_values,IssmDouble* in_time,int in_N){/*{{{*/
 
 	_assert_(in_values && in_time);
@@ -36,6 +34,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientParam::~TransientParam(){{{*/
-TransientParam::~TransientParam(){
+TransientParam::~TransientParam(){/*{{{*/
 	xDelete<IssmDouble>(values);
 	xDelete<IssmDouble>(timesteps);
@@ -44,6 +41,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION TransientParam::Echo {{{*/
-void TransientParam::Echo(void){
+void TransientParam::Echo(void){/*{{{*/
 
 	_printf_("TransientParam:\n");
@@ -53,6 +49,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientParam::DeepEcho{{{*/
-void TransientParam::DeepEcho(void){
+void TransientParam::DeepEcho(void){/*{{{*/
 
 	_printf_("TransientParam:\n");
@@ -64,9 +59,7 @@
 }
 /*}}}*/
-/*FUNCTION TransientParam::Id{{{*/
-int    TransientParam::Id(void){ return -1; }
+int    TransientParam::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION TransientParam::ObjectEnum{{{*/
-int TransientParam::ObjectEnum(void){
+int TransientParam::ObjectEnum(void){/*{{{*/
 
 	return TransientParamEnum;
@@ -74,6 +67,5 @@
 }
 /*}}}*/
-/*FUNCTION TransientParam::copy{{{*/
-Object* TransientParam::copy() {
+Object* TransientParam::copy() {/*{{{*/
 
 	return new TransientParam(this->enum_type,this->values,this->timesteps,this->N);
@@ -83,6 +75,5 @@
 
 /*TransientParam virtual functions definitions: */
-/*FUNCTION TransientParam::GetParameterValue(IssmDouble* pdouble,IssmDouble time){{{*/
-void  TransientParam::GetParameterValue(IssmDouble* pdouble,IssmDouble time){
+void  TransientParam::GetParameterValue(IssmDouble* pdouble,IssmDouble time){/*{{{*/
 
 	IssmDouble output;
Index: /issm/trunk-jpl/src/c/classes/Params/VectorParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/VectorParam.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/Params/VectorParam.cpp	(revision 18064)
@@ -16,11 +16,9 @@
 
 /*VectorParam constructors and destructor*/
-/*FUNCTION VectorParam::VectorParam(){{{*/
-VectorParam::VectorParam(){
+VectorParam::VectorParam(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION VectorParam::VectorParam(int enum_type,IssmVector value){{{*/
-VectorParam::VectorParam(int in_enum_type,Vector<IssmDouble>* in_value){
+VectorParam::VectorParam(int in_enum_type,Vector<IssmDouble>* in_value){/*{{{*/
 
 	enum_type=in_enum_type;
@@ -34,6 +32,5 @@
 }
 /*}}}*/
-/*FUNCTION VectorParam::~VectorParam(){{{*/
-VectorParam::~VectorParam(){
+VectorParam::~VectorParam(){/*{{{*/
 	delete value;
 }
@@ -41,6 +38,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION VectorParam::Echo {{{*/
-void VectorParam::Echo(void){
+void VectorParam::Echo(void){/*{{{*/
 
 	_printf_("VectorParam:\n");
@@ -49,6 +45,5 @@
 }
 /*}}}*/
-/*FUNCTION VectorParam::DeepEcho{{{*/
-void VectorParam::DeepEcho(void){
+void VectorParam::DeepEcho(void){/*{{{*/
 
 	_printf_("VectorParam:\n");
@@ -57,9 +52,7 @@
 }
 /*}}}*/
-/*FUNCTION VectorParam::Id{{{*/
-int    VectorParam::Id(void){ return -1; }
+int    VectorParam::Id(void){ return -1; }/*{{{*/
 /*}}}*/
-/*FUNCTION VectorParam::ObjectEnum{{{*/
-int VectorParam::ObjectEnum(void){
+int VectorParam::ObjectEnum(void){/*{{{*/
 
 	return VectorParamEnum;
@@ -67,6 +60,5 @@
 }
 /*}}}*/
-/*FUNCTION VectorParam::copy{{{*/
-Object* VectorParam::copy() {
+Object* VectorParam::copy() {/*{{{*/
 
 	return new VectorParam(this->enum_type,this->value);
@@ -76,6 +68,5 @@
 
 /*VectorParam virtual functions definitions: */
-/*FUNCTION VectorParam::GetParameterValue{{{*/
-void  VectorParam::GetParameterValue(Vector<IssmDouble>** poutput){
+void  VectorParam::GetParameterValue(Vector<IssmDouble>** poutput){/*{{{*/
 	Vector<IssmDouble>*  output=NULL;
 
@@ -87,6 +78,5 @@
 }
 /*}}}*/
-/*FUNCTION VectorParam::SetValue{{{*/
-void  VectorParam::SetValue(Vector<IssmDouble>* vector){
+void  VectorParam::SetValue(Vector<IssmDouble>* vector){/*{{{*/
 
 	/*avoid leak: */
Index: /issm/trunk-jpl/src/c/classes/gauss/GaussPenta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/gauss/GaussPenta.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/gauss/GaussPenta.cpp	(revision 18064)
@@ -13,6 +13,5 @@
 
 /*GaussPenta constructors and destructors:*/
-/*FUNCTION GaussPenta::GaussPenta() {{{*/
-GaussPenta::GaussPenta(){
+GaussPenta::GaussPenta(){/*{{{*/
 
 	numgauss=-1;
@@ -31,6 +30,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussPenta::GaussPenta(int order_horiz,int order_vert) {{{*/
-GaussPenta::GaussPenta(int order_horiz,int order_vert){
+GaussPenta::GaussPenta(int order_horiz,int order_vert){/*{{{*/
 
 	/*Intermediaries*/
@@ -85,6 +83,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussPenta::GaussPenta(int index1, int index2, int order){{{*/
-GaussPenta::GaussPenta(int index1, int index2,int order){
+GaussPenta::GaussPenta(int index1, int index2,int order){/*{{{*/
 
 	/*Intermediaties*/
@@ -142,6 +139,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussPenta::GaussPenta(int index1, int index2, int index3, int order){{{*/
-GaussPenta::GaussPenta(int index1, int index2, int index3, int order){
+GaussPenta::GaussPenta(int index1, int index2, int index3, int order){/*{{{*/
 
 	/*Basal Tria*/
@@ -171,6 +167,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussPenta::GaussPenta(int index1, int index2, int index3, int index4,int order_horiz,int order_vert){{{*/
-GaussPenta::GaussPenta(int index1, int index2, int index3, int index4,int order_horiz,int order_vert){
+GaussPenta::GaussPenta(int index1, int index2, int index3, int index4,int order_horiz,int order_vert){/*{{{*/
 
 	/*Intermediaties*/
@@ -238,6 +233,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussPenta::GaussPenta(int index,double r1,double r2,int order) {{{*/
-GaussPenta::GaussPenta(int index,IssmDouble r1,IssmDouble r2,bool mainlyfloating,int order){
+GaussPenta::GaussPenta(int index,IssmDouble r1,IssmDouble r2,bool mainlyfloating,int order){/*{{{*/
 
 	/*
@@ -400,6 +394,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussPenta::GaussPenta(IssmDouble area_coordinates[4][3],int order_horiz,int order_vert){{{*/
-GaussPenta::GaussPenta(IssmDouble area_coordinates[4][3],int order_horiz,int order_vert){
+GaussPenta::GaussPenta(IssmDouble area_coordinates[4][3],int order_horiz,int order_vert){/*{{{*/
 
 	/*Intermediaties*/
@@ -439,6 +432,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussPenta::~GaussPenta(){{{*/
-GaussPenta::~GaussPenta(){
+GaussPenta::~GaussPenta(){/*{{{*/
 	xDelete<IssmDouble>(weights);
 	xDelete<IssmDouble>(coords1);
@@ -450,6 +442,5 @@
 
 /*Methods*/
-/*FUNCTION GaussPenta::Echo{{{*/
-void GaussPenta::Echo(void){
+void GaussPenta::Echo(void){/*{{{*/
 
 	_printf_("GaussPenta:\n");
@@ -495,11 +486,9 @@
 }
 /*}}}*/
-/*FUNCTION GaussPenta::Enum{{{*/
-int GaussPenta::Enum(void){
+int GaussPenta::Enum(void){/*{{{*/
 	return GaussPentaEnum;
 }
 /*}}}*/
-/*FUNCTION GaussPenta::GaussPoint{{{*/
-void GaussPenta::GaussPoint(int ig){
+void GaussPenta::GaussPoint(int ig){/*{{{*/
 
 	/*Check input in debugging mode*/
@@ -515,6 +504,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussPenta::GaussVertex{{{*/
-void GaussPenta::GaussVertex(int iv){
+void GaussPenta::GaussVertex(int iv){/*{{{*/
 
 	/*in debugging mode: check that the default constructor has been called*/
@@ -535,6 +523,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussPenta::GaussFaceTria{{{*/
-void GaussPenta::GaussFaceTria(int index1, int index2, int index3, int order){
+void GaussPenta::GaussFaceTria(int index1, int index2, int index3, int order){/*{{{*/
 
 	/*in debugging mode: check that the default constructor has been called*/
@@ -553,6 +540,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussPenta::GaussNode{{{*/
-void GaussPenta::GaussNode(int finiteelement,int iv){
+void GaussPenta::GaussNode(int finiteelement,int iv){/*{{{*/
 
 	/*in debugging mode: check that the default constructor has been called*/
@@ -705,6 +691,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussPenta::begin{{{*/
-int GaussPenta::begin(void){
+int GaussPenta::begin(void){/*{{{*/
 
 	/*Check that this has been initialized*/
@@ -720,6 +705,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussPenta::end{{{*/
-int GaussPenta::end(void){
+int GaussPenta::end(void){/*{{{*/
 
 	/*Check that this has been initialized*/
@@ -735,6 +719,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussPenta::SynchronizeGaussBase{{{*/
-void GaussPenta::SynchronizeGaussBase(Gauss* gauss){
+void GaussPenta::SynchronizeGaussBase(Gauss* gauss){/*{{{*/
 
 	_assert_(gauss->Enum()==GaussTriaEnum);
Index: /issm/trunk-jpl/src/c/classes/gauss/GaussSeg.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/gauss/GaussSeg.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/gauss/GaussSeg.cpp	(revision 18064)
@@ -12,6 +12,5 @@
 
 /*GaussSeg constructors and destructors:*/
-/*FUNCTION GaussSeg::GaussSeg() {{{*/
-GaussSeg::GaussSeg(){
+GaussSeg::GaussSeg(){/*{{{*/
 
 	numgauss=-1;
@@ -24,6 +23,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussSeg::GaussSeg(int order) {{{*/
-GaussSeg::GaussSeg(int order){
+GaussSeg::GaussSeg(int order){/*{{{*/
 
 	IssmPDouble* pcoords1=NULL;
@@ -52,6 +50,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussSeg::GaussSeg(IssmDouble position) {{{*/
-GaussSeg::GaussSeg(IssmDouble position){
+GaussSeg::GaussSeg(IssmDouble position){/*{{{*/
 
 	/*Get gauss points*/
@@ -70,6 +67,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussSeg::~GaussSeg(){{{*/
-GaussSeg::~GaussSeg(){
+GaussSeg::~GaussSeg(){/*{{{*/
 	xDelete<IssmDouble>(weights);
 	xDelete<IssmDouble>(coords1);
@@ -78,6 +74,5 @@
 
 /*Methods*/
-/*FUNCTION GaussSeg::Echo{{{*/
-void GaussSeg::Echo(void){
+void GaussSeg::Echo(void){/*{{{*/
 
 	_printf_("GaussSeg:\n");
@@ -100,11 +95,9 @@
 }
 /*}}}*/
-/*FUNCTION GaussSeg::Enum{{{*/
-int GaussSeg::Enum(void){
+int GaussSeg::Enum(void){/*{{{*/
 	return GaussSegEnum;
 }
 /*}}}*/
-/*FUNCTION GaussSeg::GaussPoint{{{*/
-void GaussSeg::GaussPoint(int ig){
+void GaussSeg::GaussPoint(int ig){/*{{{*/
 
 	/*Check input in debugging mode*/
@@ -116,6 +109,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussSeg::GaussVertex{{{*/
-void GaussSeg::GaussVertex(int iv){
+void GaussSeg::GaussVertex(int iv){/*{{{*/
 
 	/*in debugging mode: check that the default constructor has been called*/
@@ -130,6 +122,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussSeg::GaussNode{{{*/
-void GaussSeg::GaussNode(int finiteelement,int iv){
+void GaussSeg::GaussNode(int finiteelement,int iv){/*{{{*/
 
 	/*in debugging mode: check that the default constructor has been called*/
@@ -150,6 +141,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussSeg::begin{{{*/
-int GaussSeg::begin(void){
+int GaussSeg::begin(void){/*{{{*/
 
 	/*Check that this has been initialized*/
@@ -162,6 +152,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussSeg::end{{{*/
-int GaussSeg::end(void){
+int GaussSeg::end(void){/*{{{*/
 
 	/*Check that this has been initialized*/
@@ -174,6 +163,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussSeg::SynchronizeGaussBase{{{*/
-void GaussSeg::SynchronizeGaussBase(Gauss* gauss){
+void GaussSeg::SynchronizeGaussBase(Gauss* gauss){/*{{{*/
 
 	_error_("not supported");
Index: /issm/trunk-jpl/src/c/classes/gauss/GaussTetra.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/gauss/GaussTetra.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/gauss/GaussTetra.cpp	(revision 18064)
@@ -13,6 +13,5 @@
 
 /*GaussTetra constructors and destructors:*/
-/*FUNCTION GaussTetra::GaussTetra() {{{*/
-GaussTetra::GaussTetra(){
+GaussTetra::GaussTetra(){/*{{{*/
 
 	numgauss=-1;
@@ -31,6 +30,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTetra::GaussTetra(int order) {{{*/
-GaussTetra::GaussTetra(int order){
+GaussTetra::GaussTetra(int order){/*{{{*/
 
 	/*Get gauss points*/
@@ -58,6 +56,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTetra::GaussTetra(int index1,int index2,int index3,int order) {{{*/
-GaussTetra::GaussTetra(int index1,int index2,int index3,int order){
+GaussTetra::GaussTetra(int index1,int index2,int index3,int order){/*{{{*/
 
 	/*Basal Tria*/
@@ -87,6 +84,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTetra::~GaussTetra(){{{*/
-GaussTetra::~GaussTetra(){
+GaussTetra::~GaussTetra(){/*{{{*/
 	xDelete<IssmDouble>(weights);
 	xDelete<IssmDouble>(coords1);
@@ -98,6 +94,5 @@
 
 /*Methods*/
-/*FUNCTION GaussTetra::Echo{{{*/
-void GaussTetra::Echo(void){
+void GaussTetra::Echo(void){/*{{{*/
 
 	_printf_("GaussTetra:\n");
@@ -143,11 +138,9 @@
 }
 /*}}}*/
-/*FUNCTION GaussTetra::Enum{{{*/
-int GaussTetra::Enum(void){
+int GaussTetra::Enum(void){/*{{{*/
 	return GaussTetraEnum;
 }
 /*}}}*/
-/*FUNCTION GaussTetra::GaussPoint{{{*/
-void GaussTetra::GaussPoint(int ig){
+void GaussTetra::GaussPoint(int ig){/*{{{*/
 
 	/*Check input in debugging mode*/
@@ -163,6 +156,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTetra::GaussVertex{{{*/
-void GaussTetra::GaussVertex(int iv){
+void GaussTetra::GaussVertex(int iv){/*{{{*/
 
 	/*in debugging mode: check that the default constructor has been called*/
@@ -181,6 +173,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTetra::GaussNode{{{*/
-void GaussTetra::GaussNode(int finiteelement,int iv){
+void GaussTetra::GaussNode(int finiteelement,int iv){/*{{{*/
 
 	/*in debugging mode: check that the default constructor has been called*/
@@ -229,6 +220,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTetra::begin{{{*/
-int GaussTetra::begin(void){
+int GaussTetra::begin(void){/*{{{*/
 
 	/*Check that this has been initialized*/
@@ -244,6 +234,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTetra::end{{{*/
-int GaussTetra::end(void){
+int GaussTetra::end(void){/*{{{*/
 
 	/*Check that this has been initialized*/
@@ -259,6 +248,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTetra::SynchronizeGaussBase{{{*/
-void GaussTetra::SynchronizeGaussBase(Gauss* gauss){
+void GaussTetra::SynchronizeGaussBase(Gauss* gauss){/*{{{*/
 
 	_error_("not supported");
Index: /issm/trunk-jpl/src/c/classes/gauss/GaussTria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/gauss/GaussTria.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/gauss/GaussTria.cpp	(revision 18064)
@@ -7,6 +7,5 @@
 
 /*GaussTria constructors and destructors:*/
-/*FUNCTION GaussTria::GaussTria() {{{*/
-GaussTria::GaussTria(){
+GaussTria::GaussTria(){/*{{{*/
 
 	numgauss=-1;
@@ -23,6 +22,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTria::GaussTria(int order) {{{*/
-GaussTria::GaussTria(int order){
+GaussTria::GaussTria(int order){/*{{{*/
 
 	/*Get gauss points*/
@@ -37,6 +35,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTria::GaussTria(int index1,int index2,int order) {{{*/
-GaussTria::GaussTria(int index1,int index2,int order){
+GaussTria::GaussTria(int index1,int index2,int order){/*{{{*/
 
 	/*Intermediaties*/
@@ -100,6 +97,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTria::GaussTria(IssmDouble area_coordinates,int order) {{{*/
-GaussTria::GaussTria(IssmDouble area_coordinates[2][3],int order){
+GaussTria::GaussTria(IssmDouble area_coordinates[2][3],int order){/*{{{*/
 
 	/*Intermediaties*/
@@ -136,6 +132,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTria::GaussTria(int index,double r1,double r2,int order) {{{*/
-GaussTria::GaussTria(int index,IssmDouble r1,IssmDouble r2,bool mainlyfloating,int order){
+GaussTria::GaussTria(int index,IssmDouble r1,IssmDouble r2,bool mainlyfloating,int order){/*{{{*/
 
 	/*
@@ -292,6 +287,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTria::~GaussTria(){{{*/
-GaussTria::~GaussTria(){
+GaussTria::~GaussTria(){/*{{{*/
 	xDelete<IssmDouble>(weights);
 	xDelete<IssmDouble>(coords3);
@@ -303,6 +297,5 @@
 
 /*Methods*/
-/*FUNCTION GaussTria::Echo{{{*/
-void GaussTria::Echo(void){
+void GaussTria::Echo(void){/*{{{*/
 
 	_printf_("GaussTria:\n");
@@ -341,11 +334,9 @@
 }
 /*}}}*/
-/*FUNCTION GaussTria::Enum{{{*/
-int GaussTria::Enum(void){
+int GaussTria::Enum(void){/*{{{*/
 	return GaussTriaEnum;
 }
 /*}}}*/
-/*FUNCTION GaussTria::GaussEdgeCenter{{{*/
-void GaussTria::GaussEdgeCenter(int index1,int index2){
+void GaussTria::GaussEdgeCenter(int index1,int index2){/*{{{*/
 
 	int     index3;
@@ -377,6 +368,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTria::GaussPoint{{{*/
-void GaussTria::GaussPoint(int ig){
+void GaussTria::GaussPoint(int ig){/*{{{*/
 
 	/*Check input in debugging mode*/
@@ -391,6 +381,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTria::GaussFromCoords{{{*/
-void GaussTria::GaussFromCoords(IssmDouble x,IssmDouble y,IssmDouble* xyz_list){
+void GaussTria::GaussFromCoords(IssmDouble x,IssmDouble y,IssmDouble* xyz_list){/*{{{*/
 
 	/*Intermediaries*/
@@ -418,6 +407,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTria::GaussVertex{{{*/
-void GaussTria::GaussVertex(int iv){
+void GaussTria::GaussVertex(int iv){/*{{{*/
 
 	/*in debugging mode: check that the default constructor has been called*/
@@ -434,6 +422,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTria::GaussNode{{{*/
-void GaussTria::GaussNode(int finiteelement,int iv){
+void GaussTria::GaussNode(int finiteelement,int iv){/*{{{*/
 
 	/*in debugging mode: check that the default constructor has been called*/
@@ -481,6 +468,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTria::begin{{{*/
-int GaussTria::begin(void){
+int GaussTria::begin(void){/*{{{*/
 
 	/*Check that this has been initialized*/
@@ -495,6 +481,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTria::end{{{*/
-int GaussTria::end(void){
+int GaussTria::end(void){/*{{{*/
 
 	/*Check that this has been initialized*/
@@ -509,6 +494,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussTria::SynchronizeGaussBase{{{*/
-void GaussTria::SynchronizeGaussBase(Gauss* gauss){
+void GaussTria::SynchronizeGaussBase(Gauss* gauss){/*{{{*/
 
 	_error_("not supported");
Index: /issm/trunk-jpl/src/c/classes/kriging/ExponentialVariogram.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/ExponentialVariogram.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/kriging/ExponentialVariogram.cpp	(revision 18064)
@@ -13,6 +13,5 @@
 
 /*ExponentialVariogram constructors and destructor*/
-/*FUNCTION ExponentialVariogram::ExponentialVariogram(){{{*/
-ExponentialVariogram::ExponentialVariogram(){
+ExponentialVariogram::ExponentialVariogram(){/*{{{*/
 	this->nugget = 0.2;
 	this->sill   = 1;
@@ -21,6 +20,5 @@
 }
 /*}}}*/
-/*FUNCTION ExponentialVariogram::ExponentialVariogram(Options* options){{{*/
-ExponentialVariogram::ExponentialVariogram(Options* options){
+ExponentialVariogram::ExponentialVariogram(Options* options){/*{{{*/
 
 	/*Defaults*/
@@ -38,6 +36,5 @@
 }
 /*}}}*/
-/*FUNCTION ExponentialVariogram::~ExponentialVariogram(){{{*/
-ExponentialVariogram::~ExponentialVariogram(){
+ExponentialVariogram::~ExponentialVariogram(){/*{{{*/
 	return;
 }
@@ -45,6 +42,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION ExponentialVariogram::Echo {{{*/
-void ExponentialVariogram::Echo(void){
+void ExponentialVariogram::Echo(void){/*{{{*/
 	_printf_("ExponentialVariogram\n");
 	_printf_("   nugget: " << this->nugget << "\n");
@@ -55,6 +51,5 @@
 
 /*Variogram function*/
-/*FUNCTION ExponentialVariogram::Covariance{{{*/
-double ExponentialVariogram::Covariance(double deltax,double deltay){
+double ExponentialVariogram::Covariance(double deltax,double deltay){/*{{{*/
 	/*The covariance can be deduced from the variogram from the following
 	 * relationship:
@@ -76,6 +71,5 @@
 }
 /*}}}*/
-/*FUNCTION ExponentialVariogram::SemiVariogram{{{*/
-double ExponentialVariogram::SemiVariogram(double deltax,double deltay){
+double ExponentialVariogram::SemiVariogram(double deltax,double deltay){/*{{{*/
 	/*http://en.wikipedia.org/wiki/Variogram*/
 	double h,a,gamma;
Index: /issm/trunk-jpl/src/c/classes/kriging/GaussianVariogram.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/GaussianVariogram.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/kriging/GaussianVariogram.cpp	(revision 18064)
@@ -13,6 +13,5 @@
 
 /*GaussianVariogram constructors and destructor*/
-/*FUNCTION GaussianVariogram::GaussianVariogram(){{{*/
-GaussianVariogram::GaussianVariogram(){
+GaussianVariogram::GaussianVariogram(){/*{{{*/
 	this->nugget = 0.2;
 	this->sill   = 1;
@@ -21,6 +20,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussianVariogram::GaussianVariogram(Options* options){{{*/
-GaussianVariogram::GaussianVariogram(Options* options){
+GaussianVariogram::GaussianVariogram(Options* options){/*{{{*/
 
 	/*Defaults*/
@@ -38,6 +36,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussianVariogram::~GaussianVariogram(){{{*/
-GaussianVariogram::~GaussianVariogram(){
+GaussianVariogram::~GaussianVariogram(){/*{{{*/
 	return;
 }
@@ -45,6 +42,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION GaussianVariogram::Echo {{{*/
-void GaussianVariogram::Echo(void){
+void GaussianVariogram::Echo(void){/*{{{*/
 	_printf_("GaussianVariogram\n");
 	_printf_("   nugget: " << this->nugget << "\n");
@@ -55,6 +51,5 @@
 
 /*Variogram function*/
-/*FUNCTION GaussianVariogram::Covariance{{{*/
-double GaussianVariogram::Covariance(double deltax,double deltay){
+double GaussianVariogram::Covariance(double deltax,double deltay){/*{{{*/
 	/*The covariance can be deduced from the variogram from the following
 	 * relationship:
@@ -77,6 +72,5 @@
 }
 /*}}}*/
-/*FUNCTION GaussianVariogram::SemiVariogram{{{*/
-double GaussianVariogram::SemiVariogram(double deltax,double deltay){
+double GaussianVariogram::SemiVariogram(double deltax,double deltay){/*{{{*/
 	/*http://en.wikipedia.org/wiki/Variogram*/
 	double h2,a,gamma;
Index: /issm/trunk-jpl/src/c/classes/kriging/Observation.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/Observation.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/kriging/Observation.cpp	(revision 18064)
@@ -7,11 +7,9 @@
 
 /*Observation constructors and destructor*/
-/*FUNCTION Observation::Observation(){{{*/
-Observation::Observation(){
+Observation::Observation(){/*{{{*/
 	return;
 }
 /*}}}*/
-/*FUNCTION Observation::Observation(double x,double y,int xi,int yi,int index,double value){{{*/
-Observation::Observation(double x_in,double y_in,int xi_in,int yi_in,int index_in,double value_in){
+Observation::Observation(double x_in,double y_in,int xi_in,int yi_in,int index_in,double value_in){/*{{{*/
 
 	this->x      = x_in;
@@ -25,6 +23,5 @@
 }
 /*}}}*/
-/*FUNCTION Observation::~Observation(){{{*/
-Observation::~Observation(){
+Observation::~Observation(){/*{{{*/
 	return;
 }
@@ -32,6 +29,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION Observation::Echo {{{*/
-void Observation::Echo(void){
+void Observation::Echo(void){/*{{{*/
 
 	_printf_("Observation\n");
@@ -47,6 +43,5 @@
 
 /*Observations functions*/
-/*FUNCTION Observation::WriteXYObs(double* px,double* py,double* pobs){{{*/
-void Observation::WriteXYObs(double* px,double* py,double* pobs){
+void Observation::WriteXYObs(double* px,double* py,double* pobs){/*{{{*/
 	*px   = this->x;
 	*py   = this->y;
Index: /issm/trunk-jpl/src/c/classes/kriging/Observations.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/Observations.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/kriging/Observations.cpp	(revision 18064)
@@ -30,12 +30,10 @@
 
 /*Object constructors and destructor*/
-/*FUNCTION Observations::Observations(){{{*/
-Observations::Observations(){
+Observations::Observations(){/*{{{*/
 	this->quadtree = NULL;
 	return;
 }
 /*}}}*/
-/*FUNCTION Observations::Observations(IssmPDouble* observations_list,IssmPDouble* x,IssmPDouble* y,int n,Options* options){{{*/
-Observations::Observations(IssmPDouble* observations_list,IssmPDouble* x,IssmPDouble* y,int n,Options* options){
+Observations::Observations(IssmPDouble* observations_list,IssmPDouble* x,IssmPDouble* y,int n,Options* options){/*{{{*/
 
 	/*Intermediaries*/
@@ -112,6 +110,5 @@
 }
 /*}}}*/
-/*FUNCTION Observations::~Observations(){{{*/
-Observations::~Observations(){
+Observations::~Observations(){/*{{{*/
 	delete quadtree;
 	return;
@@ -120,6 +117,5 @@
 
 /*Methods*/
-/*FUNCTION Observations::ClosestObservation{{{*/
-void Observations::ClosestObservation(IssmPDouble *px,IssmPDouble *py,IssmPDouble *pobs,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius){
+void Observations::ClosestObservation(IssmPDouble *px,IssmPDouble *py,IssmPDouble *pobs,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius){/*{{{*/
 
 	/*Output and Intermediaries*/
@@ -172,6 +168,5 @@
 
 }/*}}}*/
-/*FUNCTION Observations::Distances{{{*/
-void Observations::Distances(IssmPDouble* distances,IssmPDouble *x,IssmPDouble *y,int n,IssmPDouble radius){
+void Observations::Distances(IssmPDouble* distances,IssmPDouble *x,IssmPDouble *y,int n,IssmPDouble radius){/*{{{*/
 
 	IssmPDouble xi,yi,obs;
@@ -187,6 +182,5 @@
 	}
 }/*}}}*/
-/*FUNCTION Observations::ObservationList(IssmPDouble **px,IssmPDouble **py,IssmPDouble **pobs,int* pnobs,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius,int maxdata){{{*/
-void Observations::ObservationList(IssmPDouble **px,IssmPDouble **py,IssmPDouble **pobs,int* pnobs,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius,int maxdata){
+void Observations::ObservationList(IssmPDouble **px,IssmPDouble **py,IssmPDouble **pobs,int* pnobs,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius,int maxdata){/*{{{*/
 
 	/*Output and Intermediaries*/
@@ -270,6 +264,5 @@
 	*pnobs=nobs;
 }/*}}}*/
-/*FUNCTION Observations::ObservationList(IssmPDouble **px,IssmPDouble **py,IssmPDouble **pobs,int* pnobs){{{*/
-void Observations::ObservationList(IssmPDouble **px,IssmPDouble **py,IssmPDouble **pobs,int* pnobs){
+void Observations::ObservationList(IssmPDouble **px,IssmPDouble **py,IssmPDouble **pobs,int* pnobs){/*{{{*/
 
 	/*Output and Intermediaries*/
@@ -298,6 +291,5 @@
 	*pnobs=nobs;
 }/*}}}*/
-/*FUNCTION Observations::InterpolationIDW{{{*/
-void Observations::InterpolationIDW(IssmPDouble *pprediction,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius,int mindata,int maxdata,IssmPDouble power){
+void Observations::InterpolationIDW(IssmPDouble *pprediction,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius,int mindata,int maxdata,IssmPDouble power){/*{{{*/
 
 	/*Intermediaries*/
@@ -347,6 +339,5 @@
 	xDelete<IssmPDouble>(obs);
 }/*}}}*/
-/*FUNCTION Observations::InterpolationKriging{{{*/
-void Observations::InterpolationKriging(IssmPDouble *pprediction,IssmPDouble *perror,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius,int mindata,int maxdata,Variogram* variogram){
+void Observations::InterpolationKriging(IssmPDouble *pprediction,IssmPDouble *perror,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius,int mindata,int maxdata,Variogram* variogram){/*{{{*/
 
 	/*Intermediaries*/
@@ -424,6 +415,5 @@
 
 }/*}}}*/
-/*FUNCTION Observations::InterpolationNearestNeighbor{{{*/
-void Observations::InterpolationNearestNeighbor(IssmPDouble *pprediction,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius){
+void Observations::InterpolationNearestNeighbor(IssmPDouble *pprediction,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius){/*{{{*/
 
 	/*Intermediaries*/
@@ -436,6 +426,5 @@
 	*pprediction = obs;
 }/*}}}*/
-/*FUNCTION Observations::InterpolationV4{{{*/
-void Observations::InterpolationV4(IssmPDouble *pprediction,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius,int mindata,int maxdata){
+void Observations::InterpolationV4(IssmPDouble *pprediction,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius,int mindata,int maxdata){/*{{{*/
 	/* Reference:  David T. Sandwell, Biharmonic spline interpolation of GEOS-3
 	 * and SEASAT altimeter data, Geophysical Research Letters, 2, 139-142,
@@ -519,6 +508,5 @@
 	xDelete<IssmPDouble>(weights);
 }/*}}}*/
-/*FUNCTION Observations::QuadtreeColoring{{{*/
-void Observations::QuadtreeColoring(IssmPDouble* A,IssmPDouble *x,IssmPDouble *y,int n){
+void Observations::QuadtreeColoring(IssmPDouble* A,IssmPDouble *x,IssmPDouble *y,int n){/*{{{*/
 
 	int xi,yi,level;
@@ -531,6 +519,5 @@
 
 }/*}}}*/
-/*FUNCTION Observations::Variomap{{{*/
-void Observations::Variomap(IssmPDouble* gamma,IssmPDouble *x,int n){
+void Observations::Variomap(IssmPDouble* gamma,IssmPDouble *x,int n){/*{{{*/
 
 	/*Output and Intermediaries*/
Index: /issm/trunk-jpl/src/c/classes/kriging/PowerVariogram.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/PowerVariogram.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/kriging/PowerVariogram.cpp	(revision 18064)
@@ -13,6 +13,5 @@
 
 /*PowerVariogram constructors and destructor*/
-/*FUNCTION PowerVariogram::PowerVariogram(){{{*/
-PowerVariogram::PowerVariogram(){
+PowerVariogram::PowerVariogram(){/*{{{*/
 	this->nugget = 0.2;
 	this->slope  = 1.;
@@ -21,6 +20,5 @@
 }
 /*}}}*/
-/*FUNCTION PowerVariogram::PowerVariogram(Options* options){{{*/
-PowerVariogram::PowerVariogram(Options* options){
+PowerVariogram::PowerVariogram(Options* options){/*{{{*/
 
 	/*Defaults*/
@@ -39,6 +37,5 @@
 }
 /*}}}*/
-/*FUNCTION PowerVariogram::~PowerVariogram(){{{*/
-PowerVariogram::~PowerVariogram(){
+PowerVariogram::~PowerVariogram(){/*{{{*/
 	return;
 }
@@ -46,6 +43,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION PowerVariogram::Echo {{{*/
-void PowerVariogram::Echo(void){
+void PowerVariogram::Echo(void){/*{{{*/
 	_printf_("PowerVariogram\n");
 	_printf_("   nugget: " << this->nugget << "\n");
@@ -56,6 +52,5 @@
 
 /*Variogram function*/
-/*FUNCTION PowerVariogram::Covariance{{{*/
-double PowerVariogram::Covariance(double deltax,double deltay){
+double PowerVariogram::Covariance(double deltax,double deltay){/*{{{*/
 	/*The covariance can be deduced from the variogram from the following
 	 * relationship:
@@ -74,6 +69,5 @@
 }
 /*}}}*/
-/*FUNCTION PowerVariogram::SemiVariogram{{{*/
-double PowerVariogram::SemiVariogram(double deltax,double deltay){
+double PowerVariogram::SemiVariogram(double deltax,double deltay){/*{{{*/
 	/*http://en.wikipedia.org/wiki/Variogram*/
 	double h,gamma;
Index: /issm/trunk-jpl/src/c/classes/kriging/Quadtree.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/Quadtree.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/kriging/Quadtree.cpp	(revision 18064)
@@ -81,12 +81,10 @@
 
 	/*Constructors/Destructors*/
-/*FUNCTION Quadtree::Quadtree(){{{*/
-Quadtree::Quadtree(){
+Quadtree::Quadtree(){/*{{{*/
 	_error_("Constructor not supported");
 
 }
 /*}}}*/
-/*FUNCTION Quadtree::Quadtree(double xmin,double xmax,double ymin,double ymax,int maxdepth){{{*/
-Quadtree::Quadtree(double xmin,double xmax,double ymin,double ymax,int maxdepth){
+Quadtree::Quadtree(double xmin,double xmax,double ymin,double ymax,int maxdepth){/*{{{*/
 
 	/*Intermediaries*/
@@ -106,6 +104,5 @@
 }
 /*}}}*/
-	/*FUNCTION Quadtree::~Quadtree(){{{*/
-	Quadtree::~Quadtree(){
+	Quadtree::~Quadtree(){/*{{{*/
 
 		delete boxcontainer;
@@ -116,6 +113,5 @@
 
 	/*Methods*/
-/*FUNCTION Quadtree::Add{{{*/
-void  Quadtree::Add(Observation* observation){
+void  Quadtree::Add(Observation* observation){/*{{{*/
 
 	/*Intermediaries*/
@@ -199,6 +195,5 @@
 
 }/*}}}*/
-/*FUNCTION Quadtree::AddAndAverage{{{*/
-void Quadtree::AddAndAverage(double x,double y,double value){
+void Quadtree::AddAndAverage(double x,double y,double value){/*{{{*/
 
 	QuadtreeBox **pbox = NULL;
@@ -248,6 +243,5 @@
 	}
 }/*}}}*/
-/*FUNCTION Quadtree::ClosestObs{{{*/
-void Quadtree::ClosestObs(int *pindex,double x,double y){
+void Quadtree::ClosestObs(int *pindex,double x,double y){/*{{{*/
 
 	QuadtreeBox **pbox = NULL;
@@ -288,6 +282,5 @@
 	*pindex=index;
 }/*}}}*/
-/*FUNCTION Quadtree::Echo{{{*/
-void  Quadtree::Echo(void){
+void  Quadtree::Echo(void){/*{{{*/
 
 	_printf_("Quadtree:\n");
@@ -298,6 +291,5 @@
 
 }/*}}}*/
-/*FUNCTION Quadtree::DeepEcho{{{*/
-void  Quadtree::DeepEcho(void){
+void  Quadtree::DeepEcho(void){/*{{{*/
 
 	_printf_("Quadtree:\n");
@@ -309,6 +301,5 @@
 
 }/*}}}*/
-/*FUNCTION Quadtree::IntergerCoordinates{{{*/
-void  Quadtree::IntergerCoordinates(int *xi,int *yi,double x,double y){
+void  Quadtree::IntergerCoordinates(int *xi,int *yi,double x,double y){/*{{{*/
 
 	/*Intermediaries*/
@@ -333,6 +324,5 @@
 	*yi=int(coefficient*(y - ymin));
 }/*}}}*/
-/*FUNCTION Quadtree::NewQuadtreeBox(double xcenter,double ycenter,double length){{{*/
-Quadtree::QuadtreeBox* Quadtree::NewQuadtreeBox(double xcenter,double ycenter,double length){
+Quadtree::QuadtreeBox* Quadtree::NewQuadtreeBox(double xcenter,double ycenter,double length){/*{{{*/
 
 	/*Output*/
@@ -357,6 +347,5 @@
 	return newbox;
 }/*}}}*/
-/*FUNCTION Quadtree::NewQuadtreeBox(QuadtreeBox* master,int index) {{{*/
-Quadtree::QuadtreeBox* Quadtree::NewQuadtreeBox(QuadtreeBox* master,int index){
+Quadtree::QuadtreeBox* Quadtree::NewQuadtreeBox(QuadtreeBox* master,int index){/*{{{*/
 
 	/*Output*/
@@ -402,6 +391,5 @@
 	return newbox;
 }/*}}}*/
-/*FUNCTION Quadtree::QuadtreeDepth{{{*/
-void Quadtree::QuadtreeDepth(int* A,int xi,int yi){
+void Quadtree::QuadtreeDepth(int* A,int xi,int yi){/*{{{*/
 
 	QuadtreeBox **pbox = NULL;
@@ -430,6 +418,5 @@
 	*A=level;
 }/*}}}*/
-/*FUNCTION Quadtree::QuadtreeDepth2{{{*/
-void Quadtree::QuadtreeDepth2(int* A,int xi,int yi){
+void Quadtree::QuadtreeDepth2(int* A,int xi,int yi){/*{{{*/
 
 	QuadtreeBox **pbox = NULL;
@@ -483,6 +470,5 @@
 	*A=level;
 }/*}}}*/
-/*FUNCTION Quadtree::RangeSearch{{{*/
-void Quadtree::RangeSearch(int **pindices,int *pnobs,double x,double y,double range){
+void Quadtree::RangeSearch(int **pindices,int *pnobs,double x,double y,double range){/*{{{*/
 
 	/*Intermediaries*/
@@ -503,6 +489,5 @@
 
 /*QuadtreeBox methos*/
-/*FUNCTION QuadtreeBox::Echo{{{*/
-void  Quadtree::QuadtreeBox::Echo(void){
+void  Quadtree::QuadtreeBox::Echo(void){/*{{{*/
 
 	_printf_("QuadtreeBox:\n");
@@ -513,6 +498,5 @@
 
 }/*}}}*/
-/*FUNCTION QuadtreeBox::IsWithinRange{{{*/
-int Quadtree::QuadtreeBox::IsWithinRange(double x,double y,double range){
+int Quadtree::QuadtreeBox::IsWithinRange(double x,double y,double range){/*{{{*/
 
 	/*Return 0 if the 2 boxes do not overlap*/
@@ -532,6 +516,5 @@
 
 }/*}}}*/
-/*FUNCTION QuadtreeBox::RangeSearch{{{*/
-void Quadtree::QuadtreeBox::RangeSearch(int* indices,int *pnobs,double x,double y,double range){
+void Quadtree::QuadtreeBox::RangeSearch(int* indices,int *pnobs,double x,double y,double range){/*{{{*/
 
 	/*Intermediaries*/
@@ -574,6 +557,5 @@
 	*pnobs=nobs;
 }/*}}}*/
-/*FUNCTION QuadtreeBox::WriteObservations{{{*/
-void Quadtree::QuadtreeBox::WriteObservations(int* indices,int *pnobs){
+void Quadtree::QuadtreeBox::WriteObservations(int* indices,int *pnobs){/*{{{*/
 
 	/*Intermediaries*/
Index: /issm/trunk-jpl/src/c/classes/kriging/SphericalVariogram.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/SphericalVariogram.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/kriging/SphericalVariogram.cpp	(revision 18064)
@@ -13,6 +13,5 @@
 
 /*SphericalVariogram constructors and destructor*/
-/*FUNCTION SphericalVariogram::SphericalVariogram(){{{*/
-SphericalVariogram::SphericalVariogram(){
+SphericalVariogram::SphericalVariogram(){/*{{{*/
 	this->nugget = 0.2;
 	this->sill   = 1;
@@ -21,6 +20,5 @@
 }
 /*}}}*/
-/*FUNCTION SphericalVariogram::SphericalVariogram(Options* options){{{*/
-SphericalVariogram::SphericalVariogram(Options* options){
+SphericalVariogram::SphericalVariogram(Options* options){/*{{{*/
 
 	/*Defaults*/
@@ -38,6 +36,5 @@
 }
 /*}}}*/
-/*FUNCTION SphericalVariogram::~SphericalVariogram(){{{*/
-SphericalVariogram::~SphericalVariogram(){
+SphericalVariogram::~SphericalVariogram(){/*{{{*/
 	return;
 }
@@ -45,6 +42,5 @@
 
 /*Object virtual functions definitions:*/
-/*FUNCTION SphericalVariogram::Echo {{{*/
-void SphericalVariogram::Echo(void){
+void SphericalVariogram::Echo(void){/*{{{*/
 	_printf_("SphericalVariogram\n");
 	_printf_("   nugget: " << this->nugget << "\n");
@@ -55,6 +51,5 @@
 
 /*Variogram function*/
-/*FUNCTION SphericalVariogram::Covariance{{{*/
-double SphericalVariogram::Covariance(double deltax,double deltay){
+double SphericalVariogram::Covariance(double deltax,double deltay){/*{{{*/
 	/*The covariance can be deduced from the variogram from the following
 	 * relationship:
@@ -76,6 +71,5 @@
 }
 /*}}}*/
-/*FUNCTION SphericalVariogram::SemiVariogram{{{*/
-double SphericalVariogram::SemiVariogram(double deltax,double deltay){
+double SphericalVariogram::SemiVariogram(double deltax,double deltay){/*{{{*/
 	/*http://en.wikipedia.org/wiki/Variogram*/
 	double h,gamma;
Index: /issm/trunk-jpl/src/c/classes/matrix/ElementMatrix.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/matrix/ElementMatrix.cpp	(revision 18063)
+++ /issm/trunk-jpl/src/c/classes/matrix/ElementMatrix.cpp	(revision 18064)
@@ -18,6 +18,5 @@
 
 /*ElementMatrix constructors and destructor*/
-/*FUNCTION ElementMatrix::ElementMatrix(){{{*/
-ElementMatrix::ElementMatrix(){
+ElementMatrix::ElementMatrix(){/*{{{*/
 
 	this->nrows=0;
@@ -42,6 +41,5 @@
 }
 /*}}}*/
-/*FUNCTION ElementMatrix::ElementMatrix(ElementMatrix* Ke){{{*/
-ElementMatrix::ElementMatrix(ElementMatrix* Ke){
+ElementMatrix::ElementMatrix(ElementMatrix* Ke){/*{{{*/
 
 	if(!Ke) _error_("Input Element Matrix is a NULL pointer");
@@ -50,6 +48,5 @@
 }
 /*}}}*/
-/*FUNCTION ElementMatrix::ElementMatrix(ElementMatrix* Ke1, ElementMatrix* Ke2){{{*/
-ElementMatrix::ElementMatrix(ElementMatrix* Ke1, ElementMatrix* Ke2){
+ElementMatrix::ElementMatrix(ElementMatrix* Ke1, ElementMatrix* Ke2){/*{{{*/
 
 	/*intermediaries*/
@@ -179,6 +176,5 @@
 }
 /*}}}*/
-/*FUNCTION ElementMatrix::ElementMatrix(ElementMatrix* Ke1, ElementMatrix* Ke2,ElementMatrix* Ke3){{{*/
-ElementMatrix::ElementMatrix(ElementMatrix* Ke1, ElementMatrix* Ke2,ElementMatrix* Ke3){
+ElementMatrix::ElementMatrix(ElementMatrix* Ke1, ElementMatrix* Ke2,ElementMatrix* Ke3){/*{{{*/
 
 	/*Concatenate all matrices*/
@@ -194,6 +190,5 @@
 }
 /*}}}*/
-/*FUNCTION ElementMatrix::ElementMatrix(Node** nodes,int numnodes,Parameters* parameters,int approximation){{{*/
-ElementMatrix::ElementMatrix(Node** nodes,int numnodes,Parameters* parameters,int approximation){
+ElementMatrix::ElementMatrix(Node** nodes,int numnodes,Parameters* parameters,int approximation){/*{{{*/
 
 	/*get Matrix size and properties*/
@@ -225,6 +220,5 @@
 }
 /*}}}*/
-/*FUNCTION ElementMatrix::~ElementMatrix(){{{*/
-ElementMatrix::~ElementMatrix(){
+ElementMatrix::~ElementMatrix(){/*{{{*/
 
 	xDelete<IssmDouble>(this->values);
@@ -242,6 +236,5 @@
 
 /*ElementMatrix specific routines: */
-/*FUNCTION ElementMatrix::AddToGlobal(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){{{*/
-void ElementMatrix::AddToGlobal(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){
+void ElementMatrix::AddToGlobal(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){/*{{{*/
 
 	int i,j;
@@ -300,6 +293,5 @@
 }
 /*}}}*/
-/*FUNCTION ElementMatrix::AddToGlobal(Matrix<IssmDouble>* Jff){{{*/
-void ElementMatrix::AddToGlobal(Matrix<IssmDouble>* Jff){
+void ElementMatrix::AddToGlobal(Matrix<IssmDouble>* Jff){/*{{{*/
 
 	int i,j;
@@ -337,6 +329,5 @@
 }
 /*}}}*/
-/*FUNCTION ElementMatrix::CheckConsistency{{{*/
-void ElementMatrix::CheckConsistency(void){
+void ElementMatrix::CheckConsistency(void){/*{{{*/
 	/*Check element matrix values, only in debugging mode*/
 	#ifdef _ISSM_DEBUG_ 
@@ -350,6 +341,5 @@
 }
 /*}}}*/
-/*FUNCTION ElementMatrix::Transpose{{{*/
-void ElementMatrix::Transpose(void){
+void ElementMatrix::Transpose(void){/*{{{*/
 
 	/*Intermediaries*/
@@ -373,6 +363,5 @@
 }
 /*}}}*/
-/*FUNCTION ElementMatrix::StaticCondensation{{{*/
-void ElementMatrix::StaticCondensation(int bsize,int* bindices){
+void ElementMatrix::StaticCondensation(int bsize,int* bindices){/*{{{*/
 	/* 
 	 * | Kii  Kib | | Ui |    |Fi|
@@ -477,6 +466,5 @@
 }
 /*}}}*/
-/*FUNCTION ElementMatrix::Echo{{{*/
-void ElementMatrix::Echo(void){
+void ElementMatrix::Echo(void){/*{{{*/
 
 	int i,j;
@@ -523,6 +511,5 @@
 }
 /*}}}*/
-/*FUNCTION ElementMatrix::Init{{{*/
-void ElementMatrix::Init(ElementMatrix* Ke){
+void ElementMatrix::Init(ElementMatrix* Ke){/*{{{*/
 
 	_assert_(Ke);
