Index: /issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp	(revision 17177)
+++ /issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp	(revision 17178)
@@ -327,5 +327,5 @@
 	/*Build B: */
 	for(int i=0;i<numnodes;i++){
-		for(int j=0;j<dim;i++){
+		for(int j=0;j<dim;j++){
 			B[numnodes*j+i] = basis[i];
 		}
@@ -350,5 +350,5 @@
 
 	/*Get nodal functions derivatives*/
-	IssmDouble* dbasis=xNew<IssmDouble>(2*numnodes);
+	IssmDouble* dbasis=xNew<IssmDouble>(dim*numnodes);
 	element->NodalFunctionsDerivatives(dbasis,xyz_list,gauss);
 
Index: /issm/trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp	(revision 17177)
+++ /issm/trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp	(revision 17178)
@@ -154,5 +154,5 @@
 	Input* vx_input=topelement->GetInput(VxEnum); _assert_(vx_input);
 	Input* vy_input=NULL;
-	if(dim>1) topelement->GetInput(VyEnum); _assert_(vy_input);
+	if(dim>1){topelement->GetInput(VyEnum); _assert_(vy_input);}
 	h = topelement->CharacteristicLength();
 
@@ -331,5 +331,5 @@
 	/*Build B: */
 	for(int i=0;i<numnodes;i++){
-		for(int j=0;j<dim;i++){
+		for(int j=0;j<dim;j++){
 			B[numnodes*j+i] = basis[i];
 		}
@@ -354,5 +354,5 @@
 
 	/*Get nodal functions derivatives*/
-	IssmDouble* dbasis=xNew<IssmDouble>(2*numnodes);
+	IssmDouble* dbasis=xNew<IssmDouble>(dim*numnodes);
 	element->NodalFunctionsDerivatives(dbasis,xyz_list,gauss);
 
