Index: /issm/trunk-jpl/src/c/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/c/Makefile.am	(revision 19086)
+++ /issm/trunk-jpl/src/c/Makefile.am	(revision 19087)
@@ -55,5 +55,4 @@
 					./classes/Materials/Materials.cpp\
 					./classes/Materials/Matice.cpp\
-					./classes/Materials/Matseaice.cpp\
 					./classes/Materials/Matpar.cpp\
 					./classes/Constraints/Constraints.cpp\
@@ -410,8 +409,4 @@
 issm_sources += ./analyses/DepthAverageAnalysis.cpp
 endif
-if SEAICE
-issm_sources += ./cores/seaice_core.cpp
-issm_sources += ./analyses/SeaiceAnalysis.cpp
-endif
 if THERMAL
 issm_sources += ./analyses/ThermalAnalysis.cpp
Index: /issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp	(revision 19086)
+++ /issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp	(revision 19087)
@@ -98,7 +98,4 @@
 		case GiaAnalysisEnum : return new GiaAnalysis();
 		#endif
-		#ifdef _HAVE_SEAICE_
-		case SeaiceAnalysisEnum : return new SeaiceAnalysis();
-		#endif
 		#ifdef _HAVE_MESHDEFORMATION_
 		case MeshdeformationAnalysisEnum : return new MeshdeformationAnalysis();
