Changeset 24282


Ignore:
Timestamp:
10/28/19 04:34:31 (5 years ago)
Author:
bdef
Message:

BUG: fixing leak in substepping

Location:
issm/trunk-jpl/src/c/classes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r24258 r24282  
    48384838        ISSM_MPI_Reduce (&oceanarea_cpu,&oceanarea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
    48394839        ISSM_MPI_Bcast(&oceanarea,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
    4840                        
     4840
    48414841        //_printf0_("Ocean area: " << oceanarea << "\n");
    48424842
     
    50965096                else{
    50975097                        for(int j=0;j<elements->Size();j++){
     5098                                /*Intermediaries*/
    50985099                                TransientInput* transient_input = new TransientInput(transientinput_enum[i]);
    5099                                 /*Intermediaries*/
    51005100                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j));
    51015101                                element->inputs->AddInput(transient_input);
     
    51425142void FemModel::AverageTransientOutputx(int* transientinput_enum,int* averagedinput_enum,IssmDouble init_time,IssmDouble end_time,int numoutputs){ /*{{{*/
    51435143
    5144 
    5145         IssmDouble yts;
    5146         this->parameters->FindParam(&yts,ConstantsYtsEnum);
    51475144        for(int i=0;i<numoutputs;i++){
    51485145                if(transientinput_enum[i]<0){
     
    51505147                }
    51515148                else{
    5152                         for(int j=0;j<elements->Size();j++){
     5149                        for(int j=0;j<this->elements->Size();j++){
    51535150                                Element*    element       = xDynamicCast<Element*>(elements->GetObjectByOffset(j));
    51545151                                int         numnodes      = element->GetNumberOfNodes();
     
    51655162                                element->AddInput(averagedinput_enum[i],&time_averaged[0],element->GetElementType());
    51665163                                delete gauss;
     5164                                xDelete<IssmDouble>(time_averaged);
    51675165                        }
    51685166                }
  • issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp

    r24240 r24282  
    282282        int found;
    283283        int offset,start_offset,end_offset;
    284         IssmDouble subdt,yts;
     284        IssmDouble subdt;
    285285        IssmDouble slice_duration;
    286286
    287         IssmDouble time;
    288 
    289         this->parameters->FindParam(&time,TimeEnum);
    290         this->parameters->FindParam(&yts,ConstantsYtsEnum);
    291287        this->parameters->FindParam(&subdt,TimesteppingTimeStepEnum); //duration of each substeps
    292288
    293289        Input *averageinput  = NULL;
    294         Input *currentinput  = NULL;
     290
    295291
    296292        slice_duration=end_time-start_time;
     
    307303        //stack the input for each timestep in the slice
    308304        while(offset <= end_offset ){
     305                Input *currentinput  = NULL;
     306
    309307                if (offset==-1){
    310308                        /*get values for the first time: */
     
    354352                                _error_("averaging method is not recognised");
    355353                }
     354                delete currentinput;
    356355                offset+=1;
    357356        }
Note: See TracChangeset for help on using the changeset viewer.