Index: /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 16697)
+++ /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 16698)
@@ -952,7 +952,8 @@
 void StressbalanceAnalysis::InputUpdateFromSolutionHoriz(IssmDouble* solution,Element* element){/*{{{*/
 
-	int        i;
-	IssmDouble rho_ice,g;
-	int*       doflist=NULL;
+	int         i,meshtype;
+	IssmDouble  rho_ice,g;
+	int*        doflist=NULL;
+	IssmDouble* xyz_list=NULL;
 
 	/*Fetch number of nodes and dof for this finite element*/
@@ -969,4 +970,5 @@
 	IssmDouble* pressure  = xNew<IssmDouble>(numnodes);
 	IssmDouble* thickness = xNew<IssmDouble>(numnodes);
+	IssmDouble* surface   = xNew<IssmDouble>(numnodes);
 
 	/*Use the dof list to index into the solution vector: */
@@ -975,4 +977,5 @@
 	/*Transform solution in Cartesian Space*/
 	element->TransformSolutionCoord(&values[0],XYEnum);
+	element->FindParam(&meshtype,MeshTypeEnum);
 
 	/*Ok, we have vx and vy in values, fill in vx and vy arrays: */
@@ -994,6 +997,16 @@
 	rho_ice = element->GetMaterialParameter(MaterialsRhoIceEnum);
 	g       = element->GetMaterialParameter(ConstantsGEnum);
-	element->GetInputListOnNodes(&thickness[0],ThicknessEnum);
-	for(i=0;i<numnodes;i++) pressure[i]=rho_ice*g*thickness[i];
+	switch(meshtype){
+		case Mesh2DhorizontalEnum:
+			element->GetInputListOnNodes(&thickness[0],ThicknessEnum);
+			for(i=0;i<numnodes;i++) pressure[i]=rho_ice*g*thickness[i];
+			break;
+		case Mesh3DEnum:   
+			element->GetVerticesCoordinates(&xyz_list);
+			element->GetInputListOnNodes(&surface[0],SurfaceEnum);
+			for(i=0;i<numnodes;i++) pressure[i]=rho_ice*g*(surface[i]-xyz_list[i*3+2]);
+			break;
+		default: _error_("mesh "<<EnumToStringx(meshtype)<<" not supported yet");
+	}
 
 	/*Now, we have to move the previous Vx and Vy inputs  to old 
@@ -1011,4 +1024,5 @@
 	/*Free ressources:*/
 	xDelete<IssmDouble>(thickness);
+	xDelete<IssmDouble>(surface);
 	xDelete<IssmDouble>(pressure);
 	xDelete<IssmDouble>(vel);
@@ -1017,4 +1031,5 @@
 	xDelete<IssmDouble>(vx);
 	xDelete<IssmDouble>(values);
+	xDelete<IssmDouble>(xyz_list);
 	xDelete<int>(doflist);
 
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 16697)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 16698)
@@ -71,4 +71,5 @@
 		virtual void   GetInputValue(int* pvalue,int enum_type)=0;
 		virtual void   GetInputValue(IssmDouble* pvalue,int enum_type)=0;
+		virtual void   GetVerticesCoordinates(IssmDouble** xyz_list)=0;
 		virtual void   GetMaterialInputValue(IssmDouble* pvalue,Node* node,int enumtype)=0;
 
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 16697)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 16698)
@@ -121,4 +121,11 @@
 
 /*Other*/
