Index: ../trunk-jpl/src/c/cores/controladm1qn3_core.cpp =================================================================== --- ../trunk-jpl/src/c/cores/controladm1qn3_core.cpp (revision 22793) +++ ../trunk-jpl/src/c/cores/controladm1qn3_core.cpp (revision 22794) @@ -105,6 +105,7 @@ if(X[index]>XU[index]) X[index]=XU[index]; if(X[index](scaling_factors[c]); Gnorm += G[index]*G[index]; } + N_add+=N[c]; } Gnorm = sqrt(Gnorm); Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Element.cpp (revision 22793) +++ ../trunk-jpl/src/c/classes/Elements/Element.cpp (revision 22794) @@ -1661,7 +1661,7 @@ IssmDouble* times = xNew(N); for(int t=0;tObjectEnum()){ case TriaEnum: - values_input->AddTimeInput(new TriaInput(ControlInputValuesEnum,values,P1Enum)); + values_input->AddTimeInput(new TriaInput(input_enum,values,P1Enum)); mins_input->AddTimeInput(new TriaInput(ControlInputMinsEnum,values_min,P1Enum)); maxs_input->AddTimeInput(new TriaInput(ControlInputMaxsEnum,values_max,P1Enum)); break; Index: ../trunk-jpl/src/c/classes/Inputs/ControlInput.cpp =================================================================== --- ../trunk-jpl/src/c/classes/Inputs/ControlInput.cpp (revision 22793) +++ ../trunk-jpl/src/c/classes/Inputs/ControlInput.cpp (revision 22794) @@ -329,7 +329,7 @@ if(input->ObjectEnum()!=TransientInputEnum)_error_("cannot have timeoffset argument if not TransientInput Control"); TransientInput* transient_input = xDynamicCast(input); IssmDouble time = transient_input->GetTimeByOffset(timeoffset); - TransientInput* new_trans_input = new TransientInput(ControlInputValuesEnum); + TransientInput* new_trans_input = new TransientInput(this->enum_type); for(int i=0;inumtimesteps;i++){ if(transient_input->timesteps[i]==time) new_trans_input->AddTimeInput(xDynamicCast(in_input),time); else { Index: ../trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp =================================================================== --- ../trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp (revision 22793) +++ ../trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp (revision 22794) @@ -142,6 +142,11 @@ input_enum = CalvingStressThresholdGroundediceEnum; fieldname=xNew((strlen(field)+1)); xMemCpy(fieldname,field,(strlen(field)+1)); } + else if(strcmp(string_in,"DamageDbar")==0){ + const char* field = "md.damage.D"; + input_enum = DamageDbarEnum; + fieldname=xNew((strlen(field)+1)); xMemCpy(fieldname,field,(strlen(field)+1)); + } else{ _error_("Field \""<