Index: sm/trunk-jpl/src/c/analyses/SeaiceAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/SeaiceAnalysis.cpp	(revision 19086)
+++ 	(revision )
@@ -1,769 +1,0 @@
-#include "./SeaiceAnalysis.h"
-#include "../toolkits/toolkits.h"
-#include "../classes/classes.h"
-#include "../shared/shared.h"
-#include "../modules/modules.h"
-
-/*Model processing*/
-void SeaiceAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/
-
-	const int finiteelement = P1Enum;
-	IoModelToConstraintsx(constraints,iomodel,SeaiceSpcvxEnum,SeaiceAnalysisEnum,finiteelement,0);
-	IoModelToConstraintsx(constraints,iomodel,SeaiceSpcvyEnum,SeaiceAnalysisEnum,finiteelement,1);
-}/*}}}*/
-void SeaiceAnalysis::CreateLoads(Loads* loads, IoModel* iomodel){/*{{{*/
-	return;
-}/*}}}*/
-void SeaiceAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/
-
-	::CreateNodes(nodes,iomodel,SeaiceAnalysisEnum,P1Enum);
-
-}/*}}}*/
-int  SeaiceAnalysis::DofsPerNode(int** doflist,int domaintype,int approximation){/*{{{*/
-	return 2;
-}/*}}}*/
-void SeaiceAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
-
-	/*Make sure we are in 2D horizontal*/
-	if(iomodel->domaintype!=Domain2DhorizontalEnum) _error_("Only 2D model are supported");
-
-	/*Update the elements so that they are aware of this analysis*/
-	int counter=0;
-	for(int i=0;i<iomodel->numberofelements;i++){
-		if(iomodel->my_elements[i]){
-			Element* element=(Element*)elements->GetObjectByOffset(counter);
-			element->Update(i,iomodel,analysis_counter,analysis_type,P1Enum);
-			counter++;
-		}
-	}
-
-	/*Push to the elements all the inputs that we need*/
-	iomodel->FetchDataToInput(elements,SeaiceThicknessEnum);
-	iomodel->FetchDataToInput(elements,SeaiceConcentrationEnum);
-	iomodel->FetchDataToInput(elements,BasalforcingsOceanSshEnum);
-	iomodel->FetchDataToInput(elements,BasalforcingsOceanVxEnum);
-	iomodel->FetchDataToInput(elements,BasalforcingsOceanVyEnum);
-	iomodel->FetchDataToInput(elements,SurfaceforcingsWindVxEnum);
-	iomodel->FetchDataToInput(elements,SurfaceforcingsWindVyEnum);
-	iomodel->FetchDataToInput(elements,DamageEnum);
-	iomodel->FetchDataToInput(elements,VxStarEnum);
-	iomodel->FetchDataToInput(elements,VyStarEnum);
-	iomodel->FetchDataToInput(elements,VxEnum);
-	iomodel->FetchDataToInput(elements,VyEnum);
-	iomodel->FetchDataToInput(elements,SeaiceCoriolisFactorEnum);
-	iomodel->FetchDataToInput(elements,StressTensorPredictorxxEnum);
-	iomodel->FetchDataToInput(elements,StressTensorPredictoryyEnum);
-	iomodel->FetchDataToInput(elements,StressTensorPredictorxyEnum);
-	iomodel->FetchDataToInput(elements,MeshXEnum);
-	iomodel->FetchDataToInput(elements,MeshYEnum);
-}/*}}}*/
-void SeaiceAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
-	parameters->AddObject(iomodel->CopyConstantObject(SeaiceMinConcentrationEnum));
-	parameters->AddObject(iomodel->CopyConstantObject(SeaiceMinThicknessEnum));
-	parameters->AddObject(iomodel->CopyConstantObject(SeaiceMaxThicknessEnum));
-}/*}}}*/
-
-/*Finite Element Analysis*/
-void           SeaiceAnalysis::Core(FemModel* femmodel){/*{{{*/
-	_error_("not implemented");
-}/*}}}*/
-ElementVector* SeaiceAnalysis::CreateDVector(Element* element){/*{{{*/
-	/*Default, return NULL*/
-	return NULL;
-}/*}}}*/
-ElementMatrix* SeaiceAnalysis::CreateJacobianMatrix(Element* element){/*{{{*/
-_error_("Not implemented");
-}/*}}}*/
-ElementMatrix* SeaiceAnalysis::CreateKMatrix(Element* element){/*{{{*/
-
-	/* Check if there is ice in this element */
-	Input* concentration_input = element->GetInput(SeaiceConcentrationEnum); _assert_(concentration_input);
-	IssmDouble c_min; element->FindParam(&c_min,SeaiceMinConcentrationEnum);
-	if(concentration_input->Max()<=c_min) return NULL;
-
-	/*Intermediaries */
-	IssmDouble  Jdet,D_scalar,dt,thickness,concentration;
-	IssmDouble  ocean_coef,rho_ocean,ocean_lin_drag_coef,ocean_quad_drag_coef;
-	IssmDouble  vx,vy,oceanvx,oceanvy,vnorm,ocean_turning_angle;
-	IssmDouble  C[3][3];
-	IssmDouble* xyz_list = NULL;
-
-	/*Fetch number of nodes and dof for this finite element*/
-	int numnodes = element->GetNumberOfNodes();
-	int numdof   = numnodes*2;
-
-	/*Initialize Element vector and other vectors*/
-	ElementMatrix* Ke      = element->NewElementMatrix();
-	IssmDouble*    B       = xNew<IssmDouble>(3*numdof);
-	IssmDouble*    M       = xNew<IssmDouble>(numdof);
-
-	/*Retrieve all inputs and parameters*/
-	element->GetVerticesCoordinates(&xyz_list);
-	element->FindParam(&dt,TimesteppingTimeStepEnum);
-	element->FindParam(&rho_ocean,BasalforcingsRhoOceanEnum);
-	element->FindParam(&ocean_coef,BasalforcingsOceanCoefEnum);
-	element->FindParam(&ocean_lin_drag_coef,BasalforcingsOceanLinDragCoefEnum);
-	element->FindParam(&ocean_quad_drag_coef,BasalforcingsOceanQuadDragCoefEnum);
-	element->FindParam(&ocean_turning_angle,BasalforcingsOceanTurningAngleEnum);
-	IssmDouble rho_i                  = element->GetMaterialParameter(MaterialsRhoIceEnum);
-	IssmDouble time_relaxation_stress = element->GetMaterialParameter(MaterialsTimeRelaxationStressEnum);
-	Input*     thickness_input = element->GetInput(SeaiceThicknessEnum);       _assert_(thickness_input);
-	Input*     vx_input        = element->GetInput(VxEnum);                    _assert_(vx_input);
-	Input*     vy_input        = element->GetInput(VyEnum);                    _assert_(vy_input);
-	Input*     oceanvx_input   = element->GetInput(BasalforcingsOceanVxEnum);  _assert_(oceanvx_input);
-	Input*     oceanvy_input   = element->GetInput(BasalforcingsOceanVyEnum);  _assert_(oceanvy_input);
-
-	/*Get minimum inertia to avoid 0 in the line, and time_ratio*/
-	IssmDouble minimum_inertia = rho_i*0.01;
-	IssmDouble time_ratio=(1-dt/time_relaxation_stress);
-
-	/* Start  looping on the number of gaussian points: */
-	Gauss* gauss=element->NewGauss(2);
-	for(int ig=gauss->begin();ig<gauss->end();ig++){
-
-		gauss->GaussPoint(ig);
-
-		/*Get Jacobian Determinant and thickness*/
-		element->JacobianDeterminant(&Jdet,xyz_list,gauss);
-		thickness_input->GetInputValue(&thickness,gauss);
-		concentration_input->GetInputValue(&concentration,gauss);
-
-		/*Create first part of the stiffness matrix*/
-		this->GetM(M,element,xyz_list,gauss);
-		D_scalar=(rho_i*thickness+minimum_inertia)/dt*gauss->weight*Jdet;
-		TripleMultiply(M,1,numdof,1,
-					&D_scalar,1,1,0,
-					M,1,numdof,0,
-					&Ke->values[0],1);
-
-		/*Create Elastic part*/
-		this->GetB(B,element,xyz_list,gauss);
-		this->CreateCTensor(&C[0][0],element,gauss);
-		for(int i=0;i<3;i++){
-			for(int j=0;j<3;j++){
-				C[i][j] = dt*thickness*time_ratio*gauss->weight*Jdet*C[i][j];
-			}
-		}
-		TripleMultiply(B,3,numdof,1,
-					&C[0][0],3,3,0,
-					B,3,numdof,0,
-					&Ke->values[0],1);
-
-		/*Create Ocean forcing part*/
-		oceanvx_input->GetInputValue(&oceanvx,gauss);
-		oceanvy_input->GetInputValue(&oceanvy,gauss);
-		vx_input->GetInputValue(&vx,gauss);
-		vy_input->GetInputValue(&vy,gauss);
-		vnorm = sqrt(pow(oceanvx-vx,2) + pow(oceanvy-vy,2));
-		D_scalar = concentration*ocean_coef*rho_ocean*(ocean_lin_drag_coef+ocean_quad_drag_coef*vnorm)*cos(ocean_turning_angle)*gauss->weight*Jdet;
-		TripleMultiply(M,1,numdof,1,
-					&D_scalar,1,1,0,
-					M,1,numdof,0,
-					&Ke->values[0],1);
-	}
-
-	/*Clean up and return*/
-	xDelete<IssmDouble>(xyz_list);
-	xDelete<IssmDouble>(B);
-	xDelete<IssmDouble>(M);
-	delete gauss;
-	return Ke;
-}
-/*}}}*/
-ElementVector* SeaiceAnalysis::CreatePVector(Element* element){/*{{{*/
-
-	/* Check if there is ice in this element */
-	Input* concentration_input = element->GetInput(SeaiceConcentrationEnum); _assert_(concentration_input);
-	IssmDouble c_min; element->FindParam(&c_min,SeaiceMinConcentrationEnum);
-	if(concentration_input->Max()<=c_min) return NULL;
-
-	/*Intermediaries */
-	IssmDouble  air_coef,ocean_coef,constant_part,time_relaxation_stress;
-	IssmDouble  rho_ice,rho_air,rho_ocean,gravity,omega;
-	IssmDouble  vx,vy,vxstar,vystar,windvx,windvy,oceanvx,oceanvy,vnorm;
-	IssmDouble  air_lin_drag_coef,air_quad_drag_coef;
-	IssmDouble  ocean_lin_drag_coef,ocean_quad_drag_coef;
-	IssmDouble  concentration,thickness,coriolis_factor,dt,Jdet,D_scalar;
-	IssmDouble  sigma_xx,sigma_yy,sigma_xy,sigma_vec[3];
-	IssmDouble  ocean_turning_angle,dssh[2];
-	IssmDouble* xyz_list = NULL;
-
-	/*Fetch number of nodes and dof for this finite element*/
-	int numnodes = element->GetNumberOfNodes();
-	int numdof   = 2*numnodes;
-
-	/*Initialize Element vector and vectors*/
-	ElementVector* pe      = element->NewElementVector();
-	IssmDouble*    B       = xNew<IssmDouble>(3*numdof);
-	IssmDouble*    basis   = xNew<IssmDouble>(numnodes);
-	IssmDouble     D[3][3] = {0.};
-
-	/*Retrieve all inputs and parameters*/
-	element->GetVerticesCoordinates(&xyz_list);
-	element->FindParam(&dt,TimesteppingTimeStepEnum);
-	element->FindParam(&rho_air,SurfaceforcingsRhoAirEnum);
-	element->FindParam(&air_coef,SurfaceforcingsAirCoefEnum);
-	element->FindParam(&air_lin_drag_coef,SurfaceforcingsAirLinDragCoefEnum);
-	element->FindParam(&air_quad_drag_coef,SurfaceforcingsAirQuadDragCoefEnum);
-	element->FindParam(&rho_ocean,BasalforcingsRhoOceanEnum);
-	element->FindParam(&ocean_coef,BasalforcingsOceanCoefEnum);
-	element->FindParam(&ocean_lin_drag_coef,BasalforcingsOceanLinDragCoefEnum);
-	element->FindParam(&ocean_quad_drag_coef,BasalforcingsOceanQuadDragCoefEnum);
-	element->FindParam(&ocean_turning_angle,BasalforcingsOceanTurningAngleEnum);
-	rho_ice                = element->GetMaterialParameter(MaterialsRhoIceEnum);
-	gravity                = element->GetMaterialParameter(ConstantsGEnum);
-	omega                  = element->GetMaterialParameter(ConstantsOmegaEnum);
-	time_relaxation_stress = element->GetMaterialParameter(MaterialsTimeRelaxationStressEnum);
-	Input* thickness_input     = element->GetInput(SeaiceThicknessEnum);       _assert_(thickness_input);
-	Input* coriolis_fact_input = element->GetInput(SeaiceCoriolisFactorEnum);  _assert_(coriolis_fact_input);
-	Input* vx_input            = element->GetInput(VxEnum);                    _assert_(vx_input);
-	Input* vy_input            = element->GetInput(VyEnum);                    _assert_(vy_input);
-	Input* vxstar_input        = element->GetInput(VxStarEnum);                _assert_(vxstar_input);
-	Input* vystar_input        = element->GetInput(VyStarEnum);                _assert_(vystar_input);
-	Input* windvx_input        = element->GetInput(SurfaceforcingsWindVxEnum); _assert_(windvx_input);
-	Input* windvy_input        = element->GetInput(SurfaceforcingsWindVyEnum); _assert_(windvy_input);
-	Input* oceanvx_input       = element->GetInput(BasalforcingsOceanVxEnum);  _assert_(oceanvx_input);
-	Input* oceanvy_input       = element->GetInput(BasalforcingsOceanVyEnum);  _assert_(oceanvy_input);
-	Input* oceanssh_input      = element->GetInput(BasalforcingsOceanSshEnum); _assert_(oceanssh_input);
-	Input* sigma_xx_input      = element->GetInput(StressTensorxxEnum);        _assert_(sigma_xx_input);
-	Input* sigma_yy_input      = element->GetInput(StressTensoryyEnum);        _assert_(sigma_yy_input);
-	Input* sigma_xy_input      = element->GetInput(StressTensorxyEnum);        _assert_(sigma_xy_input);
-
-	/*Calculate time_ratio*/
-	IssmDouble time_ratio=(1-dt/time_relaxation_stress);
-
-	/* Start  looping on the number of gaussian points: */
-	Gauss* gauss=element->NewGauss(2);
-	for(int ig=gauss->begin();ig<gauss->end();ig++){
-
-		gauss->GaussPoint(ig);
-
-		element->JacobianDeterminant(&Jdet,xyz_list,gauss);
-		element->NodalFunctions(basis, gauss);
-		this->GetB(B,element,xyz_list,gauss);
-
-		/*Get all inputs on gauss point*/
-		thickness_input->GetInputValue(&thickness,gauss);
-		concentration_input->GetInputValue(&concentration,gauss);
-		coriolis_fact_input->GetInputValue(&coriolis_factor,gauss);
-		vx_input->GetInputValue(&vx,gauss);
-		vy_input->GetInputValue(&vy,gauss);
-		vxstar_input->GetInputValue(&vxstar,gauss);
-		vystar_input->GetInputValue(&vystar,gauss);
-		windvx_input->GetInputValue(&windvx,gauss);
-		windvy_input->GetInputValue(&windvy,gauss);
-		oceanvx_input->GetInputValue(&oceanvx,gauss);
-		oceanvy_input->GetInputValue(&oceanvy,gauss);
-		sigma_xx_input->GetInputValue(&sigma_xx,gauss);
-		sigma_yy_input->GetInputValue(&sigma_yy,gauss);
-		sigma_xy_input->GetInputValue(&sigma_xy,gauss);
-		oceanssh_input->GetInputDerivativeValue(&dssh[0],xyz_list,gauss);
-
-		/*Previous speed (finite differencing)*/
-		for(int i=0;i<numnodes;i++){
-			pe->values[i*2+0]+=Jdet*gauss->weight*rho_ice*thickness*vx*basis[i];
-			pe->values[i*2+1]+=Jdet*gauss->weight*rho_ice*thickness*vy*basis[i];
-		}
-
-		/*Atmospheric forcing*/
-		vnorm    = sqrt(windvx*windvx + windvy*windvy);
-		constant_part = concentration*air_coef*rho_air*(air_lin_drag_coef+air_quad_drag_coef*vnorm);
-		for(int i=0;i<numnodes;i++){
-			pe->values[i*2+0] += constant_part*windvx*Jdet*gauss->weight*basis[i];
-			pe->values[i*2+1] += constant_part*windvy*Jdet*gauss->weight*basis[i];
-		}
-
-		/*Ocean forcing*/
-		vnorm = sqrt(pow(oceanvx-vx,2) + pow(oceanvy-vy,2));
-		constant_part = concentration*ocean_coef*rho_ocean*(ocean_lin_drag_coef+ocean_quad_drag_coef*vnorm);
-		for(int i=0;i<numnodes;i++){
-			pe->values[i*2+0] += constant_part*omega*(oceanvy-vy)*sin(ocean_turning_angle)*Jdet*gauss->weight*basis[i];
-			pe->values[i*2+1] += constant_part*omega*(vx-oceanvx)*sin(ocean_turning_angle)*Jdet*gauss->weight*basis[i];
-
-			pe->values[i*2+0] += constant_part*oceanvx*cos(ocean_turning_angle)*Jdet*gauss->weight*basis[i];
-			pe->values[i*2+1] += constant_part*oceanvy*cos(ocean_turning_angle)*Jdet*gauss->weight*basis[i];
-
-			pe->values[i*2+0] += (-rho_ice*thickness*gravity*omega*dssh[0])*Jdet*gauss->weight*basis[i];
-			pe->values[i*2+1] += (-rho_ice*thickness*gravity*omega*dssh[1])*Jdet*gauss->weight*basis[i];
-		}
-
-		/*Coriolis forces (use ustar)*/
-		for(int i=0;i<numnodes;i++){
-			pe->values[i*2+0] += (-rho_ice*thickness*coriolis_factor*vystar)*Jdet*gauss->weight*basis[i];
-			pe->values[i*2+1] += (+rho_ice*thickness*coriolis_factor*vxstar)*Jdet*gauss->weight*basis[i];
-		}
-		
-		/*Add elastic part of previous time step*/
-		sigma_vec[0] = sigma_xx;
-		sigma_vec[1] = sigma_yy;
-		sigma_vec[2] = sigma_xy;
-		D[0][0] = D[1][1] = D[2][2] = time_ratio*thickness*Jdet*gauss->weight;
-		TripleMultiply(B,3,numdof,1,
-					&D[0][0],3,3,0,
-					&sigma_vec[0],3,1,0,
-					&pe->values[0],1);
-	}
-
-	/*Clean up and return*/
-	xDelete<IssmDouble>(xyz_list);
-	xDelete<IssmDouble>(basis);
-	xDelete<IssmDouble>(B);
-	delete gauss;
-	return pe;
-}/*}}}*/
-void           SeaiceAnalysis::CreateCTensor(IssmDouble* C,Element* element,Gauss* gauss){/*{{{*/
-
-	/*Intermediaries*/
-	IssmDouble D[3][3];
-	IssmDouble damage,concentration;
-
-	/*Get Material parameters*/
-	IssmDouble poisson          = element->GetMaterialParameter(MaterialsPoissonEnum);
-	IssmDouble young_modulus    = element->GetMaterialParameter(MaterialsYoungModulusEnum);
-	IssmDouble ridging_exponent = element->GetMaterialParameter(MaterialsRidgingExponentEnum);
-
-	/*Get damage input at this location*/
-	Input* damage_input        = element->GetInput(DamageEnum);              _assert_(damage_input);
-	Input* concentration_input = element->GetInput(SeaiceConcentrationEnum); _assert_(concentration_input);
-	damage_input->GetInputValue(&damage,gauss);
-	concentration_input->GetInputValue(&concentration,gauss);
-
-	/*Build D tensor once for all*/
-	D[0][0] = 1.;      D[0][1] = poisson; D[0][2] = 0.;
-	D[1][0] = poisson; D[1][1] = 1.;      D[1][2] = 0.;
-	D[2][0] = 0.;      D[2][1] = 0;       D[2][2] = (1.-poisson)/2.;
-	for(int i=0;i<3;i++){
-		for(int j=0;j<3;j++){
-			D[i][j] = D[i][j]/(1-poisson*poisson);
-		}
-	}
-
-	/*Get f(A), E*/
-	IssmDouble f = exp(ridging_exponent*(1.-concentration));
-	IssmDouble E = young_modulus*(1.-damage)*f;
-
-	/*Let's build C = E*D */
-	for(int i=0;i<3;i++){
-		for(int j=0;j<3;j++){
-			C[i*3+j] = E*D[i][j];
-		}
-	}
-}/*}}}*/
-void           SeaiceAnalysis::GetB(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/
-	/*Compute B  matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2. 
-	 * For node i, Bi can be expressed in the actual coordinate system
-	 * by: 
-	 *       Bi=[ dN/dx           0    ] 
-	 *          [   0           dN/dy  ]      
-	 *          [ 1/2*dN/dy  1/2*dN/dx ]     
-	 * where N is the basis function for node i.
-	 *
-	 * We assume B has been allocated already           */
-
-	/*Fetch number of nodes for this finite element*/
-	int numnodes = element->GetNumberOfNodes();
-
-	/*Get nodal functions derivatives*/
-	IssmDouble* dbasis=xNew<IssmDouble>(2*numnodes);
-	element->NodalFunctionsDerivatives(dbasis,xyz_list,gauss);
-
-	/*Build B: */
-	for(int i=0;i<numnodes;i++){
-		B[2*numnodes*0+2*i+0] = dbasis[0*numnodes+i];
-		B[2*numnodes*0+2*i+1] = 0.;
-		B[2*numnodes*1+2*i+0] = 0.;
-		B[2*numnodes*1+2*i+1] = dbasis[1*numnodes+i];
-		//B[2*numnodes*2+2*i+0] = .5*dbasis[1*numnodes+i];
-		//B[2*numnodes*2+2*i+1] = .5*dbasis[0*numnodes+i];
-		B[2*numnodes*2+2*i+0] = dbasis[1*numnodes+i];
-		B[2*numnodes*2+2*i+1] = dbasis[0*numnodes+i];
-	}
-
-	/*Clean-up*/
-	xDelete<IssmDouble>(dbasis);
-}/*}}}*/
-void           SeaiceAnalysis::GetM(IssmDouble* M,Element* element,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/
-	/*Compute M  matrix. M=[M1 M2 M3] where Mi is of size 3*NDOF2. 
-	 * For node i, Mi can be expressed in the actual coordinate system
-	 * by: 
-	 *       Mi=[ N  N ] 
-	 * where N is the basis function for node i.
-	 *
-	 * We assume M has been allocated already           */
-
-	/*Fetch number of nodes for this finite element*/
-	int numnodes = element->GetNumberOfNodes();
-
-	/*Get nodal functions derivatives*/
-	IssmDouble* basis=xNew<IssmDouble>(numnodes);
-	element->NodalFunctions(basis,gauss);
-
-	/*Build M: */
-	for(int i=0;i<numnodes;i++){
-		M[2*i+0] = basis[i];
-		M[2*i+1] = basis[i];
-	}
-
-	/*Clean-up*/
-	xDelete<IssmDouble>(basis);
-}/*}}}*/
-void           SeaiceAnalysis::GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element){/*{{{*/
-	   _error_("not implemented yet");
-}/*}}}*/
-void           SeaiceAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/
-	_error_("Not implemented yet");
-}/*}}}*/
-void           SeaiceAnalysis::InputUpdateFromSolution(IssmDouble* solution,Element* element){/*{{{*/
-
-	/*Intermediaries*/
-	int* doflist=NULL;
-
-	/*Fetch number of nodes and dof for this finite element*/
-	int numnodes = element->GetNumberOfNodes();
-	int numdof   = numnodes*2;
-
-	/*Fetch dof list and allocate solution vectors*/
-	element->GetDofList(&doflist,SSAApproximationEnum,GsetEnum);
-	IssmDouble* values    = xNew<IssmDouble>(numdof);
-	IssmDouble* vx        = xNew<IssmDouble>(numnodes);
-	IssmDouble* vy        = xNew<IssmDouble>(numnodes);
-	IssmDouble* vel       = xNew<IssmDouble>(numnodes);
-
-	/*Use the dof list to index into the solution vector: */
-	for(int i=0;i<numdof;i++) values[i]=solution[doflist[i]];
-
-	/*Ok, we have vx and vy in values, fill in vx and vy arrays: */
-	for(int i=0;i<numnodes;i++){
-		vx[i]=values[i*2+0];
-		vy[i]=values[i*2+1];
-		if(xIsNan<IssmDouble>(vx[i])) _error_("NaN found in solution vector");
-		if(xIsNan<IssmDouble>(vy[i])) _error_("NaN found in solution vector");
-	}
-
-	/*Compute vel*/
-	for(int i=0;i<numnodes;i++) vel[i]=sqrt(vx[i]*vx[i] + vy[i]*vy[i]);
-
-	/*Add vx and vy as inputs to the tria element: */
-	element->AddInput(VxEnum,vx,element->GetElementType());
-	element->AddInput(VyEnum,vy,element->GetElementType());
-	element->AddInput(VelEnum,vel,element->GetElementType());
-
-	/*Free ressources:*/
-	xDelete<IssmDouble>(vel);
-	xDelete<IssmDouble>(vy);
-	xDelete<IssmDouble>(vx);
-	xDelete<IssmDouble>(values);
-	xDelete<int>(doflist);
-}/*}}}*/
-void           SeaiceAnalysis::PostProcess(FemModel* femmodel){/*{{{*/
-
-	/*Intermediaties*/
-	IssmDouble *xyz_list = NULL;
-	IssmDouble *xyz_list_old = NULL;
-	IssmDouble *xyz_list_new = NULL;
-	IssmDouble  dt,meshx,meshy,vx,vy,eps_xx,eps_yy,eps_zz,area_old,area_new;
-	IssmDouble  time_relaxation_stress,time_relaxation_damage,damage,concentration,thickness;
-	IssmDouble  sigma_dot_xx,sigma_dot_yy,sigma_dot_xy;
-	IssmDouble  sigma_pred_xx,sigma_pred_yy,sigma_pred_xy;
-	IssmDouble  sigma_xx,sigma_yy,sigma_xy;
-	IssmDouble  min_c,min_h,max_h;
-	IssmDouble  epsilon[3]; /*eps_xx,eps_yy,eps_xy*/
-	IssmDouble  C[3][3];
-
-	/*Fetch the parameters once for all*/
-	femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
-	femmodel->parameters->FindParam(&min_c,SeaiceMinConcentrationEnum);
-	femmodel->parameters->FindParam(&min_h,SeaiceMinThicknessEnum);
-	femmodel->parameters->FindParam(&max_h,SeaiceMaxThicknessEnum);
-
-	/*Loop over the elements of this partition and update accordingly*/
-	for(int i=0;i<femmodel->elements->Size();i++){
-		Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
-
-		/*Get some inputs needed for the update*/
-		element->GetVerticesCoordinates(&xyz_list);
-		time_relaxation_stress = element->GetMaterialParameter(MaterialsTimeRelaxationStressEnum);
-		time_relaxation_damage = element->GetMaterialParameter(MaterialsTimeRelaxationDamageEnum);
-		Input* meshx_input = element->GetInput(MeshXEnum); _assert_(meshx_input);
-		Input* meshy_input = element->GetInput(MeshYEnum); _assert_(meshy_input);
-		Input* vx_input    = element->GetInput(VxEnum);    _assert_(vx_input);
-		Input* vy_input    = element->GetInput(VyEnum);    _assert_(vy_input);
-
-		/*Preallocate future inputs*/
-		int numvertices=element->GetNumberOfVertices();
-		IssmDouble* meshx_new_list = xNew<IssmDouble>(numvertices);
-		IssmDouble* meshy_new_list = xNew<IssmDouble>(numvertices);
-		xyz_list_old = xNew<IssmDouble>(numvertices*3);
-		xyz_list_new = xNew<IssmDouble>(numvertices*3);
-
-		/*1. update vertex positions (using a Gauss object for convenience)*/
-		Gauss* gauss=element->NewGauss();
-		for (int iv=0;iv<numvertices;iv++){
-			gauss->GaussVertex(iv);
-
-			meshx_input->GetInputValue(&meshx,gauss);
-			meshy_input->GetInputValue(&meshy,gauss);
-			vx_input->GetInputValue(&vx,gauss);
-			vy_input->GetInputValue(&vy,gauss);
-
-			meshx_new_list[iv] = meshx + vx*dt;
-			meshy_new_list[iv] = meshy + vy*dt;
-
-			xyz_list_old[iv*3+0] = meshx;
-			xyz_list_old[iv*3+1] = meshy;
-			xyz_list_old[iv*3+2] = 0.;
-
-			xyz_list_new[iv*3+0] = meshx_new_list[iv];
-			xyz_list_new[iv*3+1] = meshy_new_list[iv];
-			xyz_list_new[iv*3+2] = 0.;
-		}
-		element->AddInput(MeshXEnum,meshx_new_list,P1Enum);
-		element->AddInput(MeshYEnum,meshy_new_list,P1Enum);
-
-		/*Now we are going to use a point in the center of the element, because we are P0 for the stress*/
-		gauss->GaussNode(P0Enum,0);
-
-		/*Calculate sigma_dot*/
-		sigma_dot_xx=sigma_dot_yy=sigma_dot_xy=0.;
-		this->CreateCTensor(&C[0][0],element,gauss);
-		element->StrainRateSSA(&epsilon[0],xyz_list,gauss,vx_input,vy_input);
-		for(int j=0;j<3;j++){
-			sigma_dot_xx += C[0][j]*epsilon[0];
-			sigma_dot_yy += C[1][j]*epsilon[1];
-			sigma_dot_xy += C[2][j]*epsilon[2];
-		}
-
-		/*Get predicted stress state*/
-		Input* sigma_xx_input = element->GetInput(StressTensorPredictorxxEnum); _assert_(sigma_xx_input);
-		Input* sigma_yy_input = element->GetInput(StressTensorPredictoryyEnum); _assert_(sigma_yy_input);
-		Input* sigma_xy_input = element->GetInput(StressTensorPredictorxyEnum); _assert_(sigma_xy_input);
-		sigma_xx_input->GetInputAverage(&sigma_xx);
-		sigma_yy_input->GetInputAverage(&sigma_yy);
-		sigma_xy_input->GetInputAverage(&sigma_xy);
-
-		/*Calculate new stress and push to element*/
-		sigma_xx = sigma_xx + dt*(sigma_dot_xx - sigma_xx/time_relaxation_stress);
-		sigma_yy = sigma_yy + dt*(sigma_dot_yy - sigma_yy/time_relaxation_stress);
-		sigma_xy = sigma_xy + dt*(sigma_dot_xy - sigma_xy/time_relaxation_stress);
-		element->AddInput(StressTensorxxEnum,&sigma_xx,P0Enum);
-		element->AddInput(StressTensoryyEnum,&sigma_yy,P0Enum);
-		element->AddInput(StressTensorxyEnum,&sigma_xy,P0Enum);
-
-		/*Update Damage According*/
-		Input* damage_input = element->GetInput(DamageEnum); _assert_(damage_input);
-		damage_input->GetInputAverage(&damage);
-		damage = damage*(1.-dt/time_relaxation_damage);
-		element->AddInput(DamageEnum,&damage,P0Enum);
-
-		/*Prepare new predictor*/
-		this->CreateCTensor(&C[0][0],element,gauss); /*C is updated now that there is a new damage in inputs*/
-		for(int j=0;j<3;j++){
-			sigma_pred_xx += C[0][j]*epsilon[0];
-			sigma_pred_yy += C[1][j]*epsilon[1];
-			sigma_pred_xy += C[2][j]*epsilon[2];
-		}
-		element->AddInput(StressTensorPredictorxxEnum,&sigma_pred_xx,P0Enum);
-		element->AddInput(StressTensorPredictoryyEnum,&sigma_pred_yy,P0Enum);
-		element->AddInput(StressTensorPredictorxyEnum,&sigma_pred_xy,P0Enum);
-
-		/*Calculate Old and new area (FIXME: for now we assume trianlges...)*/
-		element->JacobianDeterminant(&area_old,xyz_list_old,gauss);
-		element->JacobianDeterminant(&area_new,xyz_list_new,gauss);
-		area_old = area_old/SQRT3;
-		area_new = area_new/SQRT3;
-
-		/*Update ice thickness and concentration using element distortion*/
-		Input* thickness_input     = element->GetInput(SeaiceThicknessEnum);     _assert_(thickness_input);
-		Input* concentration_input = element->GetInput(SeaiceConcentrationEnum); _assert_(concentration_input);
-		thickness_input->GetInputAverage(&thickness);
-		concentration_input->GetInputAverage(&concentration);
-		IssmDouble ice_area   = concentration*area_old;
-		IssmDouble ice_volume = thickness*area_old;
-		if(concentration>min_c){
-			concentration = ice_area  /area_new;
-			thickness     = ice_volume/area_new;
-
-			/* lower bounds */
-			concentration = ((concentration>min_c)?(concentration):(min_c));
-			thickness     = ((thickness    >min_h)?(thickness    ):(min_h));
-
-			/* upper bounds (only for the concentration) */
-			concentration    = ((concentration<1.   )?(concentration):(1));
-			thickness        = ((thickness    <max_h)?(thickness    ):(max_h));
-		}
-		element->AddInput(SeaiceConcentrationEnum,&concentration,P0Enum);
-		element->AddInput(SeaiceThicknessEnum,&thickness,P0Enum);
-
-		/*Clean up*/
-		xDelete<IssmDouble>(meshx_new_list);
-		xDelete<IssmDouble>(meshy_new_list);
-		xDelete<IssmDouble>(xyz_list);
-		xDelete<IssmDouble>(xyz_list_old);
-		xDelete<IssmDouble>(xyz_list_new);
-	}
-
-}/*}}}*/
-void           SeaiceAnalysis::UpdateConstraints(FemModel* femmodel){/*{{{*/
-
-	/*Intermediaries*/
-	IssmDouble          c_min;
-	Vector<IssmDouble>* mask        = NULL;
-	IssmDouble*         serial_mask = NULL;
-
-	/*Get minimum concentration allowed*/
-	femmodel->parameters->FindParam(&c_min,SeaiceMinConcentrationEnum);
-
-	/*Step 1: update mask of active nodes*/
-	mask=new Vector<IssmDouble>(femmodel->nodes->NumberOfNodes(SeaiceAnalysisEnum));
-	for (int i=0;i<femmodel->elements->Size();i++){
-		Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
-
-		/*Get current concentration of element and decide whether it is an active element*/
-		int    numnodes            = element->GetNumberOfNodes();
-		Input* concentration_input = element->GetInput(SeaiceConcentrationEnum); _assert_(concentration_input);
-		if(concentration_input->Max()>c_min){
-			for(int in=0;in<numnodes;in++) mask->SetValue(element->nodes[in]->Sid(),1.,INS_VAL);
-		}
-	}
-
-	/*Assemble and serialize*/
-	mask->Assemble();
-	serial_mask=mask->ToMPISerial();
-	delete mask;
-
-	/*Update node activation accordingly*/
-	int counter =0;
-	for(int i=0;i<femmodel->nodes->Size();i++){
-		Node* node=xDynamicCast<Node*>(femmodel->nodes->GetObjectByOffset(i));
-		if(node->InAnalysis(SeaiceAnalysisEnum)){
-			if(serial_mask[node->Sid()]==1.){
-				node->Activate();
-				counter++;
-			}
-			else{
-				node->Deactivate();
-			}
-		}
-	}
-	xDelete<IssmDouble>(serial_mask);
-
-	/*Display number of active nodes*/
-	int sum_counter;
-	ISSM_MPI_Reduce(&counter,&sum_counter,1,ISSM_MPI_INT,ISSM_MPI_SUM,0,IssmComm::GetComm() );
-	if(VerboseSolution()) _printf0_("   Number of active nodes: "<< sum_counter <<"\n");
-}/*}}}*/
-void           SeaiceAnalysis::UpdateDamageAndStress(FemModel* femmodel){/*{{{*/
-	/* The damage variable is updated as a function of the actual elastic deformation
-	 * In both cases, a Coulombic enveloppe is used, define by the cohesion C, tan(phi) and tract_coef.
-	 * In both cases, a maximal compressive strength is fixed at compr_max
-	 * The enveloppe is defined in N/m^2.
-	 * The coeficients of the internal stress are then multiplied by the ice thickness to be used in the vertical integrated momentiom equation.
-	 */
-
-	/* Mohr-Coulomb criterion calculation
-	 * %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-	 *                                                                   
-	 *                            sigma_s                                
-	 *        Mohr.Coulomb branch     |                                  
-	 *                     \          |                                  
-	 *                      * |       |                                  
-	 *                        *       |   cohesion (C=cfix+calea)        
-	 *                        | *     |  /                               
-	 *                        |   *   | /    tract                       
-	 *                        |     * |/    /                            
-	 *             -comp_max  |       *    /                             
-	 *                      \ |       | * /                              
-	 *                       \|      0| | *                              
-	 *             -------------------------*------------ sigma_n        
-	 *                        |       | | *                              
-	 *                        |       | *                                
-	 *                        |       *                                  
-	 *                        |     * |                                  
-	 *                        |   *   |                                  
-	 *                        | *     |                                  
-	 *                        *       |                                  
-	 *                      * |       |                                  
-	 *                    *           |                                  
-	 *                                |                                  
-	 *                                |                                  
-	 *                                                                   
-	 * %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-	 */
-
-	/*Intermediaties*/
-	IssmDouble sigma_xx,sigma_yy,sigma_xy,sigma_s,sigma_n,sigma_target;
-	IssmDouble compression_coef,traction_coef,cohesion,tan_phi;
-	IssmDouble traction,compression_max;
-	IssmDouble damage_test,damage_new,damage,tmp;
-
-	/*Loop over the elements of this partition and update accordingly*/
-	for(int i=0;i<femmodel->elements->Size();i++){
-		Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
-
-		/*Get Mohr-Coulomb parameters*/
-		compression_coef = element->GetMaterialParameter(MaterialsCompressionCoefEnum);
-		traction_coef    = element->GetMaterialParameter(MaterialsTractionCoefEnum);
-		cohesion         = element->GetMaterialParameter(MaterialsCohesionEnum); //C
-		tan_phi          = element->GetMaterialParameter(MaterialsInternalFrictionCoefEnum); //mu = tan(phi)
-
-		/*Get current stress state*/
-		Input*   sigma_xx_input = element->GetInput(StressTensorPredictorxxEnum); _assert_(sigma_xx_input);
-		Input*   sigma_yy_input = element->GetInput(StressTensorPredictoryyEnum); _assert_(sigma_yy_input);
-		Input*   sigma_xy_input = element->GetInput(StressTensorPredictorxyEnum); _assert_(sigma_xy_input);
-		sigma_xx_input->GetInputAverage(&sigma_xx);
-		sigma_yy_input->GetInputAverage(&sigma_yy);
-		sigma_xy_input->GetInputAverage(&sigma_xy);
-
-		/* Compute the invariants of the elastic deformation and instantaneous deformation rate */
-		sigma_s=sqrt(pow((sigma_xx-sigma_yy)/2.,2)+pow(sigma_xy,2));
-		sigma_n=(sigma_xx+sigma_yy)/2.;
-
-		/* same maximal tensile strength */
-		traction=traction_coef*cohesion/tan_phi;
-		compression_max=compression_coef*cohesion;
-
-		/* estimate the internal constraints using the current elastic deformation */
-		Input* damage_input    = element->GetInput(DamageEnum); _assert_(damage_input);
-		damage_input->GetInputAverage(&damage);
-		damage_test = damage;
-		damage_new  = damage;
-		if(sigma_n>traction || sigma_n<-compression_max){
-			if(sigma_n>traction){
-				sigma_target=traction;
-			}
-			else{
-				sigma_target=-compression_max;
-			}
-
-			tmp=1.-sigma_target/sigma_n*(1.-damage);
-			if(tmp<1. && tmp>damage_new){
-				damage_test=((damage_test>tmp)?(damage_test):(tmp)); /* max(damage_test,tmp); */
-			}
-		}
-		if(sigma_s>cohesion-sigma_n*tan_phi){
-			tmp=1.0-cohesion/(sigma_s+sigma_n*tan_phi)*(1-damage);
-			if(tmp<1. && tmp>damage_new){
-				damage_test=((damage_test>tmp)?(damage_test):(tmp)); /*max(damage_test,tmp); */
-			}
-		}
-
-		/* The damage variable is changed */
-		damage_new=damage_test;
-		element->AddInput(DamageEnum,&damage_new,P0Enum);
-
-		/* Recompute the internal stress*/
-		if(damage<1.){
-			sigma_xx = (1.-damage_new)/(1.-damage)*sigma_xx;
-			sigma_yy = (1.-damage_new)/(1.-damage)*sigma_yy;
-			sigma_xy = (1.-damage_new)/(1.-damage)*sigma_xy;
-		}
-		else{
-			sigma_xx = 0.;
-			sigma_yy = 0.;
-			sigma_xy = 0.;
-		}
-		element->AddInput(StressTensorxxEnum,&sigma_xx,P0Enum);
-		element->AddInput(StressTensoryyEnum,&sigma_yy,P0Enum);
-		element->AddInput(StressTensorxyEnum,&sigma_xy,P0Enum);
-	}
-}/*}}}*/
Index: sm/trunk-jpl/src/c/analyses/SeaiceAnalysis.h
===================================================================
--- /issm/trunk-jpl/src/c/analyses/SeaiceAnalysis.h	(revision 19086)
+++ 	(revision )
@@ -1,38 +1,0 @@
-/*! \file SeaiceAnalysis.h 
- *  \brief: header file for generic external result object
- */
-
-#ifndef _SeaiceAnalysis_
-#define _SeaiceAnalysis_
-
-/*Headers*/
-#include "./Analysis.h"
-
-class SeaiceAnalysis: public Analysis{
-
-	public:
-		/*Model processing*/
-		void CreateConstraints(Constraints* constraints,IoModel* iomodel);
-		void CreateLoads(Loads* loads, IoModel* iomodel);
-		void CreateNodes(Nodes* nodes,IoModel* iomodel);
-		int  DofsPerNode(int** doflist,int domaintype,int approximation);
-		void UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type);
-		void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
-
-		/*Finite element Analysis*/
-		void           Core(FemModel* femmodel);
-		void           CreateCTensor(IssmDouble* C,Element* element,Gauss* gauss);
-		ElementVector* CreateDVector(Element* element);
-		ElementMatrix* CreateJacobianMatrix(Element* element);
-		ElementMatrix* CreateKMatrix(Element* element);
-		ElementVector* CreatePVector(Element* element);
-		void           GetB(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss);
-		void           GetM(IssmDouble* M,Element* element,IssmDouble* xyz_list,Gauss* gauss);
-		void           GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element);
-		void           GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index);
-		void           InputUpdateFromSolution(IssmDouble* solution,Element* element);
-		void           PostProcess(FemModel* femmodel);
-		void           UpdateConstraints(FemModel* femmodel);
-		void           UpdateDamageAndStress(FemModel* femmodel);
-};
-#endif
Index: /issm/trunk-jpl/src/c/analyses/analyses.h
===================================================================
--- /issm/trunk-jpl/src/c/analyses/analyses.h	(revision 19086)
+++ /issm/trunk-jpl/src/c/analyses/analyses.h	(revision 19087)
@@ -33,5 +33,4 @@
 #include "./MeshdeformationAnalysis.h"
 #include "./SmoothAnalysis.h"
