Ignore:
Timestamp:
07/13/18 13:01:36 (7 years ago)
Author:
tpelle
Message:

CHG: Adding buoyant plume basal melt-rate parameterization to ISSM, adapted from Lazeroms et al. (2018)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/basalforcingspico.m

    r22749 r22918  
    1313                farocean_temperature      = NaN;
    1414                farocean_salinity         = NaN;
     15                isplume                   = NaN;
    1516                geothermalflux            = NaN;
    1617                groundedice_melting_rate  = NaN;
     
    3839                                        disp('      no maximum number of boxes set, setting value to 5');
    3940                   end
    40 
    4141                        if isnan(self.overturning_coeff)
    4242                                self.overturning_coeff = 1e6; %m^3/s
    4343                                disp('      no overturning strength set, setting value to 1e6');
    4444                        end
    45 
    4645                        if isnan(self.gamma_T)
    4746                                self.gamma_T = 2e-5; %m/s
     
    5655                function self = setdefaultparameters(self) % {{{
    5756
    58                         self.maxboxcount = 5;
     57                        self.maxboxcount       = 5;
    5958                        self.overturning_coeff = 1e6; %m^3/s
    60                         self.gamma_T = 2e-5; %m/s
     59                        self.gamma_T           = 2e-5; %m/s
     60                        self.isplume           = false;
    6161
    6262                end % }}}
     
    7070                                md = checkfield(md,'fieldname','basalforcings.farocean_temperature','NaN',1,'Inf',1,'>',0,'size',[md.basalforcings.num_basins+1 NaN]);
    7171                                md = checkfield(md,'fieldname','basalforcings.farocean_salinity','NaN',1,'Inf',1,'>',0,'size',[md.basalforcings.num_basins+1 NaN]);
     72                                md = checkfield(md,'fieldname','basalforcings.isplume','values',[0 1]);
    7273                                md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'>=',0,'timeseries',1);
    7374                                md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
     
    7980                        fielddisplay(self,'basin_id','basin number assigned to each node [unitless]');
    8081                        fielddisplay(self,'maxboxcount','maximum number of boxes initialized under all ice shelves');
    81                         fielddisplay(self,'overturning_coeff','Overturning strength [m^3/s]');
    82                         fielddisplay(self,'gamma_T','Turbulent temperature exchange velocity [m/s]');
     82                        fielddisplay(self,'overturning_coeff','overturning strength [m^3/s]');
     83                        fielddisplay(self,'gamma_T','turbulent temperature exchange velocity [m/s]');
    8384                        fielddisplay(self,'farocean_temperature','depth averaged ocean temperature in front of the ice shelf for basin i [K]');
    8485                        fielddisplay(self,'farocean_salinity','depth averaged ocean salinity in front of the ice shelf for basin i [psu]');
     86                        fielddisplay(self,'isplume','boolean to use buoyant plume melt rate parameterization from Lazeroms et al., 2018 (default false)');
    8587                        fielddisplay(self,'geothermalflux','geothermal heat flux [W/m^2]');
    8688                        fielddisplay(self,'groundedice_melting_rate','basal melting rate (positive if melting) [m/yr]');
     
    98100                        WriteData(fid,prefix,'object',self,'fieldname','farocean_temperature','format','DoubleMat','name','md.basalforcings.farocean_temperature','timeserieslength',md.basalforcings.num_basins+1,'yts',md.constants.yts);
    99101                        WriteData(fid,prefix,'object',self,'fieldname','farocean_salinity','format','DoubleMat','name','md.basalforcings.farocean_salinity','timeserieslength',md.basalforcings.num_basins+1,'yts',md.constants.yts);
    100                         %WriteData(fid,prefix,'object',self,'fieldname','basin_id','format','DoubleMat','name','md.basalforcings.basin_id','mattype',2);
    101102                        WriteData(fid,prefix,'object',self,'fieldname','basin_id','data',self.basin_id-1,'name','md.basalforcings.basin_id','format','IntMat','mattype',2);   %Change to 0-indexing
     103                        WriteData(fid,prefix,'object',self,'fieldname','isplume','format','Boolean');
    102104                        WriteData(fid,prefix,'object',self,'fieldname','geothermalflux','format','DoubleMat','name','md.basalforcings.geothermalflux','mattype',1,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts);
    103105                        WriteData(fid,prefix,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
Note: See TracChangeset for help on using the changeset viewer.