source:
issm/oecreview/Archive/24684-25833/ISSM-25208-25209.diff
Last change on this file was 25834, checked in by , 4 years ago | |
---|---|
File size: 10.5 KB |
-
../trunk-jpl/test/NightlyRun/test905.m
40 40 duration=[md.timestepping.start_time:smb_step:md.timestepping.final_time]; 41 41 42 42 ddf=10.0e-3; 43 md.smb.accuref=[[0.5 0.5];[ 0. 2.0]];43 md.smb.accuref=[[0.5 0.5];[md.timestepping.start_time md.timestepping.final_time]]; 44 44 md.smb.accualti=0.0; 45 md.smb.accugrad= 0.0;45 md.smb.accugrad=[[0. 0.];[md.timestepping.start_time md.timestepping.final_time]]; 46 46 47 47 md.smb.runoffref=0.9*duration*ddf; 48 48 md.smb.runoffref=[md.smb.runoffref;duration]; 49 49 md.smb.runoffalti=0.0; 50 md.smb.runoffgrad= -6.5e-3*ddf; %lapse rate *ddf*day per year50 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 51 51 52 52 md.basalforcings.groundedice_melting_rate=zeros(md.mesh.numberofvertices,1); 53 53 md.basalforcings.floatingice_melting_rate=zeros(md.mesh.numberofvertices,1); -
../trunk-jpl/test/NightlyRun/test905.py
54 54 duration = np.arange(md.timestepping.start_time, md.timestepping.final_time + smb_step, smb_step) 55 55 56 56 ddf = 10.0e-3 57 md.smb.accuref = np.array([[0.5, 0.5], [ 0., 2.0]])57 md.smb.accuref = np.array([[0.5, 0.5], [md.timestepping.start_time, md.timestepping.final_time]]) 58 58 md.smb.accualti = 0.0 59 md.smb.accugrad = 0.059 md.smb.accugrad = np.array([[0., 0.], [md.timestepping.start_time, md.timestepping.final_time]]) 60 60 61 61 #md.smb.runoffref = 9. * ddf * np.ones(np.shape(duration)) #constant input for testing 62 62 md.smb.runoffref = 0.9 * duration * ddf 63 63 md.smb.runoffref = np.vstack((md.smb.runoffref, duration)) 64 64 md.smb.runoffalti = 0.0 65 md.smb.runoffgrad = -6.5e-3 * ddf#lapse rate *ddf*day per year65 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 66 66 67 67 md.basalforcings.groundedice_melting_rate = np.zeros((md.mesh.numberofvertices)) 68 68 md.basalforcings.floatingice_melting_rate = np.zeros((md.mesh.numberofvertices)) -
../trunk-jpl/src/m/classes/SMBgradientscomponents.m
48 48 if ismember('MasstransportAnalysis',analyses), 49 49 md = checkfield(md,'fieldname','smb.accuref','singletimeseries',1,'NaN',1,'Inf',1); 50 50 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); 52 52 md = checkfield(md,'fieldname','smb.runoffref','singletimeseries',1,'NaN',1,'Inf',1); 53 53 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); 55 55 end 56 56 md = checkfield(md,'fieldname','smb.steps_per_step','>=',1,'numel',[1]); 57 57 md = checkfield(md,'fieldname','smb.averaging','numel',[1],'values',[0 1 2]); … … 80 80 WriteData(fid,prefix,'name','md.smb.model','data',11,'format','Integer'); 81 81 WriteData(fid,prefix,'object',self,'class','smb','fieldname','accuref','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts,'scale',1./md.constants.yts); 82 82 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); 84 84 WriteData(fid,prefix,'object',self,'class','smb','fieldname','runoffref','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts,'scale',1./md.constants.yts); 85 85 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); 88 87 WriteData(fid, prefix, 'object', self, 'fieldname', 'steps_per_step', 'format', 'Integer'); 89 88 WriteData(fid, prefix, 'object', self, 'fieldname', 'averaging', 'format', 'Integer'); 90 89 -
../trunk-jpl/src/m/classes/SMBgradientscomponents.py
63 63 if 'MasstransportAnalysis' in analyses: 64 64 md = checkfield(md, 'fieldname', 'smb.accuref', 'singletimeseries', 1, 'NaN', 1, 'Inf', 1) 65 65 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) 67 67 md = checkfield(md, 'fieldname', 'smb.runoffref', 'singletimeseries', 1, 'NaN', 1, 'Inf', 1) 68 68 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) 70 70 71 71 md = checkfield(md, 'fieldname', 'smb.steps_per_step', '>=', 1, 'numel', [1]) 72 72 md = checkfield(md, 'fieldname', 'smb.averaging', 'numel', [1], 'values', [0, 1, 2]) … … 79 79 WriteData(fid, prefix, 'name', 'md.smb.model', 'data', 11, 'format', 'Integer') 80 80 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'accuref', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', yts, 'scale', 1. / yts) 81 81 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) 83 83 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'runoffref', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', yts, 'scale', 1. / yts) 84 84 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) 86 86 WriteData(fid, prefix, 'object', self, 'fieldname', 'steps_per_step', 'format', 'Integer') 87 87 WriteData(fid, prefix, 'object', self, 'fieldname', 'averaging', 'format', 'Integer') 88 88 -
../trunk-jpl/src/c/analyses/SmbAnalysis.cpp
376 376 break; 377 377 case SMBgradientscomponentsEnum: 378 378 parameters->AddObject(iomodel->CopyConstantObject("md.smb.accualti",SmbAccualtiEnum)); 379 parameters->AddObject(iomodel->CopyConstantObject("md.smb.accugrad",SmbAccugradEnum));380 379 parameters->AddObject(iomodel->CopyConstantObject("md.smb.runoffalti",SmbRunoffaltiEnum)); 381 parameters->AddObject(iomodel->CopyConstantObject("md.smb.runoffgrad",SmbRunoffgradEnum));382 380 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"); 386 387 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"); 390 394 break; 391 395 case SMBsemicEnum: 392 396 /*Nothing to add to parameters*/ -
../trunk-jpl/src/c/classes/Elements/Element.cpp
679 679 /*Recover parameters*/ 680 680 parameters->FindParam(&time,TimeEnum); 681 681 parameters->FindParam(&accualti,SmbAccualtiEnum); 682 parameters->FindParam(&accugrad,SmbAccugradEnum);683 682 parameters->FindParam(&runoffalti,SmbRunoffaltiEnum); 684 parameters->FindParam(&runoffgrad,SmbRunoffgradEnum);685 683 686 684 /*Recover reference values at current time*/ 685 parameters->FindParam(&accugrad,SmbAccugradEnum,time); 686 parameters->FindParam(&runoffgrad,SmbRunoffgradEnum,time); 687 687 parameters->FindParam(&accuref,SmbAccurefEnum,time); 688 688 parameters->FindParam(&runoffref,SmbRunoffrefEnum,time); 689 689
Note:
See TracBrowser
for help on using the repository browser.