-#include "./SeaiceAnalysis.h"
 #include "./StressbalanceAnalysis.h"
 #include "./StressbalanceSIAAnalysis.h"
Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 19086)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 19087)
@@ -586,8 +586,4 @@
 			analyses_temp[numanalyses++]=L2ProjectionBaseAnalysisEnum;
 			}
-			break;
-
-		case SeaiceSolutionEnum:
-			analyses_temp[numanalyses++]=SeaiceAnalysisEnum;
 			break;
 
Index: /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19086)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19087)
@@ -99,18 +99,4 @@
 			iomodel->Constant(&this->mantle_shear_modulus,MaterialsMantleShearModulusEnum);
 			iomodel->Constant(&this->mantle_density,MaterialsMantleDensityEnum);
-			break;
-		case MatseaiceEnum:
-			iomodel->Constant(&this->rho_ice,MaterialsRhoIceEnum);
-			iomodel->Constant(&this->poisson,MaterialsPoissonEnum);
-			iomodel->Constant(&this->young_modulus,MaterialsYoungModulusEnum);
-			iomodel->Constant(&this->ridging_exponent,MaterialsRidgingExponentEnum);
-			iomodel->Constant(&this->cohesion,MaterialsCohesionEnum);
-			iomodel->Constant(&this->internal_friction_coef,MaterialsInternalFrictionCoefEnum);
-			iomodel->Constant(&this->compression_coef,MaterialsCompressionCoefEnum);
-			iomodel->Constant(&this->traction_coef,MaterialsTractionCoefEnum);
-			iomodel->Constant(&this->g,ConstantsGEnum);
-			iomodel->Constant(&this->omega,ConstantsOmegaEnum);
-			iomodel->Constant(&this->time_relaxation_stress,MaterialsTimeRelaxationStressEnum);
-			iomodel->Constant(&this->time_relaxation_damage,MaterialsTimeRelaxationDamageEnum);
 			break;
 		default:
