source: issm/oecreview/Archive/24684-25833/ISSM-25208-25209.diff

Last change on this file was 25834, checked in by Mathieu Morlighem, 4 years ago

CHG: added 24684-25833

File size: 10.5 KB
  • ../trunk-jpl/test/NightlyRun/test905.m

     
    4040duration=[md.timestepping.start_time:smb_step:md.timestepping.final_time];
    4141
    4242ddf=10.0e-3;
    43 md.smb.accuref=[[0.5 0.5];[0. 2.0]];
     43md.smb.accuref=[[0.5 0.5];[md.timestepping.start_time md.timestepping.final_time]];
    4444md.smb.accualti=0.0;
    45 md.smb.accugrad=0.0;
     45md.smb.accugrad=[[0. 0.];[md.timestepping.start_time md.timestepping.final_time]];
    4646
    4747md.smb.runoffref=0.9*duration*ddf;
    4848md.smb.runoffref=[md.smb.runoffref;duration];
    4949md.smb.runoffalti=0.0;
    50 md.smb.runoffgrad=-6.5e-3*ddf;  %lapse rate *ddf*day per year
     50md.smb.runoffgrad=[[-6.5e-3*ddf -6.5e-3*ddf];[md.timestepping.start_time md.timestepping.final_time]];  %lapse rate *ddf*day per year
    5151
    5252md.basalforcings.groundedice_melting_rate=zeros(md.mesh.numberofvertices,1);
    5353md.basalforcings.floatingice_melting_rate=zeros(md.mesh.numberofvertices,1);
  • ../trunk-jpl/test/NightlyRun/test905.py

     
    5454duration = np.arange(md.timestepping.start_time, md.timestepping.final_time + smb_step, smb_step)
    5555
    5656ddf = 10.0e-3
    57 md.smb.accuref = np.array([[0.5, 0.5], [0., 2.0]])
     57md.smb.accuref = np.array([[0.5, 0.5], [md.timestepping.start_time, md.timestepping.final_time]])
    5858md.smb.accualti = 0.0
    59 md.smb.accugrad = 0.0
     59md.smb.accugrad = np.array([[0., 0.], [md.timestepping.start_time, md.timestepping.final_time]])
    6060
    6161#md.smb.runoffref = 9. * ddf * np.ones(np.shape(duration))  #constant input for testing
    6262md.smb.runoffref = 0.9 * duration * ddf
    6363md.smb.runoffref = np.vstack((md.smb.runoffref, duration))
    6464md.smb.runoffalti = 0.0
    65 md.smb.runoffgrad = -6.5e-3 * ddf  #lapse rate *ddf*day per year
     65md.smb.runoffgrad = np.array([[-6.5e-3 * ddf, -6.5e-3 * ddf], [md.timestepping.start_time, md.timestepping.final_time]])  #lapse rate *ddf*day per year
    6666
    6767md.basalforcings.groundedice_melting_rate = np.zeros((md.mesh.numberofvertices))
    6868md.basalforcings.floatingice_melting_rate = np.zeros((md.mesh.numberofvertices))
  • ../trunk-jpl/src/m/classes/SMBgradientscomponents.m

     
    4848                        if ismember('MasstransportAnalysis',analyses),
    4949                                md = checkfield(md,'fieldname','smb.accuref','singletimeseries',1,'NaN',1,'Inf',1);
    5050                                md = checkfield(md,'fieldname','smb.accualti','numel',1,'NaN',1,'Inf',1);
    51                                 md = checkfield(md,'fieldname','smb.accugrad','numel',1,'NaN',1,'Inf',1);
     51                                md = checkfield(md,'fieldname','smb.accugrad','singletimeseries',1,'NaN',1,'Inf',1);
    5252                                md = checkfield(md,'fieldname','smb.runoffref','singletimeseries',1,'NaN',1,'Inf',1);
    5353                                md = checkfield(md,'fieldname','smb.runoffalti','numel',1,'NaN',1,'Inf',1);
    54                                 md = checkfield(md,'fieldname','smb.runoffgrad','numel',1,'NaN',1,'Inf',1);
     54                                md = checkfield(md,'fieldname','smb.runoffgrad','singletimeseries',1,'NaN',1,'Inf',1);
    5555                        end
    5656                        md = checkfield(md,'fieldname','smb.steps_per_step','>=',1,'numel',[1]);
    5757                        md = checkfield(md,'fieldname','smb.averaging','numel',[1],'values',[0 1 2]);
     
    8080                        WriteData(fid,prefix,'name','md.smb.model','data',11,'format','Integer');
    8181                        WriteData(fid,prefix,'object',self,'class','smb','fieldname','accuref','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts,'scale',1./md.constants.yts);
    8282                        WriteData(fid,prefix,'object',self,'class','smb','fieldname','accualti','format','Double');
    83                         WriteData(fid,prefix,'object',self,'class','smb','fieldname','accugrad','format','Double','scale',1./md.constants.yts);
     83                        WriteData(fid,prefix,'object',self,'class','smb','fieldname','accugrad','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts,'scale',1./md.constants.yts);
    8484                        WriteData(fid,prefix,'object',self,'class','smb','fieldname','runoffref','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts,'scale',1./md.constants.yts);
    8585                        WriteData(fid,prefix,'object',self,'class','smb','fieldname','runoffalti','format','Double');
    86                         WriteData(fid,prefix,'object',self,'class','smb','fieldname','runoffgrad', ...
    87                                   'format','Double','scale',1./md.constants.yts);
     86                        WriteData(fid,prefix,'object',self,'class','smb','fieldname','runoffgrad','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts,'scale',1./md.constants.yts);
    8887                        WriteData(fid, prefix, 'object', self, 'fieldname', 'steps_per_step', 'format', 'Integer');
    8988                        WriteData(fid, prefix, 'object', self, 'fieldname', 'averaging', 'format', 'Integer');
    9089
  • ../trunk-jpl/src/m/classes/SMBgradientscomponents.py

     
    6363        if 'MasstransportAnalysis' in analyses:
    6464            md = checkfield(md, 'fieldname', 'smb.accuref', 'singletimeseries', 1, 'NaN', 1, 'Inf', 1)
    6565            md = checkfield(md, 'fieldname', 'smb.accualti', 'numel', [1], 'NaN', 1, 'Inf', 1)
    66             md = checkfield(md, 'fieldname', 'smb.accugrad', 'numel', [1], 'NaN', 1, 'Inf', 1)
     66            md = checkfield(md, 'fieldname', 'smb.accugrad', 'singletimeseries', 1, 'NaN', 1, 'Inf', 1)
    6767            md = checkfield(md, 'fieldname', 'smb.runoffref', 'singletimeseries', 1, 'NaN', 1, 'Inf', 1)
    6868            md = checkfield(md, 'fieldname', 'smb.runoffalti', 'numel', [1], 'NaN', 1, 'Inf', 1)
    69             md = checkfield(md, 'fieldname', 'smb.runoffgrad', 'numel', [1], 'NaN', 1, 'Inf', 1)
     69            md = checkfield(md, 'fieldname', 'smb.runoffgrad', 'singletimeseries', 1, 'NaN', 1, 'Inf', 1)
    7070
    7171        md = checkfield(md, 'fieldname', 'smb.steps_per_step', '>=', 1, 'numel', [1])
    7272        md = checkfield(md, 'fieldname', 'smb.averaging', 'numel', [1], 'values', [0, 1, 2])
     
    7979        WriteData(fid, prefix, 'name', 'md.smb.model', 'data', 11, 'format', 'Integer')
    8080        WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'accuref', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', yts, 'scale', 1. / yts)
    8181        WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'accualti', 'format', 'Double')
    82         WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'accugrad', 'format', 'Double', 'scale', 1. / md.constants.yts)
     82        WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'accugrad', 'format', 'DoubleMat', 'scale', 1. / yts, 'scale', 1. / yts)
    8383        WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'runoffref', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', yts, 'scale', 1. / yts)
    8484        WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'runoffalti', 'format', 'Double')
    85         WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'runoffgrad', 'format', 'Double', 'scale', 1. / md.constants.yts)
     85        WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'runoffgrad', 'format', 'DoubleMat', 'scale', 1. / yts, 'scale', 1. / yts)
    8686        WriteData(fid, prefix, 'object', self, 'fieldname', 'steps_per_step', 'format', 'Integer')
    8787        WriteData(fid, prefix, 'object', self, 'fieldname', 'averaging', 'format', 'Integer')
    8888
  • ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp

     
    376376                        break;
    377377                case SMBgradientscomponentsEnum:
    378378                                parameters->AddObject(iomodel->CopyConstantObject("md.smb.accualti",SmbAccualtiEnum));
    379                                 parameters->AddObject(iomodel->CopyConstantObject("md.smb.accugrad",SmbAccugradEnum));
    380379                                parameters->AddObject(iomodel->CopyConstantObject("md.smb.runoffalti",SmbRunoffaltiEnum));
    381                                 parameters->AddObject(iomodel->CopyConstantObject("md.smb.runoffgrad",SmbRunoffgradEnum));
    382380
    383                           iomodel->FetchData(&temp,&N,&M,"md.smb.accuref"); _assert_(N==2);
    384                           parameters->AddObject(new TransientParam(SmbAccurefEnum,&temp[0],&temp[M],interp,M));
    385                           iomodel->DeleteData(temp,"md.smb.accuref");
     381                                iomodel->FetchData(&temp,&N,&M,"md.smb.accugrad"); _assert_(N==2);
     382                                parameters->AddObject(new TransientParam(SmbAccugradEnum,&temp[0],&temp[M],interp,M));
     383                                iomodel->DeleteData(temp,"md.smb.accugrad");
     384                                iomodel->FetchData(&temp,&N,&M,"md.smb.runoffgrad"); _assert_(N==2);
     385                                parameters->AddObject(new TransientParam(SmbRunoffgradEnum,&temp[0],&temp[M],interp,M));
     386                                iomodel->DeleteData(temp,"md.smb.runoffgrad");
    386387
    387                           iomodel->FetchData(&temp,&N,&M,"md.smb.runoffref"); _assert_(N==2);
    388                           parameters->AddObject(new TransientParam(SmbRunoffrefEnum,&temp[0],&temp[M],interp,M));
    389                           iomodel->DeleteData(temp,"md.smb.runoffref");
     388                                iomodel->FetchData(&temp,&N,&M,"md.smb.accuref"); _assert_(N==2);
     389                                parameters->AddObject(new TransientParam(SmbAccurefEnum,&temp[0],&temp[M],interp,M));
     390                                iomodel->DeleteData(temp,"md.smb.accuref");
     391                                iomodel->FetchData(&temp,&N,&M,"md.smb.runoffref"); _assert_(N==2);
     392                                parameters->AddObject(new TransientParam(SmbRunoffrefEnum,&temp[0],&temp[M],interp,M));
     393                                iomodel->DeleteData(temp,"md.smb.runoffref");
    390394                        break;
    391395                case SMBsemicEnum:
    392396                        /*Nothing to add to parameters*/
  • ../trunk-jpl/src/c/classes/Elements/Element.cpp

     
    679679        /*Recover parameters*/
    680680        parameters->FindParam(&time,TimeEnum);
    681681        parameters->FindParam(&accualti,SmbAccualtiEnum);
    682         parameters->FindParam(&accugrad,SmbAccugradEnum);
    683682        parameters->FindParam(&runoffalti,SmbRunoffaltiEnum);
    684         parameters->FindParam(&runoffgrad,SmbRunoffgradEnum);
    685683
    686684        /*Recover reference values at current time*/
     685        parameters->FindParam(&accugrad,SmbAccugradEnum,time);
     686        parameters->FindParam(&runoffgrad,SmbRunoffgradEnum,time);
    687687        parameters->FindParam(&accuref,SmbAccurefEnum,time);
    688688        parameters->FindParam(&runoffref,SmbRunoffrefEnum,time);
    689689
Note: See TracBrowser for help on using the repository browser.