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

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

Location:
codes/icosagcm/devel/Python/test/py
Files:
2 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", 
  • codes/icosagcm/devel/Python/test/py/write_Cartesian_mesh.py

    r825 r869  
    11from dynamico import getargs 
    2 getargs.add("--nx", type=int, 
    3                     default=64, choices=None, 
    4                     help="number of x points") 
    5 getargs.add("--ny", type=int, 
    6                     default=64, choices=None, 
    7                     help="number of y points") 
    8 getargs.add("--Lx", type=float, 
    9                     default=8., choices=None, 
    10                     help="Lx") 
    11 getargs.add("--Ly", type=float, 
    12                     default=8., choices=None, 
    13                     help="Ly") 
     2getargs.add("--nx", type=int, default=64,  
     3                    help="number of points along the x axis") 
     4getargs.add("--ny", type=int, default=0, 
     5                    help="number of points along the y axis, defaults to nx") 
     6getargs.add("--Lx", type=float, default=0.,  
     7                    help="domain size along x, defaults to nx") 
     8getargs.add("--Ly", type=float, default=0.,  
     9                    help="domain size along y, defaults to ny") 
    1410 
    1511args = getargs.parse() 
     
    2218 
    2319nx, ny, Lx, Ly, llm, nqdyn = args.nx, args.ny,args.Lx, args.Ly, 1, 1 
     20if ny==0 : ny=nx 
     21if Lx==0. : Lx=nx 
     22if Ly==0. : Ly=ny 
    2423 
    2524dx,dy=Lx/nx,Ly/ny 
Note: See TracChangeset for help on using the changeset viewer.