Ignore:
Timestamp:
05/17/19 13:20:04 (5 years ago)
Author:
dubos
Message:

devel/Python : write cell bounds into mesh file / partition file

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/devel/Python/test/py/dump_partition.py

    r825 r869  
    107107    def create_vars(self,f,dimname, info): 
    108108        for vname, vtype, vdata in info: 
     109            vdata = np.asarray(vdata) 
     110            print('creating variable %s with shape %s.' %(vname, vdata.shape)) 
    109111            var = f.createVariable(vname,vtype,dimname) 
    110112            var[:] = vdata 
    111113     
    112114    def meshwrite(self,name): 
     115        mesh = self._mesh 
    113116        """ Writing Mesh information to disk for Fortran segment""" 
    114117     
     
    124127     
    125128        #----------------DEFINING DIMENSIONS-------------------- 
     129        max_primal_deg = mesh.primal_deg.max() 
     130        max_dual_deg = mesh.dual_deg.max() 
     131        max_trisk_deg = mesh.trisk_deg.max() 
     132        def crop(dim, *data) : return [ x[:,0:dim] for x in data ] 
     133        mesh.primal_edge, mesh.primal_ne, mesh.primal_vertex = crop(max_primal_deg, mesh.primal_edge, mesh.primal_ne, mesh.primal_vertex) 
     134        mesh.dual_edge, mesh.dual_ne = crop(max_dual_deg, mesh.dual_edge, mesh.dual_ne) 
     135        mesh.trisk, mesh.wee = crop(max_trisk_deg, mesh.trisk, mesh.wee) 
     136 
    126137        for dimname, dimsize in [("primal_cell", self._mesh.primal_deg.size), 
    127138                                    ("dual_cell", self._mesh.dual_deg.size), 
     
    144155     
    145156        self.create_vars(f,("primal_cell","primal_edge_or_vertex"), 
    146                     [("primal_vertex","i4",self._mesh.primal_vertex), 
    147                     ("primal_edge","i4",self._mesh.primal_edge), 
    148                     ("primal_ne","i4",self._mesh.primal_ne) ]) 
    149      
     157                         [("primal_vertex","i4",self._mesh.primal_vertex), 
     158                          ("primal_bounds_lon","f8",self._mesh.primal_bounds_lon), 
     159                          ("primal_bounds_lat","f8",self._mesh.primal_bounds_lat), 
     160                          ("primal_edge","i4",self._mesh.primal_edge), 
     161                          ("primal_ne","i4",self._mesh.primal_ne) ]) 
     162         
    150163        self.create_vars(f,"dual_cell", 
    151164                    [("dual_deg","i4",self._mesh.dual_deg), 
     
    161174        self.create_vars(f,("dual_cell","dual_edge_or_vertex"), 
    162175                    [("dual_edge","i4",self._mesh.dual_edge), 
    163                     ("dual_vertex","i4",self._mesh.dual_vertex), 
    164                     ("dual_ne","i4",self._mesh.dual_ne), 
    165                     ("Riv2","f8",self._mesh.Riv2)]) 
     176                     ("dual_vertex","i4",self._mesh.dual_vertex), 
     177                     ("dual_bounds_lon","f8",self._mesh.dual_bounds_lon), 
     178                     ("dual_bounds_lat","f8",self._mesh.dual_bounds_lat), 
     179                     ("dual_ne","i4",self._mesh.dual_ne), 
     180                     ("Riv2","f8",self._mesh.Riv2)]) 
    166181     
    167182        self.create_vars(f,"edge", 
Note: See TracChangeset for help on using the changeset viewer.