+/*FUNCTION Penta::AddInput{{{*/
+void  Penta::AddInput(int input_enum,IssmDouble* values, int interpolation_enum){
+
+	/*Call inputs method*/
+	this->inputs->AddInput(new PentaInput(input_enum,values,interpolation_enum));
+}
+/*}}}*/
 /*FUNCTION Penta::BedNormal {{{*/
 void Penta::BedNormal(IssmDouble* bed_normal, IssmDouble xyz_list[3][3]){
@@ -234,5 +241,5 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	for(i=0;i<3;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i][j];
 
@@ -302,5 +309,5 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*Retrieve all inputs we will be needing: */
@@ -1273,5 +1280,5 @@
 
 	/*Get xyz list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	xmin=xyz_list[0][0]; xmax=xyz_list[0][0];
 	ymin=xyz_list[0][1]; ymax=xyz_list[0][1];
@@ -1468,4 +1475,14 @@
 	if(!input) _error_("Input " << EnumToStringx(inputenum) << " not found in element");
 	input->GetInputValue(pvalue);
+
+}/*}}}*/
+/*FUNCTION Penta::GetVerticesCoordinates(IssmDouble** pxyz_list){{{*/
+void Penta::GetVerticesCoordinates(IssmDouble** pxyz_list){
+
+	IssmDouble* xyz_list = xNew<IssmDouble>(NUMVERTICES*3);
+	::GetVerticesCoordinates(xyz_list,this->vertices,NUMVERTICES);
+
+	/*Assign output pointer*/
+	*pxyz_list = xyz_list;
 
 }/*}}}*/
@@ -1651,5 +1668,5 @@
 	IssmDouble z_list[NUMVERTICES];
 
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	for(i=0;i<NUMVERTICES;i++) z_list[i]=xyz_list[i][2];
 	PentaRef::GetInputValue(&z,z_list,gauss);
@@ -1955,5 +1972,5 @@
 
 		/*Step2: Create element thickness input*/
-		GetVerticesCoordinates(&xyz_list[0][0],penta->vertices,NUMVERTICES);
+		::GetVerticesCoordinates(&xyz_list[0][0],penta->vertices,NUMVERTICES);
 		for(i=0;i<3;i++){
 			Helem_list[i]=xyz_list[i+3][2]-xyz_list[i][2];
@@ -3215,5 +3232,5 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	minx=xyz_list[0][0];
@@ -3470,5 +3487,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input);
@@ -3523,5 +3540,5 @@
 	if(NoIceInElement())return 0;
 
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*First calculate the area of the base (cross section triangle)
@@ -3549,5 +3566,5 @@
 	rho_ice=matpar->GetRhoIce();
 	rho_water=matpar->GetRhoWater();
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*First calculate the area of the base (cross section triangle)
@@ -3770,5 +3787,5 @@
 	if(NoIceInElement() || !IsOnSurface()) return 0.;
 
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*First calculate the area of the base (cross section triangle)
@@ -3845,5 +3862,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	rho_water=matpar->GetRhoWater();
 	rho_ice=matpar->GetRhoIce();
@@ -3994,5 +4011,5 @@
 	rho_ice=matpar->GetRhoIce();
 	heatcapacity=matpar->GetHeatCapacity();
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i][j];
 
@@ -4076,5 +4093,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	rho_water=matpar->GetRhoWater();
 	rho_ice=matpar->GetRhoIce();
@@ -4223,5 +4240,5 @@
 	rho_ice=matpar->GetRhoIce();
 	heatcapacity=matpar->GetHeatCapacity();
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i][j];
 
@@ -4292,5 +4309,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	rho_ice=matpar->GetRhoIce();
 	heatcapacity=matpar->GetHeatCapacity();
@@ -4383,5 +4400,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i][j];
 	mixed_layer_capacity=matpar->GetMixedLayerCapacity();
@@ -4446,5 +4463,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i][j];
 	parameters->FindParam(&analysis_type,AnalysisTypeEnum);
@@ -4565,5 +4582,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	rho_ice=matpar->GetRhoIce();
 	heatcapacity=matpar->GetHeatCapacity();
@@ -4649,5 +4666,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i][j];
 	mixed_layer_capacity=matpar->GetMixedLayerCapacity();
@@ -4708,5 +4725,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i][j];
 	parameters->FindParam(&analysis_type,AnalysisTypeEnum);