@@ -409,11 +395,4 @@
 		case HydrologydcWaterCompressibilityEnum:    return this->water_compressibility;
 		case ConstantsGEnum:                         return this->g;
-		case MaterialsPoissonEnum:                   return this->poisson;
-		case MaterialsYoungModulusEnum:              return this->young_modulus;
-		case MaterialsRidgingExponentEnum:				return this->ridging_exponent;
-		case MaterialsCohesionEnum:		            return this->cohesion;
-		case MaterialsInternalFrictionCoefEnum:		return this->internal_friction_coef;
-		case MaterialsCompressionCoefEnum:				return this->compression_coef;
-		case MaterialsTractionCoefEnum:					return this->traction_coef;
 		case SurfaceforcingsDesfacEnum:              return this->desfac;
 		case SurfaceforcingsS0pEnum:                 return this->s0p;
@@ -425,7 +404,4 @@
 		case MaterialsMantleDensityEnum:             return this->mantle_density;
 		case MaterialsMantleShearModulusEnum:        return this->mantle_shear_modulus;
-		case ConstantsOmegaEnum:							return this->omega;
-		case MaterialsTimeRelaxationStressEnum:		return this->time_relaxation_stress;
-		case MaterialsTimeRelaxationDamageEnum:		return this->time_relaxation_damage;
 		default: _error_("Enum "<<EnumToStringx(enum_in)<<" not supported yet");
 	}
Index: sm/trunk-jpl/src/c/classes/Materials/Matseaice.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matseaice.cpp	(revision 19086)
+++ 	(revision )
@@ -1,136 +1,0 @@
-/*!\file Matseaice.c
- * \brief: implementation of the Matseaice object
- */
-
-#ifdef HAVE_CONFIG_H
-	#include <config.h>
-#else
-#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
-#endif
-
-#include "./Matseaice.h"
-#include "./Materials.h"
-#include "../Inputs/Input.h"
-#include "../Inputs/Inputs.h"
-#include "../Inputs/TriaInput.h"
-#include "../Inputs/PentaInput.h"
-#include "../Inputs/ControlInput.h"
-#include "../Elements/Element.h"
-#include "../Elements/Tria.h"
-#include "../Elements/Penta.h"
-#include "../Params/Parameters.h"
-#include "../Vertex.h"
-#include "../Hook.h"
-#include "../Node.h"
-#include "../IoModel.h"
-#include "../../shared/shared.h"
-
-/*Matseaice constructors and destructor*/
-Matseaice::Matseaice(){/*{{{*/
-	this->helement=NULL;
-	this->element=NULL;
-	return;
-}
-/*}}}*/
-Matseaice::Matseaice(int matseaice_mid,int index, IoModel* iomodel){/*{{{*/
-
-	/*Intermediaries:*/
-	int    matseaice_eid;
-
-	/*Initialize id*/
-	this->mid=matseaice_mid;
-
-	/*Hooks: */
-	matseaice_eid=index+1;
-	this->helement=new Hook(&matseaice_eid,1);
-	this->element=NULL;
-
-	return;
-}
-/*}}}*/
-Matseaice::~Matseaice(){/*{{{*/
-	delete helement;
-	return;
-}
-/*}}}*/
-
-/*Object virtual functions definitions:*/
-void Matseaice::Echo(void){/*{{{*/
-
-	_printf_("Matseaice:\n");
-	_printf_("   mid: " << mid << "\n");
-	_printf_("   element:\n");
-	helement->Echo();
-}
-/*}}}*/
-void Matseaice::DeepEcho(void){/*{{{*/
-
-	_printf_("Matseaice:\n");
-	_printf_("   mid: " << mid << "\n");
-	_printf_("   element:\n");
-	helement->Echo();
-}		
-/*}}}*/
-int  Matseaice::Id(void){ return mid; }/*{{{*/
-/*}}}*/
-int Matseaice::ObjectEnum(void){/*{{{*/
-
-	return MatseaiceEnum;
-
-}
-/*}}}*/
-Object* Matseaice::copy() {/*{{{*/
-
-	/*Output*/
-	Matseaice* matseaice=NULL;
-
-	/*Initialize output*/
-	matseaice=new Matseaice();
-
-	/*copy fields: */
-	matseaice->mid=this->mid;
-	matseaice->helement=(Hook*)this->helement->copy();
-	matseaice->element =(Element*)this->helement->delivers();
-
-	return matseaice;
-}
-/*}}}*/
-Material* Matseaice::copy2(Element* element_in) {/*{{{*/
-
-	/*Output*/
-	Matseaice* matseaice=NULL;
-
-	/*Initialize output*/
-	matseaice=new Matseaice();
-
-	/*copy fields: */
-	matseaice->mid=this->mid;
-	matseaice->helement=(Hook*)this->helement->copy();
-	matseaice->element =element_in;
-
-	return matseaice;
-}
-/*}}}*/
-
-/*Matseaice management*/
-void  Matseaice::Configure(Elements* elementsin){/*{{{*/
-
-	/*Take care of hooking up all objects for this element, ie links the objects in the hooks to their respective 
-	 * datasets, using internal ids and offsets hidden in hooks: */
-	helement->configure((DataSet*)elementsin);
-	this->element  = (Element*)helement->delivers();
-}
-/*}}}*/
-void  Matseaice::SetCurrentConfiguration(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){/*{{{*/
-
-}
-/*}}}*/
-void  Matseaice::ResetHooks(){/*{{{*/
-
-	this->element=NULL;
-
-	/*Get Element type*/
-	this->helement->reset();
-
-}
-/*}}}*/
Index: sm/trunk-jpl/src/c/classes/Materials/Matseaice.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matseaice.h	(revision 19086)
+++ 	(revision )
@@ -1,75 +1,0 @@
-/*!\file Matseaice.h
- * \brief: header file for matice object
- */
-
-#ifndef MATSEAICE_H_
-#define MATSEAICE_H_
-
-/*Headers:*/
-/*{{{*/
-#include "./Material.h"
-#include "../Hook.h"
-class IoModel;
-class Elements;
-class Element;
-class Loads;
-class Nodes;
-class Vertices;
-class Materials;
-class Parameters;
-/*}}}*/
-
-class Matseaice: public Material{
-
-	private: 
-		int      mid;
-		Hook    *helement;
-		Element *element;
-
-	public:
-		/*Matseaice constructors, destructors: {{{*/
-		Matseaice();
-		Matseaice(int mid,int i, IoModel* iomodel);
-		~Matseaice();
-		/*}}}*/
-		/*Object virtual functions definitions:{{{ */
-		void  Echo();
-		void  DeepEcho();
-		int   Id(); 
-		int   ObjectEnum();
-		Object* copy();
-		/*}}}*/
-		/*Update virtual funictions definitions: {{{*/
-		void  InputUpdateFromVector(IssmDouble* vector, int name, int type){_error_("not implemented");};
-		void  InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrow, int ncols, int name, int type){_error_("not implemented");};
-		void  InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){_error_("not implemented");};
-		void  InputUpdateFromConstant(IssmDouble constant, int name){_error_("not implemented");};
-		void  InputUpdateFromConstant(int constant, int name){_error_("not implemented");};
-		void  InputUpdateFromConstant(bool constant, int name){_error_("not implemented");};
-		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented");};
-		/*}}}*/
-		/*Material virtual functions resolution: {{{*/
-		void   Configure(Elements* elements);
-		Material*  copy2(Element* element);
-		void       SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
-		void       GetViscosity(IssmDouble* pviscosity, IssmDouble eps_eff){_error_("not supported for this material");};
-		void       GetViscosity_B(IssmDouble* pviscosity, IssmDouble eps_eff){_error_("not supported for this material");};
-		void       GetViscosity_D(IssmDouble* pviscosity, IssmDouble eps_eff){_error_("not supported for this material");};
-		void       GetViscosityBar(IssmDouble* pviscosity, IssmDouble eps_eff){_error_("not supported for this material");};
-		void       GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon){_error_("not supported for this material");};
-		void       GetViscosityDComplement(IssmDouble*, IssmDouble*){_error_("not supported for this material");};
-		void       GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon){_error_("not supported for this material");};
-		void       GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon){_error_("not supported for this material");};
-		IssmDouble GetA(){_error_("not supported for this material");};
-		IssmDouble GetAbar(){_error_("not supported for this material");};
-		IssmDouble GetB(){_error_("not supported for this material");};
-		IssmDouble GetBbar(){_error_("not supported for this material");};
-		IssmDouble GetD(){_error_("not supported for this material");};
-		IssmDouble GetDbar(){_error_("not supported for this material");};
-		IssmDouble GetN(){_error_("not supported for this material");};
-		bool       IsDamage(){_error_("not supported for this material");};
-		void       ResetHooks();
-		/*}}}*/
-};
-
-#endif  /* _MATICE_H_ */
Index: /issm/trunk-jpl/src/c/classes/classes.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/classes.h	(revision 19086)
+++ /issm/trunk-jpl/src/c/classes/classes.h	(revision 19087)
@@ -80,5 +80,4 @@
 #include "./Materials/Material.h"
 #include "./Materials/Matice.h"
-#include "./Materials/Matseaice.h"
 #include "./Materials/Matpar.h"
 
Index: /issm/trunk-jpl/src/c/cores/CorePointerFromSolutionEnum.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/CorePointerFromSolutionEnum.cpp	(revision 19086)
+++ /issm/trunk-jpl/src/c/cores/CorePointerFromSolutionEnum.cpp	(revision 19087)
@@ -69,7 +69,4 @@
 			solutioncore=&damage_core;
 			break;
-		case SeaiceSolutionEnum:
-			solutioncore=&seaice_core;
-			break;
 		default:
 			_error_("solution type: " << EnumToStringx(solutiontype) << " not supported yet!");
Index: /issm/trunk-jpl/src/c/cores/cores.h
===================================================================
--- /issm/trunk-jpl/src/c/cores/cores.h	(revision 19086)
+++ /issm/trunk-jpl/src/c/cores/cores.h	(revision 19087)
@@ -47,5 +47,4 @@
 void gia_core(FemModel* femmodel);
 void damage_core(FemModel* femmodel);
-void seaice_core(FemModel* femmodel);
 IssmDouble objectivefunction(IssmDouble search_scalar,FemModel* femmodel);
 
Index: sm/trunk-jpl/src/c/cores/seaice_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/seaice_core.cpp	(revision 19086)
+++ 	(revision )
@@ -1,37 +1,0 @@
-/*!\file: seaice_core.cpp
- * \brief: core of the seaice solution 
- */ 
-
-#include "./cores.h"
-#include "../toolkits/toolkits.h"
-#include "../classes/classes.h"
-#include "../shared/shared.h"
-#include "../modules/modules.h"
-#include "../solutionsequences/solutionsequences.h"
-
-void seaice_core(FemModel* femmodel){
-
-	/*parameters: */
-	bool           save_results;
-	SeaiceAnalysis analysis = SeaiceAnalysis();
-
-	/*recover parameters: */
-	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
-
-	/*Launch solution sequence for the only analysis we are interested in*/
-	femmodel->SetCurrentConfiguration(SeaiceAnalysisEnum);
-	analysis.UpdateDamageAndStress(femmodel);
-	solutionsequence_linear(femmodel);
-	analysis.PostProcess(femmodel);
-
-	if(save_results){
-		if(VerboseSolution()) _printf0_("   saving results\n");
-		int outputs[14] = {VxEnum,VyEnum,VelEnum,
-			SeaiceConcentrationEnum,SeaiceThicknessEnum,DamageEnum,
-			StressTensorPredictorxxEnum,StressTensorPredictoryyEnum,StressTensorPredictorxyEnum,
-			StressTensorxxEnum,StressTensoryyEnum,StressTensorxyEnum,
-			MeshXEnum,MeshYEnum};
-		femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],14);
-	}
-
-}
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp	(revision 19086)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp	(revision 19087)
@@ -79,8 +79,4 @@
 			}
 			break;
-		case MatseaiceEnum:
-			iomodel->FetchDataToInput(elements,DamageEnum);
-			for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matseaice(i+1,i,iomodel));
-			break;
 		default:
 			_error_("Materials "<<EnumToStringx(materials_type)<<" not supported");
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19086)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19087)
@@ -68,7 +68,5 @@
 	parameters->AddObject(iomodel->CopyConstantObject(InversionTypeEnum));
 	parameters->AddObject(iomodel->CopyConstantObject(CalvingLawEnum));
-	if(solution_type==SeaiceSolutionEnum){
-	}
-	else{
+	{/*This is specific to ice...*/
 		parameters->AddObject(iomodel->CopyConstantObject(MeshElementtypeEnum));
 		parameters->AddObject(iomodel->CopyConstantObject(SteadystateReltolEnum));
@@ -160,10 +158,4 @@
 			/*Nothing to add to parameters*/
 			break;
-		case SeaiceatmEnum:
-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRhoAirEnum));
-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsAirCoefEnum));
-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsAirLinDragCoefEnum));
-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsAirQuadDragCoefEnum));
-			break;
 		default:
 			_error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
