Index: /issm/trunk/src/c/Makefile.am
===================================================================
--- /issm/trunk/src/c/Makefile.am	(revision 110)
+++ /issm/trunk/src/c/Makefile.am	(revision 111)
@@ -71,210 +71,6 @@
 					./shared/Numerics/numerics.h\
 					./shared/Numerics/GaussPoints.h\
-					./shared/Numerics/GaussPoints.cpp\
-					./shared/Numerics/BrentSearch.cpp\
-					./shared/Numerics/OptFunc.cpp\
-					./shared/Numerics/extrema.cpp\
-					./shared/Exceptions/exceptions.h\
-					./shared/Exceptions/Exceptions.cpp\
-					./shared/Exceptions/exprintf.cpp\
-					./shared/Exp/exp.h\
-					./shared/Exp/IsInPoly.cpp\
-					./shared/Exp/IsInPolySerial.cpp\
-					./shared/Exp/DomainOutlineRead.cpp\
-					./shared/TriMesh/trimesh.h\
-					./shared/TriMesh/AssociateSegmentToElement.cpp\
-					./shared/TriMesh/GridInsideHole.cpp\
-					./shared/TriMesh/OrderSegments.cpp\
-					./shared/TriMesh/SplitMeshForRifts.cpp\
-					./shared/TriMesh/TriMeshUtils.cpp\
-					./shared/Sorting/binary_search.cpp\
-					./shared/Sorting/sorting.h\
-					./shared/Elements/elements.h\
-					./shared/Elements/ResolvePointers.cpp\
-					./shared/Elements/Paterson.cpp\
-					./shared/Elements/GetElementNodeData.cpp\
-					./toolkits/petsc\
-					./toolkits/petsc/patches\
-					./toolkits/petsc/patches/petscpatches.h\
-					./toolkits/petsc/patches/MatlabMatrixToPetscMatrix.cpp\
-					./toolkits/petsc/patches/MatlabVectorToPetscVector.cpp\
-					./toolkits/petsc/patches/PetscMatrixToMatlabMatrix.cpp\
-					./toolkits/petsc/patches/PetscVectorToMatlabVector.cpp\
-					./toolkits/petsc/patches/MatlabMatrixToDoubleMatrix.cpp\
-					./toolkits/petsc/patches/MatlabVectorToDoubleVector.cpp\
-					./toolkits/petsc/patches/PetscDetermineLocalSize.cpp\
-					./toolkits/petsc/patches/VecTranspose.cpp\
-					./toolkits/petsc/patches/VecToMPISerial.cpp\
-					./toolkits/petsc/patches/MatToSerial.cpp\
-					./toolkits/petsc/patches/VecMerge.cpp\
-					./toolkits/petsc/patches/NewVec.cpp\
-					./toolkits/petsc/patches/NewVecFromLocalSize.cpp\
-					./toolkits/petsc/patches/PetscOptionsDetermineSolverType.cpp\
-					./toolkits/petsc/patches/PetscOptionsInsertMultipleString.cpp\
-					./toolkits/petsc/patches/NewMat.cpp\
-					./toolkits/petsc/patches/VecFree.cpp\
-					./toolkits/petsc/patches/KSPFree.cpp\
-					./toolkits/petsc/patches/ISFree.cpp\
-					./toolkits/petsc/patches/MatFree.cpp\
-					./toolkits/petsc/patches/GetOwnershipBoundariesFromRange.cpp\
-					./toolkits/petsc/patches/VecPartition.cpp\
-					./toolkits/petsc/patches/MatPartition.cpp\
-					./toolkits/petsc/patches/MatInvert.cpp\
-					./toolkits/petsc/patches/MatMultPatch.cpp\
-					./toolkits/petsc/petscincludes.h\
-					./toolkits/mpi/mpiincludes.h\
-					./toolkits/mpi/patches/mpipatches.h\
-					./toolkits/mpi/patches/MPI_Upperrow.cpp\
-					./toolkits/mpi/patches/MPI_Lowerrow.cpp\
-					./toolkits/mpi/patches/MPI_Boundariesfromrange.cpp\
-					./toolkits/metis/metisincludes.h\
-					./toolkits/triangle/triangleincludes.h\
-					./toolkits.h\
-					./io/io.h\
-					./io/FetchData.cpp\
-					./io/WriteData.cpp\
-					./io/WriteDataToDisk.cpp\
-					./io/SerialFetchData.cpp\
-					./io/SerialWriteData.cpp\
-					./io/ParallelFetchData.cpp\
-					./io/ParallelFetchInteger.cpp\
-					./io/ParallelFetchMat.cpp\
-					./io/ParallelFetchScalar.cpp\
-					./io/ParallelFetchString.cpp\
-					./io/ModelFetchData.cpp\
-					./io/WriteNodeSets.cpp\
-					./io/WriteParams.cpp\
-					./io/FetchNodeSets.cpp\
-					./io/ParameterInputsInit.cpp\
-					./EnumDefinitions/EnumDefinitions.h\
-					./EnumDefinitions/EnumDefinitions.cpp\
-					./EnumDefinitions/AnalysisTypeAsEnum.cpp\
-					./ModelProcessorx/ModelProcessorx.h\
-					./ModelProcessorx/Model.cpp\
-					./ModelProcessorx/FetchRifts.cpp\
-					./ModelProcessorx/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp\
-					./ModelProcessorx/DistributeNumDofs.cpp\
-					./ModelProcessorx/CreateConstraintsDiagnosticHoriz.cpp \
-					./ModelProcessorx/CreateLoadsDiagnosticHoriz.cpp\
-					./ModelProcessorx/ModelCreateParameters.cpp\
-					./Dofx/Dofx.h\
-					./Dofx/Dofx.cpp\
-					./Dux/Dux.h\
-					./Dux/Dux.cpp\
-					./ControlConstrainx/ControlConstrainx.h\
-					./ControlConstrainx/ControlConstrainx.cpp\
-					./Misfitx/Misfitx.h\
-					./Misfitx/Misfitx.cpp\
-					./Orthx/Orthx.h\
-					./Orthx/Orthx.cpp\
-					./Gradjx/Gradjx.h\
-					./Gradjx/Gradjx.cpp\
-					./UpdateFromInputsx/UpdateFromInputsx.h\
-					./UpdateFromInputsx/UpdateFromInputsx.cpp\
-					./ConfigureObjectsx/ConfigureObjectsx.h\
-					./ConfigureObjectsx/ConfigureObjectsx.cpp\
-					./BuildNodeSetsx/BuildNodeSetsx.h\
-					./BuildNodeSetsx/BuildNodeSetsx.cpp\
-					./BuildNodeSetsx/PartitionSets.cpp\
-					./SpcNodesx/SpcNodesx.h\
-					./SpcNodesx/SpcNodesx.cpp\
-					./MpcNodesx/MpcNodesx.h\
-					./MpcNodesx/MpcNodesx.cpp\
-					./DataInterpx/DataInterpx.cpp\
-					./DataInterpx/DataInterpx.h\
-					./HoleFillerx/HoleFillerx.cpp\
-					./HoleFillerx/HoleFillerx.h\
-					./MeshPartitionx/MeshPartitionx.cpp\
-					./MeshPartitionx/MeshPartitionx.h\
-					./ContourToMeshx/ContourToMeshx.cpp\
-					./ContourToMeshx/ContourToMeshx.h\
-					./Reducevectorgtosx/Reducevectorgtosx.cpp\
-					./Reducevectorgtosx/Reducevectorgtosx.h\
-					./Reducematrixfromgtofx/Reducematrixfromgtofx.cpp\
-					./Reducematrixfromgtofx/Reducematrixfromgton.cpp\
-					./Reducematrixfromgtofx/Reducematrixfromgtofx.h\
-					./Reduceloadfromgtofx/Reduceloadfromgtofx.h\
-					./Reduceloadfromgtofx/Reduceloadfromgtofx.cpp\
-					./NormalizeConstraintsx/NormalizeConstraintsx.cpp\
-					./NormalizeConstraintsx/NormalizeConstraintsx.h\
-					./SystemMatricesx/SystemMatricesx.cpp\
-					./SystemMatricesx/SystemMatricesx.h\
-					./PenaltyConstraintsx/PenaltyConstraintsx.cpp\
-					./PenaltyConstraintsx/PenaltyConstraintsx.h\
-					./PenaltySystemMatricesx/PenaltySystemMatricesx.cpp\
-					./PenaltySystemMatricesx/PenaltySystemMatricesx.h\
-					./Solverx/Solverx.cpp\
-					./Solverx/Solverx.h\
-					./Mergesolutionfromftogx/Mergesolutionfromftogx.cpp\
-					./Mergesolutionfromftogx/Mergesolutionfromftogx.h\
-					./ProcessParamsx/ProcessParamsx.cpp\
-					./ProcessParamsx/ProcessParamsx.h
-
-
-libISSM_a_CXXFLAGS = -fPIC -DMATLAB -D_SERIAL_ -ansi -D_GNU_SOURCE -fno-omit-frame-pointer -pthread -D_CPP_
-if LARGEARRAYS
-libISSM_a_CXXFLAGS += -D__GCC4BUILD__  
-else
-libISSM_a_CXXFLAGS += -DMX_COMPAT_32
-endif
-
-
-
-
-#Parallel compilation
-libpISSM_a_SOURCES = ./objects/objects.h\
-					./objects/Object.h\
-					./objects/Element.h\
-					./objects/Element.cpp\
-					./objects/Material.h\
-					./objects/Material.cpp\
-					./objects/Load.h\
-					./objects/Load.cpp\
-					./objects/SolverEnum.h\
-					./objects/Contour.h\
-					./objects/Contour.cpp\
-					./objects/OptArgs.h\
-					./objects/OptPars.h\
-					./objects/Friction.h\
-					./objects/Friction.cpp\
-					./objects/Node.h\
-					./objects/Node.cpp\
-					./objects/Tria.h\
-					./objects/Tria.cpp\
-					./objects/Penta.h\
-					./objects/Penta.cpp\
-					./objects/Matice.h\
-					./objects/Matice.cpp\
-					./objects/Matpar.h\
-					./objects/Matpar.cpp\
-					./objects/ParameterInputs.h\
-					./objects/ParameterInputs.cpp\
-					./objects/Spc.cpp\
-					./objects/Spc.h\
-					./objects/Rgb.cpp\
-					./objects/Rgb.h\
-					./objects/Penpair.cpp\
-					./objects/Penpair.h\
-					./objects/Icefront.cpp\
-					./objects/Icefront.h\
-					./objects/Param.cpp\
-					./objects/Param.h\
-					./objects/NodeSets.cpp\
-					./objects/NodeSets.h\
-					./DataSet/DataSet.cpp\
-					./DataSet/DataSet.h\
-					./shared/shared.h\
-					./shared/Alloc/alloc.h\
-					./shared/Alloc/alloc.cpp\
-					./shared/Matlab/matlabshared.h\
-					./shared/Matlab/PrintfFunction.cpp\
-					./shared/Matlab/ModuleBoot.cpp\
-					./shared/Matlab/mxGetAssignedField.cpp\
-					./shared/Matlab/mxGetField.cpp\
-					./shared/Matlab/CheckNumMatlabArguments.cpp\
-					./shared/Matrix/matrix.h\
-					./shared/Matrix/MatrixUtils.cpp\
-					./shared/Numerics/numerics.h\
-					./shared/Numerics/GaussPoints.h\
+					./shared/Numerics/cross.cpp\
+					./shared/Numerics/norm.cpp\
 					./shared/Numerics/GaussPoints.cpp\
 					./shared/Numerics/BrentSearch.cpp\
