Index: /issm/trunk-jpl/src/c/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/c/Makefile.am	(revision 17110)
+++ /issm/trunk-jpl/src/c/Makefile.am	(revision 17111)
@@ -177,4 +177,8 @@
 					./shared/LatLong/Ll2xyx.cpp\
 					./shared/LatLong/Xy2llx.cpp\
+					./shared/FSanalyticals/fsanalyticals.h\
+					./shared/FSanalyticals/fx.cpp\
+					./shared/FSanalyticals/fy.cpp\
+					./shared/FSanalyticals/fz.cpp\
 					./shared/Enum/Enum.h\
 					./shared/Enum/EnumDefinitions.h\
Index: /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 17110)
+++ /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 17111)
@@ -2719,25 +2719,6 @@
 	return Ke;
 }/*}}}*/
+#ifdef FSANALYTICAL
 ElementVector* StressbalanceAnalysis::CreatePVectorFS(Element* element){/*{{{*/
-
-	#ifdef FSANALYTICAL
-	ElementVector* pe=CreatePVectorFSAnalytical(element);
-
-	#else
-	/*compute all load vectors for this element*/
-	ElementVector* pe1=CreatePVectorFSViscous(element);
-	ElementVector* pe2=CreatePVectorFSShelf(element);
-	ElementVector* pe3=CreatePVectorFSFront(element);
-	ElementVector* pe =new ElementVector(pe1,pe2,pe3);
-
-	/*clean-up and return*/
-	delete pe1;
-	delete pe2;
-	delete pe3;
-	#endif
-
-	return pe;
-}/*}}}*/
-ElementVector* StressbalanceAnalysis::CreatePVectorFSAnalytical(Element* element){/*{{{*/
 
 	bool        analytical_solution=0;
@@ -2779,8 +2760,11 @@
 		element->NodalFunctionsVelocity(vbasis,gauss);
 
-		forcex=1.0; forcey=1.0; forcez=1.0;
-//		forcex->fx(x_coord,y_coord,z_coord);
-//		forcex->fy(x_coord,y_coord,z_coord);
-//		forcex->fz(x_coord,y_coord,z_coord);
+		x_coord=element->GetXcoord(gauss);
+		y_coord=element->GetYcoord(gauss);
+		z_coord=element->GetZcoord(gauss);
+
+		forcex=fx(x_coord,y_coord,z_coord);
+		forcey=fy(x_coord,y_coord,z_coord);
+		forcez=fz(x_coord,y_coord,z_coord);
 
 		for(i=0;i<vnumnodes;i++){
@@ -2801,4 +2785,21 @@
 	return pe;
 }/*}}}*/
+#else
+ElementVector* StressbalanceAnalysis::CreatePVectorFS(Element* element){/*{{{*/
+
+	/*compute all load vectors for this element*/
+	ElementVector* pe1=CreatePVectorFSViscous(element);
+	ElementVector* pe2=CreatePVectorFSShelf(element);
+	ElementVector* pe3=CreatePVectorFSFront(element);
+	ElementVector* pe =new ElementVector(pe1,pe2,pe3);
+
+	/*clean-up and return*/
+	delete pe1;
+	delete pe2;
+	delete pe3;
+
+	return pe;
+}/*}}}*/
+#endif
 ElementVector* StressbalanceAnalysis::CreatePVectorFSViscous(Element* element){/*{{{*/
 
Index: /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.h
===================================================================
--- /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.h	(revision 17110)
+++ /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.h	(revision 17111)
@@ -69,5 +69,4 @@
 		ElementMatrix* CreateKMatrixFSFriction(Element* element);
 		ElementVector* CreatePVectorFS(Element* element);
-		ElementVector* CreatePVectorFSAnalytical(Element* element);
 		ElementVector* CreatePVectorFSViscous(Element* element);
 		ElementVector* CreatePVectorFSShelf(Element* element);
Index: /issm/trunk-jpl/src/c/shared/FSanalyticals/fsanalyticals.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/FSanalyticals/fsanalyticals.h	(revision 17111)
+++ /issm/trunk-jpl/src/c/shared/FSanalyticals/fsanalyticals.h	(revision 17111)
@@ -0,0 +1,14 @@
+/*!\file: elements.h
+ * \brief prototypes for elements.h
+ */ 
+
+#ifndef _SHARED_ANALYTICALS_H_
+#define _SHARED_ANALYTICALS_H_
+
+#include "../Numerics/types.h"
+
+IssmDouble fx(IssmDouble x_coord, IssmDouble y_coord, IssmDouble z_coord);
+IssmDouble fy(IssmDouble x_coord, IssmDouble y_coord, IssmDouble z_coord);
+IssmDouble fz(IssmDouble x_coord, IssmDouble y_coord, IssmDouble z_coord);
+
+#endif //ifndef _SHARED_ANALYTICALS_H_
Index: /issm/trunk-jpl/src/c/shared/FSanalyticals/fx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/FSanalyticals/fx.cpp	(revision 17111)
+++ /issm/trunk-jpl/src/c/shared/FSanalyticals/fx.cpp	(revision 17111)
@@ -0,0 +1,18 @@
+/*!\file fx.cpp
+ * \brief: analytical fonction for FS
+ */
+
+#include <math.h>
+#include "../Numerics/types.h"
+
+IssmDouble fx(IssmDouble x,IssmDouble y,IssmDouble z){   
+	IssmDouble p = 2.0;  
+	IssmDouble q = 2.0;   
+	IssmDouble cst = 1.0;  
+	IssmDouble n   = 1.0;
+	IssmDouble functionx;
+
+	functionx=1.0;
+
+	return functionx;
+}
Index: /issm/trunk-jpl/src/c/shared/FSanalyticals/fy.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/FSanalyticals/fy.cpp	(revision 17111)
+++ /issm/trunk-jpl/src/c/shared/FSanalyticals/fy.cpp	(revision 17111)
@@ -0,0 +1,18 @@
+/*!\file fy.cpp
+ * \brief: analytical fonction for FS
+ */
+
+#include <math.h>
+#include "../Numerics/types.h"
+
+IssmDouble fy(IssmDouble x,IssmDouble y,IssmDouble z){   
+	IssmDouble p = 2.0;  
+	IssmDouble q = 2.0;   
+	IssmDouble cst = 1.0;  
+	IssmDouble n   = 1.0;
+	IssmDouble functiony;
+
+	functiony=x+y+z;
+
+	return functiony;
+}
Index: /issm/trunk-jpl/src/c/shared/FSanalyticals/fz.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/FSanalyticals/fz.cpp	(revision 17111)
+++ /issm/trunk-jpl/src/c/shared/FSanalyticals/fz.cpp	(revision 17111)
@@ -0,0 +1,18 @@
+/*!\file fz.cpp
+ * \brief: analytical fonction for FS
+ */
+
+#include <math.h>
+#include "../Numerics/types.h"
+
+IssmDouble fz(IssmDouble x,IssmDouble y,IssmDouble z){   
+	IssmDouble p = 2.0;  
+	IssmDouble q = 2.0;   
+	IssmDouble cst = 1.0;  
+	IssmDouble n   = 1.0;
+	IssmDouble functionz;
+
+	functionz=x+y+z;
+
+	return functionz;
+}
Index: /issm/trunk-jpl/src/c/shared/shared.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/shared.h	(revision 17110)
+++ /issm/trunk-jpl/src/c/shared/shared.h	(revision 17111)
@@ -6,4 +6,5 @@
 #define _SHARED_H_
 
+#include "./FSanalyticals/fsanalyticals.h"
 #include "./MemOps/MemOps.h"
 #include "./Bamg/shared.h"