@@ -181,11 +173,4 @@
 			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsDeepwaterElevationEnum));
 			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsUpperwaterElevationEnum));
-			break;
-		case SeaiceoceanEnum:
-			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsRhoOceanEnum));
-			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsOceanCoefEnum));
-			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsOceanLinDragCoefEnum));
-			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsOceanQuadDragCoefEnum));
-			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsOceanTurningAngleEnum));
 			break;
 		default:
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19086)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19087)
@@ -430,6 +430,4 @@
 	GiaSolutionEnum,
 	GiaAnalysisEnum,
-	SeaiceSolutionEnum,
-	SeaiceAnalysisEnum,
 	MeshdeformationSolutionEnum,
 	MeshdeformationAnalysisEnum,
@@ -918,45 +916,4 @@
 	LevelsetfunctionPicardEnum,
 	/*}}}*/
-	/*Sea Ice {{{*/
-	SeaiceatmEnum,
-	SeaiceoceanEnum,
-	SeaiceThicknessEnum,
-	SeaiceConcentrationEnum,
-	SeaiceMinConcentrationEnum,
-	SeaiceMinThicknessEnum,
-	SeaiceMaxThicknessEnum,
-	SeaiceSpcvxEnum,
-	SeaiceSpcvyEnum,
-	SeaiceCoriolisFactorEnum,
-	BasalforcingsRhoOceanEnum,
-	BasalforcingsOceanCoefEnum,
-	BasalforcingsOceanLinDragCoefEnum,
-	BasalforcingsOceanQuadDragCoefEnum,
-	BasalforcingsOceanTurningAngleEnum,
-	BasalforcingsOceanSshEnum,
-	BasalforcingsOceanVxEnum,
-	BasalforcingsOceanVyEnum,
-	SurfaceforcingsRhoAirEnum,
-	SurfaceforcingsAirCoefEnum,
-	SurfaceforcingsAirLinDragCoefEnum,
-	SurfaceforcingsAirQuadDragCoefEnum,
-	SurfaceforcingsWindVxEnum,
-	SurfaceforcingsWindVyEnum,
-	MatseaiceEnum,
-	MaterialsPoissonEnum,
-	MaterialsYoungModulusEnum,
-	MaterialsTimeRelaxationStressEnum,
-	MaterialsTimeRelaxationDamageEnum,
-	MaterialsRidgingExponentEnum,
-	MaterialsCohesionEnum,
-	MaterialsInternalFrictionCoefEnum,
-	MaterialsCompressionCoefEnum,
-	MaterialsTractionCoefEnum,
-	VxStarEnum,
-	VyStarEnum,
-	StressTensorPredictorxxEnum,
-	StressTensorPredictoryyEnum,
-	StressTensorPredictorxyEnum,
-	/*}}}*/
 	MaximumNumberOfDefinitionsEnum
 };
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19086)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19087)
@@ -433,6 +433,4 @@
 		case GiaSolutionEnum : return "GiaSolution";
 		case GiaAnalysisEnum : return "GiaAnalysis";
-		case SeaiceSolutionEnum : return "SeaiceSolution";
-		case SeaiceAnalysisEnum : return "SeaiceAnalysis";
 		case MeshdeformationSolutionEnum : return "MeshdeformationSolution";
 		case MeshdeformationAnalysisEnum : return "MeshdeformationAnalysis";
@@ -878,43 +876,4 @@
 		case LevelsetfunctionSlopeYEnum : return "LevelsetfunctionSlopeY";
 		case LevelsetfunctionPicardEnum : return "LevelsetfunctionPicard";
-		case SeaiceatmEnum : return "Seaiceatm";
-		case SeaiceoceanEnum : return "Seaiceocean";
-		case SeaiceThicknessEnum : return "SeaiceThickness";
-		case SeaiceConcentrationEnum : return "SeaiceConcentration";
-		case SeaiceMinConcentrationEnum : return "SeaiceMinConcentration";
-		case SeaiceMinThicknessEnum : return "SeaiceMinThickness";
-		case SeaiceMaxThicknessEnum : return "SeaiceMaxThickness";
-		case SeaiceSpcvxEnum : return "SeaiceSpcvx";
-		case SeaiceSpcvyEnum : return "SeaiceSpcvy";
-		case SeaiceCoriolisFactorEnum : return "SeaiceCoriolisFactor";
-		case BasalforcingsRhoOceanEnum : return "BasalforcingsRhoOcean";
-		case BasalforcingsOceanCoefEnum : return "BasalforcingsOceanCoef";
-		case BasalforcingsOceanLinDragCoefEnum : return "BasalforcingsOceanLinDragCoef";
-		case BasalforcingsOceanQuadDragCoefEnum : return "BasalforcingsOceanQuadDragCoef";
-		case BasalforcingsOceanTurningAngleEnum : return "BasalforcingsOceanTurningAngle";
-		case BasalforcingsOceanSshEnum : return "BasalforcingsOceanSsh";
-		case BasalforcingsOceanVxEnum : return "BasalforcingsOceanVx";
-		case BasalforcingsOceanVyEnum : return "BasalforcingsOceanVy";
-		case SurfaceforcingsRhoAirEnum : return "SurfaceforcingsRhoAir";
-		case SurfaceforcingsAirCoefEnum : return "SurfaceforcingsAirCoef";
-		case SurfaceforcingsAirLinDragCoefEnum : return "SurfaceforcingsAirLinDragCoef";
-		case SurfaceforcingsAirQuadDragCoefEnum : return "SurfaceforcingsAirQuadDragCoef";
-		case SurfaceforcingsWindVxEnum : return "SurfaceforcingsWindVx";
-		case SurfaceforcingsWindVyEnum : return "SurfaceforcingsWindVy";
-		case MatseaiceEnum : return "Matseaice";
-		case MaterialsPoissonEnum : return "MaterialsPoisson";
-		case MaterialsYoungModulusEnum : return "MaterialsYoungModulus";
-		case MaterialsTimeRelaxationStressEnum : return "MaterialsTimeRelaxationStress";
-		case MaterialsTimeRelaxationDamageEnum : return "MaterialsTimeRelaxationDamage";
-		case MaterialsRidgingExponentEnum : return "MaterialsRidgingExponent";
-		case MaterialsCohesionEnum : return "MaterialsCohesion";
-		case MaterialsInternalFrictionCoefEnum : return "MaterialsInternalFrictionCoef";
-		case MaterialsCompressionCoefEnum : return "MaterialsCompressionCoef";
-		case MaterialsTractionCoefEnum : return "MaterialsTractionCoef";
-		case VxStarEnum : return "VxStar";
-		case VyStarEnum : return "VyStar";
-		case StressTensorPredictorxxEnum : return "StressTensorPredictorxx";
-		case StressTensorPredictoryyEnum : return "StressTensorPredictoryy";
-		case StressTensorPredictorxyEnum : return "StressTensorPredictorxy";
 		case MaximumNumberOfDefinitionsEnum : return "MaximumNumberOfDefinitions";
 		default : return "unknown";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19086)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19087)
@@ -442,6 +442,4 @@
 	      else if (strcmp(name,"GiaSolution")==0) return GiaSolutionEnum;
 	      else if (strcmp(name,"GiaAnalysis")==0) return GiaAnalysisEnum;
-	      else if (strcmp(name,"SeaiceSolution")==0) return SeaiceSolutionEnum;
-	      else if (strcmp(name,"SeaiceAnalysis")==0) return SeaiceAnalysisEnum;
 	      else if (strcmp(name,"MeshdeformationSolution")==0) return MeshdeformationSolutionEnum;
 	      else if (strcmp(name,"MeshdeformationAnalysis")==0) return MeshdeformationAnalysisEnum;
@@ -506,10 +504,10 @@
 	      else if (strcmp(name,"Penpair")==0) return PenpairEnum;
 	      else if (strcmp(name,"Profiler")==0) return ProfilerEnum;
+	      else if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum;
+	      else if (strcmp(name,"Masscon")==0) return MassconEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum;
-	      else if (strcmp(name,"Masscon")==0) return MassconEnum;
-	      else if (strcmp(name,"MassconName")==0) return MassconNameEnum;
+	      if (strcmp(name,"MassconName")==0) return MassconNameEnum;
 	      else if (strcmp(name,"MassconDefinitionenum")==0) return MassconDefinitionenumEnum;
 	      else if (strcmp(name,"MassconLevelset")==0) return MassconLevelsetEnum;
@@ -629,10 +627,10 @@
 	      else if (strcmp(name,"DeviatoricStressxx")==0) return DeviatoricStressxxEnum;
 	      else if (strcmp(name,"DeviatoricStressxy")==0) return DeviatoricStressxyEnum;