@@ -4788,5 +4805,5 @@
 
 	/*Get all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* surface_input=inputs->GetInput(SurfaceEnum); _assert_(surface_input);
 
@@ -4856,5 +4873,5 @@
 
 	/*Get all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	GetInputListOnVertices(&pressure[0],PressureEnum);
 	Input* surface_input=inputs->GetInput(SurfaceEnum); _assert_(surface_input);
@@ -5029,5 +5046,5 @@
 	Input* enthalpy_input=inputs->GetInput(EnthalpyEnum); _assert_(enthalpy_input);
 
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i][j];
 
@@ -5346,5 +5363,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* vx_input=inputs->GetInput(VxEnum);       _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum);       _assert_(vy_input);
@@ -5416,5 +5433,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* vx_input=inputs->GetInput(VxEnum);       _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum);       _assert_(vy_input);
@@ -5530,5 +5547,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
 	this->parameters->FindParam(&responses,NULL,InversionCostFunctionsEnum);
@@ -5726,5 +5743,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
 	this->parameters->FindParam(&responses,NULL,InversionCostFunctionsEnum);
@@ -6033,5 +6050,5 @@
 	parameters->FindParam(&analysis_type,AnalysisTypeEnum);
 	GradientIndexing(&vertexpidlist[0],control_index);
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i][j];
 	Input* adjointx_input=inputs->GetInput(AdjointxEnum);               _assert_(adjointx_input);
@@ -6105,5 +6122,5 @@
 	/*Retrieve all inputs and parameters*/
 	parameters->FindParam(&analysis_type,AnalysisTypeEnum);
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i][j];
 	GradientIndexing(&vertexpidlist[0],control_index);
@@ -6923,5 +6940,5 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&viscosity_overshoot,StressbalanceViscosityOvershootEnum);
 	Input* vx_input=inputs->GetInput(VxEnum);       _assert_(vx_input);
@@ -7010,5 +7027,5 @@
 
 	/*retrieve inputs :*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i][j];
 	parameters->FindParam(&analysis_type,AnalysisTypeEnum);
@@ -7129,5 +7146,5 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	parameters->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
 	Input* vx_input=inputs->GetInput(VxEnum);       _assert_(vx_input);
@@ -7243,5 +7260,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	parameters->FindParam(&analysis_type,AnalysisTypeEnum);
 	parameters->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
@@ -7543,5 +7560,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&viscosity_overshoot,StressbalanceViscosityOvershootEnum);
 	Input* vx_input=inputs->GetInput(VxEnum);       _assert_(vx_input);
@@ -7694,5 +7711,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* vx_input=inputs->GetInput(VxEnum);        _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum);        _assert_(vy_input);
@@ -7790,5 +7807,5 @@
 	/*Retrieve all inputs and parameters*/
 	inputs->GetInputValue(&approximation,ApproximationEnum);
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&viscosity_overshoot,StressbalanceViscosityOvershootEnum);
 	Input* vx_input=inputs->GetInput(VxEnum);       _assert_(vx_input);
@@ -7864,5 +7881,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i][j];
 	parameters->FindParam(&migration_style,GroundinglineMigrationEnum);
@@ -7988,5 +8005,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	parameters->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
 	Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
@@ -8100,5 +8117,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	parameters->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
 	Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
@@ -8171,5 +8188,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	parameters->FindParam(&analysis_type,AnalysisTypeEnum);
 	Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
@@ -8242,5 +8259,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/* Start  looping on the number of gaussian points: */
@@ -8288,5 +8305,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i+3][j];
 	SurfaceNormal(&surface_normal[0],xyz_list_tria);
@@ -8355,5 +8372,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
 	Input* vx_input=inputs->GetInput(VxEnum);               _assert_(vx_input);
@@ -8426,5 +8443,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	parameters->FindParam(&analysis_type,AnalysisTypeEnum);
 	this->parameters->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
@@ -8517,5 +8534,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
 	Input* vx_input=inputs->GetInput(VxEnum);       _assert_(vx_input);
@@ -8591,5 +8608,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	parameters->FindParam(&analysis_type,AnalysisTypeEnum);
 	this->parameters->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