@@ -416,4 +212,217 @@
 					./ProcessParamsx/ProcessParamsx.cpp\
 					./ProcessParamsx/ProcessParamsx.h\
+					./VelocityExtrudex/VelocityExtrudex.cpp\
+					./VelocityExtrudex/VelocityExtrudex.h
+
+
+
+libISSM_a_CXXFLAGS = -fPIC -DMATLAB -D_SERIAL_ -ansi -D_GNU_SOURCE -fno-omit-frame-pointer -pthread -D_CPP_
+if LARGEARRAYS
+libISSM_a_CXXFLAGS += -D__GCC4BUILD__  
+else
+libISSM_a_CXXFLAGS += -DMX_COMPAT_32
+endif
+
+
+
+
+#Parallel compilation
+libpISSM_a_SOURCES = ./objects/objects.h\
+					./objects/Object.h\
+					./objects/Element.h\
+					./objects/Element.cpp\
+					./objects/Material.h\
+					./objects/Material.cpp\
+					./objects/Load.h\
+					./objects/Load.cpp\
+					./objects/SolverEnum.h\
+					./objects/Contour.h\
+					./objects/Contour.cpp\
+					./objects/OptArgs.h\
+					./objects/OptPars.h\
+					./objects/Friction.h\
+					./objects/Friction.cpp\
+					./objects/Node.h\
+					./objects/Node.cpp\
+					./objects/Tria.h\
+					./objects/Tria.cpp\
+					./objects/Penta.h\
+					./objects/Penta.cpp\
+					./objects/Matice.h\
+					./objects/Matice.cpp\
+					./objects/Matpar.h\
+					./objects/Matpar.cpp\
+					./objects/ParameterInputs.h\
+					./objects/ParameterInputs.cpp\
+					./objects/Spc.cpp\
+					./objects/Spc.h\
+					./objects/Rgb.cpp\
+					./objects/Rgb.h\
+					./objects/Penpair.cpp\
+					./objects/Penpair.h\
+					./objects/Icefront.cpp\
+					./objects/Icefront.h\
+					./objects/Param.cpp\
+					./objects/Param.h\
+					./objects/NodeSets.cpp\
+					./objects/NodeSets.h\
+					./DataSet/DataSet.cpp\
+					./DataSet/DataSet.h\
+					./shared/shared.h\
+					./shared/Alloc/alloc.h\
+					./shared/Alloc/alloc.cpp\
+					./shared/Matlab/matlabshared.h\
+					./shared/Matlab/PrintfFunction.cpp\
+					./shared/Matlab/ModuleBoot.cpp\
+					./shared/Matlab/mxGetAssignedField.cpp\
+					./shared/Matlab/mxGetField.cpp\
+					./shared/Matlab/CheckNumMatlabArguments.cpp\
+					./shared/Matrix/matrix.h\
+					./shared/Matrix/MatrixUtils.cpp\
+					./shared/Numerics/numerics.h\
+					./shared/Numerics/GaussPoints.h\
+					./shared/Numerics/GaussPoints.cpp\
+					./shared/Numerics/cross.cpp\
+					./shared/Numerics/norm.cpp\
+					./shared/Numerics/BrentSearch.cpp\
+					./shared/Numerics/OptFunc.cpp\
+					./shared/Numerics/extrema.cpp\
+					./shared/Exceptions/exceptions.h\
+					./shared/Exceptions/Exceptions.cpp\
+					./shared/Exceptions/exprintf.cpp\
+					./shared/Exp/exp.h\
+					./shared/Exp/IsInPoly.cpp\
+					./shared/Exp/IsInPolySerial.cpp\
+					./shared/Exp/DomainOutlineRead.cpp\
+					./shared/TriMesh/trimesh.h\
+					./shared/TriMesh/AssociateSegmentToElement.cpp\
+					./shared/TriMesh/GridInsideHole.cpp\
+					./shared/TriMesh/OrderSegments.cpp\
+					./shared/TriMesh/SplitMeshForRifts.cpp\
+					./shared/TriMesh/TriMeshUtils.cpp\
+					./shared/Sorting/binary_search.cpp\
+					./shared/Sorting/sorting.h\
+					./shared/Elements/elements.h\
+					./shared/Elements/ResolvePointers.cpp\
+					./shared/Elements/Paterson.cpp\
+					./shared/Elements/GetElementNodeData.cpp\
+					./toolkits/petsc\
+					./toolkits/petsc/patches\
+					./toolkits/petsc/patches/petscpatches.h\
+					./toolkits/petsc/patches/MatlabMatrixToPetscMatrix.cpp\
+					./toolkits/petsc/patches/MatlabVectorToPetscVector.cpp\
+					./toolkits/petsc/patches/PetscMatrixToMatlabMatrix.cpp\
+					./toolkits/petsc/patches/PetscVectorToMatlabVector.cpp\
+					./toolkits/petsc/patches/MatlabMatrixToDoubleMatrix.cpp\
+					./toolkits/petsc/patches/MatlabVectorToDoubleVector.cpp\
+					./toolkits/petsc/patches/PetscDetermineLocalSize.cpp\
+					./toolkits/petsc/patches/VecTranspose.cpp\
+					./toolkits/petsc/patches/VecToMPISerial.cpp\
+					./toolkits/petsc/patches/MatToSerial.cpp\
+					./toolkits/petsc/patches/VecMerge.cpp\
+					./toolkits/petsc/patches/NewVec.cpp\
+					./toolkits/petsc/patches/NewVecFromLocalSize.cpp\
+					./toolkits/petsc/patches/PetscOptionsDetermineSolverType.cpp\
+					./toolkits/petsc/patches/PetscOptionsInsertMultipleString.cpp\
+					./toolkits/petsc/patches/NewMat.cpp\
+					./toolkits/petsc/patches/VecFree.cpp\
+					./toolkits/petsc/patches/KSPFree.cpp\
+					./toolkits/petsc/patches/ISFree.cpp\
+					./toolkits/petsc/patches/MatFree.cpp\
+					./toolkits/petsc/patches/GetOwnershipBoundariesFromRange.cpp\
+					./toolkits/petsc/patches/VecPartition.cpp\
+					./toolkits/petsc/patches/MatPartition.cpp\
+					./toolkits/petsc/patches/MatInvert.cpp\
+					./toolkits/petsc/patches/MatMultPatch.cpp\
+					./toolkits/petsc/petscincludes.h\
+					./toolkits/mpi/mpiincludes.h\
+					./toolkits/mpi/patches/mpipatches.h\
+					./toolkits/mpi/patches/MPI_Upperrow.cpp\
+					./toolkits/mpi/patches/MPI_Lowerrow.cpp\
+					./toolkits/mpi/patches/MPI_Boundariesfromrange.cpp\
+					./toolkits/metis/metisincludes.h\
+					./toolkits/triangle/triangleincludes.h\
+					./toolkits.h\
+					./io/io.h\
+					./io/FetchData.cpp\
+					./io/WriteData.cpp\
+					./io/WriteDataToDisk.cpp\
+					./io/SerialFetchData.cpp\
+					./io/SerialWriteData.cpp\
+					./io/ParallelFetchData.cpp\
+					./io/ParallelFetchInteger.cpp\
+					./io/ParallelFetchMat.cpp\
+					./io/ParallelFetchScalar.cpp\
+					./io/ParallelFetchString.cpp\
+					./io/ModelFetchData.cpp\
+					./io/WriteNodeSets.cpp\
+					./io/WriteParams.cpp\
+					./io/FetchNodeSets.cpp\
+					./io/ParameterInputsInit.cpp\
+					./EnumDefinitions/EnumDefinitions.h\
+					./EnumDefinitions/EnumDefinitions.cpp\
+					./EnumDefinitions/AnalysisTypeAsEnum.cpp\
+					./ModelProcessorx/ModelProcessorx.h\
+					./ModelProcessorx/Model.cpp\
+					./ModelProcessorx/FetchRifts.cpp\
+					./ModelProcessorx/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp\
+					./ModelProcessorx/DistributeNumDofs.cpp\
+					./ModelProcessorx/CreateConstraintsDiagnosticHoriz.cpp \
+					./ModelProcessorx/CreateLoadsDiagnosticHoriz.cpp\
+					./ModelProcessorx/ModelCreateParameters.cpp\
+					./Dofx/Dofx.h\
+					./Dofx/Dofx.cpp\
+					./Dux/Dux.h\
+					./Dux/Dux.cpp\
+					./ControlConstrainx/ControlConstrainx.h\
+					./ControlConstrainx/ControlConstrainx.cpp\
+					./Misfitx/Misfitx.h\
+					./Misfitx/Misfitx.cpp\
+					./Orthx/Orthx.h\
+					./Orthx/Orthx.cpp\
+					./Gradjx/Gradjx.h\
+					./Gradjx/Gradjx.cpp\
+					./UpdateFromInputsx/UpdateFromInputsx.h\
+					./UpdateFromInputsx/UpdateFromInputsx.cpp\
+					./ConfigureObjectsx/ConfigureObjectsx.h\
+					./ConfigureObjectsx/ConfigureObjectsx.cpp\
+					./BuildNodeSetsx/BuildNodeSetsx.h\
+					./BuildNodeSetsx/BuildNodeSetsx.cpp\
+					./BuildNodeSetsx/PartitionSets.cpp\
+					./SpcNodesx/SpcNodesx.h\
+					./SpcNodesx/SpcNodesx.cpp\
+					./MpcNodesx/MpcNodesx.h\
+					./MpcNodesx/MpcNodesx.cpp\
+					./DataInterpx/DataInterpx.cpp\
+					./DataInterpx/DataInterpx.h\
+					./HoleFillerx/HoleFillerx.cpp\
+					./HoleFillerx/HoleFillerx.h\
+					./MeshPartitionx/MeshPartitionx.cpp\
+					./MeshPartitionx/MeshPartitionx.h\
+					./ContourToMeshx/ContourToMeshx.cpp\
+					./ContourToMeshx/ContourToMeshx.h\
+					./Reducevectorgtosx/Reducevectorgtosx.cpp\
+					./Reducevectorgtosx/Reducevectorgtosx.h\
+					./Reducematrixfromgtofx/Reducematrixfromgtofx.cpp\
+					./Reducematrixfromgtofx/Reducematrixfromgton.cpp\
+					./Reducematrixfromgtofx/Reducematrixfromgtofx.h\
+					./Reduceloadfromgtofx/Reduceloadfromgtofx.h\
+					./Reduceloadfromgtofx/Reduceloadfromgtofx.cpp\
+					./NormalizeConstraintsx/NormalizeConstraintsx.cpp\
+					./NormalizeConstraintsx/NormalizeConstraintsx.h\
+					./SystemMatricesx/SystemMatricesx.cpp\
+					./SystemMatricesx/SystemMatricesx.h\
+					./PenaltyConstraintsx/PenaltyConstraintsx.cpp\
+					./PenaltyConstraintsx/PenaltyConstraintsx.h\
+					./PenaltySystemMatricesx/PenaltySystemMatricesx.cpp\
+					./PenaltySystemMatricesx/PenaltySystemMatricesx.h\
+					./Solverx/Solverx.cpp\
+					./Solverx/Solverx.h\
+					./Mergesolutionfromftogx/Mergesolutionfromftogx.cpp\
+					./Mergesolutionfromftogx/Mergesolutionfromftogx.h\
+					./ProcessParamsx/ProcessParamsx.cpp\
+					./ProcessParamsx/ProcessParamsx.h\
+					./VelocityExtrudex/VelocityExtrudex.cpp\
+					./VelocityExtrudex/VelocityExtrudex.h\
 					./parallel/diagnostic_core_nonlinear.cpp\
 					./parallel/CreateFemModel.cpp\