+	      else if (strcmp(name,"DeviatoricStressxz")==0) return DeviatoricStressxzEnum;
+	      else if (strcmp(name,"DeviatoricStressyy")==0) return DeviatoricStressyyEnum;
          else stage=6;
    }
    if(stage==6){
-	      if (strcmp(name,"DeviatoricStressxz")==0) return DeviatoricStressxzEnum;
-	      else if (strcmp(name,"DeviatoricStressyy")==0) return DeviatoricStressyyEnum;
-	      else if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum;
+	      if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum;
 	      else if (strcmp(name,"DeviatoricStresszz")==0) return DeviatoricStresszzEnum;
 	      else if (strcmp(name,"StrainRate")==0) return StrainRateEnum;
@@ -752,10 +750,10 @@
 	      else if (strcmp(name,"Outputdefinition70")==0) return Outputdefinition70Enum;
 	      else if (strcmp(name,"Outputdefinition71")==0) return Outputdefinition71Enum;
+	      else if (strcmp(name,"Outputdefinition72")==0) return Outputdefinition72Enum;
+	      else if (strcmp(name,"Outputdefinition73")==0) return Outputdefinition73Enum;
          else stage=7;
    }
    if(stage==7){
-	      if (strcmp(name,"Outputdefinition72")==0) return Outputdefinition72Enum;
-	      else if (strcmp(name,"Outputdefinition73")==0) return Outputdefinition73Enum;
-	      else if (strcmp(name,"Outputdefinition74")==0) return Outputdefinition74Enum;
+	      if (strcmp(name,"Outputdefinition74")==0) return Outputdefinition74Enum;
 	      else if (strcmp(name,"Outputdefinition75")==0) return Outputdefinition75Enum;
 	      else if (strcmp(name,"Outputdefinition76")==0) return Outputdefinition76Enum;
@@ -875,10 +873,10 @@
 	      else if (strcmp(name,"XY")==0) return XYEnum;
 	      else if (strcmp(name,"XYZ")==0) return XYZEnum;
+	      else if (strcmp(name,"Dense")==0) return DenseEnum;
+	      else if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
          else stage=8;
    }
    if(stage==8){
-	      if (strcmp(name,"Dense")==0) return DenseEnum;
-	      else if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
-	      else if (strcmp(name,"MpiSparse")==0) return MpiSparseEnum;
+	      if (strcmp(name,"MpiSparse")==0) return MpiSparseEnum;
 	      else if (strcmp(name,"Seq")==0) return SeqEnum;
 	      else if (strcmp(name,"Mpi")==0) return MpiEnum;
@@ -899,43 +897,4 @@
 	      else if (strcmp(name,"LevelsetfunctionSlopeY")==0) return LevelsetfunctionSlopeYEnum;
 	      else if (strcmp(name,"LevelsetfunctionPicard")==0) return LevelsetfunctionPicardEnum;
-	      else if (strcmp(name,"Seaiceatm")==0) return SeaiceatmEnum;
-	      else if (strcmp(name,"Seaiceocean")==0) return SeaiceoceanEnum;
-	      else if (strcmp(name,"SeaiceThickness")==0) return SeaiceThicknessEnum;
-	      else if (strcmp(name,"SeaiceConcentration")==0) return SeaiceConcentrationEnum;
-	      else if (strcmp(name,"SeaiceMinConcentration")==0) return SeaiceMinConcentrationEnum;
-	      else if (strcmp(name,"SeaiceMinThickness")==0) return SeaiceMinThicknessEnum;
-	      else if (strcmp(name,"SeaiceMaxThickness")==0) return SeaiceMaxThicknessEnum;
-	      else if (strcmp(name,"SeaiceSpcvx")==0) return SeaiceSpcvxEnum;
-	      else if (strcmp(name,"SeaiceSpcvy")==0) return SeaiceSpcvyEnum;
-	      else if (strcmp(name,"SeaiceCoriolisFactor")==0) return SeaiceCoriolisFactorEnum;
-	      else if (strcmp(name,"BasalforcingsRhoOcean")==0) return BasalforcingsRhoOceanEnum;
-	      else if (strcmp(name,"BasalforcingsOceanCoef")==0) return BasalforcingsOceanCoefEnum;
-	      else if (strcmp(name,"BasalforcingsOceanLinDragCoef")==0) return BasalforcingsOceanLinDragCoefEnum;
-	      else if (strcmp(name,"BasalforcingsOceanQuadDragCoef")==0) return BasalforcingsOceanQuadDragCoefEnum;
-	      else if (strcmp(name,"BasalforcingsOceanTurningAngle")==0) return BasalforcingsOceanTurningAngleEnum;
-	      else if (strcmp(name,"BasalforcingsOceanSsh")==0) return BasalforcingsOceanSshEnum;
-	      else if (strcmp(name,"BasalforcingsOceanVx")==0) return BasalforcingsOceanVxEnum;
-	      else if (strcmp(name,"BasalforcingsOceanVy")==0) return BasalforcingsOceanVyEnum;
-	      else if (strcmp(name,"SurfaceforcingsRhoAir")==0) return SurfaceforcingsRhoAirEnum;
-	      else if (strcmp(name,"SurfaceforcingsAirCoef")==0) return SurfaceforcingsAirCoefEnum;
-	      else if (strcmp(name,"SurfaceforcingsAirLinDragCoef")==0) return SurfaceforcingsAirLinDragCoefEnum;
-	      else if (strcmp(name,"SurfaceforcingsAirQuadDragCoef")==0) return SurfaceforcingsAirQuadDragCoefEnum;
-	      else if (strcmp(name,"SurfaceforcingsWindVx")==0) return SurfaceforcingsWindVxEnum;
-	      else if (strcmp(name,"SurfaceforcingsWindVy")==0) return SurfaceforcingsWindVyEnum;
-	      else if (strcmp(name,"Matseaice")==0) return MatseaiceEnum;
-	      else if (strcmp(name,"MaterialsPoisson")==0) return MaterialsPoissonEnum;
-	      else if (strcmp(name,"MaterialsYoungModulus")==0) return MaterialsYoungModulusEnum;
-	      else if (strcmp(name,"MaterialsTimeRelaxationStress")==0) return MaterialsTimeRelaxationStressEnum;
-	      else if (strcmp(name,"MaterialsTimeRelaxationDamage")==0) return MaterialsTimeRelaxationDamageEnum;
-	      else if (strcmp(name,"MaterialsRidgingExponent")==0) return MaterialsRidgingExponentEnum;
-	      else if (strcmp(name,"MaterialsCohesion")==0) return MaterialsCohesionEnum;
-	      else if (strcmp(name,"MaterialsInternalFrictionCoef")==0) return MaterialsInternalFrictionCoefEnum;
-	      else if (strcmp(name,"MaterialsCompressionCoef")==0) return MaterialsCompressionCoefEnum;
-	      else if (strcmp(name,"MaterialsTractionCoef")==0) return MaterialsTractionCoefEnum;
-	      else if (strcmp(name,"VxStar")==0) return VxStarEnum;
-	      else if (strcmp(name,"VyStar")==0) return VyStarEnum;
-	      else if (strcmp(name,"StressTensorPredictorxx")==0) return StressTensorPredictorxxEnum;
-	      else if (strcmp(name,"StressTensorPredictoryy")==0) return StressTensorPredictoryyEnum;
-	      else if (strcmp(name,"StressTensorPredictorxy")==0) return StressTensorPredictorxyEnum;
 	      else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum;
          else stage=9;
Index: sm/trunk-jpl/src/m/classes/matseaice.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/matseaice.m	(revision 19086)
+++ 	(revision )
@@ -1,111 +1,0 @@
-%MATSEAICE class definition
-%
-%   Usage:
-%      matseaice=matseaice();
-
-classdef matseaice
-	properties (SetAccess=public) 
-		rho_ice                = 0.;
-		poisson                = 0.;
-		young_modulus          = 0.;
-		ridging_exponent       = 0.;
-		cohesion               = 0.;
-		internal_friction_coef = 0.;
-		compression_coef       = 0.;
-		traction_coef          = 0.;
-		time_relaxation_stress  = 0.;
-		time_relaxation_damage  = 0.;
-	end
-	methods
-		function self = matseaice(varargin) % {{{
-			switch nargin
-				case 0
-					self=setdefaultparameters(self);
-				case 1
-					inputstruct=varargin{1};
-					list1 = properties('matseaice');
-					list2 = fieldnames(inputstruct);
-					for i=1:length(list1)
-						fieldname = list1{i};
-						if ismember(fieldname,list2),
-							self.(fieldname) = inputstruct.(fieldname);
-						end
-					end
-				otherwise
-					error('constructor not supported');
-			end
-		end % }}}
-		function self = setdefaultparameters(self) % {{{
-
-			%Ice density
-			self.rho_ice = 917.; %kg/m^3
-
-			%poisson modulus
-			self.poisson=0.3;
-
-			%Young modulus
-			self.young_modulus=9.e+9;
-
-			%ridging exponent
-			self.ridging_exponent=-20.;
-
-			%Cohesion (Weiss 2007)
-			self.cohesion = 40.e+3; %40 kPa
-
-			%internal_friction_coef 
-			self.internal_friction_coef=0.7;
-
-			%compression_coef (Bouillon and Rampal 2014)
-			self.compression_coef=5./2;
-
-			%traction_coef (Bouillon and Rampal 2014)
-			self.traction_coef=5./6.;
-
-			%Time relaxation stress
-			%1e20 for the elastic case (perfect memory of the stress), equal to the timestep for the viscous case (no memory of the stress)
-			self.time_relaxation_stress=1.e+20;
-
-			%Time relaxation damage
-			%1e20 for the brittle case (perfect memory of the damage), equal to the timestep for the plastic case (no memory of the damage)
-			self.time_relaxation_damage=1.e+20;
-
-		end % }}}
-		function md = checkconsistency(self,md,solution,analyses) % {{{
-			md = checkfield(md,'fieldname','materials.rho_ice','NaN',1,'>',0,'numel',1);
-			md = checkfield(md,'fieldname','materials.poisson','NaN',1,'>',0,'<',.5,'numel',1);
-			md = checkfield(md,'fieldname','materials.young_modulus','NaN',1,'>',0,'numel',1);
-			md = checkfield(md,'fieldname','materials.ridging_exponent','NaN',1,'<',0,'numel',1);
-			md = checkfield(md,'fieldname','materials.cohesion','NaN',1,'>',0,'numel',1);
-			md = checkfield(md,'fieldname','materials.internal_friction_coef','NaN',1,'>',0,'numel',1);
-			md = checkfield(md,'fieldname','materials.compression_coef','NaN',1,'>',1,'numel',1);
-			md = checkfield(md,'fieldname','materials.traction_coef','NaN',1,'>',0,'<',1,'numel',1);
-			md = checkfield(md,'fieldname','materials.time_relaxation_stress','NaN',1,'>',md.timestepping.time_step,'numel',1);
-		end % }}}
-		function disp(self) % {{{
-			disp(sprintf('   Sea Ice Material:'));
-			fielddisplay(self,'rho_ice','ice density [kg/m^3]');
-			fielddisplay(self,'poisson','poisson ratio for undamaged ice [no unit]');
-			fielddisplay(self,'young_modulus','Young modulus for undamaged ice [Pa]');
-			fielddisplay(self,'ridging_exponent','Riging exponent (c, Hibler parameter) [no unit]');
-			fielddisplay(self,'cohesion','cohesion (C) [Pa]');
-			fielddisplay(self,'internal_friction_coef','Mohr-Coulomb internal friction coefficient (mu=tan(phi)) [no unit]');
-			fielddisplay(self,'compression_coef','Ratio between cutoff compressive strength and the cohesion [no unit]');
-			fielddisplay(self,'traction_coef','Ratio between cutoff tensile strength and Mohr-Coulomb tensile strength [no unit]');
-			fielddisplay(self,'time_relaxation_stress','Relaxation time for stress (1e+20: elastic, dt: viscous) [s]');
-			fielddisplay(self,'time_relaxation_damage','Relaxation time for damage (1e+20: brittle, dt: plastic) [s]');
-		end % }}}
-		function marshall(self,md,fid) % {{{
-			WriteData(fid,'enum',MaterialsEnum(),'data',MatseaiceEnum(),'format','Integer');
-			WriteData(fid,'object',self,'class','materials','fieldname','rho_ice','format','Double');
-			WriteData(fid,'object',self,'class','materials','fieldname','poisson','format','Double');
-			WriteData(fid,'object',self,'class','materials','fieldname','young_modulus','format','Double');
-			WriteData(fid,'object',self,'class','materials','fieldname','ridging_exponent','format','Double');
-			WriteData(fid,'object',self,'class','materials','fieldname','cohesion','format','Double');
-			WriteData(fid,'object',self,'class','materials','fieldname','internal_friction_coef','format','Double');
-			WriteData(fid,'object',self,'class','materials','fieldname','compression_coef','format','Double');
-			WriteData(fid,'object',self,'class','materials','fieldname','traction_coef','format','Double');
-			WriteData(fid,'object',self,'class','materials','fieldname','time_relaxation_stress','format','Double');
-			WriteData(fid,'object',self,'class','materials','fieldname','time_relaxation_damage','format','Double');
-		end % }}}
-	end
-end
Index: /issm/trunk-jpl/src/m/classes/model.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/model.m	(revision 19086)
+++ /issm/trunk-jpl/src/m/classes/model.m	(revision 19087)
@@ -40,6 +40,4 @@
 		gia              = 0;
 
-		seaice           = 0;
-
 		autodiff         = 0;
 		flaim            = 0;
@@ -127,8 +125,4 @@
 				end
 			end
-			%2014 September 11
-			if isa(md.seaice,'double');
-				md.seaice=seaice();
-			end
 			%2014 November 12
 			if isa(md.calving,'double');
@@ -144,21 +138,5 @@
 					md=setdefaultparameters(md);
 				case 1
-					if strcmpi(varargin{1},'seaice'),
-						md=setdefaultparameters(md);
-
-						%Specific subject for sea ice model
-						md.materials       = matseaice();
-						md.surfaceforcings = seaiceatm();
-						md.basalforcings   = seaiceocean();
-						md.initialization  = seaiceinitialization();
-
-						%Change some of the defauls
-						md.timestepping.in_years   = false;
-						md.timestepping.time_step  = 600;
-						md.timestepping.final_time = 600;
-						md.constants.g             = 9.80616; %Same as TOPAZ
-					else
-						error('model constructor not supported yet');
-					end
+					error('model constructor not supported yet');
 
 				otherwise
@@ -1092,5 +1070,4 @@
 			md.calving          = calving();
 			md.gia              = gia();
-			md.seaice           = seaice();
 			md.autodiff         = autodiff();
 			md.flaim            = flaim();
@@ -1271,5 +1248,4 @@
 			disp(sprintf('%19s: %-22s -- %s','radaroverlay'    ,['[1x1 ' class(self.radaroverlay) ']'],'radar image for plot overlay'));
 			disp(sprintf('%19s: %-22s -- %s','miscellaneous'   ,['[1x1 ' class(self.miscellaneous) ']'],'miscellaneous fields'));
-			disp(sprintf('%19s: %-22s -- %s','seaice'       ,['[1x1 ' class(self.seaice) ']'],'parameters for Sea Ice solution'));
 		end % }}}
 		function memory(self) % {{{
Index: sm/trunk-jpl/src/m/classes/seaice.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/seaice.m	(revision 19086)
+++ 	(revision )
@@ -1,64 +1,0 @@
-%SEAICE class definition
-%
-%   Usage:
-%      seaice=seaice();
-
-classdef seaice
-	properties (SetAccess=public) 
-		min_concentration = 0.;
-		min_thickness     = 0.;
-		max_thickness     = 0.;
-		spcvx             = NaN;
-		spcvy             = NaN;
-		coriolis_factor   = NaN;
-	end
-	methods
-		function self = seaice(varargin) % {{{
-			switch nargin
-				case 0
-					self=setdefaultparameters(self);
-					return;
-				otherwise
-					error('constructor not supported');
-			end
-		end % }}}
-		function md = checkconsistency(self,md,solution,analyses) % {{{
-			if solution~=SeaiceSolutionEnum(), return; end
-			md = checkfield(md,'fieldname','seaice.min_concentration','NaN',1,'>=',0,'numel',1);
-			md = checkfield(md,'fieldname','seaice.min_thickness','NaN',1,'>=',0,'numel',1);
-			md = checkfield(md,'fieldname','seaice.max_thickness','NaN',1,'>',0,'numel',1);
-			md = checkfield(md,'fieldname','seaice.spcvx','size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'fieldname','seaice.spcvy','size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'fieldname','seaice.coriolis_factor','size',[md.mesh.numberofelements 1],'NaN',1,'>=',0);
-		end % }}}
-		function self = setdefaultparameters(self) % {{{
-
-			%Minimum ice concentration allowed in the simulation
-			self.min_concentration=0.;
-
-			%Minimum ice thickness allowed in the simulation
-			self.min_thickness=0.;
-
-			%Maxmimum ice thickness allowed in the simulation
-			self.max_thickness=25.;
-
-		end % }}}
-		function disp(self) % {{{
-			disp(sprintf('   seaice parameters:'));
-			fielddisplay(self,'min_concentration','minimum ice concentration allowed in the simulation [no unit]');
-			fielddisplay(self,'min_thickness','minimum ice thickness allowed in the simulation [m]');
-			fielddisplay(self,'max_thickness','maximum ice thickness allowed in the simulation [m]');
-			fielddisplay(self,'spcvx','x-axis velocity constraint (NaN means no constraint) [m/s]');
-			fielddisplay(self,'spcvy','y-axis velocity constraint (NaN means no constraint) [m/s]');
-			fielddisplay(self,'coriolis_factor','factor applied to Coriolis forces (latitude dependent)');
-		end % }}}
-		function marshall(self,md,fid) % {{{
-			WriteData(fid,'object',self,'fieldname','min_concentration','format','Double');
-			WriteData(fid,'object',self,'fieldname','min_thickness','format','Double');
-			WriteData(fid,'object',self,'fieldname','max_thickness','format','Double');
-			WriteData(fid,'object',self,'fieldname','spcvx','format','DoubleMat','mattype',1);
-			WriteData(fid,'object',self,'fieldname','spcvy','format','DoubleMat','mattype',1);
-			WriteData(fid,'object',self,'fieldname','coriolis_factor','format','DoubleMat','mattype',2);
-		end % }}}
-	end
-end
Index: sm/trunk-jpl/src/m/classes/seaiceatm.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/seaiceatm.m	(revision 19086)
+++ 	(revision )
@@ -1,65 +1,0 @@
-%SEAICEATM Class definition
-%
-%   Usage:
-%      seaiceatm=seaiceatm();
-
-classdef seaiceatm
-	properties (SetAccess=public) 
-		rho_air            = 0.;
-		air_coef           = 0.;
-		air_lin_drag_coef  = 0.;
-		air_quad_drag_coef = 0.;
-		wind_vx            = NaN;
-		wind_vy            = NaN;
-	end
-	methods
-		function self = seaiceatm(varargin) % {{{
-			switch nargin
-				case 0
-					self=setdefaultparameters(self);
-				otherwise
-					error('constructor not supported');
-			end
-		end % }}}
-		function self = setdefaultparameters(self) % {{{
-
-			%air density (kg/m^3)
-			self.rho_air=1.3;
-
-			%By default, we apply the full stress
-			self.air_coef = 1.;
-
-			%drag coefficients (different from Hibler 0.0012)
-			self.air_lin_drag_coef  = 0.;
-			self.air_quad_drag_coef = 0.003;
-
-		end % }}}
-		function md = checkconsistency(self,md,solution,analyses) % {{{
-			md = checkfield(md,'fieldname','surfaceforcings.rho_air','NaN',1,'>',0.,'numel',1);
-			md = checkfield(md,'fieldname','surfaceforcings.air_coef','NaN',1,'>=',0.,'<=',1,'numel',1);
-			md = checkfield(md,'fieldname','surfaceforcings.air_lin_drag_coef','NaN',1,'>=',0.,'numel',1);
-			md = checkfield(md,'fieldname','surfaceforcings.air_quad_drag_coef','NaN',1,'>=',0.,'numel',1);
-			md = checkfield(md,'fieldname','surfaceforcings.wind_vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'fieldname','surfaceforcings.wind_vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
-		end % }}}
-		function disp(self) % {{{
-			disp(sprintf('   Atmospheric forcings for sea ice:'));
-			disp(sprintf('\n     tau_a = air_coef*rho_air*(air_lin_drag_coef+air_quad_drag_coef*|v_wind|)*v_wind\n'));
-			fielddisplay(self,'rho_air','air density [kg/m^3]');
-			fielddisplay(self,'air_coef','atmospheric stress spin up coefficient (between 0 and 1)');
-			fielddisplay(self,'air_lin_drag_coef','air linear drag coefficient (no unit)');
-			fielddisplay(self,'air_quad_drag_coef','air quadratic drag coefficient [s/m]');
-			fielddisplay(self,'wind_vx','wind speed x-component at 10 m elevation [m/s]');
-			fielddisplay(self,'wind_vy','wind speed y-component at 10 m elevation [m/s]');
-		end % }}}
-		function marshall(self,md,fid) % {{{
-			WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SeaiceatmEnum(),'format','Integer');
-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rho_air','format','Double');
-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','air_coef','format','Double');
-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','air_lin_drag_coef','format','Double');
-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','air_quad_drag_coef','format','Double');
-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','wind_vx','format','DoubleMat','mattype',1);
-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','wind_vy','format','DoubleMat','mattype',1);
-		end % }}}
-	end
-end
Index: sm/trunk-jpl/src/m/classes/seaiceinitialization.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/seaiceinitialization.m	(revision 19086)
+++ 	(revision )
@@ -1,74 +1,0 @@
-%SEAICEINITIALIZATION class definition
-%
-%   Usage:
-%      seaiceinitialization=seaiceinitialization();
-
-classdef seaiceinitialization
-	properties (SetAccess=public) 
-		thickness          = NaN;
-		concentration      = NaN;
-		vx                 = NaN;
-		vy                 = NaN;
-		vx_coriolis        = NaN;
-		vy_coriolis        = NaN;
-		sigma_predictor_xx = NaN;
-		sigma_predictor_yy = NaN;
-		sigma_predictor_xy = NaN;
-		damage             = NaN;
-		mesh_x             = NaN;
-		mesh_y             = NaN;
-	end
-	methods
-		function self = seaiceinitialization(varargin) % {{{
-			switch nargin
-				case 0
-					return;
-				otherwise
-					error('constructor not supported');
-			end
-		end % }}}
-		function md = checkconsistency(self,md,solution,analyses) % {{{
-			md = checkfield(md,'fieldname','initialization.thickness','size',[md.mesh.numberofelements 1],'NaN',1,'>=',0);
-			md = checkfield(md,'fieldname','initialization.concentration','size',[md.mesh.numberofelements 1],'NaN',1,'>=',0);
-			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'fieldname','initialization.vx_coriolis','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'fieldname','initialization.vy_coriolis','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'fieldname','initialization.sigma_predictor_xx','NaN',1,'>=',0,'<',1,'size',[md.mesh.numberofelements 1]);
-			md = checkfield(md,'fieldname','initialization.sigma_predictor_yy','NaN',1,'>=',0,'<',1,'size',[md.mesh.numberofelements 1]);
-			md = checkfield(md,'fieldname','initialization.sigma_predictor_xy','NaN',1,'>=',0,'<',1,'size',[md.mesh.numberofelements 1]);
-			md = checkfield(md,'fieldname','initialization.damage','NaN',1,'>=',0,'<',1,'size',[md.mesh.numberofelements 1]);
-			md = checkfield(md,'fieldname','initialization.mesh_x','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'fieldname','initialization.mesh_y','NaN',1,'size',[md.mesh.numberofvertices 1]);
-		end % }}}
-		function disp(self) % {{{
-			disp(sprintf('   initial field values:'));
-			fielddisplay(self,'thickness','sea ice thickness [m]');
-			fielddisplay(self,'concentration','sea ice concentration (between 0 and 1)');
-			fielddisplay(self,'vx','x component of the ice velocity [m/s]');
-			fielddisplay(self,'vy','y component of the ice velocity [m/s]');
-			fielddisplay(self,'vx_coriolis','x component of the ice velocity used to calculate coriolis forces [m/s]');
-			fielddisplay(self,'vy_coriolis','y component of the ice velocity used to calculate coriolis forces [m/s]');
-			fielddisplay(self,'sigma_predictor_xx','Predictor for the xx component of the Cauchy stress tensor [Pa]');
-			fielddisplay(self,'sigma_predictor_yy','Predictor for the yy component of the Cauchy stress tensor [Pa]');
-			fielddisplay(self,'sigma_predictor_xy','Predictor for the xy component of the Cauchy stress tensor [Pa]');
-			fielddisplay(self,'damage','damage, between 0 (no damage) and 1 (fully damaged)');
-			fielddisplay(self,'mesh_x','x position of each vertex of the mesh using a Lagrangian approach');
-			fielddisplay(self,'mesh_y','y position of each vertex of the mesh using a Lagrangian approach');
-		end % }}}
-		function marshall(self,md,fid) % {{{
-			WriteData(fid,'data',self.thickness,'format','DoubleMat','mattype',2,'enum',SeaiceThicknessEnum());
-			WriteData(fid,'data',self.concentration,'format','DoubleMat','mattype',2,'enum',SeaiceConcentrationEnum());
-			WriteData(fid,'data',self.vx,'format','DoubleMat','mattype',1,'enum',VxEnum);
-			WriteData(fid,'data',self.vy,'format','DoubleMat','mattype',1,'enum',VyEnum);
-			WriteData(fid,'data',self.vx_coriolis,'format','DoubleMat','mattype',1,'enum',VxStarEnum());
-			WriteData(fid,'data',self.vy_coriolis,'format','DoubleMat','mattype',1,'enum',VyStarEnum());
-			WriteData(fid,'data',self.sigma_predictor_xx,'format','DoubleMat','mattype',2,'enum',StressTensorPredictorxxEnum());
-			WriteData(fid,'data',self.sigma_predictor_yy,'format','DoubleMat','mattype',2,'enum',StressTensorPredictoryyEnum());
-			WriteData(fid,'data',self.sigma_predictor_xy,'format','DoubleMat','mattype',2,'enum',StressTensorPredictorxyEnum());
-			WriteData(fid,'data',self.damage,'format','DoubleMat','mattype',2,'enum',DamageEnum());
-			WriteData(fid,'data',self.mesh_x,'format','DoubleMat','mattype',1,'enum',MeshXEnum());
-			WriteData(fid,'data',self.mesh_y,'format','DoubleMat','mattype',1,'enum',MeshYEnum());
-		end % }}}
-	end
-end
Index: sm/trunk-jpl/src/m/classes/seaiceocean.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/seaiceocean.m	(revision 19086)
+++ 	(revision )
@@ -1,76 +1,0 @@
-%SEAICEOCEAN Class definition
-%
-%   Usage:
-%      seaiceocean=seaiceocean();
-
-classdef seaiceocean
-	properties (SetAccess=public) 
-		rho_ocean            = 0.;
-		ocean_coef           = 0.;
-		ocean_lin_drag_coef  = 0.;
-		ocean_quad_drag_coef = 0.;
-		ocean_turning_angle  = 0.;
-		ocean_ssh            = NaN;
-		ocean_vx             = NaN;
-		ocean_vy             = NaN;
-	end
-	methods
-		function self = seaiceocean(varargin) % {{{
-			switch nargin
-				case 0
-					self=setdefaultparameters(self);
-				otherwise
-					error('constructor not supported');
-			end
-		end % }}}
-		function self = setdefaultparameters(self) % {{{
-
-			%ocean density (kg/m^3)
-			self.rho_ocean=1025.;
-
-			%By default, we apply the full stress
-			self.ocean_coef = 1.;
-
-			%drag coefficients (different from Hibler 0.0055)
-			self.ocean_lin_drag_coef  = 0.;
-			self.ocean_quad_drag_coef = 0.004;
-
-			%Turning angle in degrees (McPhee 1998)
-			self.ocean_turning_angle = deg2rad(25.);
-
-		end % }}}
-		function md = checkconsistency(self,md,solution,analyses) % {{{
-			md = checkfield(md,'fieldname','basalforcings.rho_ocean','NaN',1,'>',0.,'numel',1);
-			md = checkfield(md,'fieldname','basalforcings.ocean_coef','NaN',1,'>=',0.,'<=',1.,'numel',1);
-			md = checkfield(md,'fieldname','basalforcings.ocean_lin_drag_coef','NaN',1,'>=',0.,'numel',1);
-			md = checkfield(md,'fieldname','basalforcings.ocean_quad_drag_coef','NaN',1,'>=',0.,'numel',1);
-			md = checkfield(md,'fieldname','basalforcings.ocean_turning_angle','NaN',1,'>=',0.,'<',90,'numel',1);
-			md = checkfield(md,'fieldname','basalforcings.ocean_ssh','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'fieldname','basalforcings.ocean_vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'fieldname','basalforcings.ocean_vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
-		end % }}}
-		function disp(self) % {{{
-			disp(sprintf('   Ocean forcings for sea ice:'));
-			%disp(sprintf('\n     tau_b = ocean_coef*rho_ocean*...'));
-			fielddisplay(self,'rho_ocean','ocean density [kg/m^3]');
-			fielddisplay(self,'ocean_coef','ocean stress spin up coefficient (between 0 and 1)');
-			fielddisplay(self,'ocean_lin_drag_coef','ocean linear drag coefficient [Pa/(m/s)]');
-			fielddisplay(self,'ocean_quad_drag_coef','ocean quadratic drag coefficient [Pa/(m/s)^2]');
-			fielddisplay(self,'ocean_turning_angle','ocean turning angle [rad]');
-			fielddisplay(self,'ocean_ssh','ocean sea surface height [m]');
-			fielddisplay(self,'ocean_vx','ocean speed x-component [m/s]');
-			fielddisplay(self,'ocean_vy','ocean speed y-component [m/s]');
-		end % }}}
-		function marshall(self,md,fid) % {{{
-			WriteData(fid,'enum',BasalforcingsEnum(),'data',SeaiceoceanEnum(),'format','Integer');
-			WriteData(fid,'object',self,'class','basalforcings','fieldname','rho_ocean','format','Double');
-			WriteData(fid,'object',self,'class','basalforcings','fieldname','ocean_coef','format','Double');
-			WriteData(fid,'object',self,'class','basalforcings','fieldname','ocean_lin_drag_coef','format','Double');
-			WriteData(fid,'object',self,'class','basalforcings','fieldname','ocean_quad_drag_coef','format','Double');
-			WriteData(fid,'object',self,'class','basalforcings','fieldname','ocean_turning_angle','format','Double');
-			WriteData(fid,'object',self,'class','basalforcings','fieldname','ocean_ssh','format','DoubleMat','mattype',1);
-			WriteData(fid,'object',self,'class','basalforcings','fieldname','ocean_vx','format','DoubleMat','mattype',1);
-			WriteData(fid,'object',self,'class','basalforcings','fieldname','ocean_vy','format','DoubleMat','mattype',1);
-		end % }}}
-	end
-end
Index: sm/trunk-jpl/src/m/enum/BasalforcingsOceanCoefEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/BasalforcingsOceanCoefEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=BasalforcingsOceanCoefEnum()
-%BASALFORCINGSOCEANCOEFENUM - Enum of BasalforcingsOceanCoef
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=BasalforcingsOceanCoefEnum()
-
-macro=StringToEnum('BasalforcingsOceanCoef');
Index: sm/trunk-jpl/src/m/enum/BasalforcingsOceanLinDragCoefEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/BasalforcingsOceanLinDragCoefEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=BasalforcingsOceanLinDragCoefEnum()
-%BASALFORCINGSOCEANLINDRAGCOEFENUM - Enum of BasalforcingsOceanLinDragCoef
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=BasalforcingsOceanLinDragCoefEnum()
-
-macro=StringToEnum('BasalforcingsOceanLinDragCoef');
Index: sm/trunk-jpl/src/m/enum/BasalforcingsOceanQuadDragCoefEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/BasalforcingsOceanQuadDragCoefEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=BasalforcingsOceanQuadDragCoefEnum()
-%BASALFORCINGSOCEANQUADDRAGCOEFENUM - Enum of BasalforcingsOceanQuadDragCoef
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=BasalforcingsOceanQuadDragCoefEnum()
-
-macro=StringToEnum('BasalforcingsOceanQuadDragCoef');
Index: sm/trunk-jpl/src/m/enum/BasalforcingsOceanSshEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/BasalforcingsOceanSshEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=BasalforcingsOceanSshEnum()
-%BASALFORCINGSOCEANSSHENUM - Enum of BasalforcingsOceanSsh
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=BasalforcingsOceanSshEnum()
-
-macro=StringToEnum('BasalforcingsOceanSsh');
Index: sm/trunk-jpl/src/m/enum/BasalforcingsOceanTurningAngleEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/BasalforcingsOceanTurningAngleEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=BasalforcingsOceanTurningAngleEnum()
-%BASALFORCINGSOCEANTURNINGANGLEENUM - Enum of BasalforcingsOceanTurningAngle
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=BasalforcingsOceanTurningAngleEnum()
-
-macro=StringToEnum('BasalforcingsOceanTurningAngle');
Index: sm/trunk-jpl/src/m/enum/BasalforcingsOceanVxEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/BasalforcingsOceanVxEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=BasalforcingsOceanVxEnum()
-%BASALFORCINGSOCEANVXENUM - Enum of BasalforcingsOceanVx
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=BasalforcingsOceanVxEnum()
-
-macro=StringToEnum('BasalforcingsOceanVx');
Index: sm/trunk-jpl/src/m/enum/BasalforcingsOceanVyEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/BasalforcingsOceanVyEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=BasalforcingsOceanVyEnum()
-%BASALFORCINGSOCEANVYENUM - Enum of BasalforcingsOceanVy
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=BasalforcingsOceanVyEnum()
-
-macro=StringToEnum('BasalforcingsOceanVy');
Index: sm/trunk-jpl/src/m/enum/BasalforcingsRhoOceanEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/BasalforcingsRhoOceanEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=BasalforcingsRhoOceanEnum()
-%BASALFORCINGSRHOOCEANENUM - Enum of BasalforcingsRhoOcean
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=BasalforcingsRhoOceanEnum()
-
-macro=StringToEnum('BasalforcingsRhoOcean');
Index: /issm/trunk-jpl/src/m/enum/EnumDefinitions.py
===================================================================
--- /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19086)
+++ /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19087)
@@ -425,6 +425,4 @@
 def GiaSolutionEnum(): return StringToEnum("GiaSolution")[0]
 def GiaAnalysisEnum(): return StringToEnum("GiaAnalysis")[0]
-def SeaiceSolutionEnum(): return StringToEnum("SeaiceSolution")[0]
-def SeaiceAnalysisEnum(): return StringToEnum("SeaiceAnalysis")[0]
 def MeshdeformationSolutionEnum(): return StringToEnum("MeshdeformationSolution")[0]
 def MeshdeformationAnalysisEnum(): return StringToEnum("MeshdeformationAnalysis")[0]
@@ -870,42 +868,3 @@
 def LevelsetfunctionSlopeYEnum(): return StringToEnum("LevelsetfunctionSlopeY")[0]
 def LevelsetfunctionPicardEnum(): return StringToEnum("LevelsetfunctionPicard")[0]
-def SeaiceatmEnum(): return StringToEnum("Seaiceatm")[0]
-def SeaiceoceanEnum(): return StringToEnum("Seaiceocean")[0]
-def SeaiceThicknessEnum(): return StringToEnum("SeaiceThickness")[0]
-def SeaiceConcentrationEnum(): return StringToEnum("SeaiceConcentration")[0]
-def SeaiceMinConcentrationEnum(): return StringToEnum("SeaiceMinConcentration")[0]
-def SeaiceMinThicknessEnum(): return StringToEnum("SeaiceMinThickness")[0]
-def SeaiceMaxThicknessEnum(): return StringToEnum("SeaiceMaxThickness")[0]
-def SeaiceSpcvxEnum(): return StringToEnum("SeaiceSpcvx")[0]
-def SeaiceSpcvyEnum(): return StringToEnum("SeaiceSpcvy")[0]
-def SeaiceCoriolisFactorEnum(): return StringToEnum("SeaiceCoriolisFactor")[0]
-def BasalforcingsRhoOceanEnum(): return StringToEnum("BasalforcingsRhoOcean")[0]
-def BasalforcingsOceanCoefEnum(): return StringToEnum("BasalforcingsOceanCoef")[0]
-def BasalforcingsOceanLinDragCoefEnum(): return StringToEnum("BasalforcingsOceanLinDragCoef")[0]
-def BasalforcingsOceanQuadDragCoefEnum(): return StringToEnum("BasalforcingsOceanQuadDragCoef")[0]
-def BasalforcingsOceanTurningAngleEnum(): return StringToEnum("BasalforcingsOceanTurningAngle")[0]
-def BasalforcingsOceanSshEnum(): return StringToEnum("BasalforcingsOceanSsh")[0]
-def BasalforcingsOceanVxEnum(): return StringToEnum("BasalforcingsOceanVx")[0]
-def BasalforcingsOceanVyEnum(): return StringToEnum("BasalforcingsOceanVy")[0]
-def SurfaceforcingsRhoAirEnum(): return StringToEnum("SurfaceforcingsRhoAir")[0]
-def SurfaceforcingsAirCoefEnum(): return StringToEnum("SurfaceforcingsAirCoef")[0]
-def SurfaceforcingsAirLinDragCoefEnum(): return StringToEnum("SurfaceforcingsAirLinDragCoef")[0]
-def SurfaceforcingsAirQuadDragCoefEnum(): return StringToEnum("SurfaceforcingsAirQuadDragCoef")[0]
-def SurfaceforcingsWindVxEnum(): return StringToEnum("SurfaceforcingsWindVx")[0]
-def SurfaceforcingsWindVyEnum(): return StringToEnum("SurfaceforcingsWindVy")[0]
-def MatseaiceEnum(): return StringToEnum("Matseaice")[0]
-def MaterialsPoissonEnum(): return StringToEnum("MaterialsPoisson")[0]
-def MaterialsYoungModulusEnum(): return StringToEnum("MaterialsYoungModulus")[0]
-def MaterialsTimeRelaxationStressEnum(): return StringToEnum("MaterialsTimeRelaxationStress")[0]
-def MaterialsTimeRelaxationDamageEnum(): return StringToEnum("MaterialsTimeRelaxationDamage")[0]
-def MaterialsRidgingExponentEnum(): return StringToEnum("MaterialsRidgingExponent")[0]
-def MaterialsCohesionEnum(): return StringToEnum("MaterialsCohesion")[0]
-def MaterialsInternalFrictionCoefEnum(): return StringToEnum("MaterialsInternalFrictionCoef")[0]
-def MaterialsCompressionCoefEnum(): return StringToEnum("MaterialsCompressionCoef")[0]
-def MaterialsTractionCoefEnum(): return StringToEnum("MaterialsTractionCoef")[0]
-def VxStarEnum(): return StringToEnum("VxStar")[0]
-def VyStarEnum(): return StringToEnum("VyStar")[0]
-def StressTensorPredictorxxEnum(): return StringToEnum("StressTensorPredictorxx")[0]
-def StressTensorPredictoryyEnum(): return StringToEnum("StressTensorPredictoryy")[0]
-def StressTensorPredictorxyEnum(): return StringToEnum("StressTensorPredictorxy")[0]
 def MaximumNumberOfDefinitionsEnum(): return StringToEnum("MaximumNumberOfDefinitions")[0]
Index: sm/trunk-jpl/src/m/enum/MaterialsCohesionEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaterialsCohesionEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=MaterialsCohesionEnum()
-%MATERIALSCOHESIONENUM - Enum of MaterialsCohesion
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=MaterialsCohesionEnum()
-
-macro=StringToEnum('MaterialsCohesion');
Index: sm/trunk-jpl/src/m/enum/MaterialsCompressionCoefEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaterialsCompressionCoefEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=MaterialsCompressionCoefEnum()
-%MATERIALSCOMPRESSIONCOEFENUM - Enum of MaterialsCompressionCoef
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=MaterialsCompressionCoefEnum()
-
-macro=StringToEnum('MaterialsCompressionCoef');
Index: sm/trunk-jpl/src/m/enum/MaterialsInternalFrictionCoefEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaterialsInternalFrictionCoefEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=MaterialsInternalFrictionCoefEnum()
-%MATERIALSINTERNALFRICTIONCOEFENUM - Enum of MaterialsInternalFrictionCoef
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=MaterialsInternalFrictionCoefEnum()
-
-macro=StringToEnum('MaterialsInternalFrictionCoef');
Index: sm/trunk-jpl/src/m/enum/MaterialsPoissonEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaterialsPoissonEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=MaterialsPoissonEnum()
-%MATERIALSPOISSONENUM - Enum of MaterialsPoisson
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=MaterialsPoissonEnum()
-
-macro=StringToEnum('MaterialsPoisson');
Index: sm/trunk-jpl/src/m/enum/MaterialsRidgingExponentEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaterialsRidgingExponentEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=MaterialsRidgingExponentEnum()
-%MATERIALSRIDGINGEXPONENTENUM - Enum of MaterialsRidgingExponent
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=MaterialsRidgingExponentEnum()
-
-macro=StringToEnum('MaterialsRidgingExponent');
Index: sm/trunk-jpl/src/m/enum/MaterialsTimeRelaxationDamageEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaterialsTimeRelaxationDamageEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=MaterialsTimeRelaxationDamageEnum()
-%MATERIALSTIMERELAXATIONDAMAGEENUM - Enum of MaterialsTimeRelaxationDamage
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=MaterialsTimeRelaxationDamageEnum()
-
-macro=StringToEnum('MaterialsTimeRelaxationDamage');
Index: sm/trunk-jpl/src/m/enum/MaterialsTimeRelaxationStressEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaterialsTimeRelaxationStressEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=MaterialsTimeRelaxationStressEnum()
-%MATERIALSTIMERELAXATIONSTRESSENUM - Enum of MaterialsTimeRelaxationStress
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=MaterialsTimeRelaxationStressEnum()
-
-macro=StringToEnum('MaterialsTimeRelaxationStress');
Index: sm/trunk-jpl/src/m/enum/MaterialsTractionCoefEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaterialsTractionCoefEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=MaterialsTractionCoefEnum()
-%MATERIALSTRACTIONCOEFENUM - Enum of MaterialsTractionCoef
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=MaterialsTractionCoefEnum()
-
-macro=StringToEnum('MaterialsTractionCoef');
Index: sm/trunk-jpl/src/m/enum/MaterialsYoungModulusEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaterialsYoungModulusEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=MaterialsYoungModulusEnum()
-%MATERIALSYOUNGMODULUSENUM - Enum of MaterialsYoungModulus
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=MaterialsYoungModulusEnum()
-
-macro=StringToEnum('MaterialsYoungModulus');
Index: sm/trunk-jpl/src/m/enum/MatseaiceEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MatseaiceEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=MatseaiceEnum()
-%MATSEAICEENUM - Enum of Matseaice
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=MatseaiceEnum()
-
-macro=StringToEnum('Matseaice');
Index: sm/trunk-jpl/src/m/enum/SeaiceAnalysisEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SeaiceAnalysisEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SeaiceAnalysisEnum()
-%SEAICEANALYSISENUM - Enum of SeaiceAnalysis
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SeaiceAnalysisEnum()
-
-macro=StringToEnum('SeaiceAnalysis');
Index: sm/trunk-jpl/src/m/enum/SeaiceConcentrationEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SeaiceConcentrationEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SeaiceConcentrationEnum()
-%SEAICECONCENTRATIONENUM - Enum of SeaiceConcentration
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SeaiceConcentrationEnum()
-
-macro=StringToEnum('SeaiceConcentration');
Index: sm/trunk-jpl/src/m/enum/SeaiceCoriolisFactorEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SeaiceCoriolisFactorEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SeaiceCoriolisFactorEnum()
-%SEAICECORIOLISFACTORENUM - Enum of SeaiceCoriolisFactor
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SeaiceCoriolisFactorEnum()
-
-macro=StringToEnum('SeaiceCoriolisFactor');
Index: sm/trunk-jpl/src/m/enum/SeaiceMaxThicknessEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SeaiceMaxThicknessEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SeaiceMaxThicknessEnum()
-%SEAICEMAXTHICKNESSENUM - Enum of SeaiceMaxThickness
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SeaiceMaxThicknessEnum()
-
-macro=StringToEnum('SeaiceMaxThickness');
Index: sm/trunk-jpl/src/m/enum/SeaiceMinConcentrationEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SeaiceMinConcentrationEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SeaiceMinConcentrationEnum()
-%SEAICEMINCONCENTRATIONENUM - Enum of SeaiceMinConcentration
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SeaiceMinConcentrationEnum()
-
-macro=StringToEnum('SeaiceMinConcentration');
Index: sm/trunk-jpl/src/m/enum/SeaiceMinThicknessEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SeaiceMinThicknessEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SeaiceMinThicknessEnum()
-%SEAICEMINTHICKNESSENUM - Enum of SeaiceMinThickness
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SeaiceMinThicknessEnum()
-
-macro=StringToEnum('SeaiceMinThickness');
Index: sm/trunk-jpl/src/m/enum/SeaiceSolutionEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SeaiceSolutionEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SeaiceSolutionEnum()
-%SEAICESOLUTIONENUM - Enum of SeaiceSolution
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SeaiceSolutionEnum()
-
-macro=StringToEnum('SeaiceSolution');
Index: sm/trunk-jpl/src/m/enum/SeaiceSpcvxEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SeaiceSpcvxEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SeaiceSpcvxEnum()
-%SEAICESPCVXENUM - Enum of SeaiceSpcvx
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SeaiceSpcvxEnum()
-
-macro=StringToEnum('SeaiceSpcvx');
Index: sm/trunk-jpl/src/m/enum/SeaiceSpcvyEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SeaiceSpcvyEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SeaiceSpcvyEnum()
-%SEAICESPCVYENUM - Enum of SeaiceSpcvy
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SeaiceSpcvyEnum()
-
-macro=StringToEnum('SeaiceSpcvy');
Index: sm/trunk-jpl/src/m/enum/SeaiceThicknessEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SeaiceThicknessEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SeaiceThicknessEnum()
-%SEAICETHICKNESSENUM - Enum of SeaiceThickness
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SeaiceThicknessEnum()
-
-macro=StringToEnum('SeaiceThickness');
Index: sm/trunk-jpl/src/m/enum/SeaiceatmEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SeaiceatmEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SeaiceatmEnum()
-%SEAICEATMENUM - Enum of Seaiceatm
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SeaiceatmEnum()
-
-macro=StringToEnum('Seaiceatm');
Index: sm/trunk-jpl/src/m/enum/SeaiceoceanEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SeaiceoceanEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SeaiceoceanEnum()
-%SEAICEOCEANENUM - Enum of Seaiceocean
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SeaiceoceanEnum()
-
-macro=StringToEnum('Seaiceocean');
Index: sm/trunk-jpl/src/m/enum/StressTensorPredictorxxEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/StressTensorPredictorxxEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=StressTensorPredictorxxEnum()
-%STRESSTENSORPREDICTORXXENUM - Enum of StressTensorPredictorxx
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=StressTensorPredictorxxEnum()
-
-macro=StringToEnum('StressTensorPredictorxx');
Index: sm/trunk-jpl/src/m/enum/StressTensorPredictorxyEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/StressTensorPredictorxyEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=StressTensorPredictorxyEnum()
-%STRESSTENSORPREDICTORXYENUM - Enum of StressTensorPredictorxy
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=StressTensorPredictorxyEnum()
-
-macro=StringToEnum('StressTensorPredictorxy');
Index: sm/trunk-jpl/src/m/enum/StressTensorPredictoryyEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/StressTensorPredictoryyEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=StressTensorPredictoryyEnum()
-%STRESSTENSORPREDICTORYYENUM - Enum of StressTensorPredictoryy
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=StressTensorPredictoryyEnum()
-
-macro=StringToEnum('StressTensorPredictoryy');
Index: sm/trunk-jpl/src/m/enum/SurfaceforcingsAirCoefEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SurfaceforcingsAirCoefEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SurfaceforcingsAirCoefEnum()
-%SURFACEFORCINGSAIRCOEFENUM - Enum of SurfaceforcingsAirCoef
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SurfaceforcingsAirCoefEnum()
-
-macro=StringToEnum('SurfaceforcingsAirCoef');
Index: sm/trunk-jpl/src/m/enum/SurfaceforcingsAirLinDragCoefEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SurfaceforcingsAirLinDragCoefEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SurfaceforcingsAirLinDragCoefEnum()
-%SURFACEFORCINGSAIRLINDRAGCOEFENUM - Enum of SurfaceforcingsAirLinDragCoef
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SurfaceforcingsAirLinDragCoefEnum()
-
-macro=StringToEnum('SurfaceforcingsAirLinDragCoef');
Index: sm/trunk-jpl/src/m/enum/SurfaceforcingsAirQuadDragCoefEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SurfaceforcingsAirQuadDragCoefEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SurfaceforcingsAirQuadDragCoefEnum()
-%SURFACEFORCINGSAIRQUADDRAGCOEFENUM - Enum of SurfaceforcingsAirQuadDragCoef
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SurfaceforcingsAirQuadDragCoefEnum()
-
-macro=StringToEnum('SurfaceforcingsAirQuadDragCoef');
Index: sm/trunk-jpl/src/m/enum/SurfaceforcingsRhoAirEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SurfaceforcingsRhoAirEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SurfaceforcingsRhoAirEnum()
-%SURFACEFORCINGSRHOAIRENUM - Enum of SurfaceforcingsRhoAir
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SurfaceforcingsRhoAirEnum()
-
-macro=StringToEnum('SurfaceforcingsRhoAir');
Index: sm/trunk-jpl/src/m/enum/SurfaceforcingsWindVxEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SurfaceforcingsWindVxEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SurfaceforcingsWindVxEnum()
-%SURFACEFORCINGSWINDVXENUM - Enum of SurfaceforcingsWindVx
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SurfaceforcingsWindVxEnum()
-
-macro=StringToEnum('SurfaceforcingsWindVx');
Index: sm/trunk-jpl/src/m/enum/SurfaceforcingsWindVyEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/SurfaceforcingsWindVyEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=SurfaceforcingsWindVyEnum()
-%SURFACEFORCINGSWINDVYENUM - Enum of SurfaceforcingsWindVy
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=SurfaceforcingsWindVyEnum()
-
-macro=StringToEnum('SurfaceforcingsWindVy');
Index: sm/trunk-jpl/src/m/enum/VxStarEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/VxStarEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=VxStarEnum()
-%VXSTARENUM - Enum of VxStar
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=VxStarEnum()
-
-macro=StringToEnum('VxStar');
Index: sm/trunk-jpl/src/m/enum/VyStarEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/VyStarEnum.m	(revision 19086)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=VyStarEnum()
-%VYSTARENUM - Enum of VyStar
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=VyStarEnum()
-
-macro=StringToEnum('VyStar');
