Changeset 21079


Ignore:
Timestamp:
08/04/16 11:41:26 (9 years ago)
Author:
Mathieu Morlighem
Message:

CHG: fixed memory leak and some cosmetics

Location:
issm/trunk-jpl/src/c
Files:
4 edited

Legend:

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

    r21068 r21079  
    36313631
    36323632        /*Initialize eustatic component: do not skip this step :):*/
    3633         IssmDouble eustatic = 0;
     3633        IssmDouble eustatic = 0.;
    36343634
    36353635        /*Computational flags:*/
     
    37103710
    37113711        /*Compute eustatic compoent:*/
     3712        _assert_(oceanarea>0.);
    37123713        eustatic += rho_ice*area*I/(oceanarea*rho_water);
    37133714
     
    37493750       
    37503751        /*Assign output pointer:*/
     3752        _assert_(!xIsNan<IssmDouble>(eustatic));
     3753        _assert_(!xIsInf<IssmDouble>(eustatic));
    37513754        *peustatic=eustatic;
    37523755        return;
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r21077 r21079  
    22962296
    22972297        /*serialized vectors:*/
    2298         IssmDouble  eustatic=0;
    2299         IssmDouble  eustatic_cpu=0;
    2300         IssmDouble  eustatic_cpu_e=0;
    2301         IssmDouble  oceanarea=0;
    2302         IssmDouble  oceanarea_cpu=0;
    2303         IssmDouble  eartharea=0;
    2304         IssmDouble  eartharea_cpu=0;
     2298        IssmDouble  eustatic       = 0.;
     2299        IssmDouble  eustatic_cpu   = 0.;
     2300        IssmDouble  eustatic_cpu_e = 0.;
     2301        IssmDouble  oceanarea      = 0.;
     2302        IssmDouble  oceanarea_cpu  = 0.;
     2303        IssmDouble  eartharea      = 0.;
     2304        IssmDouble  eartharea_cpu  = 0.;
    23052305        int         ns,nsmax;
    23062306       
     
    23122312                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    23132313                oceanarea_cpu += element->OceanArea();
    2314                 eartharea_cpu+= element->GetAreaSpherical();
     2314                eartharea_cpu += element->GetAreaSpherical();
    23152315        }
    23162316        ISSM_MPI_Reduce (&oceanarea_cpu,&oceanarea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
    23172317        ISSM_MPI_Bcast(&oceanarea,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
     2318        _assert_(oceanarea>0.);
    23182319
    23192320        ISSM_MPI_Reduce (&eartharea_cpu,&eartharea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
     
    23442345        ISSM_MPI_Reduce (&eustatic_cpu,&eustatic,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
    23452346        ISSM_MPI_Bcast(&eustatic,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
     2347        _assert_(!xIsNan<IssmDouble>(eustatic));
    23462348
    23472349        /*Assign output pointers:*/
     
    23722374                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    23732375                oceanarea_cpu += element->OceanArea();
    2374                 eartharea_cpu+= element->GetAreaSpherical();
     2376                eartharea_cpu += element->GetAreaSpherical();
    23752377        }
    23762378        ISSM_MPI_Reduce (&oceanarea_cpu,&oceanarea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
  • issm/trunk-jpl/src/c/cores/sealevelrise_core_eustatic.cpp

    r20999 r21079  
    1919        int  gsize;
    2020        bool spherical=true;
    21         IssmDouble          *latitude    = NULL;
    22         IssmDouble          *longitude    = NULL;
    23         IssmDouble          *radius    = NULL;
     21        IssmDouble *latitude  = NULL;
     22        IssmDouble *longitude = NULL;
     23        IssmDouble *radius    = NULL;
    2424
    2525        /*outputs:*/
    26         IssmDouble eustatic=0;
     26        IssmDouble eustatic;
    2727
    2828        /*recover parameters:*/
     
    3333
    3434        /*Figure out size of g-set deflection vector and allocate solution vector: */
    35         gsize      = femmodel->nodes->NumberOfDofs(configuration_type,GsetEnum);
     35        gsize = femmodel->nodes->NumberOfDofs(configuration_type,GsetEnum);
    3636       
    3737        /*Initialize:*/
     
    5151        femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,SealevelEustaticEnum,-eustatic));
    5252
     53        /*clean up and return:*/
    5354        xDelete<IssmDouble>(latitude);
    5455        xDelete<IssmDouble>(longitude);
    5556        xDelete<IssmDouble>(radius);
    56 
    57         /*return:*/
    5857        return Sgi;
    5958}
  • issm/trunk-jpl/src/c/cores/sealevelrise_core_noneustatic.cpp

    r20999 r21079  
    4646
    4747        /*Figure out size of g-set deflection vector and allocate solution vector: */
    48         gsize      = femmodel->nodes->NumberOfDofs(configuration_type,GsetEnum);
     48        gsize = femmodel->nodes->NumberOfDofs(configuration_type,GsetEnum);
    4949       
    5050        /*Initialize:*/
     
    5555        Sg_old = new Vector<IssmDouble>(gsize);
    5656        Sg_old->Assemble();
    57 
    58         Sgo = new Vector<IssmDouble>(gsize);
    59         Sgo->Assemble();
    6057
    6158        count=1;
     
    6966
    7067                /*Initialize solution vector: */
    71                 Sg = new Vector<IssmDouble>(gsize); Sg->Assemble();
     68                Sg  = new Vector<IssmDouble>(gsize); Sg->Assemble();
    7269                Sgo = new Vector<IssmDouble>(gsize); Sgo->Assemble();
    7370
    7471                /*call the non eustatic module: */
    75         femmodel->SealevelriseNonEustatic(Sgo, Sg_old, latitude, longitude, radius,verboseconvolution);
     72                femmodel->SealevelriseNonEustatic(Sgo, Sg_old, latitude, longitude, radius,verboseconvolution);
    7673       
    7774                /*assemble solution vector: */
Note: See TracChangeset for help on using the changeset viewer.