Index: /issm/trunk/src/c/ModelProcessorx/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp	(revision 110)
+++ /issm/trunk/src/c/ModelProcessorx/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp	(revision 111)
@@ -97,4 +97,5 @@
 	int penta_artdiff;
 	int penta_thermal_steadystate;
+	double penta_viscosity_overshoot;
 
 	/*matpar constructor input: */
@@ -110,5 +111,4 @@
 	double matpar_thermal_exchange_velocity;
 	double matpar_g;
-	double matpar_viscosity_overshoot;
 
 	/* node constructor input: */
@@ -381,4 +381,7 @@
 			penta_meanvel=model->meanvel;
 			penta_epsvel=model->epsvel;
+			
+			/*viscosity_overshoot*/
+			penta_viscosity_overshoot=model->viscosity_overshoot;
 
 			if (*(model->elements_type+2*i+0)==MacAyealEnum()){ //elements of type 3 are MacAyeal type Penta. We collapse the formulation on their base.
@@ -394,5 +397,5 @@
 					penta_p,penta_q,penta_shelf,penta_onbed,penta_onsurface,penta_meanvel,penta_epsvel,
 					penta_collapse,penta_melting,penta_accumulation,penta_geothermalflux,penta_artdiff,
-					penta_thermal_steadystate); 
+					penta_thermal_steadystate,penta_viscosity_overshoot); 
 
 			/*Add penta element to elements dataset: */
