Changeset 27854
- Timestamp:
- 07/26/23 01:35:20 (20 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/SMBdebrisEvatt.m
r27847 r27854 7 7 properties (SetAccess=public) 8 8 9 monthlyprecipitation = NaN;10 monthlytemperatures= NaN;11 monthlydsradiation = NaN;12 monthlydlradiation = NaN;13 monthlywindspeed = NaN;14 monthlyairhumidity = NaN;9 precipitation = NaN; 10 temperature = NaN; 11 dsradiation = NaN; 12 dlradiation = NaN; 13 windspeed = NaN; 14 airhumidity = NaN; 15 15 precipitation_anomaly = NaN; 16 16 temperature_anomaly = NaN; … … 27 27 windspeedlaps = 0; 28 28 humiditylaps = 0; 29 ismonthly = 0;30 29 isAnderson = 0; 31 30 iscryokarst = 0; … … 48 47 end % }}} 49 48 function self = extrude(self,md) % {{{ 50 self. monthlyprecipitation=project3d(md,'vector',self.monthlyprecipitation,'type','node');51 self. monthlytemperatures=project3d(md,'vector',self.monthlytemperatures,'type','node');52 self. monthlydsradiation=project3d(md,'vector',self.monthlydsradiation,'type','node');53 self. monthlydlradiation=project3d(md,'vector',self.monthlydlradiation,'type','node');54 self. monthlywindspeed=project3d(md,'vector',self.monthlywindspeed,'type','node');55 self. monthlyairhumidity=project3d(md,'vector',self.monthlyairhumidity,'type','node');49 self.precipitation=project3d(md,'vector',self.precipitation,'type','node'); 50 self.temperature=project3d(md,'vector',self.temperature,'type','node'); 51 self.dsradiation=project3d(md,'vector',self.dsradiation,'type','node'); 52 self.dlradiation=project3d(md,'vector',self.dlradiation,'type','node'); 53 self.windspeed=project3d(md,'vector',self.windspeed,'type','node'); 54 self.airhumidity=project3d(md,'vector',self.airhumidity,'type','node'); 56 55 self.temperature_anomaly=project3d(md,'vector',self.temperature_anomaly,'type','node'); 57 56 self.precipitation_anomaly=project3d(md,'vector',self.precipitation_anomaly,'type','node'); … … 87 86 self.snowalbedo = 0.75; 88 87 self.debrisalbedo = 0.07; 89 self.ismonthly = 0;90 88 self.isAnderson = 0; 91 89 self.iscryokarst = 0; … … 99 97 100 98 if ismember('MasstransportAnalysis',analyses), 101 md = checkfield(md,'fieldname','smb. monthlytemperatures','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 365]);102 md = checkfield(md,'fieldname','smb. monthlyprecipitation','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 365]);103 md = checkfield(md,'fieldname','smb. monthlydsradiation','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 365]);104 md = checkfield(md,'fieldname','smb. monthlydlradiation','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 365]);105 md = checkfield(md,'fieldname','smb. monthlywindspeed','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 365]);106 md = checkfield(md,'fieldname','smb. monthlyairhumidity','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 365]);99 md = checkfield(md,'fieldname','smb.temperature','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 365]); 100 md = checkfield(md,'fieldname','smb.precipitation','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 365]); 101 md = checkfield(md,'fieldname','smb.dsradiation','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 365]); 102 md = checkfield(md,'fieldname','smb.dlradiation','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 365]); 103 md = checkfield(md,'fieldname','smb.windspeed','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 365]); 104 md = checkfield(md,'fieldname','smb.airhumidity','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 365]); 107 105 md = checkfield(md,'fieldname','smb.snowheight','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]); 108 106 end … … 113 111 md = checkfield(md,'fieldname','smb.snowalbedo','>=',0,'NaN',1,'Inf',1); 114 112 md = checkfield(md,'fieldname','smb.debrisalbedo','>=',0,'NaN',1,'Inf',1); 115 md = checkfield(md,'fieldname','smb.ismonthly','numel', [1], 'values', [0, 1]);116 113 md = checkfield(md,'fieldname','smb.isAnderson','numel', [1], 'values', [0, 1]); 117 114 md = checkfield(md,'fieldname','smb.iscryokarst','numel', [1], 'values', [0, 1]); … … 125 122 disp(sprintf('Clean-ice SMB is taken from the Evatt et al. (2015) EBM with debris=0')); 126 123 127 fielddisplay(self,'ismonthly','do we use monthly forcing (otherwise yearly averaged forcing is applied) (default is 0)');128 124 fielddisplay(self,'isAnderson','do we use the Anderson parametrization (default is 0)'); 129 125 fielddisplay(self,'iscryokarst','do we use a cryokarst parametrization (default is 0)'); 130 fielddisplay(self,' monthlytemperatures','monthly surface temperatures[K]');131 fielddisplay(self,' monthlyprecipitation','monthlysurface precipitation [m/yr water eq]');132 fielddisplay(self,' monthlydsradiation','monthlydownwelling shortwave radiation [W m-2]');133 fielddisplay(self,' monthlydlradiation','monthlydownwelling longwave radiation [W m-2]');134 fielddisplay(self,' monthlywindspeed','monthlysurface wind speed [m s-1]');135 fielddisplay(self,' monthlyairhumidity','monthlynear-surface specific humidity [kg kg-1]');136 fielddisplay(self,'temperature_anomaly','anomaly to monthlyreference temperature (additive)');137 fielddisplay(self,'precipitation_anomaly','anomaly to monthlyprecipitation (multiplicative)');138 fielddisplay(self,'dsradiation_anomaly','anomaly to monthlyreference downwelling shortwave radiation');139 fielddisplay(self,'dlradiation_anomaly','anomaly to monthlyreference downwelling longwave radiation (additive');140 fielddisplay(self,'windspeed_anomaly','anomaly to monthlyreference surface wind speed (additive)');141 fielddisplay(self,'airhumidity_anomaly','anomaly to monthlyreference near-surface specific humidity (additive)');126 fielddisplay(self,'temperature',' surface temperature [K]'); 127 fielddisplay(self,'precipitation',' surface precipitation [m/yr water eq]'); 128 fielddisplay(self,'dsradiation',' downwelling shortwave radiation [W m-2]'); 129 fielddisplay(self,'dlradiation',' downwelling longwave radiation [W m-2]'); 130 fielddisplay(self,'windspeed',' surface wind speed [m s-1]'); 131 fielddisplay(self,'airhumidity',' near-surface specific humidity [kg kg-1]'); 132 fielddisplay(self,'temperature_anomaly','anomaly to reference temperature (additive)'); 133 fielddisplay(self,'precipitation_anomaly','anomaly to precipitation (multiplicative)'); 134 fielddisplay(self,'dsradiation_anomaly','anomaly to reference downwelling shortwave radiation'); 135 fielddisplay(self,'dlradiation_anomaly','anomaly to reference downwelling longwave radiation (additive'); 136 fielddisplay(self,'windspeed_anomaly','anomaly to reference surface wind speed (additive)'); 137 fielddisplay(self,'airhumidity_anomaly','anomaly to reference near-surface specific humidity (additive)'); 142 138 143 139 fielddisplay(self,'s0t','should be set to elevation from RCM/GCM source (between 0 and a few 1000s m, default is 0) [m]'); … … 177 173 WriteData(fid,prefix,'object',self,'class','smb','fieldname','snowalbedo','format','Double'); 178 174 WriteData(fid,prefix,'object',self,'class','smb','fieldname','debrisalbedo','format','Double'); 179 WriteData(fid,prefix,'object',self,'class','smb','fieldname','ismonthly','format','Boolean');180 175 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isAnderson','format','Boolean'); 181 176 WriteData(fid,prefix,'object',self,'class','smb','fieldname','iscryokarst','format','Boolean'); 182 177 WriteData(fid,prefix,'object',self,'class','smb','fieldname','AndersonD0','format','Double'); 183 WriteData(fid,prefix,'object',self,'class','smb','fieldname',' monthlytemperatures','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);184 WriteData(fid,prefix,'object',self,'class','smb','fieldname',' monthlyprecipitation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);185 WriteData(fid,prefix,'object',self,'class','smb','fieldname',' monthlydsradiation','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);186 WriteData(fid,prefix,'object',self,'class','smb','fieldname',' monthlydlradiation','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);187 WriteData(fid,prefix,'object',self,'class','smb','fieldname',' monthlywindspeed','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);188 WriteData(fid,prefix,'object',self,'class','smb','fieldname',' monthlyairhumidity','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);178 WriteData(fid,prefix,'object',self,'class','smb','fieldname','temperature','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 179 WriteData(fid,prefix,'object',self,'class','smb','fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 180 WriteData(fid,prefix,'object',self,'class','smb','fieldname','dsradiation','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 181 WriteData(fid,prefix,'object',self,'class','smb','fieldname','dlradiation','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 182 WriteData(fid,prefix,'object',self,'class','smb','fieldname','windspeed','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 183 WriteData(fid,prefix,'object',self,'class','smb','fieldname','airhumidity','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 189 184 WriteData(fid,prefix,'object',self,'class','smb','fieldname','temperature_anomaly','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 190 185 WriteData(fid,prefix,'object',self,'class','smb','fieldname','precipitation_anomaly','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.