[25834] | 1 | Index: ../trunk-jpl/test/NightlyRun/test905.m
|
---|
| 2 | ===================================================================
|
---|
| 3 | --- ../trunk-jpl/test/NightlyRun/test905.m (revision 25208)
|
---|
| 4 | +++ ../trunk-jpl/test/NightlyRun/test905.m (revision 25209)
|
---|
| 5 | @@ -40,14 +40,14 @@
|
---|
| 6 | duration=[md.timestepping.start_time:smb_step:md.timestepping.final_time];
|
---|
| 7 |
|
---|
| 8 | ddf=10.0e-3;
|
---|
| 9 | -md.smb.accuref=[[0.5 0.5];[0. 2.0]];
|
---|
| 10 | +md.smb.accuref=[[0.5 0.5];[md.timestepping.start_time md.timestepping.final_time]];
|
---|
| 11 | md.smb.accualti=0.0;
|
---|
| 12 | -md.smb.accugrad=0.0;
|
---|
| 13 | +md.smb.accugrad=[[0. 0.];[md.timestepping.start_time md.timestepping.final_time]];
|
---|
| 14 |
|
---|
| 15 | md.smb.runoffref=0.9*duration*ddf;
|
---|
| 16 | md.smb.runoffref=[md.smb.runoffref;duration];
|
---|
| 17 | md.smb.runoffalti=0.0;
|
---|
| 18 | -md.smb.runoffgrad=-6.5e-3*ddf; %lapse rate *ddf*day per year
|
---|
| 19 | +md.smb.runoffgrad=[[-6.5e-3*ddf -6.5e-3*ddf];[md.timestepping.start_time md.timestepping.final_time]]; %lapse rate *ddf*day per year
|
---|
| 20 |
|
---|
| 21 | md.basalforcings.groundedice_melting_rate=zeros(md.mesh.numberofvertices,1);
|
---|
| 22 | md.basalforcings.floatingice_melting_rate=zeros(md.mesh.numberofvertices,1);
|
---|
| 23 | Index: ../trunk-jpl/test/NightlyRun/test905.py
|
---|
| 24 | ===================================================================
|
---|
| 25 | --- ../trunk-jpl/test/NightlyRun/test905.py (revision 25208)
|
---|
| 26 | +++ ../trunk-jpl/test/NightlyRun/test905.py (revision 25209)
|
---|
| 27 | @@ -54,15 +54,15 @@
|
---|
| 28 | duration = np.arange(md.timestepping.start_time, md.timestepping.final_time + smb_step, smb_step)
|
---|
| 29 |
|
---|
| 30 | ddf = 10.0e-3
|
---|
| 31 | -md.smb.accuref = np.array([[0.5, 0.5], [0., 2.0]])
|
---|
| 32 | +md.smb.accuref = np.array([[0.5, 0.5], [md.timestepping.start_time, md.timestepping.final_time]])
|
---|
| 33 | md.smb.accualti = 0.0
|
---|
| 34 | -md.smb.accugrad = 0.0
|
---|
| 35 | +md.smb.accugrad = np.array([[0., 0.], [md.timestepping.start_time, md.timestepping.final_time]])
|
---|
| 36 |
|
---|
| 37 | #md.smb.runoffref = 9. * ddf * np.ones(np.shape(duration)) #constant input for testing
|
---|
| 38 | md.smb.runoffref = 0.9 * duration * ddf
|
---|
| 39 | md.smb.runoffref = np.vstack((md.smb.runoffref, duration))
|
---|
| 40 | md.smb.runoffalti = 0.0
|
---|
| 41 | -md.smb.runoffgrad = -6.5e-3 * ddf #lapse rate *ddf*day per year
|
---|
| 42 | +md.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
|
---|
| 43 |
|
---|
| 44 | md.basalforcings.groundedice_melting_rate = np.zeros((md.mesh.numberofvertices))
|
---|
| 45 | md.basalforcings.floatingice_melting_rate = np.zeros((md.mesh.numberofvertices))
|
---|
| 46 | Index: ../trunk-jpl/src/m/classes/SMBgradientscomponents.m
|
---|
| 47 | ===================================================================
|
---|
| 48 | --- ../trunk-jpl/src/m/classes/SMBgradientscomponents.m (revision 25208)
|
---|
| 49 | +++ ../trunk-jpl/src/m/classes/SMBgradientscomponents.m (revision 25209)
|
---|
| 50 | @@ -48,10 +48,10 @@
|
---|
| 51 | if ismember('MasstransportAnalysis',analyses),
|
---|
| 52 | md = checkfield(md,'fieldname','smb.accuref','singletimeseries',1,'NaN',1,'Inf',1);
|
---|
| 53 | md = checkfield(md,'fieldname','smb.accualti','numel',1,'NaN',1,'Inf',1);
|
---|
| 54 | - md = checkfield(md,'fieldname','smb.accugrad','numel',1,'NaN',1,'Inf',1);
|
---|
| 55 | + md = checkfield(md,'fieldname','smb.accugrad','singletimeseries',1,'NaN',1,'Inf',1);
|
---|
| 56 | md = checkfield(md,'fieldname','smb.runoffref','singletimeseries',1,'NaN',1,'Inf',1);
|
---|
| 57 | md = checkfield(md,'fieldname','smb.runoffalti','numel',1,'NaN',1,'Inf',1);
|
---|
| 58 | - md = checkfield(md,'fieldname','smb.runoffgrad','numel',1,'NaN',1,'Inf',1);
|
---|
| 59 | + md = checkfield(md,'fieldname','smb.runoffgrad','singletimeseries',1,'NaN',1,'Inf',1);
|
---|
| 60 | end
|
---|
| 61 | md = checkfield(md,'fieldname','smb.steps_per_step','>=',1,'numel',[1]);
|
---|
| 62 | md = checkfield(md,'fieldname','smb.averaging','numel',[1],'values',[0 1 2]);
|
---|
| 63 | @@ -80,11 +80,10 @@
|
---|
| 64 | WriteData(fid,prefix,'name','md.smb.model','data',11,'format','Integer');
|
---|
| 65 | WriteData(fid,prefix,'object',self,'class','smb','fieldname','accuref','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts,'scale',1./md.constants.yts);
|
---|
| 66 | WriteData(fid,prefix,'object',self,'class','smb','fieldname','accualti','format','Double');
|
---|
| 67 | - WriteData(fid,prefix,'object',self,'class','smb','fieldname','accugrad','format','Double','scale',1./md.constants.yts);
|
---|
| 68 | + WriteData(fid,prefix,'object',self,'class','smb','fieldname','accugrad','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts,'scale',1./md.constants.yts);
|
---|
| 69 | WriteData(fid,prefix,'object',self,'class','smb','fieldname','runoffref','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts,'scale',1./md.constants.yts);
|
---|
| 70 | WriteData(fid,prefix,'object',self,'class','smb','fieldname','runoffalti','format','Double');
|
---|
| 71 | - WriteData(fid,prefix,'object',self,'class','smb','fieldname','runoffgrad', ...
|
---|
| 72 | - 'format','Double','scale',1./md.constants.yts);
|
---|
| 73 | + WriteData(fid,prefix,'object',self,'class','smb','fieldname','runoffgrad','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts,'scale',1./md.constants.yts);
|
---|
| 74 | WriteData(fid, prefix, 'object', self, 'fieldname', 'steps_per_step', 'format', 'Integer');
|
---|
| 75 | WriteData(fid, prefix, 'object', self, 'fieldname', 'averaging', 'format', 'Integer');
|
---|
| 76 |
|
---|
| 77 | Index: ../trunk-jpl/src/m/classes/SMBgradientscomponents.py
|
---|
| 78 | ===================================================================
|
---|
| 79 | --- ../trunk-jpl/src/m/classes/SMBgradientscomponents.py (revision 25208)
|
---|
| 80 | +++ ../trunk-jpl/src/m/classes/SMBgradientscomponents.py (revision 25209)
|
---|
| 81 | @@ -63,10 +63,10 @@
|
---|
| 82 | if 'MasstransportAnalysis' in analyses:
|
---|
| 83 | md = checkfield(md, 'fieldname', 'smb.accuref', 'singletimeseries', 1, 'NaN', 1, 'Inf', 1)
|
---|
| 84 | md = checkfield(md, 'fieldname', 'smb.accualti', 'numel', [1], 'NaN', 1, 'Inf', 1)
|
---|
| 85 | - md = checkfield(md, 'fieldname', 'smb.accugrad', 'numel', [1], 'NaN', 1, 'Inf', 1)
|
---|
| 86 | + md = checkfield(md, 'fieldname', 'smb.accugrad', 'singletimeseries', 1, 'NaN', 1, 'Inf', 1)
|
---|
| 87 | md = checkfield(md, 'fieldname', 'smb.runoffref', 'singletimeseries', 1, 'NaN', 1, 'Inf', 1)
|
---|
| 88 | md = checkfield(md, 'fieldname', 'smb.runoffalti', 'numel', [1], 'NaN', 1, 'Inf', 1)
|
---|
| 89 | - md = checkfield(md, 'fieldname', 'smb.runoffgrad', 'numel', [1], 'NaN', 1, 'Inf', 1)
|
---|
| 90 | + md = checkfield(md, 'fieldname', 'smb.runoffgrad', 'singletimeseries', 1, 'NaN', 1, 'Inf', 1)
|
---|
| 91 |
|
---|
| 92 | md = checkfield(md, 'fieldname', 'smb.steps_per_step', '>=', 1, 'numel', [1])
|
---|
| 93 | md = checkfield(md, 'fieldname', 'smb.averaging', 'numel', [1], 'values', [0, 1, 2])
|
---|
| 94 | @@ -79,10 +79,10 @@
|
---|
| 95 | WriteData(fid, prefix, 'name', 'md.smb.model', 'data', 11, 'format', 'Integer')
|
---|
| 96 | WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'accuref', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', yts, 'scale', 1. / yts)
|
---|
| 97 | WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'accualti', 'format', 'Double')
|
---|
| 98 | - WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'accugrad', 'format', 'Double', 'scale', 1. / md.constants.yts)
|
---|
| 99 | + WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'accugrad', 'format', 'DoubleMat', 'scale', 1. / yts, 'scale', 1. / yts)
|
---|
| 100 | WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'runoffref', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', yts, 'scale', 1. / yts)
|
---|
| 101 | WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'runoffalti', 'format', 'Double')
|
---|
| 102 | - WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'runoffgrad', 'format', 'Double', 'scale', 1. / md.constants.yts)
|
---|
| 103 | + WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'runoffgrad', 'format', 'DoubleMat', 'scale', 1. / yts, 'scale', 1. / yts)
|
---|
| 104 | WriteData(fid, prefix, 'object', self, 'fieldname', 'steps_per_step', 'format', 'Integer')
|
---|
| 105 | WriteData(fid, prefix, 'object', self, 'fieldname', 'averaging', 'format', 'Integer')
|
---|
| 106 |
|
---|
| 107 | Index: ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp
|
---|
| 108 | ===================================================================
|
---|
| 109 | --- ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp (revision 25208)
|
---|
| 110 | +++ ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp (revision 25209)
|
---|
| 111 | @@ -376,17 +376,21 @@
|
---|
| 112 | break;
|
---|
| 113 | case SMBgradientscomponentsEnum:
|
---|
| 114 | parameters->AddObject(iomodel->CopyConstantObject("md.smb.accualti",SmbAccualtiEnum));
|
---|
| 115 | - parameters->AddObject(iomodel->CopyConstantObject("md.smb.accugrad",SmbAccugradEnum));
|
---|
| 116 | parameters->AddObject(iomodel->CopyConstantObject("md.smb.runoffalti",SmbRunoffaltiEnum));
|
---|
| 117 | - parameters->AddObject(iomodel->CopyConstantObject("md.smb.runoffgrad",SmbRunoffgradEnum));
|
---|
| 118 |
|
---|
| 119 | - iomodel->FetchData(&temp,&N,&M,"md.smb.accuref"); _assert_(N==2);
|
---|
| 120 | - parameters->AddObject(new TransientParam(SmbAccurefEnum,&temp[0],&temp[M],interp,M));
|
---|
| 121 | - iomodel->DeleteData(temp,"md.smb.accuref");
|
---|
| 122 | + iomodel->FetchData(&temp,&N,&M,"md.smb.accugrad"); _assert_(N==2);
|
---|
| 123 | + parameters->AddObject(new TransientParam(SmbAccugradEnum,&temp[0],&temp[M],interp,M));
|
---|
| 124 | + iomodel->DeleteData(temp,"md.smb.accugrad");
|
---|
| 125 | + iomodel->FetchData(&temp,&N,&M,"md.smb.runoffgrad"); _assert_(N==2);
|
---|
| 126 | + parameters->AddObject(new TransientParam(SmbRunoffgradEnum,&temp[0],&temp[M],interp,M));
|
---|
| 127 | + iomodel->DeleteData(temp,"md.smb.runoffgrad");
|
---|
| 128 |
|
---|
| 129 | - iomodel->FetchData(&temp,&N,&M,"md.smb.runoffref"); _assert_(N==2);
|
---|
| 130 | - parameters->AddObject(new TransientParam(SmbRunoffrefEnum,&temp[0],&temp[M],interp,M));
|
---|
| 131 | - iomodel->DeleteData(temp,"md.smb.runoffref");
|
---|
| 132 | + iomodel->FetchData(&temp,&N,&M,"md.smb.accuref"); _assert_(N==2);
|
---|
| 133 | + parameters->AddObject(new TransientParam(SmbAccurefEnum,&temp[0],&temp[M],interp,M));
|
---|
| 134 | + iomodel->DeleteData(temp,"md.smb.accuref");
|
---|
| 135 | + iomodel->FetchData(&temp,&N,&M,"md.smb.runoffref"); _assert_(N==2);
|
---|
| 136 | + parameters->AddObject(new TransientParam(SmbRunoffrefEnum,&temp[0],&temp[M],interp,M));
|
---|
| 137 | + iomodel->DeleteData(temp,"md.smb.runoffref");
|
---|
| 138 | break;
|
---|
| 139 | case SMBsemicEnum:
|
---|
| 140 | /*Nothing to add to parameters*/
|
---|
| 141 | Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
|
---|
| 142 | ===================================================================
|
---|
| 143 | --- ../trunk-jpl/src/c/classes/Elements/Element.cpp (revision 25208)
|
---|
| 144 | +++ ../trunk-jpl/src/c/classes/Elements/Element.cpp (revision 25209)
|
---|
| 145 | @@ -679,11 +679,11 @@
|
---|
| 146 | /*Recover parameters*/
|
---|
| 147 | parameters->FindParam(&time,TimeEnum);
|
---|
| 148 | parameters->FindParam(&accualti,SmbAccualtiEnum);
|
---|
| 149 | - parameters->FindParam(&accugrad,SmbAccugradEnum);
|
---|
| 150 | parameters->FindParam(&runoffalti,SmbRunoffaltiEnum);
|
---|
| 151 | - parameters->FindParam(&runoffgrad,SmbRunoffgradEnum);
|
---|
| 152 |
|
---|
| 153 | /*Recover reference values at current time*/
|
---|
| 154 | + parameters->FindParam(&accugrad,SmbAccugradEnum,time);
|
---|
| 155 | + parameters->FindParam(&runoffgrad,SmbRunoffgradEnum,time);
|
---|
| 156 | parameters->FindParam(&accuref,SmbAccurefEnum,time);
|
---|
| 157 | parameters->FindParam(&runoffref,SmbRunoffrefEnum,time);
|
---|
| 158 |
|
---|