@@ -456,5 +459,4 @@
 	matpar_mid=model->numberofelements+1; //put it at the end of the materials
 	matpar_g=model->g; 
-	matpar_viscosity_overshoot=model->viscosity_overshoot; 
 	matpar_rho_ice=model->rho_ice; 
 	matpar_rho_water=model->rho_water; 
@@ -470,5 +472,5 @@
 	matpar=new Matpar(matpar_mid,matpar_rho_ice,matpar_rho_water,matpar_heatcapacity,matpar_thermalconductivity,
 			matpar_latentheat,matpar_beta,matpar_meltingpoint,matpar_mixed_layer_capacity,
-			matpar_thermal_exchange_velocity,matpar_g,matpar_viscosity_overshoot);
+			matpar_thermal_exchange_velocity,matpar_g);
 		
 	/*Add to materials datset: */
Index: /issm/trunk/src/c/objects/Matpar.cpp
===================================================================
--- /issm/trunk/src/c/objects/Matpar.cpp	(revision 110)
+++ /issm/trunk/src/c/objects/Matpar.cpp	(revision 111)
@@ -20,5 +20,5 @@
 	return;
 }
-Matpar::Matpar(int	matpar_mid, double	matpar_rho_ice, double	matpar_rho_water, double  matpar_heatcapacity, double  matpar_thermalconductivity, double  matpar_latentheat, double  matpar_beta, double  matpar_meltingpoint, double  matpar_mixed_layer_capacity, double  matpar_thermal_exchange_velocity, double  matpar_g, double  matpar_viscosity_overshoot){
+Matpar::Matpar(int	matpar_mid, double	matpar_rho_ice, double	matpar_rho_water, double  matpar_heatcapacity, double  matpar_thermalconductivity, double  matpar_latentheat, double  matpar_beta, double  matpar_meltingpoint, double  matpar_mixed_layer_capacity, double  matpar_thermal_exchange_velocity, double  matpar_g){
 
 
@@ -34,5 +34,4 @@
 	thermal_exchange_velocity=matpar_thermal_exchange_velocity; 
 	g=matpar_g; 
-	viscosity_overshoot=matpar_viscosity_overshoot;
 
 	return;
@@ -56,5 +55,4 @@
 	printf("   thermal_exchange_velocity: %g\n",thermal_exchange_velocity);
 	printf("   g: %g\n",g);
-	printf("   viscosity_overshoot: %g\n",viscosity_overshoot);
 	return;
 }
@@ -86,5 +84,4 @@
 	memcpy(marshalled_dataset,&thermal_exchange_velocity,sizeof(thermal_exchange_velocity));marshalled_dataset+=sizeof(thermal_exchange_velocity);
 	memcpy(marshalled_dataset,&g,sizeof(g));marshalled_dataset+=sizeof(g);
-	memcpy(marshalled_dataset,&viscosity_overshoot,sizeof(viscosity_overshoot));marshalled_dataset+=sizeof(viscosity_overshoot);
 
 	*pmarshalled_dataset=marshalled_dataset;
@@ -105,5 +102,4 @@
 		sizeof(thermal_exchange_velocity)+
 		sizeof(g)+
-		sizeof(viscosity_overshoot)+
 		sizeof(int); //sizeof(int) for enum type
 }
