Changeset 22872


Ignore:
Timestamp:
06/22/18 12:25:28 (7 years ago)
Author:
Eric.Larour
Message:

CHG: we now update the base to match the new bed! Very important bug fix!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/branches/trunk-larour-NatGeoScience2016/src/c/analyses/MasstransportAnalysis.cpp

    r22494 r22872  
    671671        IssmDouble* deltathickness    = xNew<IssmDouble>(numnodes);
    672672        IssmDouble* newbase        = xNew<IssmDouble>(numnodes);
     673        IssmDouble* bed            = xNew<IssmDouble>(numnodes);
    673674        IssmDouble* newsurface     = xNew<IssmDouble>(numnodes);
    674675        IssmDouble* oldthickness   = xNew<IssmDouble>(numnodes);
     
    688689        }
    689690
    690         /*Get previous base, thickness, surfac and current sealevel:*/
     691        /*Get previous base, thickness, surfac and current sealevel and bed:*/
    691692        basalelement->GetInputListOnNodes(&oldbase[0],BaseEnum);
    692693        basalelement->GetInputListOnNodes(&oldsurface[0],SurfaceEnum);
     
    694695        basalelement->GetInputListOnNodes(&phi[0],MaskGroundediceLevelsetEnum);
    695696        basalelement->GetInputListOnNodes(&sealevel[0],SealevelEnum);
     697        basalelement->GetInputListOnNodes(&bed[0],BedEnum);
    696698        basalelement->GetInputListOnNodes(&cumdeltathickness[0],SealevelriseCumDeltathicknessEnum);
    697699
     
    709711        for(i=0;i<numnodes;i++) {
    710712                if (phi[i]>0.){ //this is an ice sheet: just add thickness to base.
    711                         newsurface[i] = oldbase[i]+newthickness[i]; //surface = oldbase + newthickness
    712                         newbase[i]     = oldbase[i];                 //same base: do nothing
     713                        /*Update! actually, the bed has moved too!:*/
     714                        newsurface[i] = bed[i]+newthickness[i]; //surface = bed + newthickness
     715                        newbase[i]     = bed[i];                 //new base at new bed
    713716                }
    714717                else{ //this is an ice shelf: hydrostatic equilibrium*/
     
    744747        xDelete<IssmDouble>(phi);
    745748        xDelete<IssmDouble>(sealevel);
     749        xDelete<IssmDouble>(bed);
    746750       
    747751        xDelete<int>(doflist);
Note: See TracChangeset for help on using the changeset viewer.