Changeset 2013


Ignore:
Timestamp:
08/27/09 12:26:59 (16 years ago)
Author:
Eric.Larour
Message:

fixed leaks

Location:
issm/trunk/src/c/parallel
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/parallel/prognostic_core.cpp

    r1881 r2013  
    5858        result=new Result(results->Size()+1,0,1,"h_g",h_g);
    5959        results->AddObject(result);
     60
     61        /*Free ressources:*/
     62        VecFree(&u_g);
     63        VecFree(&h_g);
    6064}
  • issm/trunk/src/c/parallel/transient.cpp

    r1888 r2013  
    153153                WriteLockFile(lockname);
    154154        }
     155        /*Free ressources:*/
     156        delete results;
     157        delete model;
     158        delete inputs;
     159        xfree((void**)&u_g);
     160        xfree((void**)&m_g);
     161        xfree((void**)&a_g);
    155162               
    156163        _printf_("closing MPI and Petsc\n");
  • issm/trunk/src/c/parallel/transient_core_2d.cpp

    r1881 r2013  
    3131        int step,i;
    3232        double time;
    33        
     33
    3434        Vec u_g=NULL;
    3535        double* u_g_serial=NULL;
     
    3838        double* p_g_serial=NULL;
    3939        Vec h_g=NULL;
     40        Vec new_h_g=NULL;
    4041        Vec h_g_intermediary=NULL;
    4142        double* h_g_serial=NULL;
    4243        Vec s_g=NULL;
     44        Vec new_s_g=NULL;
    4345        double* s_g_serial=NULL;
    4446        Vec b_g=NULL;
     47        Vec new_b_g=NULL;
    4548        double* b_g_serial=NULL;
    46 
    4749
    4850        /*intermediary: */
     
    124126
    125127                //extract u_g and p_g from diagnostic_results, and erase diagnostic_results;
    126                 diagnostic_results->FindResult(&u_g,"u_g");
    127                 diagnostic_results->FindResult(&p_g,"p_g");
     128                VecFree(&u_g); diagnostic_results->FindResult(&u_g,"u_g");
     129                VecFree(&p_g); diagnostic_results->FindResult(&p_g,"p_g");
    128130                delete diagnostic_results;
    129131
     
    141143                //update surface and bed using the new thickness
    142144                _printf_("   updating geometry\n");
    143                 UpdateGeometryx(&h_g,&b_g,&s_g,
     145                UpdateGeometryx(&new_h_g,&new_b_g,&new_s_g,
    144146                                fem_p->elements, fem_p->nodes,fem_p->loads, fem_p->materials,
    145147                                h_g_intermediary,b_g,s_g);
     148
     149                VecFree(&h_g);h_g=new_h_g;
     150                VecFree(&s_g);s_g=new_s_g;
     151                VecFree(&b_g);b_g=new_b_g;
    146152                VecFree(&h_g_intermediary);
    147153
     
    152158                result=new Result(results->Size()+1,time,step,"s_g",s_g); results->AddObject(result);
    153159                result=new Result(results->Size()+1,time,step,"b_g",b_g); results->AddObject(result);
     160
    154161        }
    155162
     
    161168        xfree((void**)&s_g_serial);
    162169        xfree((void**)&b_g_serial);
     170        VecFree(&u_g);
     171        VecFree(&p_g);
     172        VecFree(&h_g);
     173        VecFree(&s_g);
     174        VecFree(&b_g);
    163175}
Note: See TracChangeset for help on using the changeset viewer.