@@ -8756,5 +8773,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	rho_ice=matpar->GetRhoIce();
 	gravity=matpar->GetG();
@@ -8882,5 +8899,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* thickness_input=inputs->GetInput(ThicknessEnum); _assert_(thickness_input);
 	Input* surface_input=inputs->GetInput(SurfaceEnum);     _assert_(surface_input);
@@ -8950,5 +8967,5 @@
 
 	/*Initialize Element vector and other vectors*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	ElementVector* pe    = new ElementVector(nodes,numnodes,this->parameters,HOApproximationEnum);
 	IssmDouble*    basis = xNew<IssmDouble>(numnodes);
@@ -9065,5 +9082,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	rho_water=matpar->GetRhoWater();
 	rho_ice  =matpar->GetRhoIce();
@@ -9131,5 +9148,5 @@
 	gravity=matpar->GetG();
 	B=material->GetB();
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input);
@@ -9223,5 +9240,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* loadingforcex_input=inputs->GetInput(LoadingforceXEnum);  _assert_(loadingforcex_input);
 	Input* loadingforcey_input=inputs->GetInput(LoadingforceYEnum);  _assert_(loadingforcey_input);
@@ -9298,5 +9315,5 @@
 	rho_water=matpar->GetRhoWater();
 	gravity=matpar->GetG();
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* bed_input=inputs->GetInput(BedEnum); _assert_(bed_input);
 	Input* vx_input=inputs->GetInput(VxEnum);   _assert_(vx_input);
@@ -9379,5 +9396,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	inputs->GetInputValue(&approximation,ApproximationEnum);
 	Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
@@ -9438,5 +9455,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i][j];
 	inputs->GetInputValue(&approximation,ApproximationEnum);
@@ -9549,5 +9566,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* vx_input=inputs->GetInput(VxEnum);       _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum);       _assert_(vy_input);
@@ -9625,5 +9642,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input);
@@ -9843,5 +9860,5 @@
 
 		/*Get node data: */
-		GetVerticesCoordinates(&xyz_list[0][0],penta->vertices,NUMVERTICES);
+		::GetVerticesCoordinates(&xyz_list[0][0],penta->vertices,NUMVERTICES);
 
 		/*Now Compute vel*/
@@ -9906,5 +9923,5 @@
 
 	/*Get node data: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*Use the dof list to index into the solution vector: */
@@ -10001,5 +10018,5 @@
 
 	/*Get node data: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*Use the dof list to index into the solution vector: */
@@ -10117,5 +10134,5 @@
 
 		/*Get node data: */
-		GetVerticesCoordinates(&xyz_list[0][0],penta->vertices,NUMVERTICES);
+		::GetVerticesCoordinates(&xyz_list[0][0],penta->vertices,NUMVERTICES);
 
 		/*Now Compute vel*/
@@ -10177,5 +10194,5 @@
 	/*Transform solution in Cartesian Space*/
 	::TransformSolutionCoord(&values[0],nodes,NUMVERTICES,XYEnum);
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*Ok, we have vx and vy in values, fill in vx and vy arrays: */
@@ -10258,5 +10275,5 @@
 
 	/*Get node data: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*Use the dof list to index into the solution vector: */
@@ -10345,5 +10362,5 @@
 
 	/*Get node data: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*Use the dof list to index into the solution vector: */
@@ -10417,5 +10434,5 @@
 	/*Get dof list and vertices coordinates: */
 	GetDofList(&doflist,NoneApproximationEnum,GsetEnum);
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*Use the dof list to index into the solution vector vz: */
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 16697)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 16698)
@@ -95,4 +95,5 @@
 		IssmDouble GetZcoord(GaussPenta* gauss);
 		void   GetVectorFromInputs(Vector<IssmDouble>* vector,int name_enum);
+		void   GetVerticesCoordinates(IssmDouble** pxyz_list);
 
 		int    Sid();
@@ -180,5 +181,5 @@
 		/*}}}*/
 		/*Penta specific routines:{{{*/
