Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp (revision 16777) +++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp (revision 16778) @@ -1324,7 +1324,7 @@ xDelete(values); xDelete(xyz_list); xDelete(doflist); - if(meshtype!=Mesh2DhorizontalEnum) delete basalelement; + if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;}; }/*}}}*/ void StressbalanceAnalysis::InputUpdateFromSolutionSSA(IssmDouble* solution,Element* element){/*{{{*/ @@ -1423,7 +1423,7 @@ xDelete(values); xDelete(xyz_list); xDelete(doflist); - if(meshtype!=Mesh2DhorizontalEnum) delete basalelement; + if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;}; }/*}}}*/ void StressbalanceAnalysis::InputUpdateFromSolutionSSAFS(IssmDouble* solution,Element* element){/*{{{*/ Index: ../trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp (revision 16777) +++ ../trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp (revision 16778) @@ -195,5 +195,5 @@ xDelete(values); xDelete(residual); xDelete(doflist); - if(meshtype!=Mesh2DhorizontalEnum) delete basalelement; + if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;}; }/*}}}*/ Index: ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp (revision 16777) +++ ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp (revision 16778) @@ -296,5 +296,5 @@ xDelete(oldsurface); xDelete(phi); xDelete(doflist); - if(meshtype!=Mesh2DhorizontalEnum) delete basalelement; + if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;}; }/*}}}*/ Index: ../trunk-jpl/src/c/classes/Elements/Element.h =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Element.h (revision 16777) +++ ../trunk-jpl/src/c/classes/Elements/Element.h (revision 16778) @@ -45,6 +45,7 @@ virtual void CreateDVector(Vector* df)=0; virtual void CreatePVector(Vector* pf)=0; virtual void CreateJacobianMatrix(Matrix* Jff)=0; + virtual void DeleteMaterials(void)=0; virtual void EnthalpyToThermal(IssmDouble* ptemperature,IssmDouble* pwaterfraction,IssmDouble enthalpy,IssmDouble pressure)=0; virtual void FindParam(int* pvalue,int paramenum)=0; virtual void FindParam(IssmDouble* pvalue,int paramenum)=0; Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Tria.cpp (revision 16777) +++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp (revision 16778) @@ -805,6 +805,11 @@ return; } /*}}}*/ +/*FUNCTION Tria::DeleteMaterials{{{*/ +void Tria::DeleteMaterials(void){ + delete this->material; +} +/*}}}*/ /*FUNCTION Tria::Delta18oParameterization{{{*/ void Tria::Delta18oParameterization(void){ Index: ../trunk-jpl/src/c/classes/Elements/Tria.h =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Tria.h (revision 16777) +++ ../trunk-jpl/src/c/classes/Elements/Tria.h (revision 16778) @@ -77,6 +77,7 @@ void CreateDVector(Vector* df); void CreatePVector(Vector* pf); void CreateJacobianMatrix(Matrix* Jff); + void DeleteMaterials(void); void Delta18oParameterization(void); void EnthalpyToThermal(IssmDouble* ptemperature,IssmDouble* pwaterfraction,IssmDouble enthalpy,IssmDouble pressure){_error_("not implemented yet");}; void FindParam(int* pvalue,int paramenum); Index: ../trunk-jpl/src/c/classes/Elements/Penta.h =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Penta.h (revision 16777) +++ ../trunk-jpl/src/c/classes/Elements/Penta.h (revision 16778) @@ -73,6 +73,7 @@ void ComputeStrainRate(Vector* eps); void ComputeStressTensor(); void Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters); + void DeleteMaterials(void){_error_("not implemented yet");}; void FindParam(int* pvalue,int paramenum); void FindParam(IssmDouble* pvalue,int paramenum); int FiniteElement(void); Index: ../trunk-jpl/src/c/classes/Elements/Seg.h =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Seg.h (revision 16777) +++ ../trunk-jpl/src/c/classes/Elements/Seg.h (revision 16778) @@ -74,6 +74,7 @@ void ComputeStrainRate(Vector* eps){_error_("not implemented yet");}; void ComputeStressTensor(){_error_("not implemented yet");}; void Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters){_error_("not implemented yet");}; + void DeleteMaterials(void){_error_("not implemented yet");}; void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters){_error_("not implemented yet");}; void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){_error_("not implemented yet");}; void CreateKMatrix(Matrix* Kff, Matrix* Kfs){_error_("not implemented yet");};