Changeset 22758 for issm/trunk/src/m/classes/linearbasalforcings.py
- Timestamp:
- 05/10/18 10:24:27 (7 years ago)
- Location:
- issm/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk
- Property svn:mergeinfo changed
-
issm/trunk/src
- Property svn:mergeinfo changed
-
issm/trunk/src/m/classes/linearbasalforcings.py
r21729 r22758 69 69 if 'MasstransportAnalysis' in analyses and not (solution=='TransientSolution' and not md.transient.ismasstransport): 70 70 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1) 71 md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0 );72 md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<', md.basalforcings.upperwater_elevation);73 md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','< ',0);71 md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0,'singletimeseries',1) 72 md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<','basalforcings.upperwater_elevation','singletimeseries',1) 73 md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<=',0,'singletimeseries',1) 74 74 75 75 if 'BalancethicknessAnalysis' in analyses: 76 76 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 77 md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0 );78 md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<', md.basalforcings.upperwater_elevation);79 md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','< ',0);77 md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0,'singletimeseries',1) 78 md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<','basalforcings.upperwater_elevation','singletimeseries',1) 79 md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<=',0,'singletimeseries',1) 80 80 81 81 if 'ThermalAnalysis' in analyses and not (solution=='TransientSolution' and not md.transient.isthermal): 82 82 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1) 83 md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0 );84 md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<', md.basalforcings.upperwater_elevation);85 md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<=',0 );83 md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0,'singletimeseries',1) 84 md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<','basalforcings.upperwater_elevation','singletimeseries',1) 85 md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<=',0,'singletimeseries',1) 86 86 md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0) 87 87 … … 92 92 yts=md.constants.yts 93 93 94 floatingice_melting_rate = np.zeros((md.mesh.numberofvertices)) 95 pos=np.nonzero(md.geometry.base<=md.basalforcings.deepwater_elevation) 96 floatingice_melting_rate[pos]=md.basalforcings.deepwater_melting_rate 97 pos=np.nonzero(np.logical_and(md.geometry.base>md.basalforcings.deepwater_elevation,md.geometry.base<md.basalforcings.upperwater_elevation)) 98 floatingice_melting_rate[pos]=md.basalforcings.deepwater_melting_rate*(md.geometry.base[pos]-md.basalforcings.upperwater_elevation)/(md.basalforcings.deepwater_elevation-md.basalforcings.upperwater_elevation) 99 100 WriteData(fid,prefix,'name','md.basalforcings.model','data',2,'format','Integer'); 94 WriteData(fid,prefix,'name','md.basalforcings.model','data',2,'format','Integer') 101 95 WriteData(fid,prefix,'object',self,'fieldname','groundedice_melting_rate','name','md.basalforcings.groundedice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 102 WriteData(fid,prefix,'data',floatingice_melting_rate,'name','md.basalforcings.floatingice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)103 96 WriteData(fid,prefix,'object',self,'fieldname','geothermalflux','name','md.basalforcings.geothermalflux','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 104 WriteData(fid,prefix,'object',self,'fieldname','deepwater_melting_rate',' name','md.basalforcings.deepwater_melting_rate','format','Double','scale',1./yts)105 WriteData(fid,prefix,'object',self,'fieldname','deepwater_elevation',' name','md.basalforcings.deepwater_elevation','format','Double')106 WriteData(fid,prefix,'object',self,'fieldname','upperwater_elevation',' name','md.basalforcings.upperwater_elevation','format','Double')97 WriteData(fid,prefix,'object',self,'fieldname','deepwater_melting_rate','format','DoubleMat','mattype',3,'timeserieslength',2,'name','md.basalforcings.deepwater_melting_rate','scale',1./yts,'yts',md.constants.yts) 98 WriteData(fid,prefix,'object',self,'fieldname','deepwater_elevation','format','DoubleMat','mattype',3,'name','md.basalforcings.deepwater_elevation','yts',md.constants.yts) 99 WriteData(fid,prefix,'object',self,'fieldname','upperwater_elevation','format','DoubleMat','mattype',3,'name','md.basalforcings.upperwater_elevation','yts',md.constants.yts) 107 100 # }}}
Note:
See TracChangeset
for help on using the changeset viewer.