-		void           AddInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented yet");};
+		void           AddInput(int input_enum, IssmDouble* values, int interpolation_enum);
 		void	         BedNormal(IssmDouble* bed_normal, IssmDouble xyz_list[3][3]);
 		ElementMatrix* CreateBasalMassMatrix(void);
Index: /issm/trunk-jpl/src/c/classes/Elements/Seg.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Seg.cpp	(revision 16697)
+++ /issm/trunk-jpl/src/c/classes/Elements/Seg.cpp	(revision 16698)
@@ -160,5 +160,5 @@
 
 	/*Get xyz list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	x1=xyz_list[0][0]; y1=xyz_list[0][1];
 	x2=xyz_list[1][0]; y2=xyz_list[1][1];
@@ -186,5 +186,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	this->parameters->FindParam(&stabilization,MasstransportStabilizationEnum);
@@ -264,5 +264,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	this->parameters->FindParam(&stabilization,MasstransportStabilizationEnum);
@@ -338,5 +338,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/* Start looping on the number of gaussian points: */
@@ -381,5 +381,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&input_enum,InputToL2ProjectEnum);
 	switch(input_enum){
@@ -430,5 +430,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	Input* vy_input     = inputs->GetInput(VyEnum);                         _assert_(vy_input);
@@ -475,5 +475,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	Input* vy_input            = inputs->GetInput(VyEnum);                         _assert_(vy_input);
Index: /issm/trunk-jpl/src/c/classes/Elements/Seg.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 16697)
+++ /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 16698)
@@ -92,4 +92,5 @@
 		void        GetNodesLidList(int* lidlist){_error_("not implemented yet");};
 		int         GetNumberOfNodes(void){_error_("not implemented yet");};
