Index: ../trunk-jpl/src/c/bamg/Mesh.cpp =================================================================== --- ../trunk-jpl/src/c/bamg/Mesh.cpp (revision 16199) +++ ../trunk-jpl/src/c/bamg/Mesh.cpp (revision 16200) @@ -1052,7 +1052,6 @@ /*Original code from Frederic Hecht (BAMG v1.01, Metric.cpp/IntersectGeomMetric)*/ /*Get options*/ - int verbose = bamgopts->verbose; double anisomax = bamgopts->anisomax; double errg = bamgopts->errg; @@ -3311,7 +3310,6 @@ delete [] first_np_or_next_t; long NbSwapf =0; - for(i=0;idim==2)return; /*Finite element type*/ - finiteelement = P1Enum; + int finiteelement = P1Enum; /*Update elements: */ int counter=0; Index: ../trunk-jpl/src/c/modules/ModelProcessorx/FreeSurfaceBase/CreateLoadsFreeSurfaceBase.cpp =================================================================== --- ../trunk-jpl/src/c/modules/ModelProcessorx/FreeSurfaceBase/CreateLoadsFreeSurfaceBase.cpp (revision 16199) +++ ../trunk-jpl/src/c/modules/ModelProcessorx/FreeSurfaceBase/CreateLoadsFreeSurfaceBase.cpp (revision 16200) @@ -9,7 +9,6 @@ void CreateLoadsFreeSurfaceBase(Loads** ploads, IoModel* iomodel){ /*Intermediaries*/ - int element; int penpair_ids[2]; int count=0; int numvertex_pairing; Index: ../trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/CreateParametersHydrologyShreve.cpp =================================================================== --- ../trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/CreateParametersHydrologyShreve.cpp (revision 16199) +++ ../trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/CreateParametersHydrologyShreve.cpp (revision 16200) @@ -11,7 +11,6 @@ Parameters *parameters = NULL; int hydrology_model; - bool isefficientlayer; /*Get parameters: */ parameters=*pparameters; Index: ../trunk-jpl/src/c/modules/ModelProcessorx/FreeSurfaceTop/CreateLoadsFreeSurfaceTop.cpp =================================================================== --- ../trunk-jpl/src/c/modules/ModelProcessorx/FreeSurfaceTop/CreateLoadsFreeSurfaceTop.cpp (revision 16199) +++ ../trunk-jpl/src/c/modules/ModelProcessorx/FreeSurfaceTop/CreateLoadsFreeSurfaceTop.cpp (revision 16200) @@ -9,7 +9,6 @@ void CreateLoadsFreeSurfaceTop(Loads** ploads, IoModel* iomodel){ /*Intermediaries*/ - int element; int penpair_ids[2]; int count=0; int numvertex_pairing; Index: ../trunk-jpl/src/c/modules/ModelProcessorx/FreeSurfaceTop/UpdateElementsFreeSurfaceTop.cpp =================================================================== --- ../trunk-jpl/src/c/modules/ModelProcessorx/FreeSurfaceTop/UpdateElementsFreeSurfaceTop.cpp (revision 16199) +++ ../trunk-jpl/src/c/modules/ModelProcessorx/FreeSurfaceTop/UpdateElementsFreeSurfaceTop.cpp (revision 16200) @@ -10,13 +10,10 @@ void UpdateElementsFreeSurfaceTop(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ - int finiteelement; - bool dakota_analysis; - /*Now, is the model 3d? otherwise, do nothing: */ if (iomodel->dim==2)return; - finiteelement = P1Enum; + int finiteelement = P1Enum; /*Update elements: */ int counter=0; Index: ../trunk-jpl/src/c/modules/ModelProcessorx/NodesPartitioning.cpp =================================================================== --- ../trunk-jpl/src/c/modules/ModelProcessorx/NodesPartitioning.cpp (revision 16199) +++ ../trunk-jpl/src/c/modules/ModelProcessorx/NodesPartitioning.cpp (revision 16200) @@ -45,7 +45,6 @@ /*Intermediaries*/ int i,i1,i2; - int cols; int e1,e2; int pos; Index: ../trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/CreateLoadsStressbalance.cpp =================================================================== --- ../trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/CreateLoadsStressbalance.cpp (revision 16199) +++ ../trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/CreateLoadsStressbalance.cpp (revision 16200) @@ -9,8 +9,6 @@ void CreateLoadsStressbalance(Loads** ploads, IoModel* iomodel){ /*Intermediary*/ - int segment_width; - int element; int i; int count; int penpair_ids[2]; Index: ../trunk-jpl/src/c/modules/ConstraintsStatex/ConstraintsStatex.cpp =================================================================== --- ../trunk-jpl/src/c/modules/ConstraintsStatex/ConstraintsStatex.cpp (revision 16199) +++ ../trunk-jpl/src/c/modules/ConstraintsStatex/ConstraintsStatex.cpp (revision 16200) @@ -10,9 +10,11 @@ void ConstraintsStatex(int* pconverged, int* pnum_unstable_constraints,FemModel* femmodel){ /*output: */ - int converged = 0; - int num_unstable_constraints = 0; - int min_mechanical_constraints = 0; + int converged = 1; + int num_unstable_constraints = 0; + int min_mechanical_constraints = 0; + int unstable = 0; + int sum_num_unstable_constraints = 0; int analysis_type; /*Display message*/ @@ -22,28 +24,32 @@ femmodel->parameters->FindParam(&min_mechanical_constraints,StressbalanceRiftPenaltyThresholdEnum); femmodel->parameters->FindParam(&analysis_type,AnalysisTypeEnum); - /*Do we have penalties linked to rifts? In this case, run our special rifts penalty - * management routine, otherwise, skip : */ - - /*No constraints management by default!:*/ - num_unstable_constraints=0; - converged=1; - + /*Rift penalties first*/ #ifdef _HAVE_RIFTS_ if(RiftIsPresent(femmodel->loads,analysis_type)){ - RiftConstraintsState(&converged,&num_unstable_constraints,femmodel->loads,min_mechanical_constraints,analysis_type); } #endif - /*FIXME: this function is actually called by Hydrology and damage evolution. Should be renamed*/ - #ifdef _HAVE_THERMAL_ - if(PengridIsPresent(femmodel->loads,analysis_type)){ - ThermalConstraintsState(femmodel->loads,&converged,&num_unstable_constraints,analysis_type); + /*Deal with pengrid*/ + for(int i=0;iloads->Size();i++){ + Load* load=(Load*)femmodel->loads->GetObjectByOffset(i); + if(load->InAnalysis(analysis_type)){ + if(load->ObjectEnum()==PengridEnum){ + Pengrid* pengrid=(Pengrid*)load; + pengrid->ConstraintActivate(&unstable); + num_unstable_constraints += unstable; + } + } } - #endif + ISSM_MPI_Reduce(&num_unstable_constraints,&sum_num_unstable_constraints,1,ISSM_MPI_INT,ISSM_MPI_SUM,0,IssmComm::GetComm() ); + ISSM_MPI_Bcast(&sum_num_unstable_constraints,1,ISSM_MPI_INT,0,IssmComm::GetComm()); + num_unstable_constraints=sum_num_unstable_constraints; + /*Have we converged? : */ + if(num_unstable_constraints) converged=0; + /*Assign output pointers: */ - *pconverged=converged; - *pnum_unstable_constraints=num_unstable_constraints; + *pconverged = converged; + *pnum_unstable_constraints = num_unstable_constraints; } Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Penta.cpp (revision 16199) +++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp (revision 16200) @@ -3305,7 +3305,6 @@ this->SpawnTriaHook(dynamic_cast(tria),location); /*Spawn material*/ - tria->material=NULL; tria->material=(Material*)this->material->copy(); delete tria->material->inputs; tria->material->inputs=(Inputs*)this->material->inputs->SpawnTriaInputs(location); Index: ../trunk-jpl/src/c/classes/gauss/GaussTria.cpp =================================================================== --- ../trunk-jpl/src/c/classes/gauss/GaussTria.cpp (revision 16199) +++ ../trunk-jpl/src/c/classes/gauss/GaussTria.cpp (revision 16200) @@ -43,7 +43,6 @@ IssmPDouble *seg_coords = NULL; IssmPDouble *seg_weights = NULL; IssmDouble a1,b1,c1,a2,b2,c2; - int i,index3; /*Get Segment gauss points*/ numgauss=order; @@ -82,7 +81,7 @@ } /*Build Triangle Gauss point*/ - for(i=0;i(numgauss); /*Build Triangle Gauss point*/ - for(i=0;i