//SMBforcing Class definition // // Usage: // SMB=SMBforcing(); function SMBforcing(){ //methods this.setdefaultparameters = function(){// {{{ } // }}} this.disp = function(){ // {{{ console.log(sprintf(' surface forcings parameters:')); fielddisplay(this,'mass_balance','surface mass balance [m/yr ice eq]'); fielddisplay(this,'requested_outputs','additional outputs requested'); } // }}} this.initialize = function(md) {// {{{ if (self.mass_balance === NaN){ self.mass_balance=NewArrayFill(md.mesh.numberofvertices,0); console.log(' no smb.mass_balance specified: values set as zero'); } } // }}} this.checkconsistency = function(md,solution,analyses) { //{{{ if(ArrayAnyEqual(ArrayIsMember(MasstransportAnalysisEnum(),analyses),1)){ checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1); } if(ArrayAnyEqual(ArrayIsMember(BalancethicknessAnalysisEnum(),analyses),1)){ checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices,1],'NaN',1); } checkfield(md,'fieldname','smb.requested_outputs','stringrow',1); } // }}} //properties this.mass_balance = NaN; this.requested_outputs = ['']; this.setdefaultparameters(); }