+		void        GetVerticesCoordinates(IssmDouble** pxyz_list){_error_("not implemented yet");};
 		int         Sid(){_error_("not implemented yet");};
 		void        InputChangeName(int input_enum, int enum_type_old){_error_("not implemented yet");};
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 16697)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 16698)
@@ -342,5 +342,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/* Start looping on the number of gaussian points: */
@@ -592,5 +592,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&input_enum,InputToL2ProjectEnum);
 	switch(input_enum){
@@ -685,5 +685,5 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*Retrieve all inputs we will be needing: */
@@ -907,5 +907,5 @@
 
 	/*Get xyz list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	x1=xyz_list[0][0]; y1=xyz_list[0][1];
 	x2=xyz_list[1][0]; y2=xyz_list[1][1];
@@ -2700,5 +2700,5 @@
 	if(NoIceInElement())return 0;
 
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	for(int i=0;i<3;i++){
@@ -2764,5 +2764,5 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	minx=xyz_list[0][0];
@@ -3029,5 +3029,5 @@
 	rho_ice=matpar->GetRhoIce();
 	rho_water=matpar->GetRhoWater();
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*First calculate the area of the base (cross section triangle)
@@ -3068,5 +3068,5 @@
 
 	/*Get xyz list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*get area coordinates of 0 and 1 locations: */
@@ -3135,5 +3135,5 @@
 
 	/*Get xyz list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*get area coordinates of 0 and 1 locations: */
@@ -3329,5 +3329,5 @@
    if(NoIceInElement())return 0;
 
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*First calculate the area of the base (cross section triangle)
@@ -3429,5 +3429,5 @@
 
 	/*figure out gravity center of our element: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	x0=(xyz_list[0][0]+xyz_list[1][0]+xyz_list[2][0])/3.0;
 	y0=(xyz_list[0][1]+xyz_list[1][1]+xyz_list[2][1])/3.0;
@@ -3523,5 +3523,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	parameters->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
 	Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
@@ -3594,5 +3594,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	parameters->FindParam(&analysis_type,AnalysisTypeEnum);
 	Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
@@ -3670,5 +3670,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* thickness_input=inputs->GetInput(ThicknessEnum); _assert_(thickness_input);
 	Input* vx_input=inputs->GetInput(VxEnum);               _assert_(vx_input);
@@ -3744,5 +3744,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	parameters->FindParam(&migration_style,GroundinglineMigrationEnum);
 	Input* surface_input=inputs->GetInput(SurfaceEnum);       _assert_(surface_input);
@@ -3886,5 +3886,5 @@
 
 	/*Initialize Element matrix and vectors*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	ElementVector* pe     = new ElementVector(nodes,vnumnodes+pnumnodes,this->parameters,FSvelocityEnum);
 	IssmDouble*    vbasis = xNew<IssmDouble>(vnumnodes);
@@ -3958,5 +3958,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* loadingforcex_input=inputs->GetInput(LoadingforceXEnum);  _assert_(loadingforcex_input);
 	Input* loadingforcey_input=inputs->GetInput(LoadingforceYEnum);  _assert_(loadingforcey_input);
@@ -4025,5 +4025,5 @@
 	rho_water=matpar->GetRhoWater();
 	gravity=matpar->GetG();
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* bed_input=inputs->GetInput(BedEnum); _assert_(bed_input);
 
@@ -4096,5 +4096,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* thickness_input=inputs->GetInput(ThicknessEnum); _assert_(thickness_input); 
 	Input* surface_input=inputs->GetInput(SurfaceEnum);     _assert_(surface_input);
@@ -4165,5 +4165,5 @@
 
 	/*Initialize Element vector and other vectors*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	ElementVector* pe    = new ElementVector(nodes,numnodes,this->parameters,SSAApproximationEnum);
 	IssmDouble*    basis = xNew<IssmDouble>(numnodes);
@@ -4284,5 +4284,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* vx_input=inputs->GetInput(VxEnum);       _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum);       _assert_(vy_input);
@@ -4335,5 +4335,5 @@
 	IssmDouble y_list[NUMVERTICES];
 
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	for(int i=0;i<NUMVERTICES;i++) y_list[i]=xyz_list[i][1];
 	TriaRef::GetInputValue(&y,&y_list[0],gauss,P1Enum);
@@ -4583,5 +4583,5 @@
 
 	/*Retrieve all inputs we will be needing: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* weights_input              = inputs->GetInput(InversionCostFunctionsCoefficientsEnum);   _assert_(weights_input);
 	Input* thickness_input            = inputs->GetInput(ThicknessEnum); _assert_(thickness_input);
@@ -4836,5 +4836,5 @@
 
 	/*Retrieve all inputs we will be needing: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	GradientIndexing(&vertexpidlist[0],control_index);
 	Input* rheologyb_input=material->inputs->GetInput(MaterialsRheologyBbarEnum); _assert_(rheologyb_input);
@@ -4878,5 +4878,5 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	GradientIndexing(&doflist[0],control_index);
 
@@ -4935,5 +4935,5 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	GradientIndexing(&doflist[0],control_index);
 
@@ -4997,5 +4997,5 @@
 	/*retrive parameters: */
 	parameters->FindParam(&analysis_type,AnalysisTypeEnum);
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	GradientIndexing(&vertexpidlist[0],control_index);
 	this->GetConnectivityList(&connectivity[0]);
@@ -5077,5 +5077,5 @@
 	/*Retrieve all inputs we will be needing: */
 	if(IsFloating())return;
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	GradientIndexing(&vertexpidlist[0],control_index);
 	Input* dragcoefficient_input=inputs->GetInput(FrictionCoefficientEnum); _assert_(dragcoefficient_input);
@@ -5137,5 +5137,5 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	GradientIndexing(&vertexpidlist[0],control_index);
 
@@ -5180,5 +5180,5 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	GradientIndexing(&vertexpidlist[0],control_index);
 
@@ -5229,9 +5229,9 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	GradientIndexing(&vertexpidlist[0],control_index);
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
 	this->parameters->FindParam(&responses,NULL,InversionCostFunctionsEnum);
@@ -5348,5 +5348,5 @@
 
 	/*Retrieve all inputs we will be needing: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* weights_input  =inputs->GetInput(InversionCostFunctionsCoefficientsEnum);              _assert_(weights_input);
 	Input* rheologyb_input=material->inputs->GetInput(MaterialsRheologyBbarEnum); _assert_(rheologyb_input);
@@ -5387,5 +5387,5 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*Retrieve all inputs we will be needing: */
@@ -5446,5 +5446,5 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*Retrieve all inputs we will be needing: */
@@ -5505,5 +5505,5 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*Retrieve all inputs we will be needing: */
@@ -5563,5 +5563,5 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*Retrieve all inputs we will be needing: */
@@ -5622,5 +5622,5 @@
 
 	/* Get node coordinates and dof list: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*Retrieve all inputs we will be needing: */
@@ -5684,5 +5684,5 @@
 
 	/*Retrieve all inputs we will be needing: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* weights_input  =inputs->GetInput(InversionCostFunctionsCoefficientsEnum);   _assert_(weights_input);
 	Input* thickness_input=inputs->GetInput(ThicknessEnum); _assert_(thickness_input);
@@ -5728,5 +5728,5 @@
 
 	/*Retrieve all inputs we will be needing: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* weights_input  = inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
 	Input* thickness_input= inputs->GetInput(ThicknessEnum);                          _assert_(thickness_input);
@@ -5779,5 +5779,5 @@
 
 	/*Retrieve all inputs we will be needing: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* weights_input  = inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
 	Input* thickness_input= inputs->GetInput(ThicknessEnum);                          _assert_(thickness_input);
@@ -5827,5 +5827,5 @@
 
 	/*Retrieve all inputs we will be needing: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* thickness_input   =inputs->GetInput(ThicknessEnum);   _assert_(thickness_input);
 	Input* thicknessobs_input=inputs->GetInput(InversionThicknessObsEnum);_assert_(thicknessobs_input);
@@ -5878,5 +5878,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
 	this->parameters->FindParam(&responses,NULL,InversionCostFunctionsEnum);
@@ -5968,5 +5968,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
 	this->parameters->FindParam(&responses,NULL,InversionCostFunctionsEnum);
@@ -6146,5 +6146,5 @@
 
 	/*Retrieve all inputs we will be needing: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum);         _assert_(weights_input);
 	Input* drag_input   =inputs->GetInput(FrictionCoefficientEnum); _assert_(drag_input);
@@ -6218,5 +6218,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* vx_input=inputs->GetInput(VxEnum);       _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum);       _assert_(vy_input);
@@ -6390,5 +6390,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	latentheat   = matpar->GetLatentHeat();
 	heatcapacity = matpar->GetHeatCapacity();
@@ -6526,5 +6526,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	this->parameters->FindParam(&diffusivity,HydrologyshreveStabilizationEnum);
@@ -6616,5 +6616,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	sediment_storing       = matpar->GetSedimentStoring();
@@ -6683,5 +6683,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* thickness_input=inputs->GetInput(HydrologydcEplThicknessEnum); _assert_(thickness_input);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
@@ -6745,5 +6745,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/* Start looping on the number of gaussian points: */
@@ -6790,5 +6790,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	Input* basal_melting_input=inputs->GetInput(BasalforcingsMeltingRateEnum); _assert_(basal_melting_input);
@@ -6840,5 +6840,5 @@
 	/*Retrieve all inputs and parameters*/
 	sediment_storing = matpar->GetSedimentStoring();
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	Input* water_input=inputs->GetInput(BasalforcingsMeltingRateEnum);  _assert_(water_input);
@@ -6906,5 +6906,5 @@
 	/*Retrieve all inputs and parameters*/
 	epl_specificstoring = matpar->GetEplSpecificStoring();
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	Input* residual_input=inputs->GetInput(SedimentHeadResidualEnum);     _assert_(residual_input);
@@ -6976,5 +6976,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&input_enum,InputToL2ProjectEnum);
 	switch(input_enum){
@@ -7407,5 +7407,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/* Start  looping on the number of gaussian points: */
@@ -7453,5 +7453,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*Get vertex indices that lie on bed*/
@@ -7503,5 +7503,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
 	/*Get vertex indices that lie on bed*/
@@ -7567,5 +7567,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	this->parameters->FindParam(&meshtype,MeshTypeEnum);
@@ -7683,5 +7683,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	this->parameters->FindParam(&meshtype,MeshTypeEnum);
@@ -7760,5 +7760,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	this->parameters->FindParam(&stabilization,MasstransportStabilizationEnum);
@@ -7873,5 +7873,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	this->parameters->FindParam(&stabilization,MasstransportStabilizationEnum);
@@ -7995,5 +7995,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	Input* ms_input     = inputs->GetInput(SurfaceforcingsMassBalanceEnum);      _assert_(ms_input);
@@ -8046,5 +8046,5 @@
 	/*Retrieve all inputs and parameters*/
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* ms_input=inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(ms_input);
 	Input* mb_input=inputs->GetInput(BasalforcingsMeltingRateEnum);   _assert_(mb_input);
@@ -8089,5 +8089,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	Input* vz_input     = inputs->GetInput(VzEnum);                         _assert_(vz_input);
@@ -8150,5 +8150,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	Input* vz_input  = inputs->GetInput(VzEnum);                         _assert_(vz_input);
@@ -8238,5 +8238,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	this->parameters->FindParam(&meshtype,MeshTypeEnum);
@@ -8365,5 +8365,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	damage_input  = this->material->inputs->GetInput(DamageDbarEnum);     _assert_(damage_input);
@@ -8662,5 +8662,5 @@
 
 	/*Retrieve all Inputs and parameters: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&stabilization,BalancethicknessStabilizationEnum);
 	this->parameters->FindParam(&meshtype,MeshTypeEnum);
@@ -8767,5 +8767,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input);
@@ -8829,5 +8829,5 @@
 
 	/*Retrieve all Inputs and parameters: */
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* H_input =inputs->GetInput(ThicknessEnum); _assert_(H_input);
 	h=sqrt(2.*this->GetArea());
@@ -8902,5 +8902,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* thickness_input=inputs->GetInput(ThicknessEnum); _assert_(thickness_input);
 
@@ -8964,5 +8964,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* ms_input=inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(ms_input);
 	Input* mb_input=inputs->GetInput(BasalforcingsMeltingRateEnum);   _assert_(mb_input);
@@ -9006,5 +9006,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* ms_input=inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(ms_input);
 	Input* mb_input=inputs->GetInput(BasalforcingsMeltingRateEnum);   _assert_(mb_input);
@@ -9056,5 +9056,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* ms_input=inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(ms_input);
 	Input* mb_input=inputs->GetInput(BasalforcingsMeltingRateEnum);   _assert_(mb_input);
@@ -9132,5 +9132,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* H_input       = inputs->GetInput(ThicknessEnum); _assert_(H_input);
 	Input* surface_input = inputs->GetInput(SurfaceEnum);   _assert_(surface_input);
@@ -9184,5 +9184,5 @@
 
 	/*Retrieve all inputs and parameters*/
-	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	Input* H_input       = inputs->GetInput(ThicknessEnum); _assert_(H_input);
 	Input* surface_input = inputs->GetInput(SurfaceEnum);   _assert_(surface_input);
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 16697)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 16698)
@@ -106,4 +106,5 @@
 		void        GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type);
 		void        GetVectorFromInputs(Vector<IssmDouble>* vector, int name_enum);
+		void        GetVerticesCoordinates(IssmDouble** pxyz_list){_error_("not implemented yet");};
 		void        InputCreate(IssmDouble* vector,IoModel* iomodel,int M,int N,int vector_type,int vector_enum,int code);
 		void        InputDepthAverageAtBase(int enum_type,int average_enum_type,int object_enum=MeshElementsEnum);
