Index: /issm/trunk-jpl/m4/analyses.m4
===================================================================
--- /issm/trunk-jpl/m4/analyses.m4	(revision 22910)
+++ /issm/trunk-jpl/m4/analyses.m4	(revision 22911)
@@ -10,913 +10,507 @@
 [
 
+dnl with-AdjointBalancethickness2{{{
+AC_ARG_WITH([AdjointBalancethickness2],
+	AS_HELP_STRING([--with-AdjointBalancethickness2 = YES], [compile with AdjointBalancethickness2 capabilities (default is yes)]),
+	[ADJOINTBALANCETHICKNESS2=$withval],[ADJOINTBALANCETHICKNESS2=yes])
+AC_MSG_CHECKING(for AdjointBalancethickness2 capability compilation)
+
+HAVE_ADJOINTBALANCETHICKNESS2=no 
+if test "x$ADJOINTBALANCETHICKNESS2" = "xyes"; then
+	HAVE_ADJOINTBALANCETHICKNESS2=yes
+	AC_DEFINE([_HAVE_ADJOINTBALANCETHICKNESS2_],[1],[with AdjointBalancethickness2 capability])
+fi
+AM_CONDITIONAL([ADJOINTBALANCETHICKNESS2], [test x$HAVE_ADJOINTBALANCETHICKNESS2 = xyes])
+AC_MSG_RESULT($HAVE_ADJOINTBALANCETHICKNESS2)
+dnl }}}
+dnl with-AdjointBalancethickness{{{
+AC_ARG_WITH([AdjointBalancethickness],
+	AS_HELP_STRING([--with-AdjointBalancethickness = YES], [compile with AdjointBalancethickness capabilities (default is yes)]),
+	[ADJOINTBALANCETHICKNESS=$withval],[ADJOINTBALANCETHICKNESS=yes])
+AC_MSG_CHECKING(for AdjointBalancethickness capability compilation)
+
+HAVE_ADJOINTBALANCETHICKNESS=no 
+if test "x$ADJOINTBALANCETHICKNESS" = "xyes"; then
+	HAVE_ADJOINTBALANCETHICKNESS=yes
+	AC_DEFINE([_HAVE_ADJOINTBALANCETHICKNESS_],[1],[with AdjointBalancethickness capability])
+fi
+AM_CONDITIONAL([ADJOINTBALANCETHICKNESS], [test x$HAVE_ADJOINTBALANCETHICKNESS = xyes])
+AC_MSG_RESULT($HAVE_ADJOINTBALANCETHICKNESS)
+dnl }}}
+dnl with-AdjointHoriz{{{
+AC_ARG_WITH([AdjointHoriz],
+	AS_HELP_STRING([--with-AdjointHoriz = YES], [compile with AdjointHoriz capabilities (default is yes)]),
+	[ADJOINTHORIZ=$withval],[ADJOINTHORIZ=yes])
+AC_MSG_CHECKING(for AdjointHoriz capability compilation)
+
+HAVE_ADJOINTHORIZ=no 
+if test "x$ADJOINTHORIZ" = "xyes"; then
+	HAVE_ADJOINTHORIZ=yes
+	AC_DEFINE([_HAVE_ADJOINTHORIZ_],[1],[with AdjointHoriz capability])
+fi
+AM_CONDITIONAL([ADJOINTHORIZ], [test x$HAVE_ADJOINTHORIZ = xyes])
+AC_MSG_RESULT($HAVE_ADJOINTHORIZ)
+dnl }}}
+dnl with-Balancethickness2{{{
+AC_ARG_WITH([Balancethickness2],
+	AS_HELP_STRING([--with-Balancethickness2 = YES], [compile with Balancethickness2 capabilities (default is yes)]),
+	[BALANCETHICKNESS2=$withval],[BALANCETHICKNESS2=yes])
+AC_MSG_CHECKING(for Balancethickness2 capability compilation)
+
+HAVE_BALANCETHICKNESS2=no 
+if test "x$BALANCETHICKNESS2" = "xyes"; then
+	HAVE_BALANCETHICKNESS2=yes
+	AC_DEFINE([_HAVE_BALANCETHICKNESS2_],[1],[with Balancethickness2 capability])
+fi
+AM_CONDITIONAL([BALANCETHICKNESS2], [test x$HAVE_BALANCETHICKNESS2 = xyes])
+AC_MSG_RESULT($HAVE_BALANCETHICKNESS2)
+dnl }}}
+dnl with-Balancethickness{{{
+AC_ARG_WITH([Balancethickness],
+	AS_HELP_STRING([--with-Balancethickness = YES], [compile with Balancethickness capabilities (default is yes)]),
+	[BALANCETHICKNESS=$withval],[BALANCETHICKNESS=yes])
+AC_MSG_CHECKING(for Balancethickness capability compilation)
+
+HAVE_BALANCETHICKNESS=no 
+if test "x$BALANCETHICKNESS" = "xyes"; then
+	HAVE_BALANCETHICKNESS=yes
+	AC_DEFINE([_HAVE_BALANCETHICKNESS_],[1],[with Balancethickness capability])
+fi
+AM_CONDITIONAL([BALANCETHICKNESS], [test x$HAVE_BALANCETHICKNESS = xyes])
+AC_MSG_RESULT($HAVE_BALANCETHICKNESS)
+dnl }}}
+dnl with-BalancethicknessSoft{{{
+AC_ARG_WITH([BalancethicknessSoft],
+	AS_HELP_STRING([--with-BalancethicknessSoft = YES], [compile with BalancethicknessSoft capabilities (default is yes)]),
+	[BALANCETHICKNESSSOFT=$withval],[BALANCETHICKNESSSOFT=yes])
+AC_MSG_CHECKING(for BalancethicknessSoft capability compilation)
+
+HAVE_BALANCETHICKNESSSOFT=no 
+if test "x$BALANCETHICKNESSSOFT" = "xyes"; then
+	HAVE_BALANCETHICKNESSSOFT=yes
+	AC_DEFINE([_HAVE_BALANCETHICKNESSSOFT_],[1],[with BalancethicknessSoft capability])
+fi
+AM_CONDITIONAL([BALANCETHICKNESSSOFT], [test x$HAVE_BALANCETHICKNESSSOFT = xyes])
+AC_MSG_RESULT($HAVE_BALANCETHICKNESSSOFT)
+dnl }}}
+dnl with-Balancevelocity{{{
+AC_ARG_WITH([Balancevelocity],
+	AS_HELP_STRING([--with-Balancevelocity = YES], [compile with Balancevelocity capabilities (default is yes)]),
+	[BALANCEVELOCITY=$withval],[BALANCEVELOCITY=yes])
+AC_MSG_CHECKING(for Balancevelocity capability compilation)
+
+HAVE_BALANCEVELOCITY=no 
+if test "x$BALANCEVELOCITY" = "xyes"; then
+	HAVE_BALANCEVELOCITY=yes
+	AC_DEFINE([_HAVE_BALANCEVELOCITY_],[1],[with Balancevelocity capability])
+fi
+AM_CONDITIONAL([BALANCEVELOCITY], [test x$HAVE_BALANCEVELOCITY = xyes])
+AC_MSG_RESULT($HAVE_BALANCEVELOCITY)
+dnl }}}
+dnl with-DamageEvolution{{{
+AC_ARG_WITH([DamageEvolution],
+	AS_HELP_STRING([--with-DamageEvolution = YES], [compile with DamageEvolution capabilities (default is yes)]),
+	[DAMAGEEVOLUTION=$withval],[DAMAGEEVOLUTION=yes])
+AC_MSG_CHECKING(for DamageEvolution capability compilation)
+
+HAVE_DAMAGEEVOLUTION=no 
+if test "x$DAMAGEEVOLUTION" = "xyes"; then
+	HAVE_DAMAGEEVOLUTION=yes
+	AC_DEFINE([_HAVE_DAMAGEEVOLUTION_],[1],[with DamageEvolution capability])
+fi
+AM_CONDITIONAL([DAMAGEEVOLUTION], [test x$HAVE_DAMAGEEVOLUTION = xyes])
+AC_MSG_RESULT($HAVE_DAMAGEEVOLUTION)
+dnl }}}
+dnl with-DepthAverage{{{
+AC_ARG_WITH([DepthAverage],
+	AS_HELP_STRING([--with-DepthAverage = YES], [compile with DepthAverage capabilities (default is yes)]),
+	[DEPTHAVERAGE=$withval],[DEPTHAVERAGE=yes])
+AC_MSG_CHECKING(for DepthAverage capability compilation)
+
+HAVE_DEPTHAVERAGE=no 
+if test "x$DEPTHAVERAGE" = "xyes"; then
+	HAVE_DEPTHAVERAGE=yes
+	AC_DEFINE([_HAVE_DEPTHAVERAGE_],[1],[with DepthAverage capability])
+fi
+AM_CONDITIONAL([DEPTHAVERAGE], [test x$HAVE_DEPTHAVERAGE = xyes])
+AC_MSG_RESULT($HAVE_DEPTHAVERAGE)
+dnl }}}
+dnl with-Enthalpy{{{
+AC_ARG_WITH([Enthalpy],
+	AS_HELP_STRING([--with-Enthalpy = YES], [compile with Enthalpy capabilities (default is yes)]),
+	[ENTHALPY=$withval],[ENTHALPY=yes])
+AC_MSG_CHECKING(for Enthalpy capability compilation)
+
+HAVE_ENTHALPY=no 
+if test "x$ENTHALPY" = "xyes"; then
+	HAVE_ENTHALPY=yes
+	AC_DEFINE([_HAVE_ENTHALPY_],[1],[with Enthalpy capability])
+fi
+AM_CONDITIONAL([ENTHALPY], [test x$HAVE_ENTHALPY = xyes])
+AC_MSG_RESULT($HAVE_ENTHALPY)
+dnl }}}
+dnl with-Esa{{{
+AC_ARG_WITH([Esa],
+	AS_HELP_STRING([--with-Esa = YES], [compile with Esa capabilities (default is yes)]),
+	[ESA=$withval],[ESA=yes])
+AC_MSG_CHECKING(for Esa capability compilation)
+
+HAVE_ESA=no 
+if test "x$ESA" = "xyes"; then
+	HAVE_ESA=yes
+	AC_DEFINE([_HAVE_ESA_],[1],[with Esa capability])
+fi
+AM_CONDITIONAL([ESA], [test x$HAVE_ESA = xyes])
+AC_MSG_RESULT($HAVE_ESA)
+dnl }}}
+dnl with-Extrapolation{{{
+AC_ARG_WITH([Extrapolation],
+	AS_HELP_STRING([--with-Extrapolation = YES], [compile with Extrapolation capabilities (default is yes)]),
+	[EXTRAPOLATION=$withval],[EXTRAPOLATION=yes])
+AC_MSG_CHECKING(for Extrapolation capability compilation)
+
+HAVE_EXTRAPOLATION=no 
+if test "x$EXTRAPOLATION" = "xyes"; then
+	HAVE_EXTRAPOLATION=yes
+	AC_DEFINE([_HAVE_EXTRAPOLATION_],[1],[with Extrapolation capability])
+fi
+AM_CONDITIONAL([EXTRAPOLATION], [test x$HAVE_EXTRAPOLATION = xyes])
+AC_MSG_RESULT($HAVE_EXTRAPOLATION)
+dnl }}}
+dnl with-ExtrudeFromBase{{{
+AC_ARG_WITH([ExtrudeFromBase],
+	AS_HELP_STRING([--with-ExtrudeFromBase = YES], [compile with ExtrudeFromBase capabilities (default is yes)]),
+	[EXTRUDEFROMBASE=$withval],[EXTRUDEFROMBASE=yes])
+AC_MSG_CHECKING(for ExtrudeFromBase capability compilation)
+
+HAVE_EXTRUDEFROMBASE=no 
+if test "x$EXTRUDEFROMBASE" = "xyes"; then
+	HAVE_EXTRUDEFROMBASE=yes
+	AC_DEFINE([_HAVE_EXTRUDEFROMBASE_],[1],[with ExtrudeFromBase capability])
+fi
+AM_CONDITIONAL([EXTRUDEFROMBASE], [test x$HAVE_EXTRUDEFROMBASE = xyes])
+AC_MSG_RESULT($HAVE_EXTRUDEFROMBASE)
+dnl }}}
+dnl with-ExtrudeFromTop{{{
+AC_ARG_WITH([ExtrudeFromTop],
+	AS_HELP_STRING([--with-ExtrudeFromTop = YES], [compile with ExtrudeFromTop capabilities (default is yes)]),
+	[EXTRUDEFROMTOP=$withval],[EXTRUDEFROMTOP=yes])
+AC_MSG_CHECKING(for ExtrudeFromTop capability compilation)
+
+HAVE_EXTRUDEFROMTOP=no 
+if test "x$EXTRUDEFROMTOP" = "xyes"; then
+	HAVE_EXTRUDEFROMTOP=yes
+	AC_DEFINE([_HAVE_EXTRUDEFROMTOP_],[1],[with ExtrudeFromTop capability])
+fi
+AM_CONDITIONAL([EXTRUDEFROMTOP], [test x$HAVE_EXTRUDEFROMTOP = xyes])
+AC_MSG_RESULT($HAVE_EXTRUDEFROMTOP)
+dnl }}}
+dnl with-FreeSurfaceBase{{{
+AC_ARG_WITH([FreeSurfaceBase],
+	AS_HELP_STRING([--with-FreeSurfaceBase = YES], [compile with FreeSurfaceBase capabilities (default is yes)]),
+	[FREESURFACEBASE=$withval],[FREESURFACEBASE=yes])
+AC_MSG_CHECKING(for FreeSurfaceBase capability compilation)
+
+HAVE_FREESURFACEBASE=no 
+if test "x$FREESURFACEBASE" = "xyes"; then
+	HAVE_FREESURFACEBASE=yes
+	AC_DEFINE([_HAVE_FREESURFACEBASE_],[1],[with FreeSurfaceBase capability])
+fi
+AM_CONDITIONAL([FREESURFACEBASE], [test x$HAVE_FREESURFACEBASE = xyes])
+AC_MSG_RESULT($HAVE_FREESURFACEBASE)
+dnl }}}
+dnl with-FreeSurfaceTop{{{
+AC_ARG_WITH([FreeSurfaceTop],
+	AS_HELP_STRING([--with-FreeSurfaceTop = YES], [compile with FreeSurfaceTop capabilities (default is yes)]),
+	[FREESURFACETOP=$withval],[FREESURFACETOP=yes])
+AC_MSG_CHECKING(for FreeSurfaceTop capability compilation)
+
+HAVE_FREESURFACETOP=no 
+if test "x$FREESURFACETOP" = "xyes"; then
+	HAVE_FREESURFACETOP=yes
+	AC_DEFINE([_HAVE_FREESURFACETOP_],[1],[with FreeSurfaceTop capability])
+fi
+AM_CONDITIONAL([FREESURFACETOP], [test x$HAVE_FREESURFACETOP = xyes])
+AC_MSG_RESULT($HAVE_FREESURFACETOP)
+dnl }}}
+dnl with-GLheightadvection{{{
+AC_ARG_WITH([GLheightadvection],
+	AS_HELP_STRING([--with-GLheightadvection = YES], [compile with GLheightadvection capabilities (default is yes)]),
+	[GLHEIGHTADVECTION=$withval],[GLHEIGHTADVECTION=yes])
+AC_MSG_CHECKING(for GLheightadvection capability compilation)
+
+HAVE_GLHEIGHTADVECTION=no 
+if test "x$GLHEIGHTADVECTION" = "xyes"; then
+	HAVE_GLHEIGHTADVECTION=yes
+	AC_DEFINE([_HAVE_GLHEIGHTADVECTION_],[1],[with GLheightadvection capability])
+fi
+AM_CONDITIONAL([GLHEIGHTADVECTION], [test x$HAVE_GLHEIGHTADVECTION = xyes])
+AC_MSG_RESULT($HAVE_GLHEIGHTADVECTION)
+dnl }}}
+dnl with-GiaIvins{{{
+AC_ARG_WITH([GiaIvins],
+	AS_HELP_STRING([--with-GiaIvins = YES], [compile with GiaIvins capabilities (default is yes)]),
+	[GIAIVINS=$withval],[GIAIVINS=yes])
+AC_MSG_CHECKING(for GiaIvins capability compilation)
+
+HAVE_GIAIVINS=no 
+if test "x$GIAIVINS" = "xyes"; then
+	HAVE_GIAIVINS=yes
+	AC_DEFINE([_HAVE_GIAIVINS_],[1],[with GiaIvins capability])
+fi
+AM_CONDITIONAL([GIAIVINS], [test x$HAVE_GIAIVINS = xyes])
+AC_MSG_RESULT($HAVE_GIAIVINS)
+dnl }}}
+dnl with-HydrologyDCEfficient{{{
+AC_ARG_WITH([HydrologyDCEfficient],
+	AS_HELP_STRING([--with-HydrologyDCEfficient = YES], [compile with HydrologyDCEfficient capabilities (default is yes)]),
+	[HYDROLOGYDCEFFICIENT=$withval],[HYDROLOGYDCEFFICIENT=yes])
+AC_MSG_CHECKING(for HydrologyDCEfficient capability compilation)
+
+HAVE_HYDROLOGYDCEFFICIENT=no 
+if test "x$HYDROLOGYDCEFFICIENT" = "xyes"; then
+	HAVE_HYDROLOGYDCEFFICIENT=yes
+	AC_DEFINE([_HAVE_HYDROLOGYDCEFFICIENT_],[1],[with HydrologyDCEfficient capability])
+fi
+AM_CONDITIONAL([HYDROLOGYDCEFFICIENT], [test x$HAVE_HYDROLOGYDCEFFICIENT = xyes])
+AC_MSG_RESULT($HAVE_HYDROLOGYDCEFFICIENT)
+dnl }}}
+dnl with-HydrologyDCInefficient{{{
+AC_ARG_WITH([HydrologyDCInefficient],
+	AS_HELP_STRING([--with-HydrologyDCInefficient = YES], [compile with HydrologyDCInefficient capabilities (default is yes)]),
+	[HYDROLOGYDCINEFFICIENT=$withval],[HYDROLOGYDCINEFFICIENT=yes])
+AC_MSG_CHECKING(for HydrologyDCInefficient capability compilation)
+
+HAVE_HYDROLOGYDCINEFFICIENT=no 
+if test "x$HYDROLOGYDCINEFFICIENT" = "xyes"; then
+	HAVE_HYDROLOGYDCINEFFICIENT=yes
+	AC_DEFINE([_HAVE_HYDROLOGYDCINEFFICIENT_],[1],[with HydrologyDCInefficient capability])
+fi
+AM_CONDITIONAL([HYDROLOGYDCINEFFICIENT], [test x$HAVE_HYDROLOGYDCINEFFICIENT = xyes])
+AC_MSG_RESULT($HAVE_HYDROLOGYDCINEFFICIENT)
+dnl }}}
+dnl with-HydrologyShreve{{{
+AC_ARG_WITH([HydrologyShreve],
+	AS_HELP_STRING([--with-HydrologyShreve = YES], [compile with HydrologyShreve capabilities (default is yes)]),
+	[HYDROLOGYSHREVE=$withval],[HYDROLOGYSHREVE=yes])
+AC_MSG_CHECKING(for HydrologyShreve capability compilation)
+
+HAVE_HYDROLOGYSHREVE=no 
+if test "x$HYDROLOGYSHREVE" = "xyes"; then
+	HAVE_HYDROLOGYSHREVE=yes
+	AC_DEFINE([_HAVE_HYDROLOGYSHREVE_],[1],[with HydrologyShreve capability])
+fi
+AM_CONDITIONAL([HYDROLOGYSHREVE], [test x$HAVE_HYDROLOGYSHREVE = xyes])
+AC_MSG_RESULT($HAVE_HYDROLOGYSHREVE)
+dnl }}}
+dnl with-HydrologySommers{{{
+AC_ARG_WITH([HydrologySommers],
+	AS_HELP_STRING([--with-HydrologySommers = YES], [compile with HydrologySommers capabilities (default is yes)]),
+	[HYDROLOGYSOMMERS=$withval],[HYDROLOGYSOMMERS=yes])
+AC_MSG_CHECKING(for HydrologySommers capability compilation)
+
+HAVE_HYDROLOGYSOMMERS=no 
+if test "x$HYDROLOGYSOMMERS" = "xyes"; then
+	HAVE_HYDROLOGYSOMMERS=yes
+	AC_DEFINE([_HAVE_HYDROLOGYSOMMERS_],[1],[with HydrologySommers capability])
+fi
+AM_CONDITIONAL([HYDROLOGYSOMMERS], [test x$HAVE_HYDROLOGYSOMMERS = xyes])
+AC_MSG_RESULT($HAVE_HYDROLOGYSOMMERS)
+dnl }}}
+dnl with-L2ProjectionBase{{{
+AC_ARG_WITH([L2ProjectionBase],
+	AS_HELP_STRING([--with-L2ProjectionBase = YES], [compile with L2ProjectionBase capabilities (default is yes)]),
+	[L2PROJECTIONBASE=$withval],[L2PROJECTIONBASE=yes])
+AC_MSG_CHECKING(for L2ProjectionBase capability compilation)
+
+HAVE_L2PROJECTIONBASE=no 
+if test "x$L2PROJECTIONBASE" = "xyes"; then
+	HAVE_L2PROJECTIONBASE=yes
+	AC_DEFINE([_HAVE_L2PROJECTIONBASE_],[1],[with L2ProjectionBase capability])
+fi
+AM_CONDITIONAL([L2PROJECTIONBASE], [test x$HAVE_L2PROJECTIONBASE = xyes])
+AC_MSG_RESULT($HAVE_L2PROJECTIONBASE)
+dnl }}}
+dnl with-L2ProjectionEPL{{{
+AC_ARG_WITH([L2ProjectionEPL],
+	AS_HELP_STRING([--with-L2ProjectionEPL = YES], [compile with L2ProjectionEPL capabilities (default is yes)]),
+	[L2PROJECTIONEPL=$withval],[L2PROJECTIONEPL=yes])
+AC_MSG_CHECKING(for L2ProjectionEPL capability compilation)
+
+HAVE_L2PROJECTIONEPL=no 
+if test "x$L2PROJECTIONEPL" = "xyes"; then
+	HAVE_L2PROJECTIONEPL=yes
+	AC_DEFINE([_HAVE_L2PROJECTIONEPL_],[1],[with L2ProjectionEPL capability])
+fi
+AM_CONDITIONAL([L2PROJECTIONEPL], [test x$HAVE_L2PROJECTIONEPL = xyes])
+AC_MSG_RESULT($HAVE_L2PROJECTIONEPL)
+dnl }}}
+dnl with-Levelset{{{
+AC_ARG_WITH([Levelset],
+	AS_HELP_STRING([--with-Levelset = YES], [compile with Levelset capabilities (default is yes)]),
+	[LEVELSET=$withval],[LEVELSET=yes])
+AC_MSG_CHECKING(for Levelset capability compilation)
+
+HAVE_LEVELSET=no 
+if test "x$LEVELSET" = "xyes"; then
+	HAVE_LEVELSET=yes
+	AC_DEFINE([_HAVE_LEVELSET_],[1],[with Levelset capability])
+fi
+AM_CONDITIONAL([LEVELSET], [test x$HAVE_LEVELSET = xyes])
+AC_MSG_RESULT($HAVE_LEVELSET)
+dnl }}}
+dnl with-Love{{{
+AC_ARG_WITH([Love],
+	AS_HELP_STRING([--with-Love = YES], [compile with Love capabilities (default is yes)]),
+	[LOVE=$withval],[LOVE=yes])
+AC_MSG_CHECKING(for Love capability compilation)
+
+HAVE_LOVE=no 
+if test "x$LOVE" = "xyes"; then
+	HAVE_LOVE=yes
+	AC_DEFINE([_HAVE_LOVE_],[1],[with Love capability])
+fi
+AM_CONDITIONAL([LOVE], [test x$HAVE_LOVE = xyes])
+AC_MSG_RESULT($HAVE_LOVE)
+dnl }}}
+dnl with-Masstransport{{{
+AC_ARG_WITH([Masstransport],
+	AS_HELP_STRING([--with-Masstransport = YES], [compile with Masstransport capabilities (default is yes)]),
+	[MASSTRANSPORT=$withval],[MASSTRANSPORT=yes])
+AC_MSG_CHECKING(for Masstransport capability compilation)
+
+HAVE_MASSTRANSPORT=no 
+if test "x$MASSTRANSPORT" = "xyes"; then
+	HAVE_MASSTRANSPORT=yes
+	AC_DEFINE([_HAVE_MASSTRANSPORT_],[1],[with Masstransport capability])
+fi
+AM_CONDITIONAL([MASSTRANSPORT], [test x$HAVE_MASSTRANSPORT = xyes])
+AC_MSG_RESULT($HAVE_MASSTRANSPORT)
+dnl }}}
+dnl with-Melting{{{
+AC_ARG_WITH([Melting],
+	AS_HELP_STRING([--with-Melting = YES], [compile with Melting capabilities (default is yes)]),
+	[MELTING=$withval],[MELTING=yes])
+AC_MSG_CHECKING(for Melting capability compilation)
+
+HAVE_MELTING=no 
+if test "x$MELTING" = "xyes"; then
+	HAVE_MELTING=yes
+	AC_DEFINE([_HAVE_MELTING_],[1],[with Melting capability])
+fi
+AM_CONDITIONAL([MELTING], [test x$HAVE_MELTING = xyes])
+AC_MSG_RESULT($HAVE_MELTING)
+dnl }}}
+dnl with-Sealevelrise{{{
+AC_ARG_WITH([Sealevelrise],
+	AS_HELP_STRING([--with-Sealevelrise = YES], [compile with Sealevelrise capabilities (default is yes)]),
+	[SEALEVELRISE=$withval],[SEALEVELRISE=yes])
+AC_MSG_CHECKING(for Sealevelrise capability compilation)
+
+HAVE_SEALEVELRISE=no 
+if test "x$SEALEVELRISE" = "xyes"; then
+	HAVE_SEALEVELRISE=yes
+	AC_DEFINE([_HAVE_SEALEVELRISE_],[1],[with Sealevelrise capability])
+fi
+AM_CONDITIONAL([SEALEVELRISE], [test x$HAVE_SEALEVELRISE = xyes])
+AC_MSG_RESULT($HAVE_SEALEVELRISE)
+dnl }}}
 dnl with-Smb{{{
-
 AC_ARG_WITH([Smb],
-
 	AS_HELP_STRING([--with-Smb = YES], [compile with Smb capabilities (default is yes)]),
-
 	[SMB=$withval],[SMB=yes])
-
 AC_MSG_CHECKING(for Smb capability compilation)
 
-
 HAVE_SMB=no 
-
 if test "x$SMB" = "xyes"; then
-
 	HAVE_SMB=yes
-
 	AC_DEFINE([_HAVE_SMB_],[1],[with Smb capability])
-
-fi
-
+fi
 AM_CONDITIONAL([SMB], [test x$HAVE_SMB = xyes])
-
 AC_MSG_RESULT($HAVE_SMB)
-
-dnl }}}
-dnl with-AdjointBalancethickness{{{
-
-AC_ARG_WITH([AdjointBalancethickness],
-
-	AS_HELP_STRING([--with-AdjointBalancethickness = YES], [compile with AdjointBalancethickness capabilities (default is yes)]),
-
-	[ADJOINTBALANCETHICKNESS=$withval],[ADJOINTBALANCETHICKNESS=yes])
-
-AC_MSG_CHECKING(for AdjointBalancethickness capability compilation)
-
-
-HAVE_ADJOINTBALANCETHICKNESS=no 
-
-if test "x$ADJOINTBALANCETHICKNESS" = "xyes"; then
-
-	HAVE_ADJOINTBALANCETHICKNESS=yes
-
-	AC_DEFINE([_HAVE_ADJOINTBALANCETHICKNESS_],[1],[with AdjointBalancethickness capability])
-
-fi
-
-AM_CONDITIONAL([ADJOINTBALANCETHICKNESS], [test x$HAVE_ADJOINTBALANCETHICKNESS = xyes])
-
-AC_MSG_RESULT($HAVE_ADJOINTBALANCETHICKNESS)
-
-dnl }}}
-dnl with-AdjointBalancethickness2{{{
-
-AC_ARG_WITH([AdjointBalancethickness2],
-
-	AS_HELP_STRING([--with-AdjointBalancethickness2 = YES], [compile with AdjointBalancethickness2 capabilities (default is yes)]),
-
-	[ADJOINTBALANCETHICKNESS2=$withval],[ADJOINTBALANCETHICKNESS2=yes])
-
-AC_MSG_CHECKING(for AdjointBalancethickness2 capability compilation)
-
-
-HAVE_ADJOINTBALANCETHICKNESS2=no 
-
-if test "x$ADJOINTBALANCETHICKNESS2" = "xyes"; then
-
-	HAVE_ADJOINTBALANCETHICKNESS2=yes
-
-	AC_DEFINE([_HAVE_ADJOINTBALANCETHICKNESS2_],[1],[with AdjointBalancethickness2 capability])
-
-fi
-
-AM_CONDITIONAL([ADJOINTBALANCETHICKNESS2], [test x$HAVE_ADJOINTBALANCETHICKNESS2 = xyes])
-
-AC_MSG_RESULT($HAVE_ADJOINTBALANCETHICKNESS2)
-
-dnl }}}
-dnl with-AdjointHoriz{{{
-
-AC_ARG_WITH([AdjointHoriz],
-
-	AS_HELP_STRING([--with-AdjointHoriz = YES], [compile with AdjointHoriz capabilities (default is yes)]),
-
-	[ADJOINTHORIZ=$withval],[ADJOINTHORIZ=yes])
-
-AC_MSG_CHECKING(for AdjointHoriz capability compilation)
-
-
-HAVE_ADJOINTHORIZ=no 
-
-if test "x$ADJOINTHORIZ" = "xyes"; then
-
-	HAVE_ADJOINTHORIZ=yes
-
-	AC_DEFINE([_HAVE_ADJOINTHORIZ_],[1],[with AdjointHoriz capability])
-
-fi
-
-AM_CONDITIONAL([ADJOINTHORIZ], [test x$HAVE_ADJOINTHORIZ = xyes])
-
-AC_MSG_RESULT($HAVE_ADJOINTHORIZ)
-
-dnl }}}
-dnl with-Balancethickness{{{
-
-AC_ARG_WITH([Balancethickness],
-
-	AS_HELP_STRING([--with-Balancethickness = YES], [compile with Balancethickness capabilities (default is yes)]),
-
-	[BALANCETHICKNESS=$withval],[BALANCETHICKNESS=yes])
-
-AC_MSG_CHECKING(for Balancethickness capability compilation)
-
-
-HAVE_BALANCETHICKNESS=no 
-
-if test "x$BALANCETHICKNESS" = "xyes"; then
-
-	HAVE_BALANCETHICKNESS=yes
-
-	AC_DEFINE([_HAVE_BALANCETHICKNESS_],[1],[with Balancethickness capability])
-
-fi
-
-AM_CONDITIONAL([BALANCETHICKNESS], [test x$HAVE_BALANCETHICKNESS = xyes])
-
-AC_MSG_RESULT($HAVE_BALANCETHICKNESS)
-
-dnl }}}
-dnl with-Balancethickness2{{{
-
-AC_ARG_WITH([Balancethickness2],
-
-	AS_HELP_STRING([--with-Balancethickness2 = YES], [compile with Balancethickness2 capabilities (default is yes)]),
-
-	[BALANCETHICKNESS2=$withval],[BALANCETHICKNESS2=yes])
-
-AC_MSG_CHECKING(for Balancethickness2 capability compilation)
-
-
-HAVE_BALANCETHICKNESS2=no 
-
-if test "x$BALANCETHICKNESS2" = "xyes"; then
-
-	HAVE_BALANCETHICKNESS2=yes
-
-	AC_DEFINE([_HAVE_BALANCETHICKNESS2_],[1],[with Balancethickness2 capability])
-
-fi
-
-AM_CONDITIONAL([BALANCETHICKNESS2], [test x$HAVE_BALANCETHICKNESS2 = xyes])
-
-AC_MSG_RESULT($HAVE_BALANCETHICKNESS2)
-
-dnl }}}
-dnl with-BalancethicknessSoft{{{
-
-AC_ARG_WITH([BalancethicknessSoft],
-
-	AS_HELP_STRING([--with-BalancethicknessSoft = YES], [compile with BalancethicknessSoft capabilities (default is yes)]),
-
-	[BALANCETHICKNESSSOFT=$withval],[BALANCETHICKNESSSOFT=yes])
-
-AC_MSG_CHECKING(for BalancethicknessSoft capability compilation)
-
-
-HAVE_BALANCETHICKNESSSOFT=no 
-
-if test "x$BALANCETHICKNESSSOFT" = "xyes"; then
-
-	HAVE_BALANCETHICKNESSSOFT=yes
-
-	AC_DEFINE([_HAVE_BALANCETHICKNESSSOFT_],[1],[with BalancethicknessSoft capability])
-
-fi
-
-AM_CONDITIONAL([BALANCETHICKNESSSOFT], [test x$HAVE_BALANCETHICKNESSSOFT = xyes])
-
-AC_MSG_RESULT($HAVE_BALANCETHICKNESSSOFT)
-
-dnl }}}
-dnl with-Balancevelocity{{{
-
-AC_ARG_WITH([Balancevelocity],
-
-	AS_HELP_STRING([--with-Balancevelocity = YES], [compile with Balancevelocity capabilities (default is yes)]),
-
-	[BALANCEVELOCITY=$withval],[BALANCEVELOCITY=yes])
-
-AC_MSG_CHECKING(for Balancevelocity capability compilation)
-
-
-HAVE_BALANCEVELOCITY=no 
-
-if test "x$BALANCEVELOCITY" = "xyes"; then
-
-	HAVE_BALANCEVELOCITY=yes
-
-	AC_DEFINE([_HAVE_BALANCEVELOCITY_],[1],[with Balancevelocity capability])
-
-fi
-
-AM_CONDITIONAL([BALANCEVELOCITY], [test x$HAVE_BALANCEVELOCITY = xyes])
-
-AC_MSG_RESULT($HAVE_BALANCEVELOCITY)
-
-dnl }}}
-dnl with-L2ProjectionEPL{{{
-
-AC_ARG_WITH([L2ProjectionEPL],
-
-	AS_HELP_STRING([--with-L2ProjectionEPL = YES], [compile with L2ProjectionEPL capabilities (default is yes)]),
-
-	[L2PROJECTIONEPL=$withval],[L2PROJECTIONEPL=yes])
-
-AC_MSG_CHECKING(for L2ProjectionEPL capability compilation)
-
-
-HAVE_L2PROJECTIONEPL=no 
-
-if test "x$L2PROJECTIONEPL" = "xyes"; then
-
-	HAVE_L2PROJECTIONEPL=yes
-
-	AC_DEFINE([_HAVE_L2PROJECTIONEPL_],[1],[with L2ProjectionEPL capability])
-
-fi
-
-AM_CONDITIONAL([L2PROJECTIONEPL], [test x$HAVE_L2PROJECTIONEPL = xyes])
-
-AC_MSG_RESULT($HAVE_L2PROJECTIONEPL)
-
-dnl }}}
-dnl with-L2ProjectionBase{{{
-
-AC_ARG_WITH([L2ProjectionBase],
-
-	AS_HELP_STRING([--with-L2ProjectionBase = YES], [compile with L2ProjectionBase capabilities (default is yes)]),
-
-	[L2PROJECTIONBASE=$withval],[L2PROJECTIONBASE=yes])
-
-AC_MSG_CHECKING(for L2ProjectionBase capability compilation)
-
-
-HAVE_L2PROJECTIONBASE=no 
-
-if test "x$L2PROJECTIONBASE" = "xyes"; then
-
-	HAVE_L2PROJECTIONBASE=yes
-
-	AC_DEFINE([_HAVE_L2PROJECTIONBASE_],[1],[with L2ProjectionBase capability])
-
-fi
-
-AM_CONDITIONAL([L2PROJECTIONBASE], [test x$HAVE_L2PROJECTIONBASE = xyes])
-
-AC_MSG_RESULT($HAVE_L2PROJECTIONBASE)
-
-dnl }}}
-dnl with-DamageEvolution{{{
-
-AC_ARG_WITH([DamageEvolution],
-
-	AS_HELP_STRING([--with-DamageEvolution = YES], [compile with DamageEvolution capabilities (default is yes)]),
-
-	[DAMAGEEVOLUTION=$withval],[DAMAGEEVOLUTION=yes])
-
-AC_MSG_CHECKING(for DamageEvolution capability compilation)
-
-
-HAVE_DAMAGEEVOLUTION=no 
-
-if test "x$DAMAGEEVOLUTION" = "xyes"; then
-
-	HAVE_DAMAGEEVOLUTION=yes
-
-	AC_DEFINE([_HAVE_DAMAGEEVOLUTION_],[1],[with DamageEvolution capability])
-
-fi
-
-AM_CONDITIONAL([DAMAGEEVOLUTION], [test x$HAVE_DAMAGEEVOLUTION = xyes])
-
-AC_MSG_RESULT($HAVE_DAMAGEEVOLUTION)
-
+dnl }}}
+dnl with-Smooth{{{
+AC_ARG_WITH([Smooth],
+	AS_HELP_STRING([--with-Smooth = YES], [compile with Smooth capabilities (default is yes)]),
+	[SMOOTH=$withval],[SMOOTH=yes])
+AC_MSG_CHECKING(for Smooth capability compilation)
+
+HAVE_SMOOTH=no 
+if test "x$SMOOTH" = "xyes"; then
+	HAVE_SMOOTH=yes
+	AC_DEFINE([_HAVE_SMOOTH_],[1],[with Smooth capability])
+fi
+AM_CONDITIONAL([SMOOTH], [test x$HAVE_SMOOTH = xyes])
+AC_MSG_RESULT($HAVE_SMOOTH)
 dnl }}}
 dnl with-Stressbalance{{{
-
 AC_ARG_WITH([Stressbalance],
-
 	AS_HELP_STRING([--with-Stressbalance = YES], [compile with Stressbalance capabilities (default is yes)]),
-
 	[STRESSBALANCE=$withval],[STRESSBALANCE=yes])
-
 AC_MSG_CHECKING(for Stressbalance capability compilation)
 
-
 HAVE_STRESSBALANCE=no 
-
 if test "x$STRESSBALANCE" = "xyes"; then
-
 	HAVE_STRESSBALANCE=yes
-
 	AC_DEFINE([_HAVE_STRESSBALANCE_],[1],[with Stressbalance capability])
-
-fi
-
+fi
 AM_CONDITIONAL([STRESSBALANCE], [test x$HAVE_STRESSBALANCE = xyes])
-
 AC_MSG_RESULT($HAVE_STRESSBALANCE)
-
 dnl }}}
 dnl with-StressbalanceSIA{{{
-
 AC_ARG_WITH([StressbalanceSIA],
-
 	AS_HELP_STRING([--with-StressbalanceSIA = YES], [compile with StressbalanceSIA capabilities (default is yes)]),
-
 	[STRESSBALANCESIA=$withval],[STRESSBALANCESIA=yes])
-
 AC_MSG_CHECKING(for StressbalanceSIA capability compilation)
 
-
 HAVE_STRESSBALANCESIA=no 
-
 if test "x$STRESSBALANCESIA" = "xyes"; then
-
 	HAVE_STRESSBALANCESIA=yes
-
 	AC_DEFINE([_HAVE_STRESSBALANCESIA_],[1],[with StressbalanceSIA capability])
-
-fi
-
+fi
 AM_CONDITIONAL([STRESSBALANCESIA], [test x$HAVE_STRESSBALANCESIA = xyes])
-
 AC_MSG_RESULT($HAVE_STRESSBALANCESIA)
-
 dnl }}}
 dnl with-StressbalanceVertical{{{
-
 AC_ARG_WITH([StressbalanceVertical],
-
 	AS_HELP_STRING([--with-StressbalanceVertical = YES], [compile with StressbalanceVertical capabilities (default is yes)]),
-
 	[STRESSBALANCEVERTICAL=$withval],[STRESSBALANCEVERTICAL=yes])
-
 AC_MSG_CHECKING(for StressbalanceVertical capability compilation)
 
-
 HAVE_STRESSBALANCEVERTICAL=no 
-
 if test "x$STRESSBALANCEVERTICAL" = "xyes"; then
-
 	HAVE_STRESSBALANCEVERTICAL=yes
-
 	AC_DEFINE([_HAVE_STRESSBALANCEVERTICAL_],[1],[with StressbalanceVertical capability])
-
-fi
-
+fi
 AM_CONDITIONAL([STRESSBALANCEVERTICAL], [test x$HAVE_STRESSBALANCEVERTICAL = xyes])
-
 AC_MSG_RESULT($HAVE_STRESSBALANCEVERTICAL)
-
-dnl }}}
-dnl with-Enthalpy{{{
-
-AC_ARG_WITH([Enthalpy],
-
-	AS_HELP_STRING([--with-Enthalpy = YES], [compile with Enthalpy capabilities (default is yes)]),
-
-	[ENTHALPY=$withval],[ENTHALPY=yes])
-
-AC_MSG_CHECKING(for Enthalpy capability compilation)
-
-
-HAVE_ENTHALPY=no 
-
-if test "x$ENTHALPY" = "xyes"; then
-
-	HAVE_ENTHALPY=yes
-
-	AC_DEFINE([_HAVE_ENTHALPY_],[1],[with Enthalpy capability])
-
-fi
-
-AM_CONDITIONAL([ENTHALPY], [test x$HAVE_ENTHALPY = xyes])
-
-AC_MSG_RESULT($HAVE_ENTHALPY)
-
-dnl }}}
-dnl with-HydrologyShreve{{{
-
-AC_ARG_WITH([HydrologyShreve],
-
-	AS_HELP_STRING([--with-HydrologyShreve = YES], [compile with HydrologyShreve capabilities (default is yes)]),
-
-	[HYDROLOGYSHREVE=$withval],[HYDROLOGYSHREVE=yes])
-
-AC_MSG_CHECKING(for HydrologyShreve capability compilation)
-
-
-HAVE_HYDROLOGYSHREVE=no 
-
-if test "x$HYDROLOGYSHREVE" = "xyes"; then
-
-	HAVE_HYDROLOGYSHREVE=yes
-
-	AC_DEFINE([_HAVE_HYDROLOGYSHREVE_],[1],[with HydrologyShreve capability])
-
-fi
-
-AM_CONDITIONAL([HYDROLOGYSHREVE], [test x$HAVE_HYDROLOGYSHREVE = xyes])
-
-AC_MSG_RESULT($HAVE_HYDROLOGYSHREVE)
-
-dnl }}}
-dnl with-HydrologyDCInefficient{{{
-
-AC_ARG_WITH([HydrologyDCInefficient],
-
-	AS_HELP_STRING([--with-HydrologyDCInefficient = YES], [compile with HydrologyDCInefficient capabilities (default is yes)]),
-
-	[HYDROLOGYDCINEFFICIENT=$withval],[HYDROLOGYDCINEFFICIENT=yes])
-
-AC_MSG_CHECKING(for HydrologyDCInefficient capability compilation)
-
-
-HAVE_HYDROLOGYDCINEFFICIENT=no 
-
-if test "x$HYDROLOGYDCINEFFICIENT" = "xyes"; then
-
-	HAVE_HYDROLOGYDCINEFFICIENT=yes
-
-	AC_DEFINE([_HAVE_HYDROLOGYDCINEFFICIENT_],[1],[with HydrologyDCInefficient capability])
-
-fi
-
-AM_CONDITIONAL([HYDROLOGYDCINEFFICIENT], [test x$HAVE_HYDROLOGYDCINEFFICIENT = xyes])
-
-AC_MSG_RESULT($HAVE_HYDROLOGYDCINEFFICIENT)
-
-dnl }}}
-dnl with-HydrologyDCEfficient{{{
-
-AC_ARG_WITH([HydrologyDCEfficient],
-
-	AS_HELP_STRING([--with-HydrologyDCEfficient = YES], [compile with HydrologyDCEfficient capabilities (default is yes)]),
-
-	[HYDROLOGYDCEFFICIENT=$withval],[HYDROLOGYDCEFFICIENT=yes])
-
-AC_MSG_CHECKING(for HydrologyDCEfficient capability compilation)
-
-
-HAVE_HYDROLOGYDCEFFICIENT=no 
-
-if test "x$HYDROLOGYDCEFFICIENT" = "xyes"; then
-
-	HAVE_HYDROLOGYDCEFFICIENT=yes
-
-	AC_DEFINE([_HAVE_HYDROLOGYDCEFFICIENT_],[1],[with HydrologyDCEfficient capability])
-
-fi
-
-AM_CONDITIONAL([HYDROLOGYDCEFFICIENT], [test x$HAVE_HYDROLOGYDCEFFICIENT = xyes])
-
-AC_MSG_RESULT($HAVE_HYDROLOGYDCEFFICIENT)
-
-dnl }}}
-dnl with-HydrologySommers{{{
-
-AC_ARG_WITH([HydrologySommers],
-
-	AS_HELP_STRING([--with-HydrologySommers = YES], [compile with HydrologySommers capabilities (default is yes)]),
-
-	[HYDROLOGYSOMMERS=$withval],[HYDROLOGYSOMMERS=yes])
-
-AC_MSG_CHECKING(for HydrologySommers capability compilation)
-
-
-HAVE_HYDROLOGYSOMMERS=no 
-
-if test "x$HYDROLOGYSOMMERS" = "xyes"; then
-
-	HAVE_HYDROLOGYSOMMERS=yes
-
-	AC_DEFINE([_HAVE_HYDROLOGYSOMMERS_],[1],[with HydrologySommers capability])
-
-fi
-
-AM_CONDITIONAL([HYDROLOGYSOMMERS], [test x$HAVE_HYDROLOGYSOMMERS = xyes])
-
-AC_MSG_RESULT($HAVE_HYDROLOGYSOMMERS)
-
-dnl }}}
-dnl with-Melting{{{
-
-AC_ARG_WITH([Melting],
-
-	AS_HELP_STRING([--with-Melting = YES], [compile with Melting capabilities (default is yes)]),
-
-	[MELTING=$withval],[MELTING=yes])
-
-AC_MSG_CHECKING(for Melting capability compilation)
-
-
-HAVE_MELTING=no 
-
-if test "x$MELTING" = "xyes"; then
-
-	HAVE_MELTING=yes
-
-	AC_DEFINE([_HAVE_MELTING_],[1],[with Melting capability])
-
-fi
-
-AM_CONDITIONAL([MELTING], [test x$HAVE_MELTING = xyes])
-
-AC_MSG_RESULT($HAVE_MELTING)
-
-dnl }}}
-dnl with-Masstransport{{{
-
-AC_ARG_WITH([Masstransport],
-
-	AS_HELP_STRING([--with-Masstransport = YES], [compile with Masstransport capabilities (default is yes)]),
-
-	[MASSTRANSPORT=$withval],[MASSTRANSPORT=yes])
-
-AC_MSG_CHECKING(for Masstransport capability compilation)
-
-
-HAVE_MASSTRANSPORT=no 
-
-if test "x$MASSTRANSPORT" = "xyes"; then
-
-	HAVE_MASSTRANSPORT=yes
-
-	AC_DEFINE([_HAVE_MASSTRANSPORT_],[1],[with Masstransport capability])
-
-fi
-
-AM_CONDITIONAL([MASSTRANSPORT], [test x$HAVE_MASSTRANSPORT = xyes])
-
-AC_MSG_RESULT($HAVE_MASSTRANSPORT)
-
-dnl }}}
-dnl with-FreeSurfaceBase{{{
-
-AC_ARG_WITH([FreeSurfaceBase],
-
-	AS_HELP_STRING([--with-FreeSurfaceBase = YES], [compile with FreeSurfaceBase capabilities (default is yes)]),
-
-	[FREESURFACEBASE=$withval],[FREESURFACEBASE=yes])
-
-AC_MSG_CHECKING(for FreeSurfaceBase capability compilation)
-
-
-HAVE_FREESURFACEBASE=no 
-
-if test "x$FREESURFACEBASE" = "xyes"; then
-
-	HAVE_FREESURFACEBASE=yes
-
-	AC_DEFINE([_HAVE_FREESURFACEBASE_],[1],[with FreeSurfaceBase capability])
-
-fi
-
-AM_CONDITIONAL([FREESURFACEBASE], [test x$HAVE_FREESURFACEBASE = xyes])
-
-AC_MSG_RESULT($HAVE_FREESURFACEBASE)
-
-dnl }}}
-dnl with-FreeSurfaceTop{{{
-
-AC_ARG_WITH([FreeSurfaceTop],
-
-	AS_HELP_STRING([--with-FreeSurfaceTop = YES], [compile with FreeSurfaceTop capabilities (default is yes)]),
-
-	[FREESURFACETOP=$withval],[FREESURFACETOP=yes])
-
-AC_MSG_CHECKING(for FreeSurfaceTop capability compilation)
-
-
-HAVE_FREESURFACETOP=no 
-
-if test "x$FREESURFACETOP" = "xyes"; then
-
-	HAVE_FREESURFACETOP=yes
-
-	AC_DEFINE([_HAVE_FREESURFACETOP_],[1],[with FreeSurfaceTop capability])
-
-fi
-
-AM_CONDITIONAL([FREESURFACETOP], [test x$HAVE_FREESURFACETOP = xyes])
-
-AC_MSG_RESULT($HAVE_FREESURFACETOP)
-
-dnl }}}
-dnl with-ExtrudeFromBase{{{
-
-AC_ARG_WITH([ExtrudeFromBase],
-
-	AS_HELP_STRING([--with-ExtrudeFromBase = YES], [compile with ExtrudeFromBase capabilities (default is yes)]),
-
-	[EXTRUDEFROMBASE=$withval],[EXTRUDEFROMBASE=yes])
-
-AC_MSG_CHECKING(for ExtrudeFromBase capability compilation)
-
-
-HAVE_EXTRUDEFROMBASE=no 
-
-if test "x$EXTRUDEFROMBASE" = "xyes"; then
-
-	HAVE_EXTRUDEFROMBASE=yes
-
-	AC_DEFINE([_HAVE_EXTRUDEFROMBASE_],[1],[with ExtrudeFromBase capability])
-
-fi
-
-AM_CONDITIONAL([EXTRUDEFROMBASE], [test x$HAVE_EXTRUDEFROMBASE = xyes])
-
-AC_MSG_RESULT($HAVE_EXTRUDEFROMBASE)
-
-dnl }}}
-dnl with-ExtrudeFromTop{{{
-
-AC_ARG_WITH([ExtrudeFromTop],
-
-	AS_HELP_STRING([--with-ExtrudeFromTop = YES], [compile with ExtrudeFromTop capabilities (default is yes)]),
-
-	[EXTRUDEFROMTOP=$withval],[EXTRUDEFROMTOP=yes])
-
-AC_MSG_CHECKING(for ExtrudeFromTop capability compilation)
-
-
-HAVE_EXTRUDEFROMTOP=no 
-
-if test "x$EXTRUDEFROMTOP" = "xyes"; then
-
-	HAVE_EXTRUDEFROMTOP=yes
-
-	AC_DEFINE([_HAVE_EXTRUDEFROMTOP_],[1],[with ExtrudeFromTop capability])
-
-fi
-
-AM_CONDITIONAL([EXTRUDEFROMTOP], [test x$HAVE_EXTRUDEFROMTOP = xyes])
-
-AC_MSG_RESULT($HAVE_EXTRUDEFROMTOP)
-
-dnl }}}
-dnl with-DepthAverage{{{
-
-AC_ARG_WITH([DepthAverage],
-
-	AS_HELP_STRING([--with-DepthAverage = YES], [compile with DepthAverage capabilities (default is yes)]),
-
-	[DEPTHAVERAGE=$withval],[DEPTHAVERAGE=yes])
-
-AC_MSG_CHECKING(for DepthAverage capability compilation)
-
-
-HAVE_DEPTHAVERAGE=no 
-
-if test "x$DEPTHAVERAGE" = "xyes"; then
-
-	HAVE_DEPTHAVERAGE=yes
-
-	AC_DEFINE([_HAVE_DEPTHAVERAGE_],[1],[with DepthAverage capability])
-
-fi
-
-AM_CONDITIONAL([DEPTHAVERAGE], [test x$HAVE_DEPTHAVERAGE = xyes])
-
-AC_MSG_RESULT($HAVE_DEPTHAVERAGE)
-
-dnl }}}
-dnl with-Sealevelrise{{{
-
-AC_ARG_WITH([Sealevelrise],
-
-	AS_HELP_STRING([--with-Sealevelrise = YES], [compile with Sealevelrise capabilities (default is yes)]),
-
-	[SEALEVELRISE=$withval],[SEALEVELRISE=yes])
-
-AC_MSG_CHECKING(for Sealevelrise capability compilation)
-
-
-HAVE_SEALEVELRISE=no 
-
-if test "x$SEALEVELRISE" = "xyes"; then
-
-	HAVE_SEALEVELRISE=yes
-
-	AC_DEFINE([_HAVE_SEALEVELRISE_],[1],[with Sealevelrise capability])
-
-fi
-
-AM_CONDITIONAL([SEALEVELRISE], [test x$HAVE_SEALEVELRISE = xyes])
-
-AC_MSG_RESULT($HAVE_SEALEVELRISE)
-
-dnl }}}
-dnl with-Smooth{{{
-
-AC_ARG_WITH([Smooth],
-
-	AS_HELP_STRING([--with-Smooth = YES], [compile with Smooth capabilities (default is yes)]),
-
-	[SMOOTH=$withval],[SMOOTH=yes])
-
-AC_MSG_CHECKING(for Smooth capability compilation)
-
-
-HAVE_SMOOTH=no 
-
-if test "x$SMOOTH" = "xyes"; then
-
-	HAVE_SMOOTH=yes
-
-	AC_DEFINE([_HAVE_SMOOTH_],[1],[with Smooth capability])
-
-fi
-
-AM_CONDITIONAL([SMOOTH], [test x$HAVE_SMOOTH = xyes])
-
-AC_MSG_RESULT($HAVE_SMOOTH)
-
 dnl }}}
 dnl with-Thermal{{{
-
 AC_ARG_WITH([Thermal],
-
 	AS_HELP_STRING([--with-Thermal = YES], [compile with Thermal capabilities (default is yes)]),
-
 	[THERMAL=$withval],[THERMAL=yes])
-
 AC_MSG_CHECKING(for Thermal capability compilation)
 
-
 HAVE_THERMAL=no 
-
 if test "x$THERMAL" = "xyes"; then
-
 	HAVE_THERMAL=yes
-
 	AC_DEFINE([_HAVE_THERMAL_],[1],[with Thermal capability])
-
-fi
-
+fi
 AM_CONDITIONAL([THERMAL], [test x$HAVE_THERMAL = xyes])
-
 AC_MSG_RESULT($HAVE_THERMAL)
-
 dnl }}}
 dnl with-UzawaPressure{{{
-
 AC_ARG_WITH([UzawaPressure],
-
 	AS_HELP_STRING([--with-UzawaPressure = YES], [compile with UzawaPressure capabilities (default is yes)]),
-
 	[UZAWAPRESSURE=$withval],[UZAWAPRESSURE=yes])
-
 AC_MSG_CHECKING(for UzawaPressure capability compilation)
 
-
 HAVE_UZAWAPRESSURE=no 
-
 if test "x$UZAWAPRESSURE" = "xyes"; then
-
 	HAVE_UZAWAPRESSURE=yes
-
 	AC_DEFINE([_HAVE_UZAWAPRESSURE_],[1],[with UzawaPressure capability])
-
-fi
-
+fi
 AM_CONDITIONAL([UZAWAPRESSURE], [test x$HAVE_UZAWAPRESSURE = xyes])
-
 AC_MSG_RESULT($HAVE_UZAWAPRESSURE)
-
-dnl }}}
-dnl with-GiaIvins{{{
-
-AC_ARG_WITH([GiaIvins],
-
-	AS_HELP_STRING([--with-GiaIvins = YES], [compile with GiaIvins capabilities (default is yes)]),
-
-	[GIAIVINS=$withval],[GIAIVINS=yes])
-
-AC_MSG_CHECKING(for GiaIvins capability compilation)
-
-
-HAVE_GIAIVINS=no 
-
-if test "x$GIAIVINS" = "xyes"; then
-
-	HAVE_GIAIVINS=yes
-
-	AC_DEFINE([_HAVE_GIAIVINS_],[1],[with GiaIvins capability])
-
-fi
-
-AM_CONDITIONAL([GIAIVINS], [test x$HAVE_GIAIVINS = xyes])
-
-AC_MSG_RESULT($HAVE_GIAIVINS)
-
-dnl }}}
-dnl with-Esa{{{
-
-AC_ARG_WITH([Esa],
-
-	AS_HELP_STRING([--with-Esa = YES], [compile with Esa capabilities (default is yes)]),
-
-	[ESA=$withval],[ESA=yes])
-
-AC_MSG_CHECKING(for Esa capability compilation)
-
-
-HAVE_ESA=no 
-
-if test "x$ESA" = "xyes"; then
-
-	HAVE_ESA=yes
-
-	AC_DEFINE([_HAVE_ESA_],[1],[with Esa capability])
-
-fi
-
-AM_CONDITIONAL([ESA], [test x$HAVE_ESA = xyes])
-
-AC_MSG_RESULT($HAVE_ESA)
-
-dnl }}}
-dnl with-Love{{{
-
-AC_ARG_WITH([Love],
-
-	AS_HELP_STRING([--with-Love = YES], [compile with Love capabilities (default is yes)]),
-
-	[LOVE=$withval],[LOVE=yes])
-
-AC_MSG_CHECKING(for Love capability compilation)
-
-
-HAVE_LOVE=no 
-
-if test "x$LOVE" = "xyes"; then
-
-	HAVE_LOVE=yes
-
-	AC_DEFINE([_HAVE_LOVE_],[1],[with Love capability])
-
-fi
-
-AM_CONDITIONAL([LOVE], [test x$HAVE_LOVE = xyes])
-
-AC_MSG_RESULT($HAVE_LOVE)
-
-dnl }}}
-dnl with-Levelset{{{
-
-AC_ARG_WITH([Levelset],
-
-	AS_HELP_STRING([--with-Levelset = YES], [compile with Levelset capabilities (default is yes)]),
-
-	[LEVELSET=$withval],[LEVELSET=yes])
-
-AC_MSG_CHECKING(for Levelset capability compilation)
-
-
-HAVE_LEVELSET=no 
-
-if test "x$LEVELSET" = "xyes"; then
-
-	HAVE_LEVELSET=yes
-
-	AC_DEFINE([_HAVE_LEVELSET_],[1],[with Levelset capability])
-
-fi
-
-AM_CONDITIONAL([LEVELSET], [test x$HAVE_LEVELSET = xyes])
-
-AC_MSG_RESULT($HAVE_LEVELSET)
-
-dnl }}}
-dnl with-Extrapolation{{{
-
-AC_ARG_WITH([Extrapolation],
-
-	AS_HELP_STRING([--with-Extrapolation = YES], [compile with Extrapolation capabilities (default is yes)]),
-
-	[EXTRAPOLATION=$withval],[EXTRAPOLATION=yes])
-
-AC_MSG_CHECKING(for Extrapolation capability compilation)
-
-
-HAVE_EXTRAPOLATION=no 
-
-if test "x$EXTRAPOLATION" = "xyes"; then
-
-	HAVE_EXTRAPOLATION=yes
-
-	AC_DEFINE([_HAVE_EXTRAPOLATION_],[1],[with Extrapolation capability])
-
-fi
-
-AM_CONDITIONAL([EXTRAPOLATION], [test x$HAVE_EXTRAPOLATION = xyes])
-
-AC_MSG_RESULT($HAVE_EXTRAPOLATION)
-
 dnl }}}
 
Index: /issm/trunk-jpl/src/c/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/c/Makefile.am	(revision 22910)
+++ /issm/trunk-jpl/src/c/Makefile.am	(revision 22911)
@@ -413,4 +413,7 @@
 issm_sources += ./analyses/EnthalpyAnalysis.cpp
 endif
+if GLHEIGHTADVECTION
+issm_sources += ./analyses/GLheightadvectionAnalysis.cpp
+endif
 if HYDROLOGYSHREVE
 issm_sources += ./analyses/HydrologyShreveAnalysis.cpp
Index: /issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp	(revision 22910)
+++ /issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp	(revision 22911)
@@ -62,4 +62,7 @@
 		case FreeSurfaceTopAnalysisEnum : return new FreeSurfaceTopAnalysis();
 		#endif
+		#ifdef _HAVE_GLHEIGHTADVECTION_
+		case GLheightadvectionAnalysisEnum : return new GLheightadvectionAnalysis();
+		#endif
 		#ifdef _HAVE_GIAIVINS_
 		case GiaIvinsAnalysisEnum : return new GiaIvinsAnalysis();
Index: /issm/trunk-jpl/src/c/analyses/GLheightadvectionAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/GLheightadvectionAnalysis.cpp	(revision 22911)
+++ /issm/trunk-jpl/src/c/analyses/GLheightadvectionAnalysis.cpp	(revision 22911)
@@ -0,0 +1,248 @@
+#include "./GLheightadvectionAnalysis.h"
+#include "../toolkits/toolkits.h"
+#include "../classes/classes.h"
+#include "../shared/shared.h"
+#include "../modules/modules.h"
+
+/*Model processing*/
+void GLheightadvectionAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/
+
+	/*No constraints for now*/
+}/*}}}*/
+void GLheightadvectionAnalysis::CreateLoads(Loads* loads, IoModel* iomodel){/*{{{*/
+
+	/*No loads*/
+}/*}}}*/
+void GLheightadvectionAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/
+
+	/*First fetch data: */
+	::CreateNodes(nodes,iomodel,GLheightadvectionAnalysisEnum,P1Enum);
+}/*}}}*/
+int  GLheightadvectionAnalysis::DofsPerNode(int** doflist,int domaintype,int approximation){/*{{{*/
+	return 1;
+}/*}}}*/
+void GLheightadvectionAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
+
+	/*Update elements: */
+	int counter=0;
+	for(int i=0;i<iomodel->numberofelements;i++){
+		if(iomodel->my_elements[i]){
+			Element* element=(Element*)elements->GetObjectByOffset(counter);
+			element->Update(i,iomodel,analysis_counter,analysis_type,P1Enum);
+			counter++;
+		}
+	}
+
+	if(iomodel->domaintype!=Domain2DhorizontalEnum){
+		iomodel->FetchDataToInput(elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
+		iomodel->FetchDataToInput(elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
+	}
+}/*}}}*/
+void GLheightadvectionAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
+}/*}}}*/
+
+/*Finite Element Analysis*/
+void           GLheightadvectionAnalysis::Core(FemModel* femmodel){/*{{{*/
+	_error_("not implemented");
+}/*}}}*/
+ElementVector* GLheightadvectionAnalysis::CreateDVector(Element* element){/*{{{*/
+	/*Default, return NULL*/
+	return NULL;
+}/*}}}*/
+ElementMatrix* GLheightadvectionAnalysis::CreateJacobianMatrix(Element* element){/*{{{*/
+_error_("Not implemented");
+}/*}}}*/
+ElementMatrix* GLheightadvectionAnalysis::CreateKMatrix(Element* element){/*{{{*/
+
+	/* Check if ice in element */
+	if(!element->IsIceInElement()) return NULL;
+
+	/*Intermediaries */
+	int        domaintype,dim;
+	IssmDouble Jdet,D_scalar,dt,h;
+	IssmDouble vel,vx,vy,dvxdx,dvydy;
+	IssmDouble dvx[2],dvy[2];
+	IssmDouble* xyz_list = NULL;
+
+	/*Get problem dimension*/
+	element->FindParam(&domaintype,DomainTypeEnum);
+	switch(domaintype){
+		case Domain2DhorizontalEnum: dim = 2; break;
+		case Domain3DEnum:           dim = 2; break;
+		default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
+	}
+
+	/*Fetch number of nodes and dof for this finite element*/
+	int numnodes = element->GetNumberOfNodes();
+
+	/*Initialize Element vector and other vectors*/
+	ElementMatrix* Ke     = element->NewElementMatrix();
+	IssmDouble*    basis  = xNew<IssmDouble>(numnodes);
+	IssmDouble*    B      = xNew<IssmDouble>(dim*numnodes);
+	IssmDouble*    Bprime = xNew<IssmDouble>(dim*numnodes);
+	IssmDouble*    D      = xNewZeroInit<IssmDouble>(dim*dim);
+
+	/*Retrieve all inputs and parameters*/
+	element->GetVerticesCoordinates(&xyz_list);
+	element->FindParam(&dt,TimesteppingTimeStepEnum);
+	element->FindParam(&domaintype,DomainTypeEnum);
+	_error_("Change speed");
+	Input* vxaverage_input=element->GetInput(VxAverageEnum); _assert_(vxaverage_input);
+	Input* vyaverage_input=element->GetInput(VyAverageEnum); _assert_(vyaverage_input);
+
+	h = element->CharacteristicLength();
+
+	/* Start  looping on the number of gaussian points: */
+	Gauss* gauss=element->NewGauss(2);
+	for(int ig=gauss->begin();ig<gauss->end();ig++){
+		gauss->GaussPoint(ig);
+
+		element->JacobianDeterminant(&Jdet,xyz_list,gauss);
+		element->NodalFunctions(basis,gauss);
+
+		vxaverage_input->GetInputValue(&vx,gauss);
+		vxaverage_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);
+		vyaverage_input->GetInputValue(&vy,gauss);
+		vyaverage_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);
+
+		D_scalar=gauss->weight*Jdet;
+		TripleMultiply(basis,1,numnodes,1,
+					&D_scalar,1,1,0,
+					basis,1,numnodes,0,
+					&Ke->values[0],1);
+
+		GetB(B,element,dim,xyz_list,gauss);
+		GetBprime(Bprime,element,dim,xyz_list,gauss);
+
+		dvxdx=dvx[0];
+		dvydy=dvy[1];
+		D_scalar=dt*gauss->weight*Jdet;
+
+		D[0*dim+0]=D_scalar*dvxdx;
+		D[1*dim+1]=D_scalar*dvydy;
+
+		TripleMultiply(B,dim,numnodes,1,
+					D,dim,dim,0,
+					B,dim,numnodes,0,
+					&Ke->values[0],1);
+
+		D[0*dim+0]=D_scalar*vx;
+		D[1*dim+1]=D_scalar*vy;
+
+		TripleMultiply(B,dim,numnodes,1,
+					D,dim,dim,0,
+					Bprime,dim,numnodes,0,
+					&Ke->values[0],1);
+
+		/*SSA Stabilization*/
+		vxaverage_input->GetInputAverage(&vx);
+		vyaverage_input->GetInputAverage(&vy);
+		D[0*dim+0]=h/2.0*fabs(vx);
+		D[1*dim+1]=h/2.0*fabs(vy);
+		D[0*dim+0]=D_scalar*D[0*dim+0];
+		D[1*dim+0]=D_scalar*D[1*dim+0];
+		D[0*dim+1]=D_scalar*D[0*dim+1];
+		D[1*dim+1]=D_scalar*D[1*dim+1];
+
+		TripleMultiply(Bprime,dim,numnodes,1,
+					D,dim,dim,0,
+					Bprime,dim,numnodes,0,
+					&Ke->values[0],1);
+	}
+
+	/*Clean up and return*/
+	xDelete<IssmDouble>(xyz_list);
+	xDelete<IssmDouble>(basis);
+	xDelete<IssmDouble>(B);
+	xDelete<IssmDouble>(Bprime);
+	xDelete<IssmDouble>(D);
+	delete gauss;
+	return Ke;
+
+}/*}}}*/
+ElementVector* GLheightadvectionAnalysis::CreatePVector(Element* element){/*{{{*/
+
+	return NULL;
+}/*}}}*/
+void           GLheightadvectionAnalysis::GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element){/*{{{*/
+	   _error_("not implemented yet");
+}/*}}}*/
+void           GLheightadvectionAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/
+	_error_("Not implemented yet");
+}/*}}}*/
+void           GLheightadvectionAnalysis::InputUpdateFromSolution(IssmDouble* solution,Element* element){/*{{{*/
+
+	int domaintype;
+	element->FindParam(&domaintype,DomainTypeEnum);
+	switch(domaintype){
+		case Domain2DhorizontalEnum:
+			element->InputUpdateFromSolutionOneDof(solution,GroundinglineHeightEnum);
+			break;
+		case Domain3DEnum:
+			element->InputUpdateFromSolutionOneDofCollapsed(solution,GroundinglineHeightEnum);
+			break;
+		default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
+	}
+}/*}}}*/
+void           GLheightadvectionAnalysis::UpdateConstraints(FemModel* femmodel){/*{{{*/
+	_error_("To be implemented");
+	return;
+}/*}}}*/
+
+void           GLheightadvectionAnalysis::GetB(IssmDouble* B,Element* element,int dim,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/
+	/*Compute B  matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2. 
+	 * For node i, Bi can be expressed in the actual coordinate system
+	 * by: 
+	 *       Bi=[ N ]
+	 *          [ N ]
+	 * where N is the finiteelement function for node i.
+	 *
+	 * We assume B_prog has been allocated already, of size: 2x(NDOF1*numnodes)
+	 */
+
+	/*Fetch number of nodes for this finite element*/
+	int numnodes = element->GetNumberOfNodes();
+
+	/*Get nodal functions*/
+	IssmDouble* basis=xNew<IssmDouble>(numnodes);
+	element->NodalFunctions(basis,gauss);
+
+	/*Build B: */
+	for(int i=0;i<numnodes;i++){
+		for(int j=0;j<dim;j++){
+			B[numnodes*j+i] = basis[i];
+		}
+	}
+
+	/*Clean-up*/
+	xDelete<IssmDouble>(basis);
+}/*}}}*/
+void           GLheightadvectionAnalysis::GetBprime(IssmDouble* Bprime,Element* element,int dim,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/
+	/*Compute B'  matrix. B'=[B1' B2' B3'] where Bi' is of size 3*NDOF2. 
+	 * For node i, Bi' can be expressed in the actual coordinate system
+	 * by: 
+	 *       Bi_prime=[ dN/dx ]
+	 *                [ dN/dy ]
+	 * where N is the finiteelement function for node i.
+	 *
+	 * We assume B' has been allocated already, of size: 3x(NDOF2*numnodes)
+	 */
+
+	/*Fetch number of nodes for this finite element*/
+	int numnodes = element->GetNumberOfNodes();
+
+	/*Get nodal functions derivatives*/
+	IssmDouble* dbasis=xNew<IssmDouble>(dim*numnodes);
+	element->NodalFunctionsDerivatives(dbasis,xyz_list,gauss);
+
+	/*Build B': */
+	for(int i=0;i<numnodes;i++){
+		for(int j=0;j<dim;j++){
+			Bprime[numnodes*j+i] = dbasis[j*numnodes+i];
+		}
+	}
+
+	/*Clean-up*/
+	xDelete<IssmDouble>(dbasis);
+
+}/*}}}*/
Index: /issm/trunk-jpl/src/c/analyses/GLheightadvectionAnalysis.h
===================================================================
--- /issm/trunk-jpl/src/c/analyses/GLheightadvectionAnalysis.h	(revision 22911)
+++ /issm/trunk-jpl/src/c/analyses/GLheightadvectionAnalysis.h	(revision 22911)
@@ -0,0 +1,36 @@
+/*! \file GLheightadvectionAnalysis.h 
+ *  \brief: header file for generic external result object
+ */
+
+#ifndef _GLheightadvectionAnalysis_
+#define _GLheightadvectionAnalysis_
+
+/*Headers*/
+#include "./Analysis.h"
+
+class GLheightadvectionAnalysis: public Analysis{
+
+	public:
+		/*Model processing*/
+		void CreateConstraints(Constraints* constraints,IoModel* iomodel);
+		void CreateLoads(Loads* loads, IoModel* iomodel);
+		void CreateNodes(Nodes* nodes,IoModel* iomodel);
+		int  DofsPerNode(int** doflist,int domaintype,int approximation);
+		void UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type);
+		void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
+
+		/*Finite element Analysis*/
+		void           Core(FemModel* femmodel);
+		ElementVector* CreateDVector(Element* element);
+		ElementMatrix* CreateJacobianMatrix(Element* element);
+		ElementMatrix* CreateKMatrix(Element* element);
+		ElementVector* CreatePVector(Element* element);
+		void           GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element);
+		void           GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index);
+		void           InputUpdateFromSolution(IssmDouble* solution,Element* element);
+		void           UpdateConstraints(FemModel* femmodel);
+
+		void           GetB(IssmDouble* B,Element* element,int dim,IssmDouble* xyz_list,Gauss* gauss);
+		void           GetBprime(IssmDouble* B,Element* element,int dim,IssmDouble* xyz_list,Gauss* gauss);
+};
+#endif
Index: /issm/trunk-jpl/src/c/analyses/analyses.h
===================================================================
--- /issm/trunk-jpl/src/c/analyses/analyses.h	(revision 22910)
+++ /issm/trunk-jpl/src/c/analyses/analyses.h	(revision 22911)
@@ -24,4 +24,5 @@
 #include "./FreeSurfaceTopAnalysis.h"
 #include "./GiaIvinsAnalysis.h"
