[24469] | 1 | //dsl Class definition
|
---|
| 2 | //
|
---|
| 3 | // Usage:
|
---|
| 4 | // dsl=dsl();
|
---|
| 5 |
|
---|
| 6 | function dsl(){
|
---|
| 7 | //methods
|
---|
| 8 | this.setdefaultparameters = function(){// {{{
|
---|
| 9 | this.requested_outputs=['default'];
|
---|
| 10 | } // }}}
|
---|
| 11 | this.disp = function(){ // {{{
|
---|
| 12 | console.log(sprintf(' dsl parameters:'));
|
---|
| 13 | fielddisplay(this,'global_average_thermosteric_sea_level_change','corresponds to zostoga field in CMIP5 archives. Specified as a temporally variable global rate (mm/yr)');
|
---|
| 14 | fielddisplay(this,'sea_surface_height_change_above_geoid','corresponds to zos field in CMIP5 archives. Spatial average is 0. Specified as a spatio-temporally variable rate (mm/yr)');
|
---|
| 15 | fielddisplay(this,'sea_water_pressure_change_at_sea_floor','corresponds to bpo field in CMIP5 archives. Specified as a spatio-temporally variable rate (in Pa/yr)');
|
---|
| 16 |
|
---|
| 17 |
|
---|
| 18 | } // }}}
|
---|
| 19 | this.defaultoutputs = function(){ // {{{
|
---|
| 20 | return '';
|
---|
| 21 | }//}}}
|
---|
| 22 | this.classname = function(){ // {{{
|
---|
| 23 | return "dsl";
|
---|
| 24 | } // }}}
|
---|
| 25 | this.extrude = function(md) {//{{{
|
---|
| 26 | this.sea_surface_height_change_above_geoid=project3d(md,'vector',this.sea_surface_height_change_above_geoid,'type','node');
|
---|
| 27 | this.sea_water_pressure_change_at_sea_floor=project3d(md,'vector',this.sea_water_pressure_change_at_sea_floor,'type','node');
|
---|
| 28 | return this;
|
---|
| 29 | }//}}}
|
---|
| 30 | this.checkconsistency = function(md,solution,analyses) { //{{{
|
---|
| 31 |
|
---|
| 32 | if(ArrayAnyEqual(ArrayIsMember('SealevelriseAnalysis',analyses),1)){
|
---|
| 33 | checkfield(md,'fieldname','dsl.sea_surface_height_change_above_geoid','timeseries',1,'NaN',1,'Inf',1);
|
---|
| 34 | checkfield(md,'fieldname','dsl.sea_water_pressure_change_at_sea_floor','timeseries',1,'NaN',1,'Inf',1);
|
---|
| 35 | }
|
---|
| 36 |
|
---|
| 37 | } // }}}
|
---|
| 38 | this.marshall=function(md,prefix,fid) { //{{{
|
---|
| 39 |
|
---|
| 40 | var yts=md.constants.yts;
|
---|
| 41 |
|
---|
| 42 | WriteData(fid,prefix,'name','md.dsl.model','data',1,'format','Integer');
|
---|
| 43 | WriteData(fid,prefix,'object',this,'class','dsl','fieldname','global_average_thermosteric_sea_level_change','format','DoubleMat','mattype',1,'timeserieslength',1+1,'yts',md.constants.yts,'scale',1e-3/md.constants.yts);
|
---|
| 44 | WriteData(fid,prefix,'object',this,'class','dsl','fieldname','sea_water_pressure_change_at_sea_floor','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1e-3/md.constants.yts);
|
---|
| 45 | WriteData(fid,prefix,'object',this,'class',dsl,'fieldname','sea_surface_height_change_above_geoid','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
|
---|
| 46 | }//}}}
|
---|
| 47 | this.fix=function() { //{{{
|
---|
| 48 | }//}}}
|
---|
| 49 | //properties
|
---|
| 50 | // {{{
|
---|
| 51 | this.global_average_thermosteric_sea_level_change = NaN;
|
---|
| 52 | this.sea_surface_height_change_above_geoid = NaN;
|
---|
| 53 | this.sea_water_pressure_change_at_sea_floor = NaN;
|
---|
| 54 | // }}}
|
---|
| 55 | }
|
---|