@@ -135,5 +131,4 @@
 	memcpy(&thermal_exchange_velocity,marshalled_dataset,sizeof(thermal_exchange_velocity));marshalled_dataset+=sizeof(thermal_exchange_velocity);
 	memcpy(&g,marshalled_dataset,sizeof(g));marshalled_dataset+=sizeof(g);
-	memcpy(&viscosity_overshoot,marshalled_dataset,sizeof(viscosity_overshoot));marshalled_dataset+=sizeof(viscosity_overshoot);
 
 	/*return: */
Index: /issm/trunk/src/c/objects/Matpar.h
===================================================================
--- /issm/trunk/src/c/objects/Matpar.h	(revision 110)
+++ /issm/trunk/src/c/objects/Matpar.h	(revision 111)
@@ -22,5 +22,4 @@
 		double  thermal_exchange_velocity;
 		double  g;
-		double  viscosity_overshoot;
 
 	public:
@@ -28,5 +27,5 @@
 		Matpar();
 	
-		Matpar(int	mid, double	rho_ice, double	rho_water, double  heatcapacity, double  thermalconductivity, double  latentheat, double  beta, double  meltingpoint, double  mixed_layer_capacity, double  thermal_exchange_velocity, double  g, double  viscosity_overshoot);
+		Matpar(int	mid, double	rho_ice, double	rho_water, double  heatcapacity, double  thermalconductivity, double  latentheat, double  beta, double  meltingpoint, double  mixed_layer_capacity, double  thermal_exchange_velocity, double  g);
 		
 		~Matpar();