+#include "./GLheightadvectionAnalysis.h"
 #include "./LoveAnalysis.h"
 #include "./EsaAnalysis.h"
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 22910)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 22911)
@@ -434,4 +434,5 @@
 	GiaMantleViscosityEnum,
 	GradientEnum,
+	GroundinglineHeightEnum,
 	HydrologyBumpHeightEnum,
 	HydrologyBumpSpacingEnum,
@@ -740,4 +741,5 @@
 	GenericOptionEnum,
 	GenericParamEnum,
+	GLheightadvectionAnalysisEnum,
 	GiadWdtEnum,
 	GiaIvinsAnalysisEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 22910)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 22911)
@@ -440,4 +440,5 @@
 		case GiaMantleViscosityEnum : return "GiaMantleViscosity";
 		case GradientEnum : return "Gradient";
+		case GroundinglineHeightEnum : return "GroundinglineHeight";
 		case HydrologyBumpHeightEnum : return "HydrologyBumpHeight";
 		case HydrologyBumpSpacingEnum : return "HydrologyBumpSpacing";
@@ -744,4 +745,5 @@
 		case GenericOptionEnum : return "GenericOption";
 		case GenericParamEnum : return "GenericParam";
+		case GLheightadvectionAnalysisEnum : return "GLheightadvectionAnalysis";
 		case GiadWdtEnum : return "GiadWdt";
 		case GiaIvinsAnalysisEnum : return "GiaIvinsAnalysis";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 22910)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 22911)
@@ -449,4 +449,5 @@
 	      else if (strcmp(name,"GiaMantleViscosity")==0) return GiaMantleViscosityEnum;
 	      else if (strcmp(name,"Gradient")==0) return GradientEnum;
+	      else if (strcmp(name,"GroundinglineHeight")==0) return GroundinglineHeightEnum;
 	      else if (strcmp(name,"HydrologyBumpHeight")==0) return HydrologyBumpHeightEnum;
 	      else if (strcmp(name,"HydrologyBumpSpacing")==0) return HydrologyBumpSpacingEnum;
@@ -505,9 +506,9 @@
 	      else if (strcmp(name,"P1")==0) return P1Enum;
 	      else if (strcmp(name,"Pressure")==0) return PressureEnum;
-	      else if (strcmp(name,"RheologyBAbsGradient")==0) return RheologyBAbsGradientEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"RheologyBbarAbsGradient")==0) return RheologyBbarAbsGradientEnum;
+	      if (strcmp(name,"RheologyBAbsGradient")==0) return RheologyBAbsGradientEnum;
+	      else if (strcmp(name,"RheologyBbarAbsGradient")==0) return RheologyBbarAbsGradientEnum;
 	      else if (strcmp(name,"Sealevel")==0) return SealevelEnum;
 	      else if (strcmp(name,"SealevelriseDeltathickness")==0) return SealevelriseDeltathicknessEnum;
@@ -628,9 +629,9 @@
 	      else if (strcmp(name,"VzHO")==0) return VzHOEnum;
 	      else if (strcmp(name,"VzMesh")==0) return VzMeshEnum;
-	      else if (strcmp(name,"VzSSA")==0) return VzSSAEnum;
          else stage=6;
    }
    if(stage==6){
-	      if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum;
+	      if (strcmp(name,"VzSSA")==0) return VzSSAEnum;
+	      else if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum;
 	      else if (strcmp(name,"WaterColumnOld")==0) return WaterColumnOldEnum;
 	      else if (strcmp(name,"WaterfractionDrainage")==0) return WaterfractionDrainageEnum;
@@ -751,9 +752,9 @@
 	      else if (strcmp(name,"Fset")==0) return FsetEnum;
 	      else if (strcmp(name,"FSpressure")==0) return FSpressureEnum;
-	      else if (strcmp(name,"FSSolver")==0) return FSSolverEnum;
          else stage=7;
    }
    if(stage==7){
-	      if (strcmp(name,"FSvelocity")==0) return FSvelocityEnum;
+	      if (strcmp(name,"FSSolver")==0) return FSSolverEnum;
+	      else if (strcmp(name,"FSvelocity")==0) return FSvelocityEnum;
 	      else if (strcmp(name,"GaussPenta")==0) return GaussPentaEnum;
 	      else if (strcmp(name,"GaussSeg")==0) return GaussSegEnum;
@@ -762,4 +763,5 @@
 	      else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum;
 	      else if (strcmp(name,"GenericParam")==0) return GenericParamEnum;
+	      else if (strcmp(name,"GLheightadvectionAnalysis")==0) return GLheightadvectionAnalysisEnum;
 	      else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum;
 	      else if (strcmp(name,"GiaIvinsAnalysis")==0) return GiaIvinsAnalysisEnum;
@@ -873,10 +875,10 @@
 	      else if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum;
 	      else if (strcmp(name,"MaxAbsVy")==0) return MaxAbsVyEnum;
-	      else if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum;
-	      else if (strcmp(name,"MaxDivergence")==0) return MaxDivergenceEnum;
          else stage=8;
    }
    if(stage==8){
-	      if (strcmp(name,"MaxVel")==0) return MaxVelEnum;
+	      if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum;
+	      else if (strcmp(name,"MaxDivergence")==0) return MaxDivergenceEnum;
+	      else if (strcmp(name,"MaxVel")==0) return MaxVelEnum;
 	      else if (strcmp(name,"MaxVx")==0) return MaxVxEnum;
 	      else if (strcmp(name,"MaxVy")==0) return MaxVyEnum;
@@ -996,10 +998,10 @@
 	      else if (strcmp(name,"Outputdefinition86")==0) return Outputdefinition86Enum;
 	      else if (strcmp(name,"Outputdefinition87")==0) return Outputdefinition87Enum;
-	      else if (strcmp(name,"Outputdefinition88")==0) return Outputdefinition88Enum;
-	      else if (strcmp(name,"Outputdefinition89")==0) return Outputdefinition89Enum;
          else stage=9;
    }
    if(stage==9){
-	      if (strcmp(name,"Outputdefinition8")==0) return Outputdefinition8Enum;
+	      if (strcmp(name,"Outputdefinition88")==0) return Outputdefinition88Enum;
+	      else if (strcmp(name,"Outputdefinition89")==0) return Outputdefinition89Enum;
+	      else if (strcmp(name,"Outputdefinition8")==0) return Outputdefinition8Enum;
 	      else if (strcmp(name,"Outputdefinition90")==0) return Outputdefinition90Enum;
 	      else if (strcmp(name,"Outputdefinition91")==0) return Outputdefinition91Enum;
@@ -1119,10 +1121,10 @@
 	      else if (strcmp(name,"TotalGroundedBmbScaled")==0) return TotalGroundedBmbScaledEnum;
 	      else if (strcmp(name,"TotalSmb")==0) return TotalSmbEnum;
-	      else if (strcmp(name,"TotalSmbScaled")==0) return TotalSmbScaledEnum;
-	      else if (strcmp(name,"TransientArrayParam")==0) return TransientArrayParamEnum;
          else stage=10;
    }
    if(stage==10){
-	      if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
+	      if (strcmp(name,"TotalSmbScaled")==0) return TotalSmbScaledEnum;
+	      else if (strcmp(name,"TransientArrayParam")==0) return TransientArrayParamEnum;
+	      else if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
 	      else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
 	      else if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum;
Index: /issm/trunk-jpl/src/c/shared/Enum/Synchronize.sh
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/Synchronize.sh	(revision 22910)
+++ /issm/trunk-jpl/src/c/shared/Enum/Synchronize.sh	(revision 22911)
@@ -13,5 +13,5 @@
 
 #Deal with Analyses
-if false ; then
+if true ; then
 #Build EnumToAnalysis.cpp {{{
 #Header
