Index: /issm/trunk/src/c/objects/Elements/Penta.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 5930)
+++ /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 5931)
@@ -774,11 +774,17 @@
 			break;
 		case PrognosticAnalysisEnum:
-			CreatePVectorPrognostic( pg);
+			pe=CreatePVectorPrognostic();
+			if(pe) pe->AddToGlobal(pg,pf);
+			if(pe) delete pe;
 			break;
 		case BalancedthicknessAnalysisEnum:
-			CreatePVectorBalancedthickness( pg);
+			pe=CreatePVectorBalancedthickness();
+			if(pe) pe->AddToGlobal(pg,pf);
+			if(pe) delete pe;
 			break;
 		case BalancedvelocitiesAnalysisEnum:
-			CreatePVectorBalancedvelocities( pg);
+			pe=CreatePVectorBalancedvelocities();
+			if(pe) pe->AddToGlobal(pg,pf);
+			if(pe) delete pe;
 			break;
 		case ThermalAnalysisEnum:
@@ -3002,7 +3008,7 @@
 /*}}}*/
 /*FUNCTION Penta::CreatePVectorBalancedthickness {{{1*/
-void Penta::CreatePVectorBalancedthickness( Vec pg){
-
-	if (!IsOnBed() || IsOnWater()) return;
+ElementVector* Penta::CreatePVectorBalancedthickness(void){
+
+	if (!IsOnBed() || IsOnWater()) return NULL;
 
 	/*Depth Averaging Vx and Vy*/
@@ -3014,6 +3020,4 @@
 	ElementVector* pe=tria->CreatePVectorBalancedthickness();
 	delete tria->matice; delete tria;
-	pe->AddToGlobal(pg,NULL);
-	delete pe;
 
 	/*Delete Vx and Vy averaged*/
@@ -3022,11 +3026,11 @@
 
 	/*Clean up and return*/
-	return;
+	return pe;
 }
 /*}}}*/
 /*FUNCTION Penta::CreatePVectorBalancedvelocities {{{1*/
-void Penta::CreatePVectorBalancedvelocities( Vec pg){
-
-	if (!IsOnBed() || IsOnWater()) return;
+ElementVector* Penta::CreatePVectorBalancedvelocities(void){
+
+	if (!IsOnBed() || IsOnWater()) return NULL;
 
 	/*Depth Averaging Vx and Vy*/
@@ -3038,6 +3042,4 @@
 	ElementVector* pe=tria->CreatePVectorBalancedvelocities();
 	delete tria->matice; delete tria;
-	pe->AddToGlobal(pg,NULL);
-	delete pe;
 
 	/*Delete Vx and Vy averaged*/
@@ -3046,5 +3048,5 @@
 
 	/*Clean up and return*/
-	return;
+	return pe;
 }
 /*}}}*/
@@ -3739,7 +3741,7 @@
 /*}}}*/
 /*FUNCTION Penta::CreatePVectorPrognostic {{{1*/
-void Penta::CreatePVectorPrognostic( Vec pg){
-
-	if (!IsOnBed() || IsOnWater()) return;
+ElementVector* Penta::CreatePVectorPrognostic(void){
+
+	if (!IsOnBed() || IsOnWater()) return NULL;
 
 	/*Depth Averaging Vx and Vy*/
@@ -3751,6 +3753,4 @@
 	ElementVector* pe=tria->CreatePVectorPrognostic();
 	delete tria->matice; delete tria;
-	pe->AddToGlobal(pg,NULL);
-	delete pe;
 
 	/*Delete Vx and Vy averaged*/
@@ -3759,5 +3759,5 @@
 
 	/*Clean up and return*/
-	return;
+	return pe;
 }
 /*}}}*/
Index: /issm/trunk/src/c/objects/Elements/Penta.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.h	(revision 5930)
+++ /issm/trunk/src/c/objects/Elements/Penta.h	(revision 5931)
@@ -150,6 +150,6 @@
 		ElementMatrix* CreateKMatrixThermalVolume(void);
 		ElementMatrix* CreateKMatrixThermalShelf(void);
-		void	  CreatePVectorBalancedthickness( Vec pg);
-		void	  CreatePVectorBalancedvelocities( Vec pg);
+		ElementVector* CreatePVectorBalancedthickness(void);
+		ElementVector* CreatePVectorBalancedvelocities(void);
 		ElementVector* CreatePVectorAdjointHoriz(void);
 		ElementVector* CreatePVectorAdjointMacAyeal(void);
@@ -170,5 +170,5 @@
 		void	  CreatePVectorDiagnosticVert( Vec pg);
 		void	  CreatePVectorMelting( Vec pg);
-		void	  CreatePVectorPrognostic( Vec pg);
+		ElementVector* CreatePVectorPrognostic(void);
 		ElementVector* CreatePVectorSlope(void);
 		void	  CreatePVectorThermal( Vec pg);