Index: /issm/trunk/src/c/objects/Penta.cpp
===================================================================
--- /issm/trunk/src/c/objects/Penta.cpp	(revision 110)
+++ /issm/trunk/src/c/objects/Penta.cpp	(revision 111)
@@ -22,5 +22,5 @@
 				double penta_p, double penta_q, int penta_shelf, int penta_onbed, int penta_onsurface, double penta_meanvel,double penta_epsvel, 
 				int penta_collapse, double penta_melting[6], double penta_accumulation[6], double penta_geothermalflux[6], 
-				int penta_artdiff, int penta_thermal_steadystate){
+				int penta_artdiff, int penta_thermal_steadystate,double penta_viscosity_overshoot){
 	
 	int i;
@@ -58,4 +58,5 @@
 	artdiff = penta_artdiff; 
 	thermal_steadystate = penta_thermal_steadystate;
+	viscosity_overshoot = penta_viscosity_overshoot;
 
 	return;
@@ -97,4 +98,5 @@
 	printf("   artdiff: %i\n",artdiff);
 	printf("   thermal_steadystate: %i\n",thermal_steadystate);
+	printf("   viscosity_overshoot: %i\n",viscosity_overshoot);
 	return;
 }
@@ -143,4 +145,5 @@
 	memcpy(marshalled_dataset,&artdiff,sizeof(artdiff));marshalled_dataset+=sizeof(artdiff);
 	memcpy(marshalled_dataset,&thermal_steadystate,sizeof(thermal_steadystate));marshalled_dataset+=sizeof(thermal_steadystate);
+	memcpy(marshalled_dataset,&viscosity_overshoot,sizeof(viscosity_overshoot));marshalled_dataset+=sizeof(viscosity_overshoot);
 	
 	*pmarshalled_dataset=marshalled_dataset;
@@ -178,4 +181,5 @@
 		sizeof(artdiff)+
 		sizeof(thermal_steadystate) +
+		sizeof(viscosity_overshoot) +
 		sizeof(int); //sizeof(int) for enum type
 }
@@ -224,4 +228,5 @@
 	memcpy(&artdiff,marshalled_dataset,sizeof(artdiff));marshalled_dataset+=sizeof(artdiff);
 	memcpy(&thermal_steadystate,marshalled_dataset,sizeof(thermal_steadystate));marshalled_dataset+=sizeof(thermal_steadystate);
+	memcpy(&viscosity_overshoot,marshalled_dataset,sizeof(viscosity_overshoot));marshalled_dataset+=sizeof(viscosity_overshoot);
 
 	/*nodes and materials are not pointing to correct objects anymore:*/
@@ -770,5 +775,5 @@
 	tria_node_offsets[2]=node_offsets[g2];
 
-	tria= new Tria(id,mid,mparid,tria_node_ids,tria_h,tria_s,tria_b,tria_k, friction_type,p,q,shelf,meanvel,epsvel);
+	tria= new Tria(id,mid,mparid,tria_node_ids,tria_h,tria_s,tria_b,tria_k, friction_type,p,q,shelf,meanvel,epsvel,viscosity_overshoot);
 
 	tria->NodeConfiguration(tria_node_ids,tria_nodes,tria_node_offsets);
Index: /issm/trunk/src/c/objects/Penta.h
===================================================================
--- /issm/trunk/src/c/objects/Penta.h	(revision 110)
+++ /issm/trunk/src/c/objects/Penta.h	(revision 111)
@@ -51,5 +51,5 @@
 		int    artdiff;
 		int    thermal_steadystate;
-	
+		double viscosity_overshoot;
 	
 	public:
@@ -59,5 +59,5 @@
 				double p, double q, int    shelf, int    onbed, int    onsurface, double meanvel,double epsvel, 
 				int    collapse, double melting[6], double accumulation[6], double geothermalflux[6], 
-				int    artdiff, int    thermal_steadystate);
+				int    artdiff, int    thermal_steadystate,double viscosity_overshoot);
 		~Penta();
 
