Ignore:
Timestamp:
08/30/15 16:01:06 (10 years ago)
Author:
Eric.Larour
Message:

CHG: transferred Smb code from the Masstransport side of things into a full fledged SmbAnalysis
object.

File:
1 edited

Legend:

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

    r19527 r19528  
    123123function md = checkconsistency(self,md,solution,analyses) % {{{
    124124
    125                 md = checkfield(md,'fieldname','smb.Ta','timeseries',1,'NaN',1,'>',0,'<',273+60); %60 celsius max value
    126                 md = checkfield(md,'fieldname','smb.V','timeseries',1,'NaN',1);
    127                 md = checkfield(md,'fieldname','smb.dswrf','timeseries',1,'NaN',1);
    128                 md = checkfield(md,'fieldname','smb.dlwrf','timeseries',1,'NaN',1);
    129                 md = checkfield(md,'fieldname','smb.P','timeseries',1,'NaN',1);
     125                md = checkfield(md,'fieldname','smb.Ta','timeseries',1,'NaN',1,'>',273-60,'<',273+60); %60 celsius max value
     126                md = checkfield(md,'fieldname','smb.V','timeseries',1,'NaN',1,'>=',0,'<',45); %max 500 km/h
     127                md = checkfield(md,'fieldname','smb.dswrf','timeseries',1,'NaN',1,'>=',0,'<=',1400);
     128                md = checkfield(md,'fieldname','smb.dlwrf','timeseries',1,'NaN',1,'>=',0);
     129                md = checkfield(md,'fieldname','smb.P','timeseries',1,'NaN',1,'>=',0,'<=',100);
    130130                md = checkfield(md,'fieldname','smb.eAir','timeseries',1,'NaN',1);
    131 
     131               
     132                md = checkfield(md,'fieldname','smb.Tmean','NaN',1,'>',273-60,'<',273+60); %60 celsius max value
     133                md = checkfield(md,'fieldname','smb.C','NaN',1,'>=',0);
     134                md = checkfield(md,'fieldname','smb.Tz','NaN',1,'>=',0,'<=',5000);
     135                md = checkfield(md,'fieldname','smb.Vz','NaN',1,'>=',0,'<=',5000);
     136               
     137                md = checkfield(md,'fieldname','smb.spinUp','NaN',1,'>=',0);
     138                md = checkfield(md,'fieldname','smb.aIdx','NaN',1,'values',[1,2,3,4]);
     139                md = checkfield(md,'fieldname','smb.swIdx','NaN',1,'values',[0,1]);
     140                md = checkfield(md,'fieldname','smb.denIdx','NaN',1,'values',[1,2,3,4,5]);
     141               
     142                md = checkfield(md,'fieldname','smb.zTop','NaN',1,'>=',0);
     143                md = checkfield(md,'fieldname','smb.dzTop','NaN',1,'>',0);
     144                md = checkfield(md,'fieldname','smb.dzMin','NaN',1,'>',0);
     145                md = checkfield(md,'fieldname','smb.zY','NaN',1,'>=',1);
     146                md = checkfield(md,'fieldname','smb.outputFreq','NaN',1,'>',0,'<',10*365); %10 years max
     147               
     148                switch self.aIdx,
     149                case {1 2}
     150                        md = checkfield(md,'fieldname','smb.aSnow','NaN',1,'>=',.64,'<=',.89);
     151                        md = checkfield(md,'fieldname','smb.aIce','NaN',1,'>=',.27,'<=',.58);
     152                case 3
     153                        md = checkfield(md,'fieldname','smb.cldFrac','NaN',1,'>=',0,'<=',1);
     154                case 4
     155                        md = checkfield(md,'fieldname','smb.t0wet','NaN',1,'>=',15,'<=',21.9);
     156                        md = checkfield(md,'fieldname','smb.t0dry','NaN',1,'>=',30,'<=',30);
     157                        md = checkfield(md,'fieldname','smb.K','NaN',1,'>=',7,'<=',7);
     158                end
     159               
    132160                %check zTop is < local thickness:
    133161                he=sum(md.geometry.thickness(md.mesh.elements),2)/size(md.mesh.elements,2);
     
    195223
    196224                        WriteData(fid,'enum',SmbEnum(),'data',SMBgembEnum(),'format','Integer');
    197                         WriteData(fid,'object',self,'class','smb','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    198                         WriteData(fid,'object',self,'class','smb','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    199                         WriteData(fid,'object',self,'class','smb','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     225                       
     226                        WriteData(fid,'object',self,'class','smb','fieldname','Ta','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
     227                        WriteData(fid,'object',self,'class','smb','fieldname','V','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
     228                        WriteData(fid,'object',self,'class','smb','fieldname','dswrf','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
     229                        WriteData(fid,'object',self,'class','smb','fieldname','dlwrf','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
     230                        WriteData(fid,'object',self,'class','smb','fieldname','P','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
     231                        WriteData(fid,'object',self,'class','smb','fieldname','eAir','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
     232                        WriteData(fid,'object',self,'class','smb','fieldname','pAir','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
     233                       
     234                        WriteData(fid,'object',self,'class','smb','fieldname','Tmean','format','Double','scale',1);
     235                        WriteData(fid,'object',self,'class','smb','fieldname','C','format','Double','scale',1);
     236                        WriteData(fid,'object',self,'class','smb','fieldname','Tz','format','Double','scale',1);
     237                        WriteData(fid,'object',self,'class','smb','fieldname','Vz','format','Double','scale',1);
     238                        WriteData(fid,'object',self,'class','smb','fieldname','spinUp','format','Integer','scale',1);
     239                        WriteData(fid,'object',self,'class','smb','fieldname','aIdx','format','Integer','scale',1);
     240                        WriteData(fid,'object',self,'class','smb','fieldname','swIdx','format','Integer','scale',1);
     241                        WriteData(fid,'object',self,'class','smb','fieldname','denIdx','format','Integer','scale',1);
     242
     243                        WriteData(fid,'object',self,'class','smb','fieldname','zTop','format','DoubleMat','mattype',1,'scale',1);
     244                        WriteData(fid,'object',self,'class','smb','fieldname','dzTop','format','DoubleMat','mattype',1,'scale',1);
     245                        WriteData(fid,'object',self,'class','smb','fieldname','dzMin','format','DoubleMat','mattype',1,'scale',1);
     246                        WriteData(fid,'object',self,'class','smb','fieldname','zY','format','DoubleMat','mattype',1,'scale',1);
     247                        WriteData(fid,'object',self,'class','smb','fieldname','zMax','format','DoubleMat','mattype',1,'scale',1);
     248                        WriteData(fid,'object',self,'class','smb','fieldname','zMin','format','DoubleMat','mattype',1,'scale',1);
     249
     250                        WriteData(fid,'object',self,'class','smb','fieldname','outputFreq','format','Double','scale',1);
     251                        WriteData(fid,'object',self,'class','smb','fieldname','aSnow','format','Double','scale',1);
     252                        WriteData(fid,'object',self,'class','smb','fieldname','aIce','format','Double','scale',1);
     253                        WriteData(fid,'object',self,'class','smb','fieldname','cldFrac','format','Double','scale',1);
     254                        WriteData(fid,'object',self,'class','smb','fieldname','t0wet','format','Double','scale',1);
     255                        WriteData(fid,'object',self,'class','smb','fieldname','t0dry','format','Double','scale',1);
     256                        WriteData(fid,'object',self,'class','smb','fieldname','K','format','Double','scale',1);
    200257                       
    201258                        %process requested outputs
     
    210267                end % }}}
    211268        end
    212 end
     269end             
Note: See TracChangeset for help on using the changeset viewer.