Index: /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 17286)
+++ /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 17287)
@@ -6,5 +6,5 @@
 #include "../solutionsequences/solutionsequences.h"
 
-//#define FSANALYTICAL 2
+#define FSANALYTICAL 3
 
 /*Model processing*/
@@ -409,5 +409,5 @@
 					if(nodeonbed[i]>0. && groundedice_ls[i]>0. && nodeonFS[i]>0.){
 						if(vertices_type[i] == FSApproximationEnum){
-							for(j=0;j<Nz;j++) spcvz[i*Nz+j] = 0.;
+						//	for(j=0;j<Nz;j++) spcvz[i*Nz+j] = 0.;
 						}
 						else{
@@ -2859,4 +2859,5 @@
 	switch(meshtype){
 		case Mesh3DEnum:         dim = 3; break;
+		case Mesh2DverticalEnum: dim = 2; break;
 		default: _error_("mesh "<<EnumToStringx(meshtype)<<" not supported yet");
 	}
@@ -2889,5 +2890,5 @@
 		x_coord=element->GetXcoord(gauss);
 		y_coord=element->GetYcoord(gauss);
-		z_coord=element->GetZcoord(gauss);
+		if(dim==3) z_coord=element->GetZcoord(gauss);
 
 		#if FSANALYTICAL == 1
@@ -2899,4 +2900,7 @@
 			forcey=fy2(x_coord,y_coord,z_coord);
 			forcez=fz2(x_coord,y_coord,z_coord);
+		#elif FSANALYTICAL == 3
+			forcex=fx3(x_coord,y_coord);
+			forcey=fy3(x_coord,y_coord);
 		#else 
 			_error_("FS analytical not implemented yet");
@@ -2906,5 +2910,5 @@
 			pe->values[i*dim+0] += forcex *Jdet*gauss->weight*vbasis[i];
 			pe->values[i*dim+1] += forcey *Jdet*gauss->weight*vbasis[i];
-			pe->values[i*dim+2] += forcez *Jdet*gauss->weight*vbasis[i];
+			if(dim==3) pe->values[i*dim+2] += forcez *Jdet*gauss->weight*vbasis[i];
 		}
 	}
