@@ -458,14 +458,19 @@ def modelgrid(self):
458458                if  idomain  is  None :
459459                    force_resync  =  True 
460460                    idomain  =  self ._resolve_idomain (idomain , botm )
461+                 crs  =  self ._modelgrid .crs 
462+                 if  crs  is  None  and  hasattr (dis , "crs" ):
463+                     crs  =  dis .crs .get_data ()
464+                     if  crs  is  not None :
465+                         crs  =  crs [0 ][1 ]
461466                self ._modelgrid  =  StructuredGrid (
462467                    delc = dis .delc .array ,
463468                    delr = dis .delr .array ,
464469                    top = dis .top .array ,
465470                    botm = botm ,
466471                    idomain = idomain ,
467472                    lenuni = dis .length_units .array ,
468-                     crs = self . _modelgrid . crs ,
473+                     crs = crs ,
469474                    xoff = self ._modelgrid .xoffset ,
470475                    yoff = self ._modelgrid .yoffset ,
471476                    angrot = self ._modelgrid .angrot ,
@@ -496,14 +501,19 @@ def modelgrid(self):
496501                if  idomain  is  None :
497502                    force_resync  =  True 
498503                    idomain  =  self ._resolve_idomain (idomain , botm )
504+                 crs  =  self ._modelgrid .crs 
505+                 if  crs  is  None  and  hasattr (dis , "crs" ):
506+                     crs  =  dis .crs .get_data ()
507+                     if  crs  is  not None :
508+                         crs  =  crs [0 ][1 ]
499509                self ._modelgrid  =  VertexGrid (
500510                    vertices = dis .vertices .array ,
501511                    cell2d = dis .cell2d .array ,
502512                    top = dis .top .array ,
503513                    botm = botm ,
504514                    idomain = idomain ,
505515                    lenuni = dis .length_units .array ,
506-                     crs = self . _modelgrid . crs ,
516+                     crs = crs ,
507517                    xoff = self ._modelgrid .xoffset ,
508518                    yoff = self ._modelgrid .yoffset ,
509519                    angrot = self ._modelgrid .angrot ,
@@ -525,6 +535,11 @@ def modelgrid(self):
525535            idomain  =  dis .idomain .array 
526536            if  idomain  is  None :
527537                idomain  =  np .ones (dis .nodes .array , dtype = int )
538+             crs  =  self ._modelgrid .crs 
539+             if  crs  is  None  and  hasattr (dis , "crs" ):
540+                 crs  =  dis .crs .get_data ()
541+                 if  crs  is  not None :
542+                     crs  =  crs [0 ][1 ]
528543            if  cell2d  is  None :
529544                if  (
530545                    self .simulation .simulation_data .verbosity_level .value 
@@ -557,7 +572,7 @@ def modelgrid(self):
557572                idomain = idomain ,
558573                lenuni = dis .length_units .array ,
559574                ncpl = ncpl ,
560-                 crs = self . _modelgrid . crs ,
575+                 crs = crs ,
561576                xoff = self ._modelgrid .xoffset ,
562577                yoff = self ._modelgrid .yoffset ,
563578                angrot = self ._modelgrid .angrot ,
@@ -590,14 +605,19 @@ def modelgrid(self):
590605                if  idomain  is  None :
591606                    force_resync  =  True 
592607                    idomain  =  self ._resolve_idomain (idomain , botm )
608+                 crs  =  self ._modelgrid .crs 
609+                 if  crs  is  None  and  hasattr (dis , "crs" ):
610+                     crs  =  dis .crs .get_data ()
611+                     if  crs  is  not None :
612+                         crs  =  crs [0 ][1 ]
593613                self ._modelgrid  =  VertexGrid (
594614                    vertices = dis .vertices .array ,
595615                    cell1d = dis .cell1d .array ,
596616                    top = None ,
597617                    botm = botm ,
598618                    idomain = idomain ,
599619                    lenuni = dis .length_units .array ,
600-                     crs = self . _modelgrid . crs ,
620+                     crs = crs ,
601621                    xoff = self ._modelgrid .xoffset ,
602622                    yoff = self ._modelgrid .yoffset ,
603623                    angrot = self ._modelgrid .angrot ,
@@ -628,14 +648,19 @@ def modelgrid(self):
628648                if  idomain  is  None :
629649                    force_resync  =  True 
630650                    idomain  =  self ._resolve_idomain (idomain , botm )
651+                 crs  =  self ._modelgrid .crs 
652+                 if  crs  is  None  and  hasattr (dis , "crs" ):
653+                     crs  =  dis .crs .get_data ()
654+                     if  crs  is  not None :
655+                         crs  =  crs [0 ][1 ]
631656                self ._modelgrid  =  StructuredGrid (
632657                    delc = dis .delc .array ,
633658                    delr = dis .delr .array ,
634659                    top = None ,
635660                    botm = botm ,
636661                    idomain = idomain ,
637662                    lenuni = dis .length_units .array ,
638-                     crs = self . _modelgrid . crs ,
663+                     crs = crs ,
639664                    xoff = self ._modelgrid .xoffset ,
640665                    yoff = self ._modelgrid .yoffset ,
641666                    angrot = self ._modelgrid .angrot ,
@@ -666,14 +691,19 @@ def modelgrid(self):
666691                if  idomain  is  None :
667692                    force_resync  =  True 
668693                    idomain  =  self ._resolve_idomain (idomain , botm )
694+                 crs  =  self ._modelgrid .crs 
695+                 if  crs  is  None  and  hasattr (dis , "crs" ):
696+                     crs  =  dis .crs .get_data ()
697+                     if  crs  is  not None :
698+                         crs  =  crs [0 ][1 ]
669699                self ._modelgrid  =  VertexGrid (
670700                    vertices = dis .vertices .array ,
671701                    cell2d = dis .cell2d .array ,
672702                    top = None ,
673703                    botm = botm ,
674704                    idomain = idomain ,
675705                    lenuni = dis .length_units .array ,
676-                     crs = self . _modelgrid . crs ,
706+                     crs = crs ,
677707                    xoff = self ._modelgrid .xoffset ,
678708                    yoff = self ._modelgrid .yoffset ,
679709                    angrot = self ._modelgrid .angrot ,
@@ -1361,13 +1391,6 @@ def write(
13611391            if  write_netcdf :
13621392                # set data storage to write ascii for netcdf 
13631393                pp ._set_netcdf_storage ()
1364-             if  (
1365-                 pp .package_type .startswith ("dis" )
1366-                 and  hasattr (pp , "crs" )
1367-             ):
1368-                 crs  =  pp .crs .get_data ()
1369-                 if  crs  is  not None  and  self .modelgrid .crs  is  None :
1370-                     self .modelgrid .crs  =  crs [0 ][1 ]
13711394            if  (
13721395                self .simulation_data .verbosity_level .value 
13731396                >=  VerbosityLevel .normal .value 
@@ -2366,7 +2389,7 @@ def _write_netcdf(self, mesh=None):
23662389        nc_meta ["attrs" ]["history" ] =  f"first created { timestamp }  
23672390        if  mesh  is  None :
23682391            nc_meta ["attrs" ]["Conventions" ] =  "CF-1.11" 
2369-         elif  mesh .upper () is  "LAYERED" :
2392+         elif  mesh .upper () ==  "LAYERED" :
23702393            nc_meta ["attrs" ]["Conventions" ] =  "CF-1.11 UGRID-1.0" 
23712394
23722395        ds  =  self .update_dataset (
0 commit comments