Index: ../trunk-jpl/src/m/classes/mask.m =================================================================== --- ../trunk-jpl/src/m/classes/mask.m (revision 15595) +++ ../trunk-jpl/src/m/classes/mask.m (revision 15596) @@ -60,9 +60,6 @@ WriteData(fid,'object',obj,'fieldname','vertexonfloatingice','format','DoubleMat','mattype',1); WriteData(fid,'object',obj,'fieldname','vertexongroundedice','format','DoubleMat','mattype',1); WriteData(fid,'object',obj,'fieldname','vertexonwater','format','DoubleMat','mattype',1); - icelevelset=ones(md.mesh.numberofvertices,1); - pos=md.diagnostic.icefront(:,1:end-2); - icelevelset(pos(:))=0; WriteData(fid,'object',obj,'fieldname','icelevelset','format','DoubleMat','mattype',1); end % }}} end Index: ../trunk-jpl/src/m/classes/mask.py =================================================================== --- ../trunk-jpl/src/m/classes/mask.py (revision 15595) +++ ../trunk-jpl/src/m/classes/mask.py (revision 15596) @@ -48,6 +48,12 @@ md = checkfield(md,'mask.vertexongroundedice' ,'size',[md.mesh.numberofvertices],'values',[0,1]) md = checkfield(md,'mask.vertexonwater' ,'size',[md.mesh.numberofvertices],'values',[0,1]) md = checkfield(md,'mask.icelevelset' ,'size',[md.mesh.numberofvertices]) + isice=numpy.zeros_like(md.mesh.numberofvertices,int) + pos=npy.nonzero(md.mask.icelevelset>0) + isice[pos]=1 + totalyicefree=(numpy.sum(isice[md.mesh.elements-1],axis=1)==0).astype(int) + if any(totalyicefree) + raise TypeError("elements with no ice not implemented yet, each element should have at least one vertex with md.mask.icelevelset > 0") return md # }}} @@ -58,9 +64,5 @@ WriteData(fid,'object',self,'fieldname','vertexonfloatingice','format','DoubleMat','mattype',1) WriteData(fid,'object',self,'fieldname','vertexongroundedice','format','DoubleMat','mattype',1) WriteData(fid,'object',self,'fieldname','vertexonwater','format','DoubleMat','mattype',1) - icelevelset=numpy.ones(md.mesh.numberofvertices,float) - if numpy.any(numpy.logical_not(numpy.isnan(md.diagnostic.icefront))): - pos=md.diagnostic.icefront[:,:-2] - icelevelset[pos[:].astype(int)-1]=0; WriteData(fid,'object',self,'fieldname','icelevelset','format','DoubleMat','mattype',1) # }}}