diff --git a/.docs/md/version_changes.md b/.docs/md/version_changes.md
index d4213be081..51e1e22b7f 100644
--- a/.docs/md/version_changes.md
+++ b/.docs/md/version_changes.md
@@ -1,4 +1,10 @@
 # Changelog
+### Version 3.9.1
+
+#### Mf6
+
+* [mf6](https://github.com/modflowpy/flopy/commit/4952f81f3b4935c51513593011166fbd88dfd85c): Update dfns and mf6 module (#2399). Committed by wpbonelli on 2024-12-20.
+
 ### Version 3.9.0
 
 #### New features
diff --git a/CITATION.cff b/CITATION.cff
index 4509967430..01a1b5bcd8 100644
--- a/CITATION.cff
+++ b/CITATION.cff
@@ -3,7 +3,7 @@ message: If you use this software, please cite both the article from preferred-c
   references, and the software itself.
 type: software
 title: FloPy
-version: 3.9.0
+version: 3.9.1
 date-released: '2024-12-20'
 doi: 10.5066/F7BK19FH
 abstract: A Python package to create, run, and post-process MODFLOW-based models.
diff --git a/README.md b/README.md
index bfe9bfbe5e..be33b4d6ce 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
 
 <img src="https://raw.githubusercontent.com/modflowpy/flopy/master/examples/images/flopy3.png" alt="flopy3" style="width:50;height:20">
 
-### Version 3.9.0
+### Version 3.9.1
 [![flopy continuous integration](https://github.com/modflowpy/flopy/actions/workflows/commit.yml/badge.svg?branch=develop)](https://github.com/modflowpy/flopy/actions/workflows/commit.yml)
 [![Read the Docs](https://github.com/modflowpy/flopy/actions/workflows/rtd.yml/badge.svg?branch=develop)](https://github.com/modflowpy/flopy/actions/workflows/rtd.yml)
 
@@ -150,7 +150,7 @@ How to Cite
 
 ##### ***Software/Code citation for FloPy:***
 
-[Bakker, Mark, Post, Vincent, Hughes, J. D., Langevin, C. D., White, J. T., Leaf, A. T., Paulinski, S. R., Bellino, J. C., Morway, E. D., Toews, M. W., Larsen, J. D., Fienen, M. N., Starn, J. J., Brakenhoff, D. A., and Bonelli, W. P., 2024, FloPy v3.9.0: U.S. Geological Survey Software Release, 20 December 2024, https://doi.org/10.5066/F7BK19FH](https://doi.org/10.5066/F7BK19FH)
+[Bakker, Mark, Post, Vincent, Hughes, J. D., Langevin, C. D., White, J. T., Leaf, A. T., Paulinski, S. R., Bellino, J. C., Morway, E. D., Toews, M. W., Larsen, J. D., Fienen, M. N., Starn, J. J., Brakenhoff, D. A., and Bonelli, W. P., 2024, FloPy v3.9.1: U.S. Geological Survey Software Release, 20 December 2024, https://doi.org/10.5066/F7BK19FH](https://doi.org/10.5066/F7BK19FH)
 
 
 Additional FloPy Related Publications
diff --git a/docs/PyPI_release.md b/docs/PyPI_release.md
index 5a63b8b591..1699f331c2 100644
--- a/docs/PyPI_release.md
+++ b/docs/PyPI_release.md
@@ -30,4 +30,4 @@ How to Cite
 
 *Software/Code citation for FloPy:*
 
-[Bakker, Mark, Post, Vincent, Hughes, J. D., Langevin, C. D., White, J. T., Leaf, A. T., Paulinski, S. R., Bellino, J. C., Morway, E. D., Toews, M. W., Larsen, J. D., Fienen, M. N., Starn, J. J., Brakenhoff, D. A., and Bonelli, W. P., 2024, FloPy v3.9.0: U.S. Geological Survey Software Release, 20 December 2024, https://doi.org/10.5066/F7BK19FH](https://doi.org/10.5066/F7BK19FH)
+[Bakker, Mark, Post, Vincent, Hughes, J. D., Langevin, C. D., White, J. T., Leaf, A. T., Paulinski, S. R., Bellino, J. C., Morway, E. D., Toews, M. W., Larsen, J. D., Fienen, M. N., Starn, J. J., Brakenhoff, D. A., and Bonelli, W. P., 2024, FloPy v3.9.1: U.S. Geological Survey Software Release, 20 December 2024, https://doi.org/10.5066/F7BK19FH](https://doi.org/10.5066/F7BK19FH)
diff --git a/flopy/mf6/data/dfn/exg-gwegwe.dfn b/flopy/mf6/data/dfn/exg-gwegwe.dfn
index 7b79ce7e7e..1f4f03e6f8 100644
--- a/flopy/mf6/data/dfn/exg-gwegwe.dfn
+++ b/flopy/mf6/data/dfn/exg-gwegwe.dfn
@@ -24,7 +24,7 @@ shape (naux)
 reader urword
 optional true
 longname keyword to specify aux variables
-description an array of auxiliary variable names.  There is no limit on the number of auxiliary variables that can be provided. Most auxiliary variables will not be used by the GWF-GWF Exchange, but they will be available for use by other parts of the program.  If an auxiliary variable with the name ``ANGLDEGX'' is found, then this information will be used as the angle (provided in degrees) between the connection face normal and the x axis, where a value of zero indicates that a normal vector points directly along the positive x axis.  The connection face normal is a normal vector on the cell face shared between the cell in model 1 and the cell in model 2 pointing away from the model 1 cell.  Additional information on ``ANGLDEGX'' is provided in the description of the DISU Package.  If an auxiliary variable with the name ``CDIST'' is found, then this information will be used as the straight-line connection distance, including the vertical component, between the two cell centers.  Both ANGLDEGX and CDIST are required if specific discharge is calculated for either of the groundwater models.
+description an array of auxiliary variable names.  There is no limit on the number of auxiliary variables that can be provided. Most auxiliary variables will not be used by the GWE-GWE Exchange, but they will be available for use by other parts of the program.  If an auxiliary variable with the name ``ANGLDEGX'' is found, then this information will be used as the angle (provided in degrees) between the connection face normal and the x axis, where a value of zero indicates that a normal vector points directly along the positive x axis.  The connection face normal is a normal vector on the cell face shared between the cell in model 1 and the cell in model 2 pointing away from the model 1 cell.  Additional information on ``ANGLDEGX'' is provided in the description of the DISU Package.  If an auxiliary variable with the name ``CDIST'' is found, then this information will be used as the straight-line connection distance, including the vertical component, between the two cell centers.  Both ANGLDEGX and CDIST are required if specific discharge is calculated for either of the groundwater models.
 
 block options
 name boundnames
@@ -162,7 +162,7 @@ tagged false
 reader urword
 optional false
 longname obs6 input filename
-description is the file name of the observations input file for this exchange. See the ``Observation utility'' section for instructions for preparing observation input files. Table \ref{table:gwe-obstypetable} lists observation type(s) supported by the GWE-GWE package.
+description is the file name of the observations input file for this exchange. See the ``Observation utility'' section for instructions for preparing observation input files. Table \ref{table:gwe-obstypetable} lists observation type(s) supported by the GWE-GWE Exchange Package.
 
 block options
 name dev_interfacemodel_on
diff --git a/flopy/mf6/data/dfn/gwe-cnd.dfn b/flopy/mf6/data/dfn/gwe-cnd.dfn
index d9d51b3011..0ff0a314db 100644
--- a/flopy/mf6/data/dfn/gwe-cnd.dfn
+++ b/flopy/mf6/data/dfn/gwe-cnd.dfn
@@ -27,6 +27,16 @@ mf6internal export_ascii
 longname export array variables to layered ascii files.
 description keyword that specifies input griddata arrays should be written to layered ascii output files.
 
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+extended true
+
 # --------------------- gwe cnd griddata ---------------------
 
 block griddata
@@ -35,6 +45,7 @@ type double precision
 shape (nodes)
 reader readarray
 layered true
+netcdf true
 optional true
 longname longitudinal dispersivity in horizontal direction
 description longitudinal dispersivity in horizontal direction.  If flow is strictly horizontal, then this is the longitudinal dispersivity that will be used.  If flow is not strictly horizontal or strictly vertical, then the longitudinal dispersivity is a function of both ALH and ALV.  If mechanical dispersion is represented (by specifying any dispersivity values) then this array is required.
@@ -45,6 +56,7 @@ type double precision
 shape (nodes)
 reader readarray
 layered true
+netcdf true
 optional true
 longname longitudinal dispersivity in vertical direction
 description longitudinal dispersivity in vertical direction.  If flow is strictly vertical, then this is the longitudinal dispsersivity value that will be used.  If flow is not strictly horizontal or strictly vertical, then the longitudinal dispersivity is a function of both ALH and ALV.  If this value is not specified and mechanical dispersion is represented, then this array is set equal to ALH.
@@ -55,6 +67,7 @@ type double precision
 shape (nodes)
 reader readarray
 layered true
+netcdf true
 optional true
 longname transverse dispersivity in horizontal direction
 description transverse dispersivity in horizontal direction.  This is the transverse dispersivity value for the second ellipsoid axis.  If flow is strictly horizontal and directed in the x direction (along a row for a regular grid), then this value controls spreading in the y direction.  If mechanical dispersion is represented (by specifying any dispersivity values) then this array is required.
@@ -65,6 +78,7 @@ type double precision
 shape (nodes)
 reader readarray
 layered true
+netcdf true
 optional true
 longname transverse dispersivity in horizontal direction
 description transverse dispersivity in horizontal direction.  This is the transverse dispersivity value for the third ellipsoid axis.  If flow is strictly horizontal and directed in the x direction (along a row for a regular grid), then this value controls spreading in the z direction.  If this value is not specified and mechanical dispersion is represented, then this array is set equal to ATH1.
@@ -75,6 +89,7 @@ type double precision
 shape (nodes)
 reader readarray
 layered true
+netcdf true
 optional true
 longname transverse dispersivity when flow is in vertical direction
 description transverse dispersivity when flow is in vertical direction.  If flow is strictly vertical and directed in the z direction, then this value controls spreading in the x and y directions.  If this value is not specified and mechanical dispersion is represented, then this array is set equal to ATH2.
@@ -85,6 +100,7 @@ type double precision
 shape (nodes)
 reader readarray
 layered true
+netcdf true
 optional true
 longname thermal conductivity of the simulated fluid
 description thermal conductivity of the simulated fluid.   Note that the CND Package does not account for the tortuosity of the flow paths when solving for the conductive spread of heat.  If tortuosity plays an important role in the thermal conductivity calculation, its effect should be reflected in the value specified for KTW.
@@ -95,7 +111,8 @@ type double precision
 shape (nodes)
 reader readarray
 layered true
+netcdf true
 optional true
 longname thermal conductivity of the aquifer material
-description thermal conductivity of the aquifer material
+description thermal conductivity of the solid aquifer material
 
diff --git a/flopy/mf6/data/dfn/gwe-ctp.dfn b/flopy/mf6/data/dfn/gwe-ctp.dfn
index d8dd2bc68b..431a0a8f73 100644
--- a/flopy/mf6/data/dfn/gwe-ctp.dfn
+++ b/flopy/mf6/data/dfn/gwe-ctp.dfn
@@ -139,7 +139,7 @@ type integer
 reader urword
 optional false
 longname maximum number of constant temperatures
-description REPLACE maxbound {'{#1}': 'constant temperatures'}
+description REPLACE maxbound {'{#1}': 'constant temperature'}
 
 
 # --------------------- gwe ctp period ---------------------
diff --git a/flopy/mf6/data/dfn/gwe-dis.dfn b/flopy/mf6/data/dfn/gwe-dis.dfn
index 2326105aa0..f38d8434cf 100644
--- a/flopy/mf6/data/dfn/gwe-dis.dfn
+++ b/flopy/mf6/data/dfn/gwe-dis.dfn
@@ -1,4 +1,5 @@
 # --------------------- gwe dis options ---------------------
+# mf6 subpackage utl-ncf
 
 block options
 name length_units
@@ -49,6 +50,58 @@ mf6internal export_ascii
 longname export array variables to layered ascii files.
 description keyword that specifies input griddata arrays should be written to layered ascii output files.
 
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+extended true
+
+block options
+name ncf_filerecord
+type record ncf6 filein ncf6_filename
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name ncf6
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname ncf keyword
+description keyword to specify that record corresponds to a netcdf configuration (NCF) file.
+extended true
+
+block options
+name filein
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block options
+name ncf6_filename
+type string
+preserve_case true
+in_record true
+reader urword
+optional false
+tagged false
+longname file name of NCF information
+description defines a netcdf configuration (NCF) input file.
+extended true
+
 # --------------------- gwe dis dimensions ---------------------
 
 block dimensions
@@ -85,6 +138,7 @@ name delr
 type double precision
 shape (ncol)
 reader readarray
+netcdf true
 longname spacing along a row
 description is the column spacing in the row direction.
 default_value 1.0
@@ -94,6 +148,7 @@ name delc
 type double precision
 shape (nrow)
 reader readarray
+netcdf true
 longname spacing along a column
 description is the row spacing in the column direction.
 default_value 1.0
@@ -103,6 +158,7 @@ name top
 type double precision
 shape (ncol, nrow)
 reader readarray
+netcdf true
 longname cell top elevation
 description is the top elevation for each cell in the top model layer.
 default_value 1.0
@@ -113,6 +169,7 @@ type double precision
 shape (ncol, nrow, nlay)
 reader readarray
 layered true
+netcdf true
 longname cell bottom elevation
 description is the bottom elevation for each cell.
 default_value 0.
@@ -123,6 +180,7 @@ type integer
 shape (ncol, nrow, nlay)
 reader readarray
 layered true
+netcdf true
 optional true
 longname idomain existence array
 description is an optional array that characterizes the existence status of a cell.  If the IDOMAIN array is not specified, then all model cells exist within the solution.  If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation.  Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution.  If the IDOMAIN value for a cell is 1, the cell exists in the simulation.  If the IDOMAIN value for a cell is -1, the cell does not exist in the simulation.  Furthermore, the first existing cell above will be connected to the first existing cell below.  This type of cell is referred to as a ``vertical pass through'' cell.
diff --git a/flopy/mf6/data/dfn/gwe-disv.dfn b/flopy/mf6/data/dfn/gwe-disv.dfn
index ff91ef0cfd..85d95504c0 100644
--- a/flopy/mf6/data/dfn/gwe-disv.dfn
+++ b/flopy/mf6/data/dfn/gwe-disv.dfn
@@ -1,4 +1,5 @@
 # --------------------- gwe disv options ---------------------
+# mf6 subpackage utl-ncf
 
 block options
 name length_units
@@ -49,6 +50,58 @@ mf6internal export_ascii
 longname export array variables to layered ascii files.
 description keyword that specifies input griddata arrays should be written to layered ascii output files.
 
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+extended true
+
+block options
+name ncf_filerecord
+type record ncf6 filein ncf6_filename
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name ncf6
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname ncf keyword
+description keyword to specify that record corresponds to a netcdf configuration (NCF) file.
+extended true
+
+block options
+name filein
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block options
+name ncf6_filename
+type string
+preserve_case true
+in_record true
+reader urword
+optional false
+tagged false
+longname file name of NCF information
+description defines a netcdf configuration (NCF) input file.
+extended true
+
 # --------------------- gwe disv dimensions ---------------------
 
 block dimensions
@@ -82,6 +135,7 @@ name top
 type double precision
 shape (ncpl)
 reader readarray
+netcdf true
 longname model top elevation
 description is the top elevation for each cell in the top model layer.
 
@@ -91,6 +145,7 @@ type double precision
 shape (ncpl, nlay)
 reader readarray
 layered true
+netcdf true
 longname model bottom elevation
 description is the bottom elevation for each cell.
 
@@ -100,6 +155,7 @@ type integer
 shape (ncpl, nlay)
 reader readarray
 layered true
+netcdf true
 optional true
 longname idomain existence array
 description is an optional array that characterizes the existence status of a cell.  If the IDOMAIN array is not specified, then all model cells exist within the solution.  If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation.  Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution.  If the IDOMAIN value for a cell is 1, the cell exists in the simulation.  If the IDOMAIN value for a cell is -1, the cell does not exist in the simulation.  Furthermore, the first existing cell above will be connected to the first existing cell below.  This type of cell is referred to as a ``vertical pass through'' cell.
diff --git a/flopy/mf6/data/dfn/gwe-esl.dfn b/flopy/mf6/data/dfn/gwe-esl.dfn
index 534db1b027..ce6e94cfed 100644
--- a/flopy/mf6/data/dfn/gwe-esl.dfn
+++ b/flopy/mf6/data/dfn/gwe-esl.dfn
@@ -134,7 +134,7 @@ type integer
 reader urword
 optional false
 longname maximum number of sources
-description REPLACE maxbound {'{#1}': 'sources'}
+description REPLACE maxbound {'{#1}': 'source'}
 
 
 # --------------------- gwe esl period ---------------------
diff --git a/flopy/mf6/data/dfn/gwe-est.dfn b/flopy/mf6/data/dfn/gwe-est.dfn
index 22181237c3..283900bd6b 100644
--- a/flopy/mf6/data/dfn/gwe-est.dfn
+++ b/flopy/mf6/data/dfn/gwe-est.dfn
@@ -14,15 +14,37 @@ type keyword
 reader urword
 optional true
 longname activate zero-order decay
-description is a text keyword to indicate that zero-order decay will occur.  Use of this keyword requires that DECAY and DECAY\_SORBED (if sorption is active) are specified in the GRIDDATA block.
+description is a text keyword to indicate that zero-order decay will occur.  Use of this keyword requires that DECAY is specified in the GRIDDATA block.
+
+block options
+name density_water
+type double precision
+reader urword
+optional true
+longname density of water
+description density of water used by calculations related to heat storage and conduction.  This value is set to 1,000 kg/m3 if no overriding value is specified.  A user-specified value should be provided for models that use units other than kilograms and meters or if it is necessary to use a value other than the default.
+default_value 1000.0
+mf6internal rhow
+
+block options
+name heat_capacity_water
+type double precision
+reader urword
+optional true
+longname heat capacity of water
+description heat capacity of water used by calculations related to heat storage and conduction.  This value is set to 4,184 J/kg/C if no overriding value is specified.  A user-specified value should be provided for models that use units other than kilograms, joules, and degrees Celsius or it is necessary to use a value other than the default.
+default_value 4184.0
+mf6internal cpw
 
 block options
 name latent_heat_vaporization
-type keyword
+type double precision
 reader urword
 optional true
-longname activate cooling associated with evaporation
-description is a text keyword to indicate that cooling associated with evaporation will occur.  Use of this keyword requires that LATHEATVAP are specified in the GRIDDATA block.  While the EST package does not simulate evaporation, multiple other packages in a GWE simulation may.  For example, evaporation may occur from the surface of streams or lakes.  Owing to the energy consumed by the change in phase, the latent heat of vaporization is required.
+longname latent heat of vaporization
+description latent heat of vaporization is the amount of energy that is required to convert a given quantity of liquid into a gas and is associated with evaporative cooling.  While the EST package does not simulate evaporation, multiple other packages in a GWE simulation may.  To avoid having to specify the latent heat of vaporization in multiple packages, it is specified in a single location and accessed wherever it is needed.  For example, evaporation may occur from the surface of streams or lakes and the energy consumed by the change in phase would be needed in both the SFE and LKE packages.  This value is set to 2,453,500 J/kg if no overriding value is specified.  A user-specified value should be provided for models that use units other than joules and kilograms or if it is necessary to use a value other than the default.
+default_value 2453500.0
+mf6internal latheatvap
 
 # --------------------- gwe est griddata ---------------------
 
@@ -46,61 +68,21 @@ longname aqueous phase decay rate coefficient
 description is the rate coefficient for zero-order decay for the aqueous phase of the mobile domain.  A negative value indicates heat (energy) production.  The dimensions of decay for zero-order decay is energy per length cubed per time.  Zero-order decay will have no effect on simulation results unless zero-order decay is specified in the options block.
 
 block griddata
-name cps
+name heat_capacity_solid
 type double precision
 shape (nodes)
 reader readarray
 layered true
 longname heat capacity of the aquifer material
 description is the mass-based heat capacity of dry solids (aquifer material). For example, units of J/kg/C may be used (or equivalent).
+mf6internal cps
 
 block griddata
-name rhos
+name density_solid
 type double precision
 shape (nodes)
 reader readarray
 layered true
 longname density of aquifer material
 description is a user-specified value of the density of aquifer material not considering the voids. Value will remain fixed for the entire simulation.  For example, if working in SI units, values may be entered as kilograms per cubic meter. 
-
-# --------------------- gwe est packagedata ---------------------
-
-block packagedata
-name packagedata
-type recarray cpw rhow latheatvap
-shape 
-reader urword
-longname
-description
-
-block packagedata
-name cpw
-type double precision
-shape
-tagged false
-in_record true
-reader urword
-longname heat capacity of water
-description is the mass-based heat capacity of the simulated fluid. For example, units of J/kg/C may be used (or equivalent). 
-
-block packagedata
-name rhow
-type double precision
-shape
-tagged false
-in_record true
-reader urword
-longname density of water
-description is a user-specified value of the density of water. Value will remain fixed for the entire simulation.  For example, if working in SI units, values may be entered as kilograms per cubic meter. 
-
-
-block packagedata
-name latheatvap
-type double precision
-shape
-tagged false
-in_record true
-reader urword
-longname latent heat of vaporization
-description is the user-specified value for the latent heat of vaporization. For example, if working in SI units, values may be entered as kJ/kg.
-
+mf6internal rhos
diff --git a/flopy/mf6/data/dfn/gwe-ic.dfn b/flopy/mf6/data/dfn/gwe-ic.dfn
index 6bd80b3de6..77e9deabfb 100644
--- a/flopy/mf6/data/dfn/gwe-ic.dfn
+++ b/flopy/mf6/data/dfn/gwe-ic.dfn
@@ -9,6 +9,16 @@ mf6internal export_ascii
 longname export array variables to layered ascii files.
 description keyword that specifies input griddata arrays should be written to layered ascii output files.
 
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+extended true
+
 # --------------------- gwe ic griddata ---------------------
 
 block griddata
@@ -17,6 +27,7 @@ type double precision
 shape (nodes)
 reader readarray
 layered true
+netcdf true
 longname starting temperature
 description is the initial (starting) temperature---that is, the temperature at the beginning of the GWE Model simulation.  STRT must be specified for all GWE Model simulations. One value is read for every model cell.
 default_value 0.0
diff --git a/flopy/mf6/data/dfn/gwe-lke.dfn b/flopy/mf6/data/dfn/gwe-lke.dfn
index b59b50420b..6ddb828873 100644
--- a/flopy/mf6/data/dfn/gwe-lke.dfn
+++ b/flopy/mf6/data/dfn/gwe-lke.dfn
@@ -382,7 +382,7 @@ tagged true
 in_record true
 reader urword
 longname lake temperature status
-description keyword option to define lake status.  STATUS can be ACTIVE, INACTIVE, or CONSTANT. By default, STATUS is ACTIVE, which means that temperature will be calculated for the lake.  If a lake is inactive, then there will be no solute mass fluxes into or out of the lake and the inactive value will be written for the lake temperature.  If a lake is constant, then the temperature for the lake will be fixed at the user specified value.
+description keyword option to define lake status.  STATUS can be ACTIVE, INACTIVE, or CONSTANT. By default, STATUS is ACTIVE, which means that temperature will be calculated for the lake.  If a lake is inactive, then there will be no energy fluxes into or out of the lake and the inactive value will be written for the lake temperature.  If a lake is constant, then the temperature for the lake will be fixed at the user specified value.
 
 block period
 name temperature
@@ -415,7 +415,7 @@ in_record true
 reader urword
 time_series true
 longname evaporation temperature
-description real or character value that defines the temperature of evaporated water $(^{\circ}C)$ for the reach. If this temperature value is larger than the simulated temperature in the reach, then the evaporated water will be removed at the same temperature as the reach.  If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+description use of the EVAPORATION keyword is allowed in the LKE package; however, the specified value is not currently used in LKE calculations.  Instead, the latent heat of evaporation is multiplied by the simulated evaporation rate for determining the thermal energy lost from a stream reach.
 
 
 block period
@@ -427,7 +427,7 @@ in_record true
 reader urword
 time_series true
 longname runoff temperature
-description real or character value that defines the temperature of runoff for the lake. Value must be greater than or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+description real or character value that defines the temperature of runoff for the lake. Users are free to use whatever temperature scale they want, which might include negative temperatures. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
 
 block period
 name ext-inflow
@@ -438,7 +438,7 @@ in_record true
 reader urword
 time_series true
 longname ext-inflow temperature
-description real or character value that defines the temperature of external inflow for the lake. Value must be greater than or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+description real or character value that defines the temperature of external inflow for the lake.  Users are free to use whatever temperature scale they want, which might include negative temperatures.  If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
 
 block period
 name auxiliaryrecord
diff --git a/flopy/mf6/data/dfn/gwe-mwe.dfn b/flopy/mf6/data/dfn/gwe-mwe.dfn
index c805b6533f..9b69409c30 100644
--- a/flopy/mf6/data/dfn/gwe-mwe.dfn
+++ b/flopy/mf6/data/dfn/gwe-mwe.dfn
@@ -294,7 +294,7 @@ tagged false
 in_record true
 reader urword
 longname thermal conductivity of the feature
-description is the thermal conductivity of the of the interface between the aquifer cell and the feature.
+description is the thermal conductivity of the interface between the aquifer cell and the feature.
 
 block packagedata
 name fthk
@@ -404,7 +404,7 @@ in_record true
 reader urword
 time_series true
 longname well injection temperature
-description real or character value that defines the injection solute temperature $^{\circ}C$ for the well. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+description real or character value that defines the injection temperature $(e.g., ^{\circ}C or ^{\circ}F)$ for the well. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
 
 block period
 name auxiliaryrecord
diff --git a/flopy/mf6/data/dfn/gwe-nam.dfn b/flopy/mf6/data/dfn/gwe-nam.dfn
index 31aa8fd84b..55e2852a6b 100644
--- a/flopy/mf6/data/dfn/gwe-nam.dfn
+++ b/flopy/mf6/data/dfn/gwe-nam.dfn
@@ -33,6 +33,133 @@ optional true
 longname save flows for all packages to budget file
 description REPLACE save_flows {'{#1}': 'all model package'}
 
+block options
+name nc_mesh2d_filerecord
+type record netcdf_mesh2d fileout ncmesh2dfile
+shape
+reader urword
+tagged true
+optional true
+longname
+description netcdf layered mesh fileout record.
+mf6internal ncmesh2drec
+
+block options
+name netcdf_mesh2d
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname budget keyword
+description keyword to specify that record corresponds to a layered mesh netcdf file.
+extended true
+
+block options
+name nc_structured_filerecord
+type record netcdf_structured fileout ncstructfile
+shape
+reader urword
+tagged true
+optional true
+longname
+description netcdf structured fileout record.
+mf6internal ncstructrec
+
+block options
+name netcdf_structured
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname budget keyword
+description keyword to specify that record corresponds to a structured netcdf file.
+mf6internal netcdf_struct
+extended true
+
+block options
+name fileout
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an output filename is expected next.
+
+block options
+name ncmesh2dfile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the netcdf ugrid layered mesh output file.
+extended true
+
+block options
+name ncstructfile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the netcdf structured output file.
+extended true
+
+block options
+name nc_filerecord
+type record netcdf filein netcdf_filename
+reader urword
+tagged true
+optional true
+longname
+description netcdf filerecord
+
+block options
+name netcdf
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname netcdf keyword
+description keyword to specify that record corresponds to a netcdf input file.
+extended true
+
+block options
+name filein
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block options
+name netcdf_filename
+type string
+preserve_case true
+in_record true
+reader urword
+optional false
+tagged false
+longname netcdf input filename
+description defines a netcdf input file.
+mf6internal netcdf_fname
+extended true
+
 # --------------------- gwe nam packages ---------------------
 
 block packages
diff --git a/flopy/mf6/data/dfn/gwe-sfe.dfn b/flopy/mf6/data/dfn/gwe-sfe.dfn
index 610e3911ff..ed7f29f2a3 100644
--- a/flopy/mf6/data/dfn/gwe-sfe.dfn
+++ b/flopy/mf6/data/dfn/gwe-sfe.dfn
@@ -26,7 +26,7 @@ shape
 reader urword
 optional true
 longname keyword to specify name of temperature auxiliary variable in flow package
-description keyword to specify the name of an auxiliary variable provided in the corresponding flow package (i.e., FLOW\_PACKAE\_NAME).  If specified, then the simulated temperatures from this advanced energy transport package will be copied into the auxiliary variable specified with this name.  Note that the flow package must have an auxiliary variable with this name or the program will terminate with an error.  If the flows for this advanced energy transport package are read from a file, then this option will have no effect.
+description keyword to specify the name of an auxiliary variable provided in the corresponding flow package (i.e., FLOW\_PACKAGE\_NAME).  If specified, then the simulated temperatures from this advanced energy transport package will be copied into the auxiliary variable specified with this name.  Note that the flow package must have an auxiliary variable with this name or the program will terminate with an error.  If the flows for this advanced energy transport package are read from a file, then this option will have no effect.
 
 block options
 name boundnames
@@ -252,7 +252,7 @@ tagged false
 reader urword
 optional false
 longname obs6 input filename
-description REPLACE obs6_filename {'{#1}': 'SFT'}
+description REPLACE obs6_filename {'{#1}': 'SFE'}
 
 
 # --------------------- gwe sfe packagedata ---------------------
@@ -404,7 +404,7 @@ in_record true
 reader urword
 time_series true
 longname rainfall temperature
-description real or character value that defines the rainfall temperature $(^{\circ}C)$ for the reach. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+description real or character value that defines the rainfall temperature $(e.g., ^{\circ}C or ^{\circ}F)$ for the reach. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
 
 block period
 name evaporation
@@ -415,7 +415,7 @@ in_record true
 reader urword
 time_series true
 longname evaporation temperature
-description real or character value that defines the temperature of evaporated water $(^{\circ}C)$ for the reach. If this temperature value is larger than the simulated temperature in the reach, then the evaporated water will be removed at the same temperature as the reach.  If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+description use of the EVAPORATION keyword is allowed in the SFE package; however, the specified value is not currently used in SFE calculations.  Instead, the latent heat of evaporation is multiplied by the simulated evaporation rate for determining the thermal energy lost from a stream reach.
 
 block period
 name runoff
@@ -426,7 +426,7 @@ in_record true
 reader urword
 time_series true
 longname runoff temperature
-description real or character value that defines the temperature of runoff $(^{\circ}C)$ for the reach. Value must be greater than or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+description real or character value that defines the temperature of runoff $(e.g., ^{\circ}C or ^{\circ}F)$ for the reach.  Users are free to use whatever temperature scale they want, which might include negative temperatures.  If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
 
 block period
 name inflow
@@ -437,7 +437,7 @@ in_record true
 reader urword
 time_series true
 longname inflow temperature
-description real or character value that defines the temperature of inflow $(^{\circ}C)$ for the reach. Value must be greater than or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+description real or character value that defines the temperature of inflow $(e.g., ^{\circ}C or ^{\circ}F)$ for the reach. Users are free to use whatever temperature scale they want, which might include negative temperatures.  If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
 
 block period
 name auxiliaryrecord
diff --git a/flopy/mf6/data/dfn/gwe-ssm.dfn b/flopy/mf6/data/dfn/gwe-ssm.dfn
index 4cc3fc7982..1e85ca5384 100644
--- a/flopy/mf6/data/dfn/gwe-ssm.dfn
+++ b/flopy/mf6/data/dfn/gwe-ssm.dfn
@@ -44,7 +44,7 @@ tagged false
 optional false
 reader urword
 longname source type
-description keyword indicating how temperature will be assigned for sources and sinks.  Keyword must be specified as either AUX or AUXMIXED.  For both options the user must provide an auxiliary variable in the corresponding flow package.  The auxiliary variable must have the same name as the AUXNAME value that follows.  If the AUX keyword is specified, then the auxiliary variable specified by the user will be assigned as the concenration value for groundwater sources (flows with a positive sign).  For negative flow rates (sinks), groundwater will be withdrawn from the cell at the simulated temperature of the cell.  The AUXMIXED option provides an alternative method for how to determine the temperature of sinks.  If the cell temperature is larger than the user-specified auxiliary temperature, then the temperature of groundwater withdrawn from the cell will be assigned as the user-specified temperature.  Alternatively, if the user-specified auxiliary temperature is larger than the cell temperature, then groundwater will be withdrawn at the cell temperature.  Thus, the AUXMIXED option is designed to work with the Evapotranspiration (EVT) and Recharge (RCH) Packages where water may be withdrawn at a temperature that is less than the cell temperature.
+description keyword indicating how temperature will be assigned for sources and sinks.  Keyword must be specified as either AUX or AUXMIXED.  For both options the user must provide an auxiliary variable in the corresponding flow package.  The auxiliary variable must have the same name as the AUXNAME value that follows.  If the AUX keyword is specified, then the auxiliary variable specified by the user will be assigned as the temperature value for groundwater sources (flows with a positive sign).  For negative flow rates (sinks), groundwater will be withdrawn from the cell at the simulated temperature of the cell.  The AUXMIXED option provides an alternative method for how to determine the temperature of sinks.  If the cell temperature is larger than the user-specified auxiliary temperature, then the temperature of groundwater withdrawn from the cell will be assigned as the user-specified temperature.  Alternatively, if the user-specified auxiliary temperature is larger than the cell temperature, then groundwater will be withdrawn at the cell temperature.  Thus, the AUXMIXED option is designed to work with the Evapotranspiration (EVT) and Recharge (RCH) Packages where water may be withdrawn at a temperature that is less than the cell temperature.
 
 block sources
 name auxname
@@ -61,7 +61,7 @@ description name of the auxiliary variable in the package PNAME.  This auxiliary
 
 block fileinput
 name fileinput
-type recarray pname spt6 filein spt6_filename mixed
+type recarray pname spc6 filein spc6_filename mixed
 reader urword
 longname
 description
@@ -73,11 +73,11 @@ type string
 tagged false
 reader urword
 longname package name
-description name of the flow package for which an SPT6 input file contains a source temperature.  If this flow package is represented using an advanced transport package (SFE, LKE, MWE, or UZE), then the advanced transport package will override SSM terms specified here.
+description name of the flow package for which an SPC6 input file contains a source temperature.  If this flow package is represented using an advanced transport package (SFE, LKE, MWE, or UZE), then the advanced transport package will override SSM terms specified here.
 
 
 block fileinput
-name spt6
+name spc6
 type keyword
 shape
 in_record true
@@ -99,15 +99,15 @@ longname file keyword
 description keyword to specify that an input filename is expected next.
 
 block fileinput
-name spt6_filename
+name spc6_filename
 type string
 preserve_case true
 in_record true
 reader urword
 optional false
 tagged false
-longname spt file name
-description character string that defines the path and filename for the file containing source and sink input data for the flow package. The SPT6\_FILENAME file is a flexible input file that allows temperatures to be specified by stress period and with time series. Instructions for creating the SPT6\_FILENAME input file are provided in the next section on file input for boundary temperatures.
+longname spc file name
+description character string that defines the path and filename for the file containing source and sink input data for the flow package. The SPC6\_FILENAME file is a flexible input file that allows temperatures to be specified by stress period and with time series. Instructions for creating the SPC6\_FILENAME input file are provided in the next section on file input for boundary temperatures.
 
 block fileinput
 name mixed
diff --git a/flopy/mf6/data/dfn/gwe-uze.dfn b/flopy/mf6/data/dfn/gwe-uze.dfn
index 1f272617b7..2599e0f8f9 100644
--- a/flopy/mf6/data/dfn/gwe-uze.dfn
+++ b/flopy/mf6/data/dfn/gwe-uze.dfn
@@ -26,7 +26,7 @@ shape
 reader urword
 optional true
 longname keyword to specify name of concentration auxiliary variable in flow package
-description keyword to specify the name of an auxiliary variable in the corresponding flow package.  If specified, then the simulated concentrations from this advanced transport package will be copied into the auxiliary variable specified with this name.  Note that the flow package must have an auxiliary variable with this name or the program will terminate with an error.  If the flows for this advanced transport package are read from a file, then this option will have no effect.
+description keyword to specify the name of an auxiliary variable in the corresponding flow package.  If specified, then the simulated temperatures from this advanced transport package will be copied into the auxiliary variable specified with this name.  Note that the flow package must have an auxiliary variable with this name or the program will terminate with an error.  If the flows for this advanced transport package are read from a file, then this option will have no effect.
 
 block options
 name boundnames
@@ -384,7 +384,7 @@ in_record true
 reader urword
 time_series true
 longname infiltration temperature
-description real or character value that defines the temperature of the infiltration $(^\circ C)$ for the UZF cell. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+description real or character value that defines the temperature of the infiltration $(e.g., ^{\circ}C or ^{\circ}F)$ for the UZF cell. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
 
 block period
 name uzet
diff --git a/flopy/mf6/data/dfn/gwf-csub.dfn b/flopy/mf6/data/dfn/gwf-csub.dfn
index 954240daaf..421456b2f1 100644
--- a/flopy/mf6/data/dfn/gwf-csub.dfn
+++ b/flopy/mf6/data/dfn/gwf-csub.dfn
@@ -413,7 +413,7 @@ reader urword
 tagged true
 optional false
 longname package_convergence keyword
-description keyword to specify that record corresponds to the package convergence comma spaced values file.
+description keyword to specify that record corresponds to the package convergence comma spaced values file. Package convergence data is for delay interbeds. A warning message will be issued if package convergence data is requested but delay interbeds are not included in the package.
 
 block options
 name package_convergence_filename
diff --git a/flopy/mf6/data/dfn/gwf-dis.dfn b/flopy/mf6/data/dfn/gwf-dis.dfn
index 4406a57be4..dd00ba0c24 100644
--- a/flopy/mf6/data/dfn/gwf-dis.dfn
+++ b/flopy/mf6/data/dfn/gwf-dis.dfn
@@ -1,4 +1,5 @@
 # --------------------- gwf dis options ---------------------
+# mf6 subpackage utl-ncf
 
 block options
 name length_units
@@ -49,6 +50,58 @@ mf6internal export_ascii
 longname export array variables to layered ascii files.
 description keyword that specifies input griddata arrays should be written to layered ascii output files.
 
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+extended true
+
+block options
+name ncf_filerecord
+type record ncf6 filein ncf6_filename
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name ncf6
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname ncf keyword
+description keyword to specify that record corresponds to a netcdf configuration (NCF) file.
+extended true
+
+block options
+name filein
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block options
+name ncf6_filename
+type string
+preserve_case true
+in_record true
+reader urword
+optional false
+tagged false
+longname file name of NCF information
+description defines a netcdf configuration (NCF) input file.
+extended true
+
 # --------------------- gwf dis dimensions ---------------------
 
 block dimensions
@@ -85,6 +138,7 @@ name delr
 type double precision
 shape (ncol)
 reader readarray
+netcdf true
 longname spacing along a row
 description is the column spacing in the row direction.
 default_value 1.0
@@ -94,6 +148,7 @@ name delc
 type double precision
 shape (nrow)
 reader readarray
+netcdf true
 longname spacing along a column
 description is the row spacing in the column direction.
 default_value 1.0
@@ -103,6 +158,7 @@ name top
 type double precision
 shape (ncol, nrow)
 reader readarray
+netcdf true
 longname cell top elevation
 description is the top elevation for each cell in the top model layer.
 default_value 1.0
@@ -113,6 +169,7 @@ type double precision
 shape (ncol, nrow, nlay)
 reader readarray
 layered true
+netcdf true
 longname cell bottom elevation
 description is the bottom elevation for each cell.
 default_value 0.
@@ -123,8 +180,7 @@ type integer
 shape (ncol, nrow, nlay)
 reader readarray
 layered true
+netcdf true
 optional true
 longname idomain existence array
 description is an optional array that characterizes the existence status of a cell.  If the IDOMAIN array is not specified, then all model cells exist within the solution.  If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation.  Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution.  If the IDOMAIN value for a cell is 1 or greater, the cell exists in the simulation.  If the IDOMAIN value for a cell is -1, the cell does not exist in the simulation.  Furthermore, the first existing cell above will be connected to the first existing cell below.  This type of cell is referred to as a ``vertical pass through'' cell.
-
-
diff --git a/flopy/mf6/data/dfn/gwf-disv.dfn b/flopy/mf6/data/dfn/gwf-disv.dfn
index 17152994f5..1d3aea3803 100644
--- a/flopy/mf6/data/dfn/gwf-disv.dfn
+++ b/flopy/mf6/data/dfn/gwf-disv.dfn
@@ -1,4 +1,5 @@
 # --------------------- gwf disv options ---------------------
+# mf6 subpackage utl-ncf
 
 block options
 name length_units
@@ -47,7 +48,59 @@ reader urword
 optional true
 mf6internal export_ascii
 longname export array variables to layered ascii files.
-description keyword that specifies input griddata arrays should be written to layered ascii output files. 
+description keyword that specifies input griddata arrays should be written to layered ascii output files.
+
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+extended true
+
+block options
+name ncf_filerecord
+type record ncf6 filein ncf6_filename
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name ncf6
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname ncf keyword
+description keyword to specify that record corresponds to a netcdf configuration (NCF) file.
+extended true
+
+block options
+name filein
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block options
+name ncf6_filename
+type string
+preserve_case true
+in_record true
+reader urword
+optional false
+tagged false
+longname file name of NCF information
+description defines a netcdf configuration (NCF) input file.
+extended true
 
 # --------------------- gwf disv dimensions ---------------------
 
@@ -82,6 +135,7 @@ name top
 type double precision
 shape (ncpl)
 reader readarray
+netcdf true
 longname model top elevation
 description is the top elevation for each cell in the top model layer.
 
@@ -91,6 +145,7 @@ type double precision
 shape (ncpl, nlay)
 reader readarray
 layered true
+netcdf true
 longname model bottom elevation
 description is the bottom elevation for each cell.
 
@@ -100,6 +155,7 @@ type integer
 shape (ncpl, nlay)
 reader readarray
 layered true
+netcdf true
 optional true
 longname idomain existence array
 description is an optional array that characterizes the existence status of a cell.  If the IDOMAIN array is not specified, then all model cells exist within the solution.  If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation.  Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution.  If the IDOMAIN value for a cell is 1 or greater, the cell exists in the simulation.  If the IDOMAIN value for a cell is -1, the cell does not exist in the simulation.  Furthermore, the first existing cell above will be connected to the first existing cell below.  This type of cell is referred to as a ``vertical pass through'' cell.
diff --git a/flopy/mf6/data/dfn/gwf-evta.dfn b/flopy/mf6/data/dfn/gwf-evta.dfn
index 2ee518627e..601d25ee6c 100644
--- a/flopy/mf6/data/dfn/gwf-evta.dfn
+++ b/flopy/mf6/data/dfn/gwf-evta.dfn
@@ -141,6 +141,15 @@ optional false
 longname obs6 input filename
 description REPLACE obs6_filename {'{#1}': 'Evapotranspiration'}
 
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+extended true
 
 # --------------------- gwf evta period ---------------------
 
@@ -201,6 +210,6 @@ type double precision
 shape (ncol*nrow; ncpl)
 reader readarray
 time_series true
-longname auxiliary variable iaux
+longname evapotranspiration auxiliary variable iaux
 description is an array of values for auxiliary variable AUX(IAUX), where iaux is a value from 1 to NAUX, and AUX(IAUX) must be listed as part of the auxiliary variables.  A separate array can be specified for each auxiliary variable.  If an array is not specified for an auxiliary variable, then a value of zero is assigned.  If the value specified here for the auxiliary variable is the same as auxmultname, then the evapotranspiration rate will be multiplied by this array.
 mf6internal auxvar
diff --git a/flopy/mf6/data/dfn/gwf-ic.dfn b/flopy/mf6/data/dfn/gwf-ic.dfn
index de93f781c3..1ad27b4e23 100644
--- a/flopy/mf6/data/dfn/gwf-ic.dfn
+++ b/flopy/mf6/data/dfn/gwf-ic.dfn
@@ -9,6 +9,16 @@ mf6internal export_ascii
 longname export array variables to layered ascii files.
 description keyword that specifies input griddata arrays should be written to layered ascii output files.
 
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+extended true
+
 # --------------------- gwf ic griddata ---------------------
 
 block griddata
@@ -17,6 +27,7 @@ type double precision
 shape (nodes)
 reader readarray
 layered true
+netcdf true
 longname starting head
 description is the initial (starting) head---that is, head at the beginning of the GWF Model simulation.  STRT must be specified for all simulations, including steady-state simulations. One value is read for every model cell. For simulations in which the first stress period is steady state, the values used for STRT generally do not affect the simulation (exceptions may occur if cells go dry and (or) rewet). The execution time, however, will be less if STRT includes hydraulic heads that are close to the steady-state solution.  A head value lower than the cell bottom can be provided if a cell should start as dry.
 default_value 1.0
diff --git a/flopy/mf6/data/dfn/gwf-lak.dfn b/flopy/mf6/data/dfn/gwf-lak.dfn
index 3dc9e940c0..59d127b230 100644
--- a/flopy/mf6/data/dfn/gwf-lak.dfn
+++ b/flopy/mf6/data/dfn/gwf-lak.dfn
@@ -719,7 +719,7 @@ shape
 tagged true
 in_record true
 reader urword
-longname well status
+longname lake status
 description keyword option to define lake status.  STATUS can be ACTIVE, INACTIVE, or CONSTANT. By default, STATUS is ACTIVE.
 
 block period
diff --git a/flopy/mf6/data/dfn/gwf-maw.dfn b/flopy/mf6/data/dfn/gwf-maw.dfn
index 2e957ec2c8..936182795b 100644
--- a/flopy/mf6/data/dfn/gwf-maw.dfn
+++ b/flopy/mf6/data/dfn/gwf-maw.dfn
@@ -390,7 +390,7 @@ tagged false
 in_record true
 reader urword
 longname conductance equation
-description character string that defines the conductance equation that is used to calculate the saturated conductance for the multi-aquifer well. Possible multi-aquifer well CONDEQN strings include: SPECIFIED--character keyword to indicate the multi-aquifer well saturated conductance will be specified.  THIEM--character keyword to indicate the multi-aquifer well saturated conductance will be calculated using the Thiem equation, which considers the cell top and bottom, aquifer hydraulic conductivity, and effective cell and well radius.  SKIN--character keyword to indicate that the multi-aquifer well saturated conductance will be calculated using the cell top and bottom, aquifer and screen hydraulic conductivity, and well and skin radius.  CUMULATIVE--character keyword to indicate that the multi-aquifer well saturated conductance will be calculated using a combination of the Thiem and SKIN equations.  MEAN--character keyword to indicate the multi-aquifer well saturated conductance will be calculated using the aquifer and screen top and bottom, aquifer and screen hydraulic conductivity, and well and skin radius. The CUMULATIVE conductance equation is identical to the SKIN LOSSTYPE in the Multi-Node Well (MNW2) package for MODFLOW-2005. The program will terminate with an error condition if CONDEQN is SKIN or CUMULATIVE and the calculated saturated conductance is less than zero; if an error condition occurs, it is suggested that the THEIM or MEAN conductance equations be used for these multi-aquifer wells.
+description character string that defines the conductance equation that is used to calculate the saturated conductance for the multi-aquifer well. Possible multi-aquifer well CONDEQN strings include: SPECIFIED--character keyword to indicate the multi-aquifer well saturated conductance will be specified.  THIEM--character keyword to indicate the multi-aquifer well saturated conductance will be calculated using the Thiem equation, which considers the cell top and bottom, aquifer hydraulic conductivity, and effective cell and well radius.  SKIN--character keyword to indicate that the multi-aquifer well saturated conductance will be calculated using the cell top and bottom, aquifer and screen hydraulic conductivity, and well and skin radius.  CUMULATIVE--character keyword to indicate that the multi-aquifer well saturated conductance will be calculated using a combination of the Thiem and SKIN equations.  MEAN--character keyword to indicate the multi-aquifer well saturated conductance will be calculated using the aquifer and screen top and bottom, aquifer and screen hydraulic conductivity, and well and skin radius. The CUMULATIVE conductance equation is identical to the SKIN LOSSTYPE in the Multi-Node Well (MNW2) package for MODFLOW-2005. The program will terminate with an error condition if CONDEQN is SKIN or CUMULATIVE and the calculated saturated conductance is less than zero; if an error condition occurs, it is suggested that the THIEM or MEAN conductance equations be used for these multi-aquifer wells.
 
 block packagedata
 name ngwfnodes
@@ -495,7 +495,7 @@ tagged false
 in_record true
 reader urword
 longname skin data
-description value that defines the skin (filter pack) hydraulic conductivity (if CONDEQN for the multi-aquifer well is SKIN, CUMULATIVE, or MEAN) or conductance (if CONDEQN for the multi-aquifer well is SPECIFIED) for each GWF node connected to the multi-aquifer well (NGWFNODES). If CONDEQN is SPECIFIED, HK\_SKIN must be greater than or equal to zero.  HK\_SKIN can be any value if CONDEQN is THIEM. Otherwise, HK\_SKIN must be greater than zero. If CONDEQN is SKIN, the contrast between the cell transmissivity (the product of geometric mean horizontal hydraulic conductivity and the cell thickness) and the well transmissivity (the product of HK\_SKIN and the screen thicknesses) must be greater than one in node CELLID or the program will terminate with an error condition; if an error condition occurs, it is suggested that the HK\_SKIN be reduced to a value less than K11 and K22 in node CELLID or the THEIM or MEAN conductance equations be used for these multi-aquifer wells.
+description value that defines the skin (filter pack) hydraulic conductivity (if CONDEQN for the multi-aquifer well is SKIN, CUMULATIVE, or MEAN) or conductance (if CONDEQN for the multi-aquifer well is SPECIFIED) for each GWF node connected to the multi-aquifer well (NGWFNODES). If CONDEQN is SPECIFIED, HK\_SKIN must be greater than or equal to zero.  HK\_SKIN can be any value if CONDEQN is THIEM. Otherwise, HK\_SKIN must be greater than zero. If CONDEQN is SKIN, the contrast between the cell transmissivity (the product of geometric mean horizontal hydraulic conductivity and the cell thickness) and the well transmissivity (the product of HK\_SKIN and the screen thicknesses) must be greater than one in node CELLID or the program will terminate with an error condition; if an error condition occurs, it is suggested that the HK\_SKIN be reduced to a value less than K11 and K22 in node CELLID or the THIEM or MEAN conductance equations be used for these multi-aquifer wells.
 
 block connectiondata
 name radius_skin
diff --git a/flopy/mf6/data/dfn/gwf-nam.dfn b/flopy/mf6/data/dfn/gwf-nam.dfn
index f4e6ba4839..dbe2a5b071 100644
--- a/flopy/mf6/data/dfn/gwf-nam.dfn
+++ b/flopy/mf6/data/dfn/gwf-nam.dfn
@@ -58,6 +58,133 @@ optional true
 longname keyword to activate Newton-Raphson UNDER_RELAXATION option
 description keyword that indicates whether the groundwater head in a cell will be under-relaxed when water levels fall below the bottom of the model below any given cell. By default, Newton-Raphson UNDER\_RELAXATION is not applied.
 
+block options
+name nc_mesh2d_filerecord
+type record netcdf_mesh2d fileout ncmesh2dfile
+shape
+reader urword
+tagged true
+optional true
+longname
+description netcdf layered mesh fileout record.
+mf6internal ncmesh2drec
+
+block options
+name netcdf_mesh2d
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname budget keyword
+description keyword to specify that record corresponds to a layered mesh netcdf file. 
+extended true
+
+block options
+name nc_structured_filerecord
+type record netcdf_structured fileout ncstructfile
+shape
+reader urword
+tagged true
+optional true
+longname
+description netcdf structured fileout record.
+mf6internal ncstructrec
+
+block options
+name netcdf_structured
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname budget keyword
+description keyword to specify that record corresponds to a structured netcdf file.
+mf6internal netcdf_struct
+extended true
+
+block options
+name fileout
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an output filename is expected next.
+
+block options
+name ncmesh2dfile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the netcdf ugrid layered mesh output file.
+extended true
+
+block options
+name ncstructfile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the netcdf structured output file.
+extended true
+
+block options
+name nc_filerecord
+type record netcdf filein netcdf_filename
+reader urword
+tagged true
+optional true
+longname
+description netcdf filerecord
+
+block options
+name netcdf
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname netcdf keyword
+description keyword to specify that record corresponds to a netcdf input file.
+extended true
+
+block options
+name filein
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block options
+name netcdf_filename
+type string
+preserve_case true
+in_record true
+reader urword
+optional false
+tagged false
+longname netcdf input filename
+description defines a netcdf input file.
+mf6internal netcdf_fname
+extended true
+
 # --------------------- gwf nam packages ---------------------
 
 block packages
diff --git a/flopy/mf6/data/dfn/gwf-npf.dfn b/flopy/mf6/data/dfn/gwf-npf.dfn
index 23cb314c2a..812fb6f3f9 100644
--- a/flopy/mf6/data/dfn/gwf-npf.dfn
+++ b/flopy/mf6/data/dfn/gwf-npf.dfn
@@ -233,6 +233,16 @@ mf6internal export_ascii
 longname export array variables to layered ascii files.
 description keyword that specifies input griddata arrays should be written to layered ascii output files.
 
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+extended true
+
 # dev options
 
 block options
@@ -262,6 +272,7 @@ shape (nodes)
 valid
 reader readarray
 layered true
+netcdf true
 optional
 longname confined or convertible indicator
 description flag for each cell that specifies how saturated thickness is treated.  0 means saturated thickness is held constant;  $>$0 means saturated thickness varies with computed head when head is below the cell top; $<$0 means saturated thickness varies with computed head unless the THICKSTRT option is in effect.  When THICKSTRT is in effect, a negative value for ICELLTYPE indicates that the saturated thickness value used in conductance calculations in the NPF Package will be computed as STRT-BOT and held constant.  If the THICKSTRT option is not in effect, then negative values provided by the user for ICELLTYPE are automatically reassigned by the program to a value of one.
@@ -274,6 +285,7 @@ shape (nodes)
 valid
 reader readarray
 layered true
+netcdf true
 optional
 longname hydraulic conductivity (L/T)
 description is the hydraulic conductivity.  For the common case in which the user would like to specify the horizontal hydraulic conductivity and the vertical hydraulic conductivity, then K should be assigned as the horizontal hydraulic conductivity, K33 should be assigned as the vertical hydraulic conductivity, and K22 and the three rotation angles should not be specified.  When more sophisticated anisotropy is required, then K corresponds to the K11 hydraulic conductivity axis.  All included cells (IDOMAIN $>$ 0) must have a K value greater than zero.
@@ -286,6 +298,7 @@ shape (nodes)
 valid
 reader readarray
 layered true
+netcdf true
 optional true
 longname hydraulic conductivity of second ellipsoid axis
 description is the hydraulic conductivity of the second ellipsoid axis (or the ratio of K22/K if the K22OVERK option is specified); for an unrotated case this is the hydraulic conductivity in the y direction.  If K22 is not included in the GRIDDATA block, then K22 is set equal to K.  For a regular MODFLOW grid (DIS Package is used) in which no rotation angles are specified, K22 is the hydraulic conductivity along columns in the y direction. For an unstructured DISU grid, the user must assign principal x and y axes and provide the angle for each cell face relative to the assigned x direction.  All included cells (IDOMAIN $>$ 0) must have a K22 value greater than zero.
@@ -297,6 +310,7 @@ shape (nodes)
 valid
 reader readarray
 layered true
+netcdf true
 optional true
 longname hydraulic conductivity of third ellipsoid axis (L/T)
 description is the hydraulic conductivity of the third ellipsoid axis (or the ratio of K33/K if the K33OVERK option is specified); for an unrotated case, this is the vertical hydraulic conductivity.  When anisotropy is applied, K33 corresponds to the K33 tensor component.  All included cells (IDOMAIN $>$ 0) must have a K33 value greater than zero.
@@ -308,6 +322,7 @@ shape (nodes)
 valid
 reader readarray
 layered true
+netcdf true
 optional true
 longname first anisotropy rotation angle (degrees)
 description is a rotation angle of the hydraulic conductivity tensor in degrees. The angle represents the first of three sequential rotations of the hydraulic conductivity ellipsoid. With the K11, K22, and K33 axes of the ellipsoid initially aligned with the x, y, and z coordinate axes, respectively, ANGLE1 rotates the ellipsoid about its K33 axis (within the x - y plane). A positive value represents counter-clockwise rotation when viewed from any point on the positive K33 axis, looking toward the center of the ellipsoid. A value of zero indicates that the K11 axis lies within the x - z plane. If ANGLE1 is not specified, default values of zero are assigned to ANGLE1, ANGLE2, and ANGLE3, in which case the K11, K22, and K33 axes are aligned with the x, y, and z axes, respectively.
@@ -319,6 +334,7 @@ shape (nodes)
 valid
 reader readarray
 layered true
+netcdf true
 optional true
 longname second anisotropy rotation angle (degrees)
 description is a rotation angle of the hydraulic conductivity tensor in degrees. The angle represents the second of three sequential rotations of the hydraulic conductivity ellipsoid. Following the rotation by ANGLE1 described above, ANGLE2 rotates the ellipsoid about its K22 axis (out of the x - y plane). An array can be specified for ANGLE2 only if ANGLE1 is also specified. A positive value of ANGLE2 represents clockwise rotation when viewed from any point on the positive K22 axis, looking toward the center of the ellipsoid. A value of zero indicates that the K11 axis lies within the x - y plane. If ANGLE2 is not specified, default values of zero are assigned to ANGLE2 and ANGLE3; connections that are not user-designated as vertical are assumed to be strictly horizontal (that is, to have no z component to their orientation); and connection lengths are based on horizontal distances.
@@ -330,6 +346,7 @@ shape (nodes)
 valid
 reader readarray
 layered true
+netcdf true
 optional true
 longname third anisotropy rotation angle (degrees)
 description is a rotation angle of the hydraulic conductivity tensor in degrees. The angle represents the third of three sequential rotations of the hydraulic conductivity ellipsoid. Following the rotations by ANGLE1 and ANGLE2 described above, ANGLE3 rotates the ellipsoid about its K11 axis. An array can be specified for ANGLE3 only if ANGLE1 and ANGLE2 are also specified. An array must be specified for ANGLE3 if ANGLE2 is specified. A positive value of ANGLE3 represents clockwise rotation when viewed from any point on the positive K11 axis, looking toward the center of the ellipsoid. A value of zero indicates that the K22 axis lies within the x - y plane.
@@ -341,6 +358,7 @@ shape (nodes)
 valid
 reader readarray
 layered true
+netcdf true
 optional true
 longname wetdry threshold and factor
 description is a combination of the wetting threshold and a flag to indicate which neighboring cells can cause a cell to become wet. If WETDRY $<$ 0, only a cell below a dry cell can cause the cell to become wet. If WETDRY $>$ 0, the cell below a dry cell and horizontally adjacent cells can cause a cell to become wet. If WETDRY is 0, the cell cannot be wetted. The absolute value of WETDRY is the wetting threshold. When the sum of BOT and the absolute value of WETDRY at a dry cell is equaled or exceeded by the head at an adjacent cell, the cell is wetted.  WETDRY must be specified if ``REWET'' is specified in the OPTIONS block.  If ``REWET'' is not specified in the options block, then WETDRY can be entered, and memory will be allocated for it, even though it is not used.
diff --git a/flopy/mf6/data/dfn/gwf-rcha.dfn b/flopy/mf6/data/dfn/gwf-rcha.dfn
index f25fbfbd32..dcdb605961 100644
--- a/flopy/mf6/data/dfn/gwf-rcha.dfn
+++ b/flopy/mf6/data/dfn/gwf-rcha.dfn
@@ -141,6 +141,15 @@ optional false
 longname obs6 input filename
 description REPLACE obs6_filename {'{#1}': 'Recharge'}
 
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+extended true
 
 # --------------------- gwf rcha period ---------------------
 
@@ -184,6 +193,6 @@ shape (ncol*nrow; ncpl)
 reader readarray
 time_series true
 optional true
-longname auxiliary variable iaux
+longname recharge auxiliary variable iaux
 description is an array of values for auxiliary variable aux(iaux), where iaux is a value from 1 to naux, and aux(iaux) must be listed as part of the auxiliary variables.  A separate array can be specified for each auxiliary variable.  If an array is not specified for an auxiliary variable, then a value of zero is assigned.  If the value specified here for the auxiliary variable is the same as auxmultname, then the recharge array will be multiplied by this array.
 mf6internal auxvar
diff --git a/flopy/mf6/data/dfn/gwf-sfr.dfn b/flopy/mf6/data/dfn/gwf-sfr.dfn
index eb3967e441..e53de0780c 100644
--- a/flopy/mf6/data/dfn/gwf-sfr.dfn
+++ b/flopy/mf6/data/dfn/gwf-sfr.dfn
@@ -2,6 +2,14 @@
 # flopy multi-package
 # package-type advanced-stress-package
 
+block options
+name storage
+type keyword
+reader urword
+optional true
+longname activate reach storage
+description keyword that activates storage contributions to the stream-flow routing package continuity equation.
+
 block options
 name auxiliary
 type string
@@ -327,6 +335,14 @@ optional true
 longname time conversion factor
 description real value that is used to convert user-specified Manning's roughness coefficients from seconds to model time units. TIME\_CONVERSION should be set to 1.0, 60.0, 3,600.0, 86,400.0, and 31,557,600.0 when using time units (TIME\_UNITS) of seconds, minutes, hours, days, or years in the simulation, respectively. TIME\_CONVERSION does not need to be specified if TIME\_UNITS are seconds.
 
+block options
+name dev_storage_weight
+type double precision
+reader urword
+optional true
+longname reach storage time weighting
+description real number value that defines the time weighting factor used to calculate the change in channel storage. STORAGE\_WEIGHT must have a value between 0.5 and 1. Default STORAGE\_WEIGHT value is 1.
+
 
 # --------------------- gwf sfr dimensions ---------------------
 
@@ -641,6 +657,41 @@ reader urword
 longname iprior code
 description character string value that defines the the prioritization system for the diversion, such as when insufficient water is available to meet all diversion stipulations, and is used in conjunction with the value of FLOW value specified in the STRESS\_PERIOD\_DATA section. Available diversion options include:  (1) CPRIOR = `FRACTION', then the amount of the diversion is computed as a fraction of the streamflow leaving reach IFNO ($Q_{DS}$); in this case, 0.0 $\le$ DIVFLOW $\le$ 1.0.  (2) CPRIOR = `EXCESS', a diversion is made only if $Q_{DS}$ for reach IFNO exceeds the value of DIVFLOW. If this occurs, then the quantity of water diverted is the excess flow ($Q_{DS} -$ DIVFLOW) and $Q_{DS}$ from reach IFNO is set equal to DIVFLOW. This represents a flood-control type of diversion, as described by Danskin and Hanson (2002). (3) CPRIOR = `THRESHOLD', then if $Q_{DS}$ in reach IFNO is less than the specified diversion flow DIVFLOW, no water is diverted from reach IFNO. If $Q_{DS}$ in reach IFNO is greater than or equal to DIVFLOW, DIVFLOW is diverted and $Q_{DS}$ is set to the remainder ($Q_{DS} -$ DIVFLOW)). This approach assumes that once flow in the stream is sufficiently low, diversions from the stream cease, and is the `priority' algorithm that originally was programmed into the STR1 Package (Prudic, 1989).  (4) CPRIOR = `UPTO' -- if $Q_{DS}$ in reach IFNO is greater than or equal to the specified diversion flow DIVFLOW, $Q_{DS}$ is reduced by DIVFLOW. If $Q_{DS}$ in reach IFNO is less than DIVFLOW, DIVFLOW is set to $Q_{DS}$ and there will be no flow available for reaches connected to downstream end of reach IFNO.
 
+# --------------------- gwf initial stages ---------------------
+
+block initialstages
+name initialstages
+type recarray ifno initialstage
+shape (maxbound)
+valid
+optional false
+reader urword
+longname
+description
+
+block initialstages
+name ifno
+type integer
+shape
+tagged false
+in_record true
+optional false
+reader urword
+longname reach number for this entry
+description integer value that defines the feature (reach) number associated with the specified initial stage. Initial stage data must be specified for every reach or the program will terminate with an error. The program will also terminate with a error if IFNO is less than one or greater than NREACHES. 
+numeric_index true
+
+block initialstages
+name initialstage
+type double precision
+shape
+tagged false
+in_record true
+optional false
+reader urword
+longname initial reach stage
+description real value that defines the initial stage for the reach. The program will terminate with an error if INITIALSTAGE is less than the RTP value for reach IFNO defined in the PACKAGEDATA block.  INITIALSTAGE data are used only if STORAGE is specified in the Options block and the first stress period is transient or for reaches defined to use the SIMPLE STATUS in the Period block.
+
 
 # --------------------- gwf sfr period ---------------------
 
@@ -693,7 +744,7 @@ shape
 tagged true
 in_record true
 reader urword
-longname well status
+longname reach status
 description keyword option to define stream reach status.  STATUS can be ACTIVE, INACTIVE, or SIMPLE. The SIMPLE STATUS option simulates streamflow using a user-specified stage for a reach or a stage set to the top of the reach (depth = 0). In cases where the simulated leakage calculated using the specified stage exceeds the sum of inflows to the reach, the stage is set to the top of the reach and leakage is set equal to the sum of inflows. Upstream fractions should be changed using the UPSTREAM\_FRACTION SFRSETTING if the status for one or more reaches is changed to ACTIVE or INACTIVE. For example, if one of two downstream connections for a reach is inactivated, the upstream fraction for the active and inactive downstream reach should be changed to 1.0 and 0.0, respectively, to ensure that the active reach receives all of the downstream outflow from the upstream reach. By default, STATUS is ACTIVE.
 
 block period
diff --git a/flopy/mf6/data/dfn/gwf-sto.dfn b/flopy/mf6/data/dfn/gwf-sto.dfn
index 9e5bcd668b..197805b909 100644
--- a/flopy/mf6/data/dfn/gwf-sto.dfn
+++ b/flopy/mf6/data/dfn/gwf-sto.dfn
@@ -7,6 +7,7 @@ reader urword
 optional true
 longname keyword to save NPF flows
 description keyword to indicate that cell-by-cell flow terms will be written to the file specified with ``BUDGET SAVE FILE'' in Output Control.
+mf6internal ipakcb
 
 block options
 name storagecoefficient
@@ -15,6 +16,7 @@ reader urword
 optional true
 longname keyword to indicate SS is read as storage coefficient
 description keyword to indicate that the SS array is read as storage coefficient rather than specific storage.
+mf6internal istor_coef
 
 block options
 name ss_confined_only
@@ -26,7 +28,7 @@ description keyword to indicate that compressible storage is only calculated for
 
 block options
 name tvs_filerecord
-type record tvs6 filein tvs_filename
+type record tvs6 filein tvs6_filename
 shape
 reader urword
 tagged true
@@ -57,7 +59,7 @@ longname file keyword
 description keyword to specify that an input filename is expected next.
 
 block options
-name tvs_filename
+name tvs6_filename
 type string
 preserve_case true
 in_record true
@@ -67,6 +69,44 @@ tagged false
 longname file name of TVS information
 description defines a time-varying storage (TVS) input file.  Records in the TVS file can be used to change specific storage and specific yield properties at specified times or stress periods.
 
+block options
+name export_array_ascii
+type keyword
+reader urword
+optional true
+mf6internal export_ascii
+longname export array variables to layered ascii files.
+description keyword that specifies input grid arrays, which already support the layered keyword, should be written to layered ascii output files.
+
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+extended true
+
+# dev options
+block options
+name dev_original_specific_storage
+type keyword
+reader urword
+optional true
+longname development option for original specific storage
+description flag indicating the original storage specific storage formulation should be used
+mf6internal iorig_ss
+
+block options
+name dev_oldstorageformulation
+type keyword
+reader urword
+optional true
+longname development option flag for old storage formulation
+description development option flag for old storage formulation
+mf6internal iconf_ss
+
 # --------------------- gwf sto griddata ---------------------
 
 block griddata
@@ -76,6 +116,7 @@ shape (nodes)
 valid
 reader readarray
 layered true
+netcdf true
 optional false
 longname convertible indicator
 description is a flag for each cell that specifies whether or not a cell is convertible for the storage calculation. 0 indicates confined storage is used. $>$0 indicates confined storage is used when head is above cell top and a mixed formulation of unconfined and confined storage is used when head is below cell top.
@@ -88,6 +129,7 @@ shape (nodes)
 valid
 reader readarray
 layered true
+netcdf true
 optional false
 longname specific storage
 description is specific storage (or the storage coefficient if STORAGECOEFFICIENT is specified as an option). Specific storage values must be greater than or equal to 0. If the CSUB Package is included in the GWF model, specific storage must be zero for every cell.
@@ -100,6 +142,7 @@ shape (nodes)
 valid
 reader readarray
 layered true
+netcdf true
 optional false
 longname specific yield
 description is specific yield. Specific yield values must be greater than or equal to 0. Specific yield does not have to be specified if there are no convertible cells (ICONVERT=0 in every cell).
@@ -130,6 +173,7 @@ reader urword
 optional true
 longname steady state indicator
 description keyword to indicate that stress period IPER is steady-state. Steady-state conditions will apply until the TRANSIENT keyword is specified in a subsequent BEGIN PERIOD block. If the CSUB Package is included in the GWF model, only the first and last stress period can be steady-state.
+mf6internal steady_state
 
 block period
 name transient
@@ -140,4 +184,3 @@ reader urword
 optional true
 longname transient indicator
 description keyword to indicate that stress period IPER is transient. Transient conditions will apply until the STEADY-STATE keyword is specified in a subsequent BEGIN PERIOD block.
-
diff --git a/flopy/mf6/data/dfn/gwt-adv.dfn b/flopy/mf6/data/dfn/gwt-adv.dfn
index ef0a9eeaaf..4af532fe8d 100644
--- a/flopy/mf6/data/dfn/gwt-adv.dfn
+++ b/flopy/mf6/data/dfn/gwt-adv.dfn
@@ -9,3 +9,10 @@ optional true
 longname advective scheme
 description scheme used to solve the advection term.  Can be upstream, central, or TVD.  If not specified, upstream weighting is the default weighting scheme.
 
+block options
+name ats_percel
+type double precision
+reader urword
+optional true
+longname fractional cell distance used for time step calculation
+description fractional cell distance submitted by the ADV Package to the adaptive time stepping (ATS) package.  If ATS\_PERCEL is specified and the ATS Package is active, a time step calculation will be made for each cell based on flow through the cell and cell properties.  The largest time step will be calculated such that the advective fractional cell distance (ATS\_PERCEL) is not exceeded for any active cell in the grid.  This time-step constraint will be submitted to the ATS Package, perhaps with constraints submitted by other packages, in the calculation of the time step.  ATS\_PERCEL must be greater than zero.  If a value of zero is specified for ATS\_PERCEL the program will automatically reset it to an internal no data value to indicate that time steps should not be subject to this constraint.
\ No newline at end of file
diff --git a/flopy/mf6/data/dfn/gwt-dis.dfn b/flopy/mf6/data/dfn/gwt-dis.dfn
index ac03a5e1a3..c19307cb82 100644
--- a/flopy/mf6/data/dfn/gwt-dis.dfn
+++ b/flopy/mf6/data/dfn/gwt-dis.dfn
@@ -1,4 +1,5 @@
 # --------------------- gwt dis options ---------------------
+# mf6 subpackage utl-ncf
 
 block options
 name length_units
@@ -49,6 +50,58 @@ mf6internal export_ascii
 longname export array variables to layered ascii files.
 description keyword that specifies input griddata arrays should be written to layered ascii output files.
 
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+extended true
+
+block options
+name ncf_filerecord
+type record ncf6 filein ncf6_filename
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name ncf6
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname ncf keyword
+description keyword to specify that record corresponds to a netcdf configuration (NCF) file.
+extended true
+
+block options
+name filein
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block options
+name ncf6_filename
+type string
+preserve_case true
+in_record true
+reader urword
+optional false
+tagged false
+longname file name of NCF information
+description defines a netcdf configuration (NCF) input file.
+extended true
+
 # --------------------- gwt dis dimensions ---------------------
 
 block dimensions
@@ -85,6 +138,7 @@ name delr
 type double precision
 shape (ncol)
 reader readarray
+netcdf true
 longname spacing along a row
 description is the column spacing in the row direction.
 default_value 1.0
@@ -94,6 +148,7 @@ name delc
 type double precision
 shape (nrow)
 reader readarray
+netcdf true
 longname spacing along a column
 description is the row spacing in the column direction.
 default_value 1.0
@@ -103,6 +158,7 @@ name top
 type double precision
 shape (ncol, nrow)
 reader readarray
+netcdf true
 longname cell top elevation
 description is the top elevation for each cell in the top model layer.
 default_value 1.0
@@ -112,6 +168,7 @@ name botm
 type double precision
 shape (ncol, nrow, nlay)
 reader readarray
+netcdf true
 layered true
 longname cell bottom elevation
 description is the bottom elevation for each cell.
@@ -123,6 +180,7 @@ type integer
 shape (ncol, nrow, nlay)
 reader readarray
 layered true
+netcdf true
 optional true
 longname idomain existence array
 description is an optional array that characterizes the existence status of a cell.  If the IDOMAIN array is not specified, then all model cells exist within the solution.  If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation.  Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution.  If the IDOMAIN value for a cell is 1, the cell exists in the simulation.  If the IDOMAIN value for a cell is -1, the cell does not exist in the simulation.  Furthermore, the first existing cell above will be connected to the first existing cell below.  This type of cell is referred to as a ``vertical pass through'' cell.
diff --git a/flopy/mf6/data/dfn/gwt-disv.dfn b/flopy/mf6/data/dfn/gwt-disv.dfn
index b06062b6f9..dc9b8d0a03 100644
--- a/flopy/mf6/data/dfn/gwt-disv.dfn
+++ b/flopy/mf6/data/dfn/gwt-disv.dfn
@@ -1,4 +1,5 @@
 # --------------------- gwt disv options ---------------------
+# mf6 subpackage utl-ncf
 
 block options
 name length_units
@@ -49,6 +50,58 @@ mf6internal export_ascii
 longname export array variables to layered ascii files.
 description keyword that specifies input griddata arrays should be written to layered ascii output files.
 
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+extended true
+
+block options
+name ncf_filerecord
+type record ncf6 filein ncf6_filename
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name ncf6
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname ncf keyword
+description keyword to specify that record corresponds to a netcdf configuration (NCF) file.
+extended true
+
+block options
+name filein
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block options
+name ncf6_filename
+type string
+preserve_case true
+in_record true
+reader urword
+optional false
+tagged false
+longname file name of NCF information
+description defines a netcdf configuration (NCF) input file.
+extended true
+
 # --------------------- gwt disv dimensions ---------------------
 
 block dimensions
@@ -82,6 +135,7 @@ name top
 type double precision
 shape (ncpl)
 reader readarray
+netcdf true
 longname model top elevation
 description is the top elevation for each cell in the top model layer.
 
@@ -91,6 +145,7 @@ type double precision
 shape (ncpl, nlay)
 reader readarray
 layered true
+netcdf true
 longname model bottom elevation
 description is the bottom elevation for each cell.
 
@@ -100,6 +155,7 @@ type integer
 shape (ncpl, nlay)
 reader readarray
 layered true
+netcdf true
 optional true
 longname idomain existence array
 description is an optional array that characterizes the existence status of a cell.  If the IDOMAIN array is not specified, then all model cells exist within the solution.  If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation.  Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution.  If the IDOMAIN value for a cell is 1, the cell exists in the simulation.  If the IDOMAIN value for a cell is -1, the cell does not exist in the simulation.  Furthermore, the first existing cell above will be connected to the first existing cell below.  This type of cell is referred to as a ``vertical pass through'' cell.
diff --git a/flopy/mf6/data/dfn/gwt-dsp.dfn b/flopy/mf6/data/dfn/gwt-dsp.dfn
index 0b425db955..f4cf8a80e5 100644
--- a/flopy/mf6/data/dfn/gwt-dsp.dfn
+++ b/flopy/mf6/data/dfn/gwt-dsp.dfn
@@ -27,6 +27,16 @@ mf6internal export_ascii
 longname export array variables to layered ascii files.
 description keyword that specifies input griddata arrays should be written to layered ascii output files.
 
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+extended true
+
 # --------------------- gwt dsp griddata ---------------------
 
 block griddata
@@ -35,6 +45,7 @@ type double precision
 shape (nodes)
 reader readarray
 layered true
+netcdf true
 optional true
 longname effective molecular diffusion coefficient
 description effective molecular diffusion coefficient.
@@ -45,6 +56,7 @@ type double precision
 shape (nodes)
 reader readarray
 layered true
+netcdf true
 optional true
 longname longitudinal dispersivity in horizontal direction
 description longitudinal dispersivity in horizontal direction.  If flow is strictly horizontal, then this is the longitudinal dispersivity that will be used.  If flow is not strictly horizontal or strictly vertical, then the longitudinal dispersivity is a function of both ALH and ALV.  If mechanical dispersion is represented (by specifying any dispersivity values) then this array is required.
@@ -55,6 +67,7 @@ type double precision
 shape (nodes)
 reader readarray
 layered true
+netcdf true
 optional true
 longname longitudinal dispersivity in vertical direction
 description longitudinal dispersivity in vertical direction.  If flow is strictly vertical, then this is the longitudinal dispsersivity value that will be used.  If flow is not strictly horizontal or strictly vertical, then the longitudinal dispersivity is a function of both ALH and ALV.  If this value is not specified and mechanical dispersion is represented, then this array is set equal to ALH.
@@ -65,6 +78,7 @@ type double precision
 shape (nodes)
 reader readarray
 layered true
+netcdf true
 optional true
 longname transverse dispersivity in horizontal direction
 description transverse dispersivity in horizontal direction.  This is the transverse dispersivity value for the second ellipsoid axis.  If flow is strictly horizontal and directed in the x direction (along a row for a regular grid), then this value controls spreading in the y direction.  If mechanical dispersion is represented (by specifying any dispersivity values) then this array is required.
@@ -75,6 +89,7 @@ type double precision
 shape (nodes)
 reader readarray
 layered true
+netcdf true
 optional true
 longname transverse dispersivity in horizontal direction
 description transverse dispersivity in horizontal direction.  This is the transverse dispersivity value for the third ellipsoid axis.  If flow is strictly horizontal and directed in the x direction (along a row for a regular grid), then this value controls spreading in the z direction.  If this value is not specified and mechanical dispersion is represented, then this array is set equal to ATH1.
@@ -85,6 +100,7 @@ type double precision
 shape (nodes)
 reader readarray
 layered true
+netcdf true
 optional true
 longname transverse dispersivity when flow is in vertical direction
 description transverse dispersivity when flow is in vertical direction.  If flow is strictly vertical and directed in the z direction, then this value controls spreading in the x and y directions.  If this value is not specified and mechanical dispersion is represented, then this array is set equal to ATH2.
diff --git a/flopy/mf6/data/dfn/gwt-ic.dfn b/flopy/mf6/data/dfn/gwt-ic.dfn
index d6d113d5c5..83165a79c1 100644
--- a/flopy/mf6/data/dfn/gwt-ic.dfn
+++ b/flopy/mf6/data/dfn/gwt-ic.dfn
@@ -9,6 +9,16 @@ mf6internal export_ascii
 longname export array variables to layered ascii files.
 description keyword that specifies input griddata arrays should be written to layered ascii output files.
 
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+extended true
+
 # --------------------- gwt ic griddata ---------------------
 
 block griddata
@@ -17,6 +27,7 @@ type double precision
 shape (nodes)
 reader readarray
 layered true
+netcdf true
 longname starting concentration
 description is the initial (starting) concentration---that is, concentration at the beginning of the GWT Model simulation.  STRT must be specified for all GWT Model simulations. One value is read for every model cell.
 default_value 0.0
diff --git a/flopy/mf6/data/dfn/gwt-ist.dfn b/flopy/mf6/data/dfn/gwt-ist.dfn
index c39d95cc26..77b10f01c0 100644
--- a/flopy/mf6/data/dfn/gwt-ist.dfn
+++ b/flopy/mf6/data/dfn/gwt-ist.dfn
@@ -87,11 +87,12 @@ description name of the comma-separated value (CSV) output file to write budget
 
 block options
 name sorption
-type keyword
+type string
+valid linear freundlich langmuir
 reader urword
 optional true
 longname activate sorption
-description is a text keyword to indicate that sorption will be activated.  Use of this keyword requires that BULK\_DENSITY and DISTCOEF are specified in the GRIDDATA block.  The linear sorption isotherm is the only isotherm presently supported in the IST Package.
+description is a text keyword to indicate that sorption will be activated.  Valid sorption options include LINEAR, FREUNDLICH, and LANGMUIR.  Use of this keyword requires that BULK\_DENSITY and DISTCOEF are specified in the GRIDDATA block.  If sorption is specified as FREUNDLICH or LANGMUIR then SP2 is also required in the GRIDDATA block.
 
 block options
 name first_order_decay
@@ -217,6 +218,39 @@ optional false
 longname write format
 description write format can be EXPONENTIAL, FIXED, GENERAL, or SCIENTIFIC.
 
+block options
+name sorbate_filerecord
+type record sorbate fileout sorbatefile
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name sorbate
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname sorbate keyword
+description keyword to specify that record corresponds to immobile sorbate concentration.
+
+block options
+name sorbatefile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the output file to write immobile sorbate concentration information.  Immobile sorbate concentrations will be written whenever aqueous immobile concentrations are saved, as determined by settings in the Output Control option.
+
 # --------------------- gwt ist griddata ---------------------
 
 block griddata
@@ -296,3 +330,12 @@ layered true
 longname distribution coefficient
 description is the distribution coefficient for the equilibrium-controlled linear sorption isotherm in dimensions of length cubed per mass.  distcoef is not required unless the SORPTION keyword is specified in the options block.  If the SORPTION keyword is not specified in the options block, distcoef will have no effect on simulation results. 
 
+block griddata
+name sp2
+type double precision
+shape (nodes)
+reader readarray
+layered true
+optional true
+longname second sorption parameter
+description is the exponent for the Freundlich isotherm and the sorption capacity for the Langmuir isotherm.  sp2 is not required unless the SORPTION keyword is specified in the options block and sorption is specified as FREUNDLICH or LANGMUIR. If the SORPTION keyword is not specified in the options block, or if sorption is specified as LINEAR, sp2 will have no effect on simulation results. 
diff --git a/flopy/mf6/data/dfn/gwt-mst.dfn b/flopy/mf6/data/dfn/gwt-mst.dfn
index 06e5169f81..bc0bd1709b 100644
--- a/flopy/mf6/data/dfn/gwt-mst.dfn
+++ b/flopy/mf6/data/dfn/gwt-mst.dfn
@@ -33,6 +33,50 @@ optional true
 longname activate sorption
 description is a text keyword to indicate that sorption will be activated.  Valid sorption options include LINEAR, FREUNDLICH, and LANGMUIR.  Use of this keyword requires that BULK\_DENSITY and DISTCOEF are specified in the GRIDDATA block.  If sorption is specified as FREUNDLICH or LANGMUIR then SP2 is also required in the GRIDDATA block.
 
+block options
+name sorbate_filerecord
+type record sorbate fileout sorbatefile
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name sorbate
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname sorbate keyword
+description keyword to specify that record corresponds to sorbate concentration.
+
+block options
+name fileout
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an output filename is expected next.
+
+block options
+name sorbatefile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the output file to write sorbate concentration information.  Sorbate concentrations will be written whenever aqueous concentrations are saved, as determined by settings in the Output Control option.
+
 # --------------------- gwt mst griddata ---------------------
 
 block griddata
@@ -82,7 +126,7 @@ reader readarray
 layered true
 optional true
 longname distribution coefficient
-description is the distribution coefficient for the equilibrium-controlled linear sorption isotherm in dimensions of length cubed per mass.  distcoef is not required unless the SORPTION keyword is specified.
+description is the distribution coefficient for the equilibrium-controlled linear sorption isotherm in dimensions of length cubed per mass.  If the Freunchlich isotherm is specified, then discoef is the Freundlich constant.  If the Langmuir isotherm is specified, then distcoef is the Langmuir constant.  distcoef is not required unless the SORPTION keyword is specified.
 
 block griddata
 name sp2
@@ -92,5 +136,5 @@ reader readarray
 layered true
 optional true
 longname second sorption parameter
-description is the exponent for the Freundlich isotherm and the sorption capacity for the Langmuir isotherm.
+description is the exponent for the Freundlich isotherm and the sorption capacity for the Langmuir isotherm.  sp2 is not required unless the SORPTION keyword is specified in the options block.  If the SORPTION keyword is not specified in the options block, sp2 will have no effect on simulation results. 
 
diff --git a/flopy/mf6/data/dfn/gwt-nam.dfn b/flopy/mf6/data/dfn/gwt-nam.dfn
index a06795e243..ee446b5efb 100644
--- a/flopy/mf6/data/dfn/gwt-nam.dfn
+++ b/flopy/mf6/data/dfn/gwt-nam.dfn
@@ -33,6 +33,133 @@ optional true
 longname save flows for all packages to budget file
 description REPLACE save_flows {'{#1}': 'all model package'}
 
+block options
+name nc_mesh2d_filerecord
+type record netcdf_mesh2d fileout ncmesh2dfile
+shape
+reader urword
+tagged true
+optional true
+longname
+description netcdf layered mesh fileout record.
+mf6internal ncmesh2drec
+
+block options
+name netcdf_mesh2d
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname budget keyword
+description keyword to specify that record corresponds to a layered mesh netcdf file.
+extended true
+
+block options
+name nc_structured_filerecord
+type record netcdf_structured fileout ncstructfile
+shape
+reader urword
+tagged true
+optional true
+longname
+description netcdf structured fileout record.
+mf6internal ncstructrec
+
+block options
+name netcdf_structured
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname budget keyword
+description keyword to specify that record corresponds to a structured netcdf file.
+mf6internal netcdf_struct
+extended true
+
+block options
+name fileout
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an output filename is expected next.
+
+block options
+name ncmesh2dfile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the netcdf ugrid layered mesh output file.
+extended true
+
+block options
+name ncstructfile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the netcdf structured output file.
+extended true
+
+block options
+name nc_filerecord
+type record netcdf filein netcdf_filename
+reader urword
+tagged true
+optional true
+longname
+description netcdf filerecord
+
+block options
+name netcdf
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname netcdf keyword
+description keyword to specify that record corresponds to a netcdf input file.
+extended true
+
+block options
+name filein
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block options
+name netcdf_filename
+type string
+preserve_case true
+in_record true
+reader urword
+optional false
+tagged false
+longname netcdf input filename
+description defines a netcdf input file.
+mf6internal netcdf_fname
+extended true
+
 # --------------------- gwt nam packages ---------------------
 
 block packages
diff --git a/flopy/mf6/data/dfn/prt-dis.dfn b/flopy/mf6/data/dfn/prt-dis.dfn
index 7d4724f0ae..fc0a566999 100644
--- a/flopy/mf6/data/dfn/prt-dis.dfn
+++ b/flopy/mf6/data/dfn/prt-dis.dfn
@@ -49,6 +49,55 @@ mf6internal export_ascii
 longname export array variables to layered ascii files.
 description keyword that specifies input griddata arrays should be written to layered ascii output files.
 
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+
+block options
+name ncf_filerecord
+type record ncf6 filein ncf6_filename
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name ncf6
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname ncf keyword
+description keyword to specify that record corresponds to a netcdf configuration (NCF) file.
+
+block options
+name filein
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block options
+name ncf6_filename
+type string
+preserve_case true
+in_record true
+reader urword
+optional false
+tagged false
+longname file name of NCF information
+description defines a netcdf configuration (NCF) input file.
+
 # --------------------- prt dis dimensions ---------------------
 
 block dimensions
diff --git a/flopy/mf6/data/dfn/prt-disv.dfn b/flopy/mf6/data/dfn/prt-disv.dfn
index 1bec85b5a7..540d70a016 100644
--- a/flopy/mf6/data/dfn/prt-disv.dfn
+++ b/flopy/mf6/data/dfn/prt-disv.dfn
@@ -49,6 +49,55 @@ mf6internal export_ascii
 longname export array variables to layered ascii files.
 description keyword that specifies input griddata arrays should be written to layered ascii output files.
 
+block options
+name export_array_netcdf
+type keyword
+reader urword
+optional true
+mf6internal export_nc
+longname export array variables to netcdf output files.
+description keyword that specifies input griddata arrays should be written to the model output netcdf file.
+
+block options
+name ncf_filerecord
+type record ncf6 filein ncf6_filename
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name ncf6
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname ncf keyword
+description keyword to specify that record corresponds to a netcdf configuration (NCF) file.
+
+block options
+name filein
+type keyword
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block options
+name ncf6_filename
+type string
+preserve_case true
+in_record true
+reader urword
+optional false
+tagged false
+longname file name of NCF information
+description defines a netcdf configuration (NCF) input file.
+
 # --------------------- prt disv dimensions ---------------------
 
 block dimensions
diff --git a/flopy/mf6/data/dfn/prt-oc.dfn b/flopy/mf6/data/dfn/prt-oc.dfn
index a3867142fd..d946d112c4 100644
--- a/flopy/mf6/data/dfn/prt-oc.dfn
+++ b/flopy/mf6/data/dfn/prt-oc.dfn
@@ -157,7 +157,7 @@ type keyword
 reader urword
 optional true
 longname track transitions
-description keyword to indicate that particle tracking output is to be written when a particle exits a cell
+description keyword to indicate that particle tracking output is to be written when a particle exits a feature (a model, cell, or subcell)
 
 block options
 name track_timestep
@@ -189,70 +189,37 @@ type keyword
 reader urword
 optional true
 longname track usertime
-description keyword to indicate that particle tracking output is to be written at user-specified times, provided as double precision values to the TRACK\_TIMES or TRACK\_TIMESFILE options
+description keyword to indicate that particle tracking output is to be written at user-specified times, provided as double precision values in the TRACKTIMES block.
 
-block options
-name track_timesrecord
-type record track_times times
-shape
-reader urword
-tagged true
-optional true
-longname
-description
+# --------------------- prt oc dimensions ------------------
 
-block options
-name track_times
-type keyword
+block dimensions
+name ntracktimes
+type integer
 reader urword
-in_record true
-tagged true
-shape
-longname
-description keyword indicating tracking times will follow
+optional false
+longname number of particle tracking times
+description is the number of user-specified particle tracking times in the TRACKTIMES block.
 
-block options
-name times
-type double precision
-shape (unknown)
-reader urword
-in_record true
-tagged false
-repeating true
-longname tracking times
-description times to track, relative to the beginning of the simulation.
+# --------------------- prt oc tracktimes -----------------
 
-block options
-name track_timesfilerecord
-type record track_timesfile timesfile
-shape
+block tracktimes
+name tracktimes
+type recarray time
+shape (ntracktimes)
 reader urword
-tagged true
-optional true
 longname
 description
 
-block options
-name track_timesfile
-type keyword
-reader urword
-in_record true
-tagged true
-shape
-longname
-description keyword indicating tracking times file name will follow
-
-block options
-name timesfile
-type string
-preserve_case true
+block tracktimes
+name time
+type double precision
 shape
+tagged false
 in_record true
 reader urword
-tagged false
-optional false
-longname file keyword
-description name of the tracking times file
+longname release time
+description real value that defines the tracking time with respect to the simulation start time.
 
 # --------------------- prt oc period ---------------------
 
diff --git a/flopy/mf6/data/dfn/prt-prp.dfn b/flopy/mf6/data/dfn/prt-prp.dfn
index 5385a42966..be09471848 100644
--- a/flopy/mf6/data/dfn/prt-prp.dfn
+++ b/flopy/mf6/data/dfn/prt-prp.dfn
@@ -24,15 +24,16 @@ type integer
 reader urword
 optional true
 longname exit solve method
-description the method for iterative solution of particle exit location and time in the generalized Pollock's method.  1 Brent, 2 Chandrupatla.  The default is Brent.
+description the method for iterative solution of particle exit location and time in the generalized Pollock's method.  0 default, 1 Brent, 2 Chandrupatla.  The default is Brent's method.
 
 block options
 name exit_solve_tolerance
 type double precision
 reader urword
-optional false
+optional true
 longname exit solve tolerance
 description the convergence tolerance for iterative solution of particle exit location and time in the generalized Pollock's method.  A value of 0.00001 works well for many problems, but the value that strikes the best balance between accuracy and runtime is problem-dependent.
+default_value 1e-5
 
 block options
 name local_z
@@ -42,6 +43,14 @@ optional true
 longname whether to use local z coordinates
 description indicates that ``zrpt'' defines the local z coordinate of the release point within the cell, with value of 0 at the bottom and 1 at the top of the cell.  If the cell is partially saturated at release time, the top of the cell is considered to be the water table elevation (the head in the cell) rather than the top defined by the user.
 
+block options
+name extend_tracking
+type keyword
+reader urword
+optional true
+longname whether to extend tracking beyond the end of the simulation
+description indicates that particles should be tracked beyond the end of the simulation's final time step (using that time step's flows) until particles terminate or reach a specified stop time.  By default, particles are terminated at the end of the simulation's final time step.
+
 block options
 name track_filerecord
 type record track fileout trackfile
@@ -160,77 +169,38 @@ longname drape
 description is a text keyword to indicate that if a particle's release point is in a cell that happens to be inactive at release time, the particle is to be moved to the topmost active cell below it, if any. By default, a particle is not released into the simulation if its release point's cell is inactive at release time.
 
 block options
-name release_timesrecord
-type record release_times times
-shape
+name dry_tracking_method
+type string
+valid drop stop stay
 reader urword
-tagged true
 optional true
-longname
-description
+longname what to do in dry-but-active cells
+description is a string indicating how particles should behave in dry-but-active cells (as can occur with the Newton formulation).  The value can be ``DROP'', ``STOP'', or ``STAY''.  The default is ``DROP'', which passes particles vertically and instantaneously to the water table. ``STOP'' causes particles to terminate. ``STAY'' causes particles to remain stationary but active.
 
 block options
-name release_times
+name dev_forceternary
 type keyword
 reader urword
-in_record true
-tagged true
-shape
-longname
-description keyword indicating release times will follow
+optional false
+longname force ternary tracking method
+description force use of the ternary tracking method regardless of cell type in DISV grids.
+mf6internal ifrctrn
 
 block options
-name times
+name release_time_tolerance
 type double precision
-shape (unknown)
-reader urword
-in_record true
-tagged false
-repeating true
-longname release times
-description times to release, relative to the beginning of the simulation.  RELEASE\_TIMES and RELEASE\_TIMESFILE are mutually exclusive.
-
-block options
-name release_timesfilerecord
-type record release_timesfile timesfile
-shape
 reader urword
-tagged true
 optional true
-longname
-description
-
-block options
-name release_timesfile
-type keyword
-reader urword
-in_record true
-tagged true
-shape
-longname
-description keyword indicating release times file name will follow
-
-block options
-name timesfile
-type string
-preserve_case true
-shape
-in_record true
-reader urword
-tagged false
-optional false
-longname file keyword
-description name of the release times file.  RELEASE\_TIMES and RELEASE\_TIMESFILE are mutually exclusive.
+longname release time coincidence tolerance
+description real number indicating the tolerance within which to consider consecutive release times coincident. Coincident release times will be merged into a single release time. The default is $\epsilon \times 10^{11}$, where $\epsilon$ is machine precision.
 
 block options
-name dev_forceternary
-type keyword
+name release_time_frequency
+type double precision
 reader urword
-optional false
-longname force ternary tracking method
-description force use of the ternary tracking method regardless of cell type in DISV grids.
-mf6internal ifrctrn
-
+optional true
+longname release time frequency
+description real number indicating the time frequency at which to release particles. This option can be used to schedule releases at a regular interval for the duration of the simulation, starting at the simulation start time. The release schedule is the union of this option, the RELEASETIMES block, and PERIOD block RELEASESETTING selections. If none of these are provided, a single release time is configured at the beginning of the first time step of the simulation's first stress period.
 
 # --------------------- prt prp dimensions ---------------------
 
@@ -242,6 +212,14 @@ optional false
 longname number of particle release points
 description is the number of particle release points.
 
+block dimensions
+name nreleasetimes
+type integer
+reader urword
+optional false
+longname number of particle release times
+description is the number of particle release times specified in the RELEASETIMES block. This is not necessarily the total number of release times; release times are the union of RELEASE\_TIME\_FREQUENCY, RELEASETIMES block, and PERIOD block RELEASESETTING selections.
+
 # --------------------- prt prp packagedata ---------------------
 
 block packagedata
@@ -314,6 +292,26 @@ optional true
 longname release point name
 description name of the particle release point. BOUNDNAME is an ASCII character variable that can contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single quotes.
 
+# --------------------- prt prp releasetimes ---------------
+
+block releasetimes
+name releasetimes
+type recarray time
+shape (nreleasetimes)
+reader urword
+longname
+description
+
+block releasetimes
+name time
+type double precision
+shape
+tagged false
+in_record true
+reader urword
+longname release time
+description real value that defines the release time with respect to the simulation start time.
+
 # --------------------- prt prp period ---------------------
 
 block period
@@ -345,7 +343,7 @@ tagged false
 in_record true
 reader urword
 longname
-description specifies when to release particles within the stress period.  Overrides package-level RELEASETIME option, which applies to all stress periods. By default, RELEASESETTING configures particles for release at the beginning of the specified time steps. For time-offset releases, provide a FRACTION value.
+description specifies time steps at which to release a particle. A particle is released at the beginning of each specified time step. For fine control over release timing, specify times explicitly using the RELEASETIMES block. If the beginning of a specified time step coincides with a release time specified in the RELEASETIMES block or configured via RELEASE\_TIME\_FREQUENCY, only one particle is released at that time. Coincidence is evaluated up to the tolerance specified in RELEASE\_TIME\_TOLERANCE, or $\epsilon \times 10^{11}$ by default, where $\epsilon$ is machine precision. If no release times are configured via this setting, the RELEASETIMES block, or the RELEASE\_TIME\_FREQUENCY option, a single release time is configured at the beginning of the first time step of the simulation's first stress period.
 
 block period
 name all
@@ -354,7 +352,7 @@ shape
 in_record true
 reader urword
 longname
-description keyword to indicate release of particles at the start of all time steps in the period.
+description keyword to indicate release at the start of all time steps in the period.
 
 block period
 name first
@@ -363,7 +361,16 @@ shape
 in_record true
 reader urword
 longname
-description keyword to indicate release of particles at the start of the first time step in the period. This keyword may be used in conjunction with other keywords to release particles at the start of multiple time steps.
+description keyword to indicate release at the start of the first time step in the period. This keyword may be used in conjunction with other RELEASESETTING options.
+
+block period
+name last
+type keyword
+shape
+in_record true
+reader urword
+longname
+description keyword to indicate release at the start of the last time step in the period. This keyword may be used in conjunction with other RELEASESETTING options.
 
 block period
 name frequency
@@ -373,7 +380,7 @@ tagged true
 in_record true
 reader urword
 longname
-description release particles at the specified time step frequency. This keyword may be used in conjunction with other keywords to release particles at the start of multiple time steps.
+description release at the specified time step frequency. This keyword may be used in conjunction with other RELEASESETTING options.
 
 block period
 name steps
@@ -383,7 +390,7 @@ tagged true
 in_record true
 reader urword
 longname
-description release particles at the start of each step specified in STEPS. This keyword may be used in conjunction with other keywords to release particles at the start of multiple time steps.
+description release at the start of each step specified in STEPS. This option may be used in conjunction with other RELEASESETTING options.
 
 block period
 name fraction
@@ -393,5 +400,6 @@ tagged true
 in_record true
 reader urword
 optional true
+removed 6.5.1
 longname
-description release particles after the specified fraction of the time step has elapsed. If FRACTION is not set, particles are released at the start of the specified time step(s). FRACTION must be a single value when used with ALL, FIRST, or FREQUENCY. When used with STEPS, FRACTION may be a single value or an array of the same length as STEPS. If a single FRACTION value is provided with STEPS, the fraction applies to all steps.
\ No newline at end of file
+description release particles after the specified fraction of the time step has elapsed. If FRACTION is not set, particles are released at the start of the specified time step(s). FRACTION must be a single value when used with ALL, FIRST, or FREQUENCY. When used with STEPS, FRACTION may be a single value or an array of the same length as STEPS. If a single FRACTION value is provided with STEPS, the fraction applies to all steps. NOTE: The FRACTION option has been removed. For fine control over release timing, specify times explicitly using the RELEASETIMES block.
diff --git a/flopy/mf6/data/dfn/sim-nam.dfn b/flopy/mf6/data/dfn/sim-nam.dfn
index 9ba8b3e52e..c22dbc7f1c 100644
--- a/flopy/mf6/data/dfn/sim-nam.dfn
+++ b/flopy/mf6/data/dfn/sim-nam.dfn
@@ -61,6 +61,7 @@ tagged true
 optional false
 longname head keyword
 description keyword to specify that record corresponds to a hpc file.
+extended true
 
 block options
 name filein
@@ -83,6 +84,7 @@ optional false
 tagged false
 longname file name of time series information
 description name of input file to define HPC file settings for the HPC package. See the ``HPC File'' section for instructions for preparing HPC input files.
+extended true
 
 
 # --------------------- sim nam timing ---------------------
diff --git a/flopy/mf6/data/dfn/utl-hpc.dfn b/flopy/mf6/data/dfn/utl-hpc.dfn
index 4003a0a8e2..378fe77d06 100644
--- a/flopy/mf6/data/dfn/utl-hpc.dfn
+++ b/flopy/mf6/data/dfn/utl-hpc.dfn
@@ -2,6 +2,14 @@
 # flopy subpackage hpc_filerecord hpc hpc_data hpc
 # flopy parent_name_type parent_package MFSimulation
 
+block options
+name print_table
+type keyword
+reader urword
+optional true
+longname model print table to listing file
+description keyword to indicate that the partition table will be printed to the listing file.
+
 block options
 name dev_log_mpi
 type keyword
@@ -17,7 +25,7 @@ block partitions
 name partitions
 type recarray mname mrank
 reader urword
-optional
+optional true
 longname list of partition numbers
 description is the list of zero-based partition numbers.
 
diff --git a/flopy/mf6/data/dfn/utl-ncf.dfn b/flopy/mf6/data/dfn/utl-ncf.dfn
new file mode 100644
index 0000000000..f6dc80d503
--- /dev/null
+++ b/flopy/mf6/data/dfn/utl-ncf.dfn
@@ -0,0 +1,108 @@
+# flopy subpackage ncf_filerecord ncf packagedata packagedata
+# flopy parent_name_type parent_package MFPackage
+
+# --------------------- utl ncf options ---------------------
+
+block options
+name wkt
+type string
+shape lenbigline
+reader urword
+optional true
+longname CRS well-known text (WKT) string
+description is the CRS well-known text (WKT) string.
+
+block options
+name deflate
+type integer
+reader urword
+optional true
+longname variable compression deflate level
+description is the variable deflate level (0=min, 9=max) in the netcdf file. Defining this parameter activates per-variable compression at the level specified.
+
+block options
+name shuffle
+type keyword
+reader urword
+optional true
+longname
+description is the keyword used to turn on the netcdf variable shuffle filter when the deflate option is also set. The shuffle filter has the effect of storing the first byte of all of a variable's values in a chunk contiguously, followed by all the second bytes, etc. This can be an optimization for compression with certain types of data.
+
+block options
+name chunk_time
+type integer
+reader urword
+optional true
+longname chunking parameter for the time dimension
+description is the keyword used to provide a data chunk size for the time dimension in a NETCDF\_MESH2D or NETCDF\_STRUCTURED output file. Must be used in combination with the the chunk\_face parameter (NETCDF\_MESH2D) or the chunk\_z, chunk\_y, and chunk\_x parameter set (NETCDF\_STRUCTURED) to have an effect.
+
+block options
+name chunk_face
+type integer
+reader urword
+optional true
+longname chunking parameter for the mesh face dimension
+description is the keyword used to provide a data chunk size for the face dimension in a NETCDF\_MESH2D output file. Must be used in combination with the the chunk\_time parameter to have an effect.
+
+block options
+name chunk_z
+type integer
+reader urword
+optional true
+longname chunking parameter for structured z
+description is the keyword used to provide a data chunk size for the z dimension in a NETCDF\_STRUCTURED output file. Must be used in combination with the the chunk\_time, chunk\_x and chunk\_y parameter set to have an effect.
+
+block options
+name chunk_y
+type integer
+reader urword
+optional true
+longname chunking parameter for structured y
+description is the keyword used to provide a data chunk size for the y dimension in a NETCDF\_STRUCTURED output file. Must be used in combination with the the chunk\_time, chunk\_x and chunk\_z parameter set to have an effect.
+
+block options
+name chunk_x
+type integer
+reader urword
+optional true
+longname chunking parameter for structured x
+description is the keyword used to provide a data chunk size for the x dimension in a NETCDF\_STRUCTURED output file. Must be used in combination with the the chunk\_time, chunk\_y and chunk\_z parameter set to have an effect.
+
+block options
+name modflow6_attr_off
+type keyword
+reader urword
+optional true
+longname
+description is the keyword used to turn off internal input tagging in the model netcdf file. Tagging adds internal modflow 6 attribute(s) to variables which facilitate identification. Currently this applies to gridded arrays.
+mf6internal attr_off
+
+# --------------------- utl ncf dimensions ---------------------
+
+block dimensions
+name ncpl
+type integer
+optional true
+reader urword
+longname number of cells in layer
+description is the number of cells in a projected plane layer.
+
+# --------------------- utl ncf griddata ---------------------
+
+block griddata
+name latitude
+type double precision
+shape (ncpl)
+optional true
+reader readarray
+longname cell center latitude
+description cell center latitude.
+
+block griddata
+name longitude
+type double precision
+shape (ncpl)
+optional true
+reader readarray
+longname cell center longitude
+description cell center longitude.
diff --git a/flopy/mf6/data/dfn/utl-spc.dfn b/flopy/mf6/data/dfn/utl-spc.dfn
index 6fabd0c0f6..58aebbddd1 100644
--- a/flopy/mf6/data/dfn/utl-spc.dfn
+++ b/flopy/mf6/data/dfn/utl-spc.dfn
@@ -98,13 +98,13 @@ numeric_index true
 
 block period
 name spcsetting
-type keystring concentration
+type keystring concentration temperature
 shape
 tagged false
 in_record true
 reader urword
 longname
-description line of information that is parsed into a keyword and values.  Keyword values that can be used to start the SPCSETTING string include: CONCENTRATION.
+description line of information that is parsed into a keyword and values.  Keyword values that can be used to start the SPCSETTING string include: CONCENTRATION and TEMPERATURE.
 
 block period
 name concentration
@@ -114,5 +114,16 @@ tagged true
 in_record true
 reader urword
 time_series true
-longname well boundary concentration
+longname boundary concentration
 description is the boundary concentration. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value. By default, the CONCENTRATION for each boundary feature is zero.
+
+block period
+name temperature
+type double precision
+shape
+tagged true
+in_record true
+reader urword
+time_series true
+longname boundary temperature
+description is the user-supplied boundary temperature. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value. By default, the TEMPERATURE for each boundary feature is zero.
\ No newline at end of file
diff --git a/flopy/mf6/data/dfn/utl-spca.dfn b/flopy/mf6/data/dfn/utl-spca.dfn
index 40bbe7067d..92ac496e1a 100644
--- a/flopy/mf6/data/dfn/utl-spca.dfn
+++ b/flopy/mf6/data/dfn/utl-spca.dfn
@@ -83,7 +83,16 @@ name concentration
 type double precision
 shape (ncol*nrow; ncpl)
 reader readarray
+optional true
 longname concentration
 description is the concentration of the associated Recharge or Evapotranspiration stress package.  The concentration array may be defined by a time-array series (see the "Using Time-Array Series in a Package" section).
-default_value 0.
+
+block period
+name temperature
+type double precision
+shape (ncol*nrow; ncpl)
+reader readarray
+optional true
+longname temperature
+description is the temperature of the associated Recharge or Evapotranspiration stress package.  The temperature array may be defined by a time-array series (see the "Using Time-Array Series in a Package" section).
 
diff --git a/flopy/mf6/data/dfn/utl-spt.dfn b/flopy/mf6/data/dfn/utl-spt.dfn
deleted file mode 100644
index 4febf60723..0000000000
--- a/flopy/mf6/data/dfn/utl-spt.dfn
+++ /dev/null
@@ -1,118 +0,0 @@
-# --------------------- ssm spt options ---------------------
-# flopy multi-package
-
-block options
-name print_input
-type keyword
-reader urword
-optional true
-longname print input to listing file
-description REPLACE print_input {'{#1}': 'spt'}
-
-block options
-name ts_filerecord
-type record ts6 filein ts6_filename
-shape
-reader urword
-tagged true
-optional true
-longname
-description
-
-block options
-name ts6
-type keyword
-shape
-in_record true
-reader urword
-tagged true
-optional false
-longname head keyword
-description keyword to specify that record corresponds to a time-series file.
-
-block options
-name filein
-type keyword
-shape
-in_record true
-reader urword
-tagged true
-optional false
-longname file keyword
-description keyword to specify that an input filename is expected next.
-
-block options
-name ts6_filename
-type string
-preserve_case true
-in_record true
-reader urword
-optional false
-tagged false
-longname file name of time series information
-description REPLACE timeseriesfile {}
-
-# --------------------- ssm spt dimensions ---------------------
-
-block dimensions
-name maxbound
-type integer
-reader urword
-optional false
-longname maximum number of ssm entries
-description REPLACE maxbound {'{#1}': 'spt'}
-
-# --------------------- ssm spt period ---------------------
-
-block period
-name iper
-type integer
-block_variable True
-in_record true
-tagged false
-shape
-valid
-reader urword
-optional false
-longname stress period number
-description REPLACE iper {}
-
-block period
-name perioddata
-type recarray bndno sptsetting
-shape
-reader urword
-longname
-description
-
-block period
-name bndno
-type integer
-shape
-tagged false
-in_record true
-reader urword
-longname bound number for this entry
-description integer value that defines the boundary package feature number associated with the specified PERIOD data on the line. BNDNO must be greater than zero and less than or equal to MAXBOUND.
-numeric_index true
-
-block period
-name sptsetting
-type keystring temperature
-shape
-tagged false
-in_record true
-reader urword
-longname
-description line of information that is parsed into a keyword and values.  Keyword values that can be used to start the SPTSETTING string include: TEMPERATURE.
-
-block period
-name temperature
-type double precision
-shape
-tagged true
-in_record true
-reader urword
-time_series true
-longname well boundary temperature
-description is the boundary temperature. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value. By default, the TEMPERATURE for each boundary feature is zero.
diff --git a/flopy/mf6/data/dfn/utl-spta.dfn b/flopy/mf6/data/dfn/utl-spta.dfn
deleted file mode 100644
index 13463e47a9..0000000000
--- a/flopy/mf6/data/dfn/utl-spta.dfn
+++ /dev/null
@@ -1,89 +0,0 @@
-# --------------------- ssm spta options ---------------------
-# flopy multi-package
-
-block options
-name readasarrays
-type keyword
-shape
-reader urword
-optional false
-longname use array-based input
-description indicates that array-based input will be used for the SPT Package.  This keyword must be specified to use array-based input.  When READASARRAYS is specified, values must be provided for every cell within a model layer, even those cells that have an IDOMAIN value less than one.  Values assigned to cells with IDOMAIN values less than one are not used and have no effect on simulation results.
-default_value True
-
-block options
-name print_input
-type keyword
-reader urword
-optional true
-longname print input to listing file
-description REPLACE print_input {'{#1}': 'spt'}
-
-block options
-name tas_filerecord
-type record tas6 filein tas6_filename
-shape
-reader urword
-tagged true
-optional true
-longname
-description
-
-block options
-name tas6
-type keyword
-shape
-in_record true
-reader urword
-tagged true
-optional false
-longname head keyword
-description keyword to specify that record corresponds to a time-array-series file.
-
-block options
-name filein
-type keyword
-shape
-in_record true
-reader urword
-tagged true
-optional false
-longname file keyword
-description keyword to specify that an input filename is expected next.
-
-block options
-name tas6_filename
-type string
-preserve_case true
-in_record true
-reader urword
-optional false
-tagged false
-longname file name of time series information
-description defines a time-array-series file defining a time-array series that can be used to assign time-varying values. See the Time-Variable Input section for instructions on using the time-array series capability.
-
-
-# --------------------- ssm spta period ---------------------
-
-block period
-name iper
-type integer
-block_variable True
-in_record true
-tagged false
-shape
-valid
-reader urword
-optional false
-longname stress period number
-description REPLACE iper {}
-
-block period
-name temperature
-type double precision
-shape (ncol*nrow; ncpl)
-reader readarray
-longname temperature
-description is the temperature of the associated Recharge or Evapotranspiration stress package.  The temperature array may be defined by a time-array series (see the ``Using Time-Array Series in a Package'' section).
-default_value 0.
-
diff --git a/flopy/mf6/data/dfn/utl-tas.dfn b/flopy/mf6/data/dfn/utl-tas.dfn
index 6316beba5c..81c6fd25bc 100644
--- a/flopy/mf6/data/dfn/utl-tas.dfn
+++ b/flopy/mf6/data/dfn/utl-tas.dfn
@@ -19,6 +19,7 @@ type keyword
 shape
 reader urword
 optional false
+in_record true
 longname
 description xxx
 
@@ -29,6 +30,7 @@ shape any1d
 tagged false
 reader urword
 optional false
+in_record true
 longname
 description Name by which a package references a particular time-array series. The name must be unique among all time-array series used in a package.
 
@@ -48,6 +50,7 @@ type keyword
 shape
 reader urword
 optional false
+in_record true
 longname
 description  xxx
 
@@ -59,6 +62,7 @@ shape
 tagged false
 reader urword
 optional false
+in_record true
 longname
 description Interpolation method, which is either STEPWISE or LINEAR.
 
@@ -78,6 +82,7 @@ type keyword
 shape
 reader urword
 optional false
+in_record true
 longname
 description  xxx
 
@@ -88,6 +93,7 @@ shape time_series_name
 tagged false
 reader urword
 optional false
+in_record true
 longname
 description Scale factor, which will multiply all array values in time series. SFAC is an optional attribute; if omitted, SFAC = 1.0.
 
diff --git a/flopy/mf6/data/dfn/utl-ts.dfn b/flopy/mf6/data/dfn/utl-ts.dfn
index a7165ea382..41bf114484 100644
--- a/flopy/mf6/data/dfn/utl-ts.dfn
+++ b/flopy/mf6/data/dfn/utl-ts.dfn
@@ -20,6 +20,7 @@ type keyword
 shape
 reader urword
 optional false
+in_record true
 longname
 description xxx
 
@@ -30,6 +31,7 @@ shape any1d
 tagged false
 reader urword
 optional false
+in_record true
 longname
 description Name by which a package references a particular time-array series. The name must be unique among all time-array series used in a package.
 
@@ -49,6 +51,7 @@ type keyword
 shape
 reader urword
 optional false
+in_record true
 longname
 description  xxx
 
@@ -60,6 +63,7 @@ shape time_series_names
 tagged false
 reader urword
 optional false
+in_record true
 longname
 description Interpolation method, which is either STEPWISE or LINEAR.
 
@@ -109,6 +113,7 @@ type keyword
 shape
 reader urword
 optional false
+in_record true
 longname
 description  xxx
 
@@ -119,6 +124,7 @@ shape <time_series_name
 tagged false
 reader urword
 optional false
+in_record true
 longname
 description Scale factor, which will multiply all array values in time series. SFAC is an optional attribute; if omitted, SFAC = 1.0.
 
@@ -162,6 +168,7 @@ tagged false
 reader urword
 optional false
 repeating false
+in_record true
 longname
 description A numeric time relative to the start of the simulation, in the time unit used in the simulation. Times must be strictly increasing.
 
@@ -172,5 +179,6 @@ shape time_series_names
 tagged false
 reader urword
 optional false
+in_record true
 longname
 description A 2-D array of numeric, floating-point values, or a constant value, readable by the U2DREL array-reading utility.
diff --git a/flopy/mf6/modflow/__init__.py b/flopy/mf6/modflow/__init__.py
index 8748cf9953..7fb1f191fb 100644
--- a/flopy/mf6/modflow/__init__.py
+++ b/flopy/mf6/modflow/__init__.py
@@ -94,12 +94,11 @@
 from .mfutlats import ModflowUtlats
 from .mfutlhpc import ModflowUtlhpc
 from .mfutllaktab import ModflowUtllaktab
+from .mfutlncf import ModflowUtlncf
 from .mfutlobs import ModflowUtlobs
 from .mfutlsfrtab import ModflowUtlsfrtab
 from .mfutlspc import ModflowUtlspc
 from .mfutlspca import ModflowUtlspca
-from .mfutlspt import ModflowUtlspt
-from .mfutlspta import ModflowUtlspta
 from .mfutltas import ModflowUtltas
 from .mfutlts import ModflowUtlts
 from .mfutltvk import ModflowUtltvk
diff --git a/flopy/mf6/modflow/mfems.py b/flopy/mf6/modflow/mfems.py
index 93dcce5449..a6a419639d 100644
--- a/flopy/mf6/modflow/mfems.py
+++ b/flopy/mf6/modflow/mfems.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 
 
@@ -22,7 +22,7 @@ class ModflowEms(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
@@ -32,23 +32,14 @@ class ModflowEms(mfpackage.MFPackage):
     dfn_file_name = "sln-ems.dfn"
 
     dfn = [
-        [
-            "header",
-            ["solution_package", "*"],
-        ],
-    ]
-
-    def __init__(
-        self,
-        simulation,
-        loading_package=False,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            simulation, "ems", filename, pname, loading_package, **kwargs
-        )
+           ["header", 
+            ["solution_package", "*"], ],
+           ]
+
+    def __init__(self, simulation, loading_package=False, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(simulation, "ems", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgnc.py b/flopy/mf6/modflow/mfgnc.py
index b40a6493af..7673bf3a86 100644
--- a/flopy/mf6/modflow/mfgnc.py
+++ b/flopy/mf6/modflow/mfgnc.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -93,126 +93,49 @@ class ModflowGnc(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    gncdata = ListTemplateGenerator(("gnc", "gncdata", "gncdata"))
+    gncdata = ListTemplateGenerator(('gnc', 'gncdata', 'gncdata'))
     package_abbr = "gnc"
     _package_type = "gnc"
     dfn_file_name = "gwf-gnc.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name explicit",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block dimensions",
-            "name numgnc",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name numalphaj",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block gncdata",
-            "name gncdata",
+           ["header", ],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name explicit", "type keyword", "tagged true",
+            "reader urword", "optional true"],
+           ["block dimensions", "name numgnc", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name numalphaj", "type integer",
+            "reader urword", "optional false"],
+           ["block gncdata", "name gncdata",
             "type recarray cellidn cellidm cellidsj alphasj",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block gncdata",
-            "name cellidn",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block gncdata",
-            "name cellidm",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block gncdata",
-            "name cellidsj",
-            "type integer",
-            "shape (numalphaj)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block gncdata",
-            "name alphasj",
-            "type double precision",
-            "shape (numalphaj)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-    ]
+            "shape (maxbound)", "reader urword"],
+           ["block gncdata", "name cellidn", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block gncdata", "name cellidm", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block gncdata", "name cellidsj", "type integer",
+            "shape (numalphaj)", "tagged false", "in_record true",
+            "reader urword", "numeric_index true"],
+           ["block gncdata", "name alphasj", "type double precision",
+            "shape (numalphaj)", "tagged false", "in_record true",
+            "reader urword"]]
 
-    def __init__(
-        self,
-        parent_model_or_package,
-        loading_package=False,
-        print_input=None,
-        print_flows=None,
-        explicit=None,
-        numgnc=None,
-        numalphaj=None,
-        gncdata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            parent_model_or_package,
-            "gnc",
-            filename,
-            pname,
-            loading_package,
-            **kwargs,
-        )
+    def __init__(self, parent_model_or_package, loading_package=False,
+                 print_input=None, print_flows=None, explicit=None,
+                 numgnc=None, numalphaj=None, gncdata=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(parent_model_or_package, "gnc", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.print_input = self.build_mfdata("print_input", print_input)
@@ -238,55 +161,24 @@ class GncPackages(mfpackage.MFChildPackages):
         Adds a new ModflowGwfgnc package to the container. See ModflowGwfgnc
         init documentation for definition of parameters.
     """
-
     package_abbr = "gncpackages"
 
-    def initialize(
-        self,
-        print_input=None,
-        print_flows=None,
-        explicit=None,
-        numgnc=None,
-        numalphaj=None,
-        gncdata=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowGnc(
-            self._cpparent,
-            print_input=print_input,
-            print_flows=print_flows,
-            explicit=explicit,
-            numgnc=numgnc,
-            numalphaj=numalphaj,
-            gncdata=gncdata,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def initialize(self, print_input=None, print_flows=None, explicit=None,
+                   numgnc=None, numalphaj=None, gncdata=None, filename=None,
+                   pname=None):
+        new_package = ModflowGnc(self._cpparent, print_input=print_input,
+                                    print_flows=print_flows, explicit=explicit,
+                                    numgnc=numgnc, numalphaj=numalphaj,
+                                    gncdata=gncdata, filename=filename,
+                                    pname=pname, child_builder_call=True)
         self.init_package(new_package, filename)
 
-    def append_package(
-        self,
-        print_input=None,
-        print_flows=None,
-        explicit=None,
-        numgnc=None,
-        numalphaj=None,
-        gncdata=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowGwfgnc(
-            self._cpparent,
-            print_input=print_input,
-            print_flows=print_flows,
-            explicit=explicit,
-            numgnc=numgnc,
-            numalphaj=numalphaj,
-            gncdata=gncdata,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def append_package(self, print_input=None, print_flows=None,
+                   explicit=None, numgnc=None, numalphaj=None, gncdata=None,
+                   filename=None, pname=None):
+        new_package = ModflowGwfgnc(self._cpparent, print_input=print_input,
+                                    print_flows=print_flows, explicit=explicit,
+                                    numgnc=numgnc, numalphaj=numalphaj,
+                                    gncdata=gncdata, filename=filename,
+                                    pname=pname, child_builder_call=True)
         self._append_package(new_package, filename)
diff --git a/flopy/mf6/modflow/mfgwe.py b/flopy/mf6/modflow/mfgwe.py
index b498063473..f9905a8881 100644
--- a/flopy/mf6/modflow/mfgwe.py
+++ b/flopy/mf6/modflow/mfgwe.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfmodel
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -45,6 +45,13 @@ class ModflowGwe(mfmodel.MFModel):
         * save_flows (boolean) keyword to indicate that all model package flow
           terms will be written to the file specified with "BUDGET FILEOUT" in
           Output Control.
+    nc_mesh2d_filerecord : [ncmesh2dfile]
+        * ncmesh2dfile (string) name of the netcdf ugrid layered mesh output
+          file.
+    nc_structured_filerecord : [ncstructfile]
+        * ncstructfile (string) name of the netcdf structured output file.
+    nc_filerecord : [netcdf_filename]
+        * netcdf_filename (string) defines a netcdf input file.
     packages : [ftype, fname, pname]
         * ftype (string) is the file type, which must be one of the following
           character values shown in table ref{table:ftype-gwe}. Ftype may be
@@ -69,67 +76,42 @@ class ModflowGwe(mfmodel.MFModel):
         model_ws : string, strict : boolean) : MFSimulation
         a class method that loads a model from files
     """
+    model_type = 'gwe'
 
-    model_type = "gwe"
-
-    def __init__(
-        self,
-        simulation,
-        modelname="model",
-        model_nam_file=None,
-        version="mf6",
-        exe_name="mf6",
-        model_rel_path=".",
-        list=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        **kwargs,
-    ):
-        super().__init__(
-            simulation,
-            model_type="gwe6",
-            modelname=modelname,
-            model_nam_file=model_nam_file,
-            version=version,
-            exe_name=exe_name,
-            model_rel_path=model_rel_path,
-            **kwargs,
-        )
+    def __init__(self, simulation, modelname='model', model_nam_file=None,
+                 version='mf6', exe_name='mf6', model_rel_path='.', list=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 nc_mesh2d_filerecord=None, nc_structured_filerecord=None,
+                 nc_filerecord=None, **kwargs,):
+        super().__init__(simulation, model_type='gwe6',
+                         modelname=modelname,
+                         model_nam_file=model_nam_file,
+                         version=version, exe_name=exe_name,
+                         model_rel_path=model_rel_path,
+                         **kwargs,)
 
         self.name_file.list.set_data(list)
         self.name_file.print_input.set_data(print_input)
         self.name_file.print_flows.set_data(print_flows)
         self.name_file.save_flows.set_data(save_flows)
+        self.name_file.nc_mesh2d_filerecord.set_data(nc_mesh2d_filerecord)
+        self.name_file.nc_structured_filerecord.set_data(nc_structured_filerecord)
+        self.name_file.nc_filerecord.set_data(nc_filerecord)
 
         self.list = self.name_file.list
         self.print_input = self.name_file.print_input
         self.print_flows = self.name_file.print_flows
         self.save_flows = self.name_file.save_flows
+        self.nc_mesh2d_filerecord = self.name_file.nc_mesh2d_filerecord
+        self.nc_structured_filerecord = self.name_file.nc_structured_filerecord
+        self.nc_filerecord = self.name_file.nc_filerecord
 
     @classmethod
-    def load(
-        cls,
-        simulation,
-        structure,
-        modelname="NewModel",
-        model_nam_file="modflowtest.nam",
-        version="mf6",
-        exe_name="mf6",
-        strict=True,
-        model_rel_path=".",
-        load_only=None,
-    ):
-        return mfmodel.MFModel.load_base(
-            cls,
-            simulation,
-            structure,
-            modelname,
-            model_nam_file,
-            "gwe6",
-            version,
-            exe_name,
-            strict,
-            model_rel_path,
-            load_only,
-        )
+    def load(cls, simulation, structure, modelname='NewModel',
+             model_nam_file='modflowtest.nam', version='mf6',
+             exe_name='mf6', strict=True, model_rel_path='.',
+             load_only=None):
+        return mfmodel.MFModel.load_base(cls, simulation, structure, modelname,
+                                         model_nam_file, 'gwe6', version,
+                                         exe_name, strict, model_rel_path,
+                                         load_only)
diff --git a/flopy/mf6/modflow/mfgweadv.py b/flopy/mf6/modflow/mfgweadv.py
index bc1f70bb45..ef69a39ef0 100644
--- a/flopy/mf6/modflow/mfgweadv.py
+++ b/flopy/mf6/modflow/mfgweadv.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 
 
@@ -26,7 +26,7 @@ class ModflowGweadv(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
@@ -36,31 +36,14 @@ class ModflowGweadv(mfpackage.MFPackage):
     dfn_file_name = "gwe-adv.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name scheme",
-            "type string",
-            "valid central upstream tvd",
-            "reader urword",
-            "optional true",
-        ],
-    ]
-
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        scheme=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "adv", filename, pname, loading_package, **kwargs
-        )
+           ["header", ],
+           ["block options", "name scheme", "type string",
+            "valid central upstream tvd", "reader urword", "optional true"]]
+
+    def __init__(self, model, loading_package=False, scheme=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "adv", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.scheme = self.build_mfdata("scheme", scheme)
diff --git a/flopy/mf6/modflow/mfgwecnd.py b/flopy/mf6/modflow/mfgwecnd.py
index f8954199d8..c6c2b6c74d 100644
--- a/flopy/mf6/modflow/mfgwecnd.py
+++ b/flopy/mf6/modflow/mfgwecnd.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator
 
@@ -31,6 +31,9 @@ class ModflowGwecnd(mfpackage.MFPackage):
     export_array_ascii : boolean
         * export_array_ascii (boolean) keyword that specifies input griddata
           arrays should be written to layered ascii output files.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
     alh : [double]
         * alh (double) longitudinal dispersivity in horizontal direction. If
           flow is strictly horizontal, then this is the longitudinal
@@ -72,150 +75,76 @@ class ModflowGwecnd(mfpackage.MFPackage):
           an important role in the thermal conductivity calculation, its effect
           should be reflected in the value specified for KTW.
     kts : [double]
-        * kts (double) thermal conductivity of the aquifer material
+        * kts (double) thermal conductivity of the solid aquifer material
     filename : String
         File name for this package.
     pname : String
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    alh = ArrayTemplateGenerator(("gwe6", "cnd", "griddata", "alh"))
-    alv = ArrayTemplateGenerator(("gwe6", "cnd", "griddata", "alv"))
-    ath1 = ArrayTemplateGenerator(("gwe6", "cnd", "griddata", "ath1"))
-    ath2 = ArrayTemplateGenerator(("gwe6", "cnd", "griddata", "ath2"))
-    atv = ArrayTemplateGenerator(("gwe6", "cnd", "griddata", "atv"))
-    ktw = ArrayTemplateGenerator(("gwe6", "cnd", "griddata", "ktw"))
-    kts = ArrayTemplateGenerator(("gwe6", "cnd", "griddata", "kts"))
+    alh = ArrayTemplateGenerator(('gwe6', 'cnd', 'griddata', 'alh'))
+    alv = ArrayTemplateGenerator(('gwe6', 'cnd', 'griddata', 'alv'))
+    ath1 = ArrayTemplateGenerator(('gwe6', 'cnd', 'griddata', 'ath1'))
+    ath2 = ArrayTemplateGenerator(('gwe6', 'cnd', 'griddata', 'ath2'))
+    atv = ArrayTemplateGenerator(('gwe6', 'cnd', 'griddata', 'atv'))
+    ktw = ArrayTemplateGenerator(('gwe6', 'cnd', 'griddata', 'ktw'))
+    kts = ArrayTemplateGenerator(('gwe6', 'cnd', 'griddata', 'kts'))
     package_abbr = "gwecnd"
     _package_type = "cnd"
     dfn_file_name = "gwe-cnd.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name xt3d_off",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name xt3d_rhs",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block griddata",
-            "name alh",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name alv",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name ath1",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name ath2",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name atv",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name ktw",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name kts",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name xt3d_off", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name xt3d_rhs", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc",
+            "extended true"],
+           ["block griddata", "name alh", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block griddata", "name alv", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block griddata", "name ath1", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block griddata", "name ath2", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block griddata", "name atv", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block griddata", "name ktw", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block griddata", "name kts", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "netcdf true", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        xt3d_off=None,
-        xt3d_rhs=None,
-        export_array_ascii=None,
-        alh=None,
-        alv=None,
-        ath1=None,
-        ath2=None,
-        atv=None,
-        ktw=None,
-        kts=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "cnd", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, xt3d_off=None,
+                 xt3d_rhs=None, export_array_ascii=None,
+                 export_array_netcdf=None, alh=None, alv=None, ath1=None,
+                 ath2=None, atv=None, ktw=None, kts=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "cnd", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.xt3d_off = self.build_mfdata("xt3d_off", xt3d_off)
         self.xt3d_rhs = self.build_mfdata("xt3d_rhs", xt3d_rhs)
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
         self.alh = self.build_mfdata("alh", alh)
         self.alv = self.build_mfdata("alv", alv)
         self.ath1 = self.build_mfdata("ath1", ath1)
diff --git a/flopy/mf6/modflow/mfgwectp.py b/flopy/mf6/modflow/mfgwectp.py
index c6193dcadd..84205b0619 100644
--- a/flopy/mf6/modflow/mfgwectp.py
+++ b/flopy/mf6/modflow/mfgwectp.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -62,7 +62,7 @@ class ModflowGwectp(mfpackage.MFPackage):
           also acceptable. See obs package documentation for more information.
     maxbound : integer
         * maxbound (integer) integer value specifying the maximum number of
-          constant temperatures cells that will be specified for use during any
+          constant temperature cells that will be specified for use during any
           stress period.
     stress_period_data : [cellid, temp, aux, boundname]
         * cellid ((integer, ...)) is the cell identifier, and depends on the
@@ -97,244 +97,88 @@ class ModflowGwectp(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwe6", "ctp", "options", "auxiliary"))
-    ts_filerecord = ListTemplateGenerator(
-        ("gwe6", "ctp", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwe6", "ctp", "options", "obs_filerecord")
-    )
-    stress_period_data = ListTemplateGenerator(
-        ("gwe6", "ctp", "period", "stress_period_data")
-    )
+    auxiliary = ListTemplateGenerator(('gwe6', 'ctp', 'options',
+                                       'auxiliary'))
+    ts_filerecord = ListTemplateGenerator(('gwe6', 'ctp', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwe6', 'ctp', 'options',
+                                            'obs_filerecord'))
+    stress_period_data = ListTemplateGenerator(('gwe6', 'ctp', 'period',
+                                                'stress_period_data'))
     package_abbr = "gwectp"
     _package_type = "ctp"
     dfn_file_name = "gwe-ctp.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxmultname",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprflow",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ipakcb",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprpak",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name maxbound",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name stress_period_data",
-            "type recarray cellid temp aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-            "mf6internal spd",
-        ],
-        [
-            "block period",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name temp",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-            "mf6internal tspvar",
-        ],
-        [
-            "block period",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-            "time_series true",
-            "mf6internal auxvar",
-        ],
-        [
-            "block period",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+           ["header", 
+            "multi-package", ],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name auxmultname", "type string", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true", "mf6internal iprflow"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal ipakcb"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal iprpak"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block dimensions", "name maxbound", "type integer",
+            "reader urword", "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name stress_period_data",
+            "type recarray cellid temp aux boundname", "shape (maxbound)",
+            "reader urword", "mf6internal spd"],
+           ["block period", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block period", "name temp", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true", "mf6internal tspvar"],
+           ["block period", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "optional true", "time_series true", "mf6internal auxvar"],
+           ["block period", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        auxiliary=None,
-        auxmultname=None,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        timeseries=None,
-        observations=None,
-        maxbound=None,
-        stress_period_data=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "ctp", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, auxiliary=None,
+                 auxmultname=None, boundnames=None, print_input=None,
+                 print_flows=None, save_flows=None, timeseries=None,
+                 observations=None, maxbound=None, stress_period_data=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "ctp", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
@@ -343,16 +187,17 @@ def __init__(
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.maxbound = self.build_mfdata("maxbound", maxbound)
-        self.stress_period_data = self.build_mfdata(
-            "stress_period_data", stress_period_data
-        )
+        self.stress_period_data = self.build_mfdata("stress_period_data",
+                                                    stress_period_data)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwedis.py b/flopy/mf6/modflow/mfgwedis.py
index c2908e5937..65536c044d 100644
--- a/flopy/mf6/modflow/mfgwedis.py
+++ b/flopy/mf6/modflow/mfgwedis.py
@@ -1,8 +1,8 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
-from ..data.mfdatautil import ArrayTemplateGenerator
+from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
 
 class ModflowGwedis(mfpackage.MFPackage):
@@ -45,6 +45,14 @@ class ModflowGwedis(mfpackage.MFPackage):
     export_array_ascii : boolean
         * export_array_ascii (boolean) keyword that specifies input griddata
           arrays should be written to layered ascii output files.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
+    packagedata : {varname:data} or packagedata data
+        * Contains data for the ncf package. Data can be stored in a dictionary
+          containing data for the ncf package with variable names as keys and
+          package data as values. Data just for the packagedata variable is
+          also acceptable. See ncf package documentation for more information.
     nlay : integer
         * nlay (integer) is the number of layers in the model grid.
     nrow : integer
@@ -78,160 +86,81 @@ class ModflowGwedis(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    delr = ArrayTemplateGenerator(("gwe6", "dis", "griddata", "delr"))
-    delc = ArrayTemplateGenerator(("gwe6", "dis", "griddata", "delc"))
-    top = ArrayTemplateGenerator(("gwe6", "dis", "griddata", "top"))
-    botm = ArrayTemplateGenerator(("gwe6", "dis", "griddata", "botm"))
-    idomain = ArrayTemplateGenerator(("gwe6", "dis", "griddata", "idomain"))
+    ncf_filerecord = ListTemplateGenerator(('gwe6', 'dis', 'options',
+                                            'ncf_filerecord'))
+    delr = ArrayTemplateGenerator(('gwe6', 'dis', 'griddata', 'delr'))
+    delc = ArrayTemplateGenerator(('gwe6', 'dis', 'griddata', 'delc'))
+    top = ArrayTemplateGenerator(('gwe6', 'dis', 'griddata', 'top'))
+    botm = ArrayTemplateGenerator(('gwe6', 'dis', 'griddata', 'botm'))
+    idomain = ArrayTemplateGenerator(('gwe6', 'dis', 'griddata',
+                                      'idomain'))
     package_abbr = "gwedis"
     _package_type = "dis"
     dfn_file_name = "gwe-dis.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name length_units",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name nogrb",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name xorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name yorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name angrot",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block dimensions",
-            "name nlay",
-            "type integer",
-            "reader urword",
-            "optional false",
-            "default_value 1",
-        ],
-        [
-            "block dimensions",
-            "name nrow",
-            "type integer",
-            "reader urword",
-            "optional false",
-            "default_value 2",
-        ],
-        [
-            "block dimensions",
-            "name ncol",
-            "type integer",
-            "reader urword",
-            "optional false",
-            "default_value 2",
-        ],
-        [
-            "block griddata",
-            "name delr",
-            "type double precision",
-            "shape (ncol)",
-            "reader readarray",
-            "default_value 1.0",
-        ],
-        [
-            "block griddata",
-            "name delc",
-            "type double precision",
-            "shape (nrow)",
-            "reader readarray",
-            "default_value 1.0",
-        ],
-        [
-            "block griddata",
-            "name top",
-            "type double precision",
-            "shape (ncol, nrow)",
-            "reader readarray",
-            "default_value 1.0",
-        ],
-        [
-            "block griddata",
-            "name botm",
-            "type double precision",
-            "shape (ncol, nrow, nlay)",
-            "reader readarray",
-            "layered true",
-            "default_value 0.",
-        ],
-        [
-            "block griddata",
-            "name idomain",
-            "type integer",
-            "shape (ncol, nrow, nlay)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name length_units", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name nogrb", "type keyword", "reader urword",
+            "optional true"],
+           ["block options", "name xorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name yorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name angrot", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc",
+            "extended true"],
+           ["block options", "name ncf_filerecord",
+            "type record ncf6 filein ncf6_filename", "reader urword",
+            "tagged true", "optional true", "construct_package ncf",
+            "construct_data packagedata", "parameter_name packagedata"],
+           ["block options", "name ncf6", "type keyword", "in_record true",
+            "reader urword", "tagged true", "optional false", "extended true"],
+           ["block options", "name filein", "type keyword",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ncf6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false", "extended true"],
+           ["block dimensions", "name nlay", "type integer",
+            "reader urword", "optional false", "default_value 1"],
+           ["block dimensions", "name nrow", "type integer",
+            "reader urword", "optional false", "default_value 2"],
+           ["block dimensions", "name ncol", "type integer",
+            "reader urword", "optional false", "default_value 2"],
+           ["block griddata", "name delr", "type double precision",
+            "shape (ncol)", "reader readarray", "netcdf true",
+            "default_value 1.0"],
+           ["block griddata", "name delc", "type double precision",
+            "shape (nrow)", "reader readarray", "netcdf true",
+            "default_value 1.0"],
+           ["block griddata", "name top", "type double precision",
+            "shape (ncol, nrow)", "reader readarray", "netcdf true",
+            "default_value 1.0"],
+           ["block griddata", "name botm", "type double precision",
+            "shape (ncol, nrow, nlay)", "reader readarray", "layered true",
+            "netcdf true", "default_value 0."],
+           ["block griddata", "name idomain", "type integer",
+            "shape (ncol, nrow, nlay)", "reader readarray", "layered true",
+            "netcdf true", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        length_units=None,
-        nogrb=None,
-        xorigin=None,
-        yorigin=None,
-        angrot=None,
-        export_array_ascii=None,
-        nlay=1,
-        nrow=2,
-        ncol=2,
-        delr=1.0,
-        delc=1.0,
-        top=1.0,
-        botm=0.0,
-        idomain=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "dis", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, length_units=None,
+                 nogrb=None, xorigin=None, yorigin=None, angrot=None,
+                 export_array_ascii=None, export_array_netcdf=None,
+                 packagedata=None, nlay=1, nrow=2, ncol=2, delr=1.0, delc=1.0,
+                 top=1.0, botm=0., idomain=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(model, "dis", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.length_units = self.build_mfdata("length_units", length_units)
@@ -239,9 +168,15 @@ def __init__(
         self.xorigin = self.build_mfdata("xorigin", xorigin)
         self.yorigin = self.build_mfdata("yorigin", yorigin)
         self.angrot = self.build_mfdata("angrot", angrot)
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
+        self._ncf_filerecord = self.build_mfdata("ncf_filerecord",
+                                                 None)
+        self._ncf_package = self.build_child_package("ncf", packagedata,
+                                                     "packagedata",
+                                                     self._ncf_filerecord)
         self.nlay = self.build_mfdata("nlay", nlay)
         self.nrow = self.build_mfdata("nrow", nrow)
         self.ncol = self.build_mfdata("ncol", ncol)
diff --git a/flopy/mf6/modflow/mfgwedisu.py b/flopy/mf6/modflow/mfgwedisu.py
index 2d21804abe..b57dc7d06a 100644
--- a/flopy/mf6/modflow/mfgwedisu.py
+++ b/flopy/mf6/modflow/mfgwedisu.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -184,312 +184,118 @@ class ModflowGwedisu(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    top = ArrayTemplateGenerator(("gwe6", "disu", "griddata", "top"))
-    bot = ArrayTemplateGenerator(("gwe6", "disu", "griddata", "bot"))
-    area = ArrayTemplateGenerator(("gwe6", "disu", "griddata", "area"))
-    idomain = ArrayTemplateGenerator(("gwe6", "disu", "griddata", "idomain"))
-    iac = ArrayTemplateGenerator(("gwe6", "disu", "connectiondata", "iac"))
-    ja = ArrayTemplateGenerator(("gwe6", "disu", "connectiondata", "ja"))
-    ihc = ArrayTemplateGenerator(("gwe6", "disu", "connectiondata", "ihc"))
-    cl12 = ArrayTemplateGenerator(("gwe6", "disu", "connectiondata", "cl12"))
-    hwva = ArrayTemplateGenerator(("gwe6", "disu", "connectiondata", "hwva"))
-    angldegx = ArrayTemplateGenerator(
-        ("gwe6", "disu", "connectiondata", "angldegx")
-    )
-    vertices = ListTemplateGenerator(("gwe6", "disu", "vertices", "vertices"))
-    cell2d = ListTemplateGenerator(("gwe6", "disu", "cell2d", "cell2d"))
+    top = ArrayTemplateGenerator(('gwe6', 'disu', 'griddata', 'top'))
+    bot = ArrayTemplateGenerator(('gwe6', 'disu', 'griddata', 'bot'))
+    area = ArrayTemplateGenerator(('gwe6', 'disu', 'griddata', 'area'))
+    idomain = ArrayTemplateGenerator(('gwe6', 'disu', 'griddata',
+                                      'idomain'))
+    iac = ArrayTemplateGenerator(('gwe6', 'disu', 'connectiondata',
+                                  'iac'))
+    ja = ArrayTemplateGenerator(('gwe6', 'disu', 'connectiondata',
+                                 'ja'))
+    ihc = ArrayTemplateGenerator(('gwe6', 'disu', 'connectiondata',
+                                  'ihc'))
+    cl12 = ArrayTemplateGenerator(('gwe6', 'disu', 'connectiondata',
+                                   'cl12'))
+    hwva = ArrayTemplateGenerator(('gwe6', 'disu', 'connectiondata',
+                                   'hwva'))
+    angldegx = ArrayTemplateGenerator(('gwe6', 'disu', 'connectiondata',
+                                       'angldegx'))
+    vertices = ListTemplateGenerator(('gwe6', 'disu', 'vertices',
+                                      'vertices'))
+    cell2d = ListTemplateGenerator(('gwe6', 'disu', 'cell2d', 'cell2d'))
     package_abbr = "gwedisu"
     _package_type = "disu"
     dfn_file_name = "gwe-disu.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name length_units",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name nogrb",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name xorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name yorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name angrot",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name vertical_offset_tolerance",
-            "type double precision",
-            "reader urword",
-            "optional true",
-            "default_value 0.0",
-            "mf6internal voffsettol",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block dimensions",
-            "name nodes",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name nja",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name nvert",
-            "type integer",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name top",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-        ],
-        [
-            "block griddata",
-            "name bot",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-        ],
-        [
-            "block griddata",
-            "name area",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-        ],
-        [
-            "block griddata",
-            "name idomain",
-            "type integer",
-            "shape (nodes)",
-            "reader readarray",
-            "layered false",
-            "optional true",
-        ],
-        [
-            "block connectiondata",
-            "name iac",
-            "type integer",
-            "shape (nodes)",
-            "reader readarray",
-        ],
-        [
-            "block connectiondata",
-            "name ja",
-            "type integer",
-            "shape (nja)",
-            "reader readarray",
-            "numeric_index true",
-            "jagged_array iac",
-        ],
-        [
-            "block connectiondata",
-            "name ihc",
-            "type integer",
-            "shape (nja)",
-            "reader readarray",
-            "jagged_array iac",
-        ],
-        [
-            "block connectiondata",
-            "name cl12",
-            "type double precision",
-            "shape (nja)",
-            "reader readarray",
-            "jagged_array iac",
-        ],
-        [
-            "block connectiondata",
-            "name hwva",
-            "type double precision",
-            "shape (nja)",
-            "reader readarray",
-            "jagged_array iac",
-        ],
-        [
-            "block connectiondata",
-            "name angldegx",
-            "type double precision",
-            "optional true",
-            "shape (nja)",
-            "reader readarray",
-            "jagged_array iac",
-        ],
-        [
-            "block vertices",
-            "name vertices",
-            "type recarray iv xv yv",
-            "shape (nvert)",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block vertices",
-            "name iv",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block vertices",
-            "name xv",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block vertices",
-            "name yv",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name cell2d",
-            "type recarray icell2d xc yc ncvert icvert",
-            "shape (nodes)",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name icell2d",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block cell2d",
-            "name xc",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name yc",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name ncvert",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name icvert",
-            "type integer",
-            "shape (ncvert)",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name length_units", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name nogrb", "type keyword", "reader urword",
+            "optional true"],
+           ["block options", "name xorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name yorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name angrot", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name vertical_offset_tolerance",
+            "type double precision", "reader urword", "optional true",
+            "default_value 0.0", "mf6internal voffsettol"],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block dimensions", "name nodes", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name nja", "type integer", "reader urword",
+            "optional false"],
+           ["block dimensions", "name nvert", "type integer",
+            "reader urword", "optional true"],
+           ["block griddata", "name top", "type double precision",
+            "shape (nodes)", "reader readarray"],
+           ["block griddata", "name bot", "type double precision",
+            "shape (nodes)", "reader readarray"],
+           ["block griddata", "name area", "type double precision",
+            "shape (nodes)", "reader readarray"],
+           ["block griddata", "name idomain", "type integer",
+            "shape (nodes)", "reader readarray", "layered false",
+            "optional true"],
+           ["block connectiondata", "name iac", "type integer",
+            "shape (nodes)", "reader readarray"],
+           ["block connectiondata", "name ja", "type integer",
+            "shape (nja)", "reader readarray", "numeric_index true",
+            "jagged_array iac"],
+           ["block connectiondata", "name ihc", "type integer",
+            "shape (nja)", "reader readarray", "jagged_array iac"],
+           ["block connectiondata", "name cl12", "type double precision",
+            "shape (nja)", "reader readarray", "jagged_array iac"],
+           ["block connectiondata", "name hwva", "type double precision",
+            "shape (nja)", "reader readarray", "jagged_array iac"],
+           ["block connectiondata", "name angldegx",
+            "type double precision", "optional true", "shape (nja)",
+            "reader readarray", "jagged_array iac"],
+           ["block vertices", "name vertices", "type recarray iv xv yv",
+            "shape (nvert)", "reader urword", "optional false"],
+           ["block vertices", "name iv", "type integer", "in_record true",
+            "tagged false", "reader urword", "optional false",
+            "numeric_index true"],
+           ["block vertices", "name xv", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block vertices", "name yv", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name cell2d",
+            "type recarray icell2d xc yc ncvert icvert", "shape (nodes)",
+            "reader urword", "optional false"],
+           ["block cell2d", "name icell2d", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"],
+           ["block cell2d", "name xc", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name yc", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name ncvert", "type integer", "in_record true",
+            "tagged false", "reader urword", "optional false"],
+           ["block cell2d", "name icvert", "type integer", "shape (ncvert)",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        length_units=None,
-        nogrb=None,
-        xorigin=None,
-        yorigin=None,
-        angrot=None,
-        vertical_offset_tolerance=0.0,
-        export_array_ascii=None,
-        nodes=None,
-        nja=None,
-        nvert=None,
-        top=None,
-        bot=None,
-        area=None,
-        idomain=None,
-        iac=None,
-        ja=None,
-        ihc=None,
-        cl12=None,
-        hwva=None,
-        angldegx=None,
-        vertices=None,
-        cell2d=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "disu", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, length_units=None,
+                 nogrb=None, xorigin=None, yorigin=None, angrot=None,
+                 vertical_offset_tolerance=0.0, export_array_ascii=None,
+                 nodes=None, nja=None, nvert=None, top=None, bot=None,
+                 area=None, idomain=None, iac=None, ja=None, ihc=None,
+                 cl12=None, hwva=None, angldegx=None, vertices=None,
+                 cell2d=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "disu", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.length_units = self.build_mfdata("length_units", length_units)
@@ -498,11 +304,9 @@ def __init__(
         self.yorigin = self.build_mfdata("yorigin", yorigin)
         self.angrot = self.build_mfdata("angrot", angrot)
         self.vertical_offset_tolerance = self.build_mfdata(
-            "vertical_offset_tolerance", vertical_offset_tolerance
-        )
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+            "vertical_offset_tolerance", vertical_offset_tolerance)
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
         self.nodes = self.build_mfdata("nodes", nodes)
         self.nja = self.build_mfdata("nja", nja)
         self.nvert = self.build_mfdata("nvert", nvert)
diff --git a/flopy/mf6/modflow/mfgwedisv.py b/flopy/mf6/modflow/mfgwedisv.py
index 8824727b3d..10a95cd280 100644
--- a/flopy/mf6/modflow/mfgwedisv.py
+++ b/flopy/mf6/modflow/mfgwedisv.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -48,6 +48,14 @@ class ModflowGwedisv(mfpackage.MFPackage):
     export_array_ascii : boolean
         * export_array_ascii (boolean) keyword that specifies input griddata
           arrays should be written to layered ascii output files.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
+    packagedata : {varname:data} or packagedata data
+        * Contains data for the ncf package. Data can be stored in a dictionary
+          containing data for the ncf package with variable names as keys and
+          package data as values. Data just for the packagedata variable is
+          also acceptable. See ncf package documentation for more information.
     nlay : integer
         * nlay (integer) is the number of layers in the model grid.
     ncpl : integer
@@ -106,231 +114,103 @@ class ModflowGwedisv(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    top = ArrayTemplateGenerator(("gwe6", "disv", "griddata", "top"))
-    botm = ArrayTemplateGenerator(("gwe6", "disv", "griddata", "botm"))
-    idomain = ArrayTemplateGenerator(("gwe6", "disv", "griddata", "idomain"))
-    vertices = ListTemplateGenerator(("gwe6", "disv", "vertices", "vertices"))
-    cell2d = ListTemplateGenerator(("gwe6", "disv", "cell2d", "cell2d"))
+    ncf_filerecord = ListTemplateGenerator(('gwe6', 'disv', 'options',
+                                            'ncf_filerecord'))
+    top = ArrayTemplateGenerator(('gwe6', 'disv', 'griddata', 'top'))
+    botm = ArrayTemplateGenerator(('gwe6', 'disv', 'griddata', 'botm'))
+    idomain = ArrayTemplateGenerator(('gwe6', 'disv', 'griddata',
+                                      'idomain'))
+    vertices = ListTemplateGenerator(('gwe6', 'disv', 'vertices',
+                                      'vertices'))
+    cell2d = ListTemplateGenerator(('gwe6', 'disv', 'cell2d', 'cell2d'))
     package_abbr = "gwedisv"
     _package_type = "disv"
     dfn_file_name = "gwe-disv.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name length_units",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name nogrb",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name xorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name yorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name angrot",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block dimensions",
-            "name nlay",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name ncpl",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name nvert",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block griddata",
-            "name top",
-            "type double precision",
-            "shape (ncpl)",
-            "reader readarray",
-        ],
-        [
-            "block griddata",
-            "name botm",
-            "type double precision",
-            "shape (ncpl, nlay)",
-            "reader readarray",
-            "layered true",
-        ],
-        [
-            "block griddata",
-            "name idomain",
-            "type integer",
-            "shape (ncpl, nlay)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block vertices",
-            "name vertices",
-            "type recarray iv xv yv",
-            "shape (nvert)",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block vertices",
-            "name iv",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block vertices",
-            "name xv",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block vertices",
-            "name yv",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name cell2d",
-            "type recarray icell2d xc yc ncvert icvert",
-            "shape (ncpl)",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name icell2d",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block cell2d",
-            "name xc",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name yc",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name ncvert",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name icvert",
-            "type integer",
-            "shape (ncvert)",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name length_units", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name nogrb", "type keyword", "reader urword",
+            "optional true"],
+           ["block options", "name xorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name yorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name angrot", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc",
+            "extended true"],
+           ["block options", "name ncf_filerecord",
+            "type record ncf6 filein ncf6_filename", "reader urword",
+            "tagged true", "optional true", "construct_package ncf",
+            "construct_data packagedata", "parameter_name packagedata"],
+           ["block options", "name ncf6", "type keyword", "in_record true",
+            "reader urword", "tagged true", "optional false", "extended true"],
+           ["block options", "name filein", "type keyword",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ncf6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false", "extended true"],
+           ["block dimensions", "name nlay", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name ncpl", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name nvert", "type integer",
+            "reader urword", "optional false"],
+           ["block griddata", "name top", "type double precision",
+            "shape (ncpl)", "reader readarray", "netcdf true"],
+           ["block griddata", "name botm", "type double precision",
+            "shape (ncpl, nlay)", "reader readarray", "layered true",
+            "netcdf true"],
+           ["block griddata", "name idomain", "type integer",
+            "shape (ncpl, nlay)", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block vertices", "name vertices", "type recarray iv xv yv",
+            "shape (nvert)", "reader urword", "optional false"],
+           ["block vertices", "name iv", "type integer", "in_record true",
+            "tagged false", "reader urword", "optional false",
+            "numeric_index true"],
+           ["block vertices", "name xv", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block vertices", "name yv", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name cell2d",
+            "type recarray icell2d xc yc ncvert icvert", "shape (ncpl)",
+            "reader urword", "optional false"],
+           ["block cell2d", "name icell2d", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"],
+           ["block cell2d", "name xc", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name yc", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name ncvert", "type integer", "in_record true",
+            "tagged false", "reader urword", "optional false"],
+           ["block cell2d", "name icvert", "type integer", "shape (ncvert)",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        length_units=None,
-        nogrb=None,
-        xorigin=None,
-        yorigin=None,
-        angrot=None,
-        export_array_ascii=None,
-        nlay=None,
-        ncpl=None,
-        nvert=None,
-        top=None,
-        botm=None,
-        idomain=None,
-        vertices=None,
-        cell2d=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "disv", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, length_units=None,
+                 nogrb=None, xorigin=None, yorigin=None, angrot=None,
+                 export_array_ascii=None, export_array_netcdf=None,
+                 packagedata=None, nlay=None, ncpl=None, nvert=None, top=None,
+                 botm=None, idomain=None, vertices=None, cell2d=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "disv", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.length_units = self.build_mfdata("length_units", length_units)
@@ -338,9 +218,15 @@ def __init__(
         self.xorigin = self.build_mfdata("xorigin", xorigin)
         self.yorigin = self.build_mfdata("yorigin", yorigin)
         self.angrot = self.build_mfdata("angrot", angrot)
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
+        self._ncf_filerecord = self.build_mfdata("ncf_filerecord",
+                                                 None)
+        self._ncf_package = self.build_child_package("ncf", packagedata,
+                                                     "packagedata",
+                                                     self._ncf_filerecord)
         self.nlay = self.build_mfdata("nlay", nlay)
         self.ncpl = self.build_mfdata("ncpl", ncpl)
         self.nvert = self.build_mfdata("nvert", nvert)
diff --git a/flopy/mf6/modflow/mfgweesl.py b/flopy/mf6/modflow/mfgweesl.py
index 09f650242e..a62bbf16f9 100644
--- a/flopy/mf6/modflow/mfgweesl.py
+++ b/flopy/mf6/modflow/mfgweesl.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -62,8 +62,7 @@ class ModflowGweesl(mfpackage.MFPackage):
           also acceptable. See obs package documentation for more information.
     maxbound : integer
         * maxbound (integer) integer value specifying the maximum number of
-          sources cells that will be specified for use during any stress
-          period.
+          source cells that will be specified for use during any stress period.
     stress_period_data : [cellid, senerrate, aux, boundname]
         * cellid ((integer, ...)) is the cell identifier, and depends on the
           type of grid that is used for the simulation. For a structured grid
@@ -99,237 +98,87 @@ class ModflowGweesl(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwe6", "esl", "options", "auxiliary"))
-    ts_filerecord = ListTemplateGenerator(
-        ("gwe6", "esl", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwe6", "esl", "options", "obs_filerecord")
-    )
-    stress_period_data = ListTemplateGenerator(
-        ("gwe6", "esl", "period", "stress_period_data")
-    )
+    auxiliary = ListTemplateGenerator(('gwe6', 'esl', 'options',
+                                       'auxiliary'))
+    ts_filerecord = ListTemplateGenerator(('gwe6', 'esl', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwe6', 'esl', 'options',
+                                            'obs_filerecord'))
+    stress_period_data = ListTemplateGenerator(('gwe6', 'esl', 'period',
+                                                'stress_period_data'))
     package_abbr = "gweesl"
     _package_type = "esl"
     dfn_file_name = "gwe-esl.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxmultname",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name maxbound",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name stress_period_data",
+           ["header", ],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name auxmultname", "type string", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block dimensions", "name maxbound", "type integer",
+            "reader urword", "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name stress_period_data",
             "type recarray cellid senerrate aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name senerrate",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+            "shape (maxbound)", "reader urword"],
+           ["block period", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block period", "name senerrate", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "optional true", "time_series true"],
+           ["block period", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        auxiliary=None,
-        auxmultname=None,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        timeseries=None,
-        observations=None,
-        maxbound=None,
-        stress_period_data=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "esl", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, auxiliary=None,
+                 auxmultname=None, boundnames=None, print_input=None,
+                 print_flows=None, save_flows=None, timeseries=None,
+                 observations=None, maxbound=None, stress_period_data=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "esl", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
@@ -338,16 +187,17 @@ def __init__(
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.maxbound = self.build_mfdata("maxbound", maxbound)
-        self.stress_period_data = self.build_mfdata(
-            "stress_period_data", stress_period_data
-        )
+        self.stress_period_data = self.build_mfdata("stress_period_data",
+                                                    stress_period_data)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgweest.py b/flopy/mf6/modflow/mfgweest.py
index 6336050277..d01c53255d 100644
--- a/flopy/mf6/modflow/mfgweest.py
+++ b/flopy/mf6/modflow/mfgweest.py
@@ -1,8 +1,8 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
-from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
+from ..data.mfdatautil import ArrayTemplateGenerator
 
 
 class ModflowGweest(mfpackage.MFPackage):
@@ -23,17 +23,35 @@ class ModflowGweest(mfpackage.MFPackage):
           Control.
     zero_order_decay : boolean
         * zero_order_decay (boolean) is a text keyword to indicate that zero-
-          order decay will occur. Use of this keyword requires that DECAY and
-          DECAY_SORBED (if sorption is active) are specified in the GRIDDATA
-          block.
-    latent_heat_vaporization : boolean
-        * latent_heat_vaporization (boolean) is a text keyword to indicate that
-          cooling associated with evaporation will occur. Use of this keyword
-          requires that LATHEATVAP are specified in the GRIDDATA block. While
+          order decay will occur. Use of this keyword requires that DECAY is
+          specified in the GRIDDATA block.
+    density_water : double
+        * density_water (double) density of water used by calculations related
+          to heat storage and conduction. This value is set to 1,000 kg/m3 if
+          no overriding value is specified. A user-specified value should be
+          provided for models that use units other than kilograms and meters or
+          if it is necessary to use a value other than the default.
+    heat_capacity_water : double
+        * heat_capacity_water (double) heat capacity of water used by
+          calculations related to heat storage and conduction. This value is
+          set to 4,184 J/kg/C if no overriding value is specified. A user-
+          specified value should be provided for models that use units other
+          than kilograms, joules, and degrees Celsius or it is necessary to use
+          a value other than the default.
+    latent_heat_vaporization : double
+        * latent_heat_vaporization (double) latent heat of vaporization is the
+          amount of energy that is required to convert a given quantity of
+          liquid into a gas and is associated with evaporative cooling. While
           the EST package does not simulate evaporation, multiple other
-          packages in a GWE simulation may. For example, evaporation may occur
-          from the surface of streams or lakes. Owing to the energy consumed by
-          the change in phase, the latent heat of vaporization is required.
+          packages in a GWE simulation may. To avoid having to specify the
+          latent heat of vaporization in multiple packages, it is specified in
+          a single location and accessed wherever it is needed. For example,
+          evaporation may occur from the surface of streams or lakes and the
+          energy consumed by the change in phase would be needed in both the
+          SFE and LKE packages. This value is set to 2,453,500 J/kg if no
+          overriding value is specified. A user-specified value should be
+          provided for models that use units other than joules and kilograms or
+          if it is necessary to use a value other than the default.
     porosity : [double]
         * porosity (double) is the mobile domain porosity, defined as the
           mobile domain pore volume per mobile domain volume. The GWE model
@@ -46,171 +64,85 @@ class ModflowGweest(mfpackage.MFPackage):
           energy per length cubed per time. Zero-order decay will have no
           effect on simulation results unless zero-order decay is specified in
           the options block.
-    cps : [double]
-        * cps (double) is the mass-based heat capacity of dry solids (aquifer
-          material). For example, units of J/kg/C may be used (or equivalent).
-    rhos : [double]
-        * rhos (double) is a user-specified value of the density of aquifer
-          material not considering the voids. Value will remain fixed for the
-          entire simulation. For example, if working in SI units, values may be
-          entered as kilograms per cubic meter.
-    packagedata : [cpw, rhow, latheatvap]
-        * cpw (double) is the mass-based heat capacity of the simulated fluid.
-          For example, units of J/kg/C may be used (or equivalent).
-        * rhow (double) is a user-specified value of the density of water.
-          Value will remain fixed for the entire simulation. For example, if
-          working in SI units, values may be entered as kilograms per cubic
-          meter.
-        * latheatvap (double) is the user-specified value for the latent heat
-          of vaporization. For example, if working in SI units, values may be
-          entered as kJ/kg.
+    heat_capacity_solid : [double]
+        * heat_capacity_solid (double) is the mass-based heat capacity of dry
+          solids (aquifer material). For example, units of J/kg/C may be used
+          (or equivalent).
+    density_solid : [double]
+        * density_solid (double) is a user-specified value of the density of
+          aquifer material not considering the voids. Value will remain fixed
+          for the entire simulation. For example, if working in SI units,
+          values may be entered as kilograms per cubic meter.
     filename : String
         File name for this package.
     pname : String
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    porosity = ArrayTemplateGenerator(("gwe6", "est", "griddata", "porosity"))
-    decay = ArrayTemplateGenerator(("gwe6", "est", "griddata", "decay"))
-    cps = ArrayTemplateGenerator(("gwe6", "est", "griddata", "cps"))
-    rhos = ArrayTemplateGenerator(("gwe6", "est", "griddata", "rhos"))
-    packagedata = ListTemplateGenerator(
-        ("gwe6", "est", "packagedata", "packagedata")
-    )
+    porosity = ArrayTemplateGenerator(('gwe6', 'est', 'griddata',
+                                       'porosity'))
+    decay = ArrayTemplateGenerator(('gwe6', 'est', 'griddata', 'decay'))
+    heat_capacity_solid = ArrayTemplateGenerator(('gwe6', 'est',
+                                                  'griddata',
+                                                  'heat_capacity_solid'))
+    density_solid = ArrayTemplateGenerator(('gwe6', 'est', 'griddata',
+                                            'density_solid'))
     package_abbr = "gweest"
     _package_type = "est"
     dfn_file_name = "gwe-est.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name zero_order_decay",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name latent_heat_vaporization",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name porosity",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-        ],
-        [
-            "block griddata",
-            "name decay",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name cps",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-        ],
-        [
-            "block griddata",
-            "name rhos",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
-            "type recarray cpw rhow latheatvap",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name cpw",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name rhow",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name latheatvap",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name zero_order_decay", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name density_water", "type double precision",
+            "reader urword", "optional true", "default_value 1000.0",
+            "mf6internal rhow"],
+           ["block options", "name heat_capacity_water",
+            "type double precision", "reader urword", "optional true",
+            "default_value 4184.0", "mf6internal cpw"],
+           ["block options", "name latent_heat_vaporization",
+            "type double precision", "reader urword", "optional true",
+            "default_value 2453500.0", "mf6internal latheatvap"],
+           ["block griddata", "name porosity", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true"],
+           ["block griddata", "name decay", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "optional true"],
+           ["block griddata", "name heat_capacity_solid",
+            "type double precision", "shape (nodes)", "reader readarray",
+            "layered true", "mf6internal cps"],
+           ["block griddata", "name density_solid", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "mf6internal rhos"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        save_flows=None,
-        zero_order_decay=None,
-        latent_heat_vaporization=None,
-        porosity=None,
-        decay=None,
-        cps=None,
-        rhos=None,
-        packagedata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "est", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, save_flows=None,
+                 zero_order_decay=None, density_water=1000.0,
+                 heat_capacity_water=4184.0,
+                 latent_heat_vaporization=2453500.0, porosity=None, decay=None,
+                 heat_capacity_solid=None, density_solid=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "est", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self.zero_order_decay = self.build_mfdata(
-            "zero_order_decay", zero_order_decay
-        )
+        self.zero_order_decay = self.build_mfdata("zero_order_decay",
+                                                  zero_order_decay)
+        self.density_water = self.build_mfdata("density_water", density_water)
+        self.heat_capacity_water = self.build_mfdata("heat_capacity_water",
+                                                     heat_capacity_water)
         self.latent_heat_vaporization = self.build_mfdata(
-            "latent_heat_vaporization", latent_heat_vaporization
-        )
+            "latent_heat_vaporization", latent_heat_vaporization)
         self.porosity = self.build_mfdata("porosity", porosity)
         self.decay = self.build_mfdata("decay", decay)
-        self.cps = self.build_mfdata("cps", cps)
-        self.rhos = self.build_mfdata("rhos", rhos)
-        self.packagedata = self.build_mfdata("packagedata", packagedata)
+        self.heat_capacity_solid = self.build_mfdata("heat_capacity_solid",
+                                                     heat_capacity_solid)
+        self.density_solid = self.build_mfdata("density_solid", density_solid)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwefmi.py b/flopy/mf6/modflow/mfgwefmi.py
index bea4579700..e244f6d637 100644
--- a/flopy/mf6/modflow/mfgwefmi.py
+++ b/flopy/mf6/modflow/mfgwefmi.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -47,91 +47,43 @@ class ModflowGwefmi(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    packagedata = ListTemplateGenerator(
-        ("gwe6", "fmi", "packagedata", "packagedata")
-    )
+    packagedata = ListTemplateGenerator(('gwe6', 'fmi', 'packagedata',
+                                         'packagedata'))
     package_abbr = "gwefmi"
     _package_type = "fmi"
     dfn_file_name = "gwe-fmi.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name flow_imbalance_correction",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
-            "type recarray flowtype filein fname",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name flowtype",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name fname",
-            "in_record true",
-            "type string",
-            "preserve_case true",
-            "tagged false",
-            "reader urword",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name flow_imbalance_correction",
+            "type keyword", "reader urword", "optional true"],
+           ["block packagedata", "name packagedata",
+            "type recarray flowtype filein fname", "reader urword",
+            "optional false"],
+           ["block packagedata", "name flowtype", "in_record true",
+            "type string", "tagged false", "reader urword"],
+           ["block packagedata", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block packagedata", "name fname", "in_record true",
+            "type string", "preserve_case true", "tagged false",
+            "reader urword"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        save_flows=None,
-        flow_imbalance_correction=None,
-        packagedata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "fmi", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, save_flows=None,
+                 flow_imbalance_correction=None, packagedata=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "fmi", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.save_flows = self.build_mfdata("save_flows", save_flows)
         self.flow_imbalance_correction = self.build_mfdata(
-            "flow_imbalance_correction", flow_imbalance_correction
-        )
+            "flow_imbalance_correction", flow_imbalance_correction)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwegwe.py b/flopy/mf6/modflow/mfgwegwe.py
index 675a866d01..766d2a5fb9 100644
--- a/flopy/mf6/modflow/mfgwegwe.py
+++ b/flopy/mf6/modflow/mfgwegwe.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -38,7 +38,7 @@ class ModflowGwegwe(mfpackage.MFPackage):
     auxiliary : [string]
         * auxiliary (string) an array of auxiliary variable names. There is no
           limit on the number of auxiliary variables that can be provided. Most
-          auxiliary variables will not be used by the GWF-GWF Exchange, but
+          auxiliary variables will not be used by the GWE-GWE Exchange, but
           they will be available for use by other parts of the program. If an
           auxiliary variable with the name "ANGLDEGX" is found, then this
           information will be used as the angle (provided in degrees) between
@@ -148,314 +148,109 @@ class ModflowGwegwe(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwegwe", "options", "auxiliary"))
-    mve_filerecord = ListTemplateGenerator(
-        ("gwegwe", "options", "mve_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwegwe", "options", "obs_filerecord")
-    )
-    exchangedata = ListTemplateGenerator(
-        ("gwegwe", "exchangedata", "exchangedata")
-    )
+    auxiliary = ListTemplateGenerator(('gwegwe', 'options', 'auxiliary'))
+    mve_filerecord = ListTemplateGenerator(('gwegwe', 'options',
+                                            'mve_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwegwe', 'options',
+                                            'obs_filerecord'))
+    exchangedata = ListTemplateGenerator(('gwegwe', 'exchangedata',
+                                          'exchangedata'))
     package_abbr = "gwegwe"
     _package_type = "gwegwe"
     dfn_file_name = "exg-gwegwe.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name gwfmodelname1",
-            "type string",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name gwfmodelname2",
-            "type string",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprpak",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprflow",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ipakcb",
-        ],
-        [
-            "block options",
-            "name adv_scheme",
-            "type string",
-            "valid upstream central tvd",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name cnd_xt3d_off",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name cnd_xt3d_rhs",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mve_filerecord",
-            "type record mve6 filein mve6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package mve",
-            "construct_data perioddata",
-            "parameter_name perioddata",
-        ],
-        [
-            "block options",
-            "name mve6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mve6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name dev_interfacemodel_on",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal dev_ifmod_on",
-        ],
-        [
-            "block dimensions",
-            "name nexg",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name exchangedata",
+           ["header", 
+            "multi-package", ],
+           ["block options", "name gwfmodelname1", "type string",
+            "reader urword", "optional false"],
+           ["block options", "name gwfmodelname2", "type string",
+            "reader urword", "optional false"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true", "mf6internal iprpak"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal iprflow"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal ipakcb"],
+           ["block options", "name adv_scheme", "type string",
+            "valid upstream central tvd", "reader urword", "optional true"],
+           ["block options", "name cnd_xt3d_off", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name cnd_xt3d_rhs", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name mve_filerecord",
+            "type record mve6 filein mve6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package mve",
+            "construct_data perioddata", "parameter_name perioddata"],
+           ["block options", "name mve6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name mve6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name dev_interfacemodel_on", "type keyword",
+            "reader urword", "optional true", "mf6internal dev_ifmod_on"],
+           ["block dimensions", "name nexg", "type integer",
+            "reader urword", "optional false"],
+           ["block exchangedata", "name exchangedata",
             "type recarray cellidm1 cellidm2 ihc cl1 cl2 hwva aux boundname",
-            "shape (nexg)",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name cellidm1",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block exchangedata",
-            "name cellidm2",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block exchangedata",
-            "name ihc",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name cl1",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name cl2",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name hwva",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-            "mf6internal auxvar",
-        ],
-        [
-            "block exchangedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+            "shape (nexg)", "reader urword", "optional false"],
+           ["block exchangedata", "name cellidm1", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"],
+           ["block exchangedata", "name cellidm2", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"],
+           ["block exchangedata", "name ihc", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block exchangedata", "name cl1", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block exchangedata", "name cl2", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block exchangedata", "name hwva", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block exchangedata", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "optional true", "mf6internal auxvar"],
+           ["block exchangedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"]]
 
-    def __init__(
-        self,
-        simulation,
-        loading_package=False,
-        exgtype="GWE6-GWE6",
-        exgmnamea=None,
-        exgmnameb=None,
-        gwfmodelname1=None,
-        gwfmodelname2=None,
-        auxiliary=None,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        adv_scheme=None,
-        cnd_xt3d_off=None,
-        cnd_xt3d_rhs=None,
-        filein=None,
-        perioddata=None,
-        observations=None,
-        dev_interfacemodel_on=None,
-        nexg=None,
-        exchangedata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            simulation, "gwegwe", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, simulation, loading_package=False, exgtype="GWE6-GWE6",
+                 exgmnamea=None, exgmnameb=None, gwfmodelname1=None,
+                 gwfmodelname2=None, auxiliary=None, boundnames=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 adv_scheme=None, cnd_xt3d_off=None, cnd_xt3d_rhs=None,
+                 filein=None, perioddata=None, observations=None,
+                 dev_interfacemodel_on=None, nexg=None, exchangedata=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(simulation, "gwegwe", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.exgtype = exgtype
@@ -477,17 +272,18 @@ def __init__(
         self.cnd_xt3d_off = self.build_mfdata("cnd_xt3d_off", cnd_xt3d_off)
         self.cnd_xt3d_rhs = self.build_mfdata("cnd_xt3d_rhs", cnd_xt3d_rhs)
         self.filein = self.build_mfdata("filein", filein)
-        self._mve_filerecord = self.build_mfdata("mve_filerecord", None)
-        self._mve_package = self.build_child_package(
-            "mve", perioddata, "perioddata", self._mve_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
-        self.dev_interfacemodel_on = self.build_mfdata(
-            "dev_interfacemodel_on", dev_interfacemodel_on
-        )
+        self._mve_filerecord = self.build_mfdata("mve_filerecord",
+                                                 None)
+        self._mve_package = self.build_child_package("mve", perioddata,
+                                                     "perioddata",
+                                                     self._mve_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
+        self.dev_interfacemodel_on = self.build_mfdata("dev_interfacemodel_on",
+                                                       dev_interfacemodel_on)
         self.nexg = self.build_mfdata("nexg", nexg)
         self.exchangedata = self.build_mfdata("exchangedata", exchangedata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgweic.py b/flopy/mf6/modflow/mfgweic.py
index 24fcfd4cb8..48c9cc88a7 100644
--- a/flopy/mf6/modflow/mfgweic.py
+++ b/flopy/mf6/modflow/mfgweic.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator
 
@@ -20,6 +20,9 @@ class ModflowGweic(mfpackage.MFPackage):
     export_array_ascii : boolean
         * export_array_ascii (boolean) keyword that specifies input griddata
           arrays should be written to layered ascii output files.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
     strt : [double]
         * strt (double) is the initial (starting) temperature---that is, the
           temperature at the beginning of the GWE Model simulation. STRT must
@@ -31,56 +34,36 @@ class ModflowGweic(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    strt = ArrayTemplateGenerator(("gwe6", "ic", "griddata", "strt"))
+    strt = ArrayTemplateGenerator(('gwe6', 'ic', 'griddata', 'strt'))
     package_abbr = "gweic"
     _package_type = "ic"
     dfn_file_name = "gwe-ic.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block griddata",
-            "name strt",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "default_value 0.0",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc",
+            "extended true"],
+           ["block griddata", "name strt", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "netcdf true", "default_value 0.0"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        export_array_ascii=None,
-        strt=0.0,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "ic", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, export_array_ascii=None,
+                 export_array_netcdf=None, strt=0.0, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(model, "ic", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
         self.strt = self.build_mfdata("strt", strt)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwelke.py b/flopy/mf6/modflow/mfgwelke.py
index b0b96d6592..d2880c34d1 100644
--- a/flopy/mf6/modflow/mfgwelke.py
+++ b/flopy/mf6/modflow/mfgwelke.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -138,11 +138,11 @@ class ModflowGwelke(mfpackage.MFPackage):
                 * status (string) keyword option to define lake status. STATUS
                   can be ACTIVE, INACTIVE, or CONSTANT. By default, STATUS is
                   ACTIVE, which means that temperature will be calculated for
-                  the lake. If a lake is inactive, then there will be no solute
-                  mass fluxes into or out of the lake and the inactive value
-                  will be written for the lake temperature. If a lake is
-                  constant, then the temperature for the lake will be fixed at
-                  the user specified value.
+                  the lake. If a lake is inactive, then there will be no energy
+                  fluxes into or out of the lake and the inactive value will be
+                  written for the lake temperature. If a lake is constant, then
+                  the temperature for the lake will be fixed at the user
+                  specified value.
             temperature : [string]
                 * temperature (string) real or character value that defines the
                   temperature for the lake. The specified TEMPERATURE is only
@@ -158,25 +158,25 @@ class ModflowGwelke(mfpackage.MFPackage):
                   Input" section), values can be obtained from a time series by
                   entering the time-series name in place of a numeric value.
             evaporation : [string]
-                * evaporation (string) real or character value that defines the
-                  temperature of evaporated water :math:`(^{\\circ}C)` for the
-                  reach. If this temperature value is larger than the simulated
-                  temperature in the reach, then the evaporated water will be
-                  removed at the same temperature as the reach. If the Options
-                  block includes a TIMESERIESFILE entry (see the "Time-Variable
-                  Input" section), values can be obtained from a time series by
-                  entering the time-series name in place of a numeric value.
+                * evaporation (string) use of the EVAPORATION keyword is
+                  allowed in the LKE package; however, the specified value is
+                  not currently used in LKE calculations. Instead, the latent
+                  heat of evaporation is multiplied by the simulated
+                  evaporation rate for determining the thermal energy lost from
+                  a stream reach.
             runoff : [string]
                 * runoff (string) real or character value that defines the
-                  temperature of runoff for the lake. Value must be greater
-                  than or equal to zero. If the Options block includes a
+                  temperature of runoff for the lake. Users are free to use
+                  whatever temperature scale they want, which might include
+                  negative temperatures. If the Options block includes a
                   TIMESERIESFILE entry (see the "Time-Variable Input" section),
                   values can be obtained from a time series by entering the
                   time-series name in place of a numeric value.
             ext_inflow : [string]
                 * ext-inflow (string) real or character value that defines the
-                  temperature of external inflow for the lake. Value must be
-                  greater than or equal to zero. If the Options block includes
+                  temperature of external inflow for the lake. Users are free
+                  to use whatever temperature scale they want, which might
+                  include negative temperatures. If the Options block includes
                   a TIMESERIESFILE entry (see the "Time-Variable Input"
                   section), values can be obtained from a time series by
                   entering the time-series name in place of a numeric value.
@@ -197,538 +197,202 @@ class ModflowGwelke(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwe6", "lke", "options", "auxiliary"))
-    temperature_filerecord = ListTemplateGenerator(
-        ("gwe6", "lke", "options", "temperature_filerecord")
-    )
-    budget_filerecord = ListTemplateGenerator(
-        ("gwe6", "lke", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwe6", "lke", "options", "budgetcsv_filerecord")
-    )
-    ts_filerecord = ListTemplateGenerator(
-        ("gwe6", "lke", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwe6", "lke", "options", "obs_filerecord")
-    )
-    packagedata = ListTemplateGenerator(
-        ("gwe6", "lke", "packagedata", "packagedata")
-    )
-    lakeperioddata = ListTemplateGenerator(
-        ("gwe6", "lke", "period", "lakeperioddata")
-    )
+    auxiliary = ListTemplateGenerator(('gwe6', 'lke', 'options',
+                                       'auxiliary'))
+    temperature_filerecord = ListTemplateGenerator(('gwe6', 'lke',
+                                                    'options',
+                                                    'temperature_filerecord'))
+    budget_filerecord = ListTemplateGenerator(('gwe6', 'lke', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwe6', 'lke',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    ts_filerecord = ListTemplateGenerator(('gwe6', 'lke', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwe6', 'lke', 'options',
+                                            'obs_filerecord'))
+    packagedata = ListTemplateGenerator(('gwe6', 'lke', 'packagedata',
+                                         'packagedata'))
+    lakeperioddata = ListTemplateGenerator(('gwe6', 'lke', 'period',
+                                            'lakeperioddata'))
     package_abbr = "gwelke"
     _package_type = "lke"
     dfn_file_name = "gwe-lke.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name flow_package_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name flow_package_auxiliary_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_temperature",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name temperature_filerecord",
-            "type record temperature fileout tempfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name temperature",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name tempfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
+           ["header", 
+            "multi-package", ],
+           ["block options", "name flow_package_name", "type string",
+            "shape", "reader urword", "optional true"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name flow_package_auxiliary_name",
+            "type string", "shape", "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_temperature", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name temperature_filerecord",
+            "type record temperature fileout tempfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name temperature", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name tempfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block packagedata", "name packagedata",
             "type recarray lakeno strt ktf rbthcnd aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name lakeno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name strt",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name ktf",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name rbthcnd",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "time_series true",
-            "optional true",
-        ],
-        [
-            "block packagedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name lakeperioddata",
-            "type recarray lakeno laksetting",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name lakeno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name laksetting",
+            "shape (maxbound)", "reader urword"],
+           ["block packagedata", "name lakeno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name strt", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name ktf", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name rbthcnd", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "time_series true", "optional true"],
+           ["block packagedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name lakeperioddata",
+            "type recarray lakeno laksetting", "shape", "reader urword"],
+           ["block period", "name lakeno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name laksetting",
             "type keystring status temperature rainfall evaporation runoff "
             "ext-inflow auxiliaryrecord",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name status",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name temperature",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "time_series true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name rainfall",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name evaporation",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name runoff",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name ext-inflow",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name auxiliaryrecord",
-            "type record auxiliary auxname auxval",
-            "shape",
-            "tagged",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxiliary",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxval",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-    ]
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name status", "type string", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name temperature", "type string", "shape",
+            "tagged true", "in_record true", "time_series true",
+            "reader urword"],
+           ["block period", "name rainfall", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name evaporation", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name runoff", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name ext-inflow", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name auxiliaryrecord",
+            "type record auxiliary auxname auxval", "shape", "tagged",
+            "in_record true", "reader urword"],
+           ["block period", "name auxiliary", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name auxname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name auxval", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        flow_package_name=None,
-        auxiliary=None,
-        flow_package_auxiliary_name=None,
-        boundnames=None,
-        print_input=None,
-        print_temperature=None,
-        print_flows=None,
-        save_flows=None,
-        temperature_filerecord=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        timeseries=None,
-        observations=None,
-        packagedata=None,
-        lakeperioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "lke", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, flow_package_name=None,
+                 auxiliary=None, flow_package_auxiliary_name=None,
+                 boundnames=None, print_input=None, print_temperature=None,
+                 print_flows=None, save_flows=None,
+                 temperature_filerecord=None, budget_filerecord=None,
+                 budgetcsv_filerecord=None, timeseries=None, observations=None,
+                 packagedata=None, lakeperioddata=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "lke", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.flow_package_name = self.build_mfdata(
-            "flow_package_name", flow_package_name
-        )
+        self.flow_package_name = self.build_mfdata("flow_package_name",
+                                                   flow_package_name)
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
         self.flow_package_auxiliary_name = self.build_mfdata(
-            "flow_package_auxiliary_name", flow_package_auxiliary_name
-        )
+            "flow_package_auxiliary_name", flow_package_auxiliary_name)
         self.boundnames = self.build_mfdata("boundnames", boundnames)
         self.print_input = self.build_mfdata("print_input", print_input)
-        self.print_temperature = self.build_mfdata(
-            "print_temperature", print_temperature
-        )
+        self.print_temperature = self.build_mfdata("print_temperature",
+                                                   print_temperature)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
         self.temperature_filerecord = self.build_mfdata(
-            "temperature_filerecord", temperature_filerecord
-        )
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+            "temperature_filerecord", temperature_filerecord)
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
-        self.lakeperioddata = self.build_mfdata(
-            "lakeperioddata", lakeperioddata
-        )
+        self.lakeperioddata = self.build_mfdata("lakeperioddata",
+                                                lakeperioddata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwemve.py b/flopy/mf6/modflow/mfgwemve.py
index 744439c1ed..0e78e4c594 100644
--- a/flopy/mf6/modflow/mfgwemve.py
+++ b/flopy/mf6/modflow/mfgwemve.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -45,150 +45,64 @@ class ModflowGwemve(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    budget_filerecord = ListTemplateGenerator(
-        ("gwe6", "mve", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwe6", "mve", "options", "budgetcsv_filerecord")
-    )
+    budget_filerecord = ListTemplateGenerator(('gwe6', 'mve', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwe6', 'mve',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
     package_abbr = "gwemve"
     _package_type = "mve"
     dfn_file_name = "gwe-mve.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"]]
 
-    def __init__(
-        self,
-        parent_model_or_package,
-        loading_package=False,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            parent_model_or_package,
-            "mve",
-            filename,
-            pname,
-            loading_package,
-            **kwargs,
-        )
+    def __init__(self, parent_model_or_package, loading_package=False,
+                 print_input=None, print_flows=None, save_flows=None,
+                 budget_filerecord=None, budgetcsv_filerecord=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(parent_model_or_package, "mve", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
         self._init_complete = True
 
 
@@ -206,51 +120,28 @@ class GwemvePackages(mfpackage.MFChildPackages):
         Adds a new ModflowGwemve package to the container. See ModflowGwemve
         init documentation for definition of parameters.
     """
-
     package_abbr = "gwemvepackages"
 
-    def initialize(
-        self,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowGwemve(
-            self._cpparent,
-            print_input=print_input,
-            print_flows=print_flows,
-            save_flows=save_flows,
-            budget_filerecord=budget_filerecord,
-            budgetcsv_filerecord=budgetcsv_filerecord,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def initialize(self, print_input=None, print_flows=None, save_flows=None,
+                   budget_filerecord=None, budgetcsv_filerecord=None,
+                   filename=None, pname=None):
+        new_package = ModflowGwemve(self._cpparent, print_input=print_input,
+                                    print_flows=print_flows,
+                                    save_flows=save_flows,
+                                    budget_filerecord=budget_filerecord,
+                                    budgetcsv_filerecord=budgetcsv_filerecord,
+                                    filename=filename, pname=pname,
+                                    child_builder_call=True)
         self.init_package(new_package, filename)
 
-    def append_package(
-        self,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowGwemve(
-            self._cpparent,
-            print_input=print_input,
-            print_flows=print_flows,
-            save_flows=save_flows,
-            budget_filerecord=budget_filerecord,
-            budgetcsv_filerecord=budgetcsv_filerecord,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def append_package(self, print_input=None, print_flows=None,
+                   save_flows=None, budget_filerecord=None,
+                   budgetcsv_filerecord=None, filename=None, pname=None):
+        new_package = ModflowGwemve(self._cpparent, print_input=print_input,
+                                    print_flows=print_flows,
+                                    save_flows=save_flows,
+                                    budget_filerecord=budget_filerecord,
+                                    budgetcsv_filerecord=budgetcsv_filerecord,
+                                    filename=filename, pname=pname,
+                                    child_builder_call=True)
         self._append_package(new_package, filename)
diff --git a/flopy/mf6/modflow/mfgwemwe.py b/flopy/mf6/modflow/mfgwemwe.py
index e38b850647..e3bbd3cc9e 100644
--- a/flopy/mf6/modflow/mfgwemwe.py
+++ b/flopy/mf6/modflow/mfgwemwe.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -101,8 +101,8 @@ class ModflowGwemwe(mfpackage.MFPackage):
           when writing index variables.
         * strt (double) real value that defines the starting temperature for
           the well.
-        * ktf (double) is the thermal conductivity of the of the interface
-          between the aquifer cell and the feature.
+        * ktf (double) is the thermal conductivity of the interface between the
+          aquifer cell and the feature.
         * fthk (double) real value that defines the thickness of the material
           through which conduction occurs. Must be greater than 0.
         * aux (double) represents the values of the auxiliary variables for
@@ -153,11 +153,11 @@ class ModflowGwemwe(mfpackage.MFPackage):
                   value.
             rate : [string]
                 * rate (string) real or character value that defines the
-                  injection solute temperature :math:`^{\\circ}C` for the well.
-                  If the Options block includes a TIMESERIESFILE entry (see the
-                  "Time-Variable Input" section), values can be obtained from a
-                  time series by entering the time-series name in place of a
-                  numeric value.
+                  injection temperature :math:`(e.g., ^{\\circ}C or
+                  ^{\\circ}F)` for the well. If the Options block includes a
+                  TIMESERIESFILE entry (see the "Time-Variable Input" section),
+                  values can be obtained from a time series by entering the
+                  time-series name in place of a numeric value.
             auxiliaryrecord : [auxname, auxval]
                 * auxname (string) name for the auxiliary variable to be
                   assigned AUXVAL. AUXNAME must match one of the auxiliary
@@ -175,505 +175,191 @@ class ModflowGwemwe(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwe6", "mwe", "options", "auxiliary"))
-    temperature_filerecord = ListTemplateGenerator(
-        ("gwe6", "mwe", "options", "temperature_filerecord")
-    )
-    budget_filerecord = ListTemplateGenerator(
-        ("gwe6", "mwe", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwe6", "mwe", "options", "budgetcsv_filerecord")
-    )
-    ts_filerecord = ListTemplateGenerator(
-        ("gwe6", "mwe", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwe6", "mwe", "options", "obs_filerecord")
-    )
-    packagedata = ListTemplateGenerator(
-        ("gwe6", "mwe", "packagedata", "packagedata")
-    )
-    mweperioddata = ListTemplateGenerator(
-        ("gwe6", "mwe", "period", "mweperioddata")
-    )
+    auxiliary = ListTemplateGenerator(('gwe6', 'mwe', 'options',
+                                       'auxiliary'))
+    temperature_filerecord = ListTemplateGenerator(('gwe6', 'mwe',
+                                                    'options',
+                                                    'temperature_filerecord'))
+    budget_filerecord = ListTemplateGenerator(('gwe6', 'mwe', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwe6', 'mwe',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    ts_filerecord = ListTemplateGenerator(('gwe6', 'mwe', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwe6', 'mwe', 'options',
+                                            'obs_filerecord'))
+    packagedata = ListTemplateGenerator(('gwe6', 'mwe', 'packagedata',
+                                         'packagedata'))
+    mweperioddata = ListTemplateGenerator(('gwe6', 'mwe', 'period',
+                                           'mweperioddata'))
     package_abbr = "gwemwe"
     _package_type = "mwe"
     dfn_file_name = "gwe-mwe.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name flow_package_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name flow_package_auxiliary_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_temperature",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name temperature_filerecord",
-            "type record temperature fileout tempfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name temperature",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name tempfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
+           ["header", 
+            "multi-package", ],
+           ["block options", "name flow_package_name", "type string",
+            "shape", "reader urword", "optional true"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name flow_package_auxiliary_name",
+            "type string", "shape", "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_temperature", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name temperature_filerecord",
+            "type record temperature fileout tempfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name temperature", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name tempfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block packagedata", "name packagedata",
             "type recarray mawno strt ktf fthk aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name mawno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name strt",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name ktf",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name fthk",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "time_series true",
-            "optional true",
-        ],
-        [
-            "block packagedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name mweperioddata",
-            "type recarray mawno mwesetting",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name mawno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name mwesetting",
-            "type keystring status temperature rate auxiliaryrecord",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name status",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name temperature",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "time_series true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name rate",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name auxiliaryrecord",
-            "type record auxiliary auxname auxval",
-            "shape",
-            "tagged",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxiliary",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxval",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-    ]
+            "shape (maxbound)", "reader urword"],
+           ["block packagedata", "name mawno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name strt", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name ktf", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name fthk", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "time_series true", "optional true"],
+           ["block packagedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name mweperioddata",
+            "type recarray mawno mwesetting", "shape", "reader urword"],
+           ["block period", "name mawno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name mwesetting",
+            "type keystring status temperature rate auxiliaryrecord", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name status", "type string", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name temperature", "type string", "shape",
+            "tagged true", "in_record true", "time_series true",
+            "reader urword"],
+           ["block period", "name rate", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name auxiliaryrecord",
+            "type record auxiliary auxname auxval", "shape", "tagged",
+            "in_record true", "reader urword"],
+           ["block period", "name auxiliary", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name auxname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name auxval", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        flow_package_name=None,
-        auxiliary=None,
-        flow_package_auxiliary_name=None,
-        boundnames=None,
-        print_input=None,
-        print_temperature=None,
-        print_flows=None,
-        save_flows=None,
-        temperature_filerecord=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        timeseries=None,
-        observations=None,
-        packagedata=None,
-        mweperioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "mwe", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, flow_package_name=None,
+                 auxiliary=None, flow_package_auxiliary_name=None,
+                 boundnames=None, print_input=None, print_temperature=None,
+                 print_flows=None, save_flows=None,
+                 temperature_filerecord=None, budget_filerecord=None,
+                 budgetcsv_filerecord=None, timeseries=None, observations=None,
+                 packagedata=None, mweperioddata=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "mwe", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.flow_package_name = self.build_mfdata(
-            "flow_package_name", flow_package_name
-        )
+        self.flow_package_name = self.build_mfdata("flow_package_name",
+                                                   flow_package_name)
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
         self.flow_package_auxiliary_name = self.build_mfdata(
-            "flow_package_auxiliary_name", flow_package_auxiliary_name
-        )
+            "flow_package_auxiliary_name", flow_package_auxiliary_name)
         self.boundnames = self.build_mfdata("boundnames", boundnames)
         self.print_input = self.build_mfdata("print_input", print_input)
-        self.print_temperature = self.build_mfdata(
-            "print_temperature", print_temperature
-        )
+        self.print_temperature = self.build_mfdata("print_temperature",
+                                                   print_temperature)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
         self.temperature_filerecord = self.build_mfdata(
-            "temperature_filerecord", temperature_filerecord
-        )
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+            "temperature_filerecord", temperature_filerecord)
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
         self.mweperioddata = self.build_mfdata("mweperioddata", mweperioddata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwenam.py b/flopy/mf6/modflow/mfgwenam.py
index a012c6d9c1..a9a52989da 100644
--- a/flopy/mf6/modflow/mfgwenam.py
+++ b/flopy/mf6/modflow/mfgwenam.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -38,6 +38,13 @@ class ModflowGwenam(mfpackage.MFPackage):
         * save_flows (boolean) keyword to indicate that all model package flow
           terms will be written to the file specified with "BUDGET FILEOUT" in
           Output Control.
+    nc_mesh2d_filerecord : [ncmesh2dfile]
+        * ncmesh2dfile (string) name of the netcdf ugrid layered mesh output
+          file.
+    nc_structured_filerecord : [ncstructfile]
+        * ncstructfile (string) name of the netcdf structured output file.
+    nc_filerecord : [netcdf_filename]
+        * netcdf_filename (string) defines a netcdf input file.
     packages : [ftype, fname, pname]
         * ftype (string) is the file type, which must be one of the following
           character values shown in table ref{table:ftype-gwe}. Ftype may be
@@ -60,105 +67,96 @@ class ModflowGwenam(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    packages = ListTemplateGenerator(("gwe6", "nam", "packages", "packages"))
+    nc_mesh2d_filerecord = ListTemplateGenerator(('gwe6', 'nam',
+                                                  'options',
+                                                  'nc_mesh2d_filerecord'))
+    nc_structured_filerecord = ListTemplateGenerator((
+        'gwe6', 'nam', 'options', 'nc_structured_filerecord'))
+    nc_filerecord = ListTemplateGenerator(('gwe6', 'nam', 'options',
+                                           'nc_filerecord'))
+    packages = ListTemplateGenerator(('gwe6', 'nam', 'packages',
+                                      'packages'))
     package_abbr = "gwenam"
     _package_type = "nam"
     dfn_file_name = "gwe-nam.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name list",
-            "type string",
-            "reader urword",
-            "optional true",
-            "preserve_case true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block packages",
-            "name packages",
-            "type recarray ftype fname pname",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packages",
-            "name ftype",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block packages",
-            "name fname",
-            "in_record true",
-            "type string",
-            "preserve_case true",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block packages",
-            "name pname",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name list", "type string", "reader urword",
+            "optional true", "preserve_case true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name nc_mesh2d_filerecord",
+            "type record netcdf_mesh2d fileout ncmesh2dfile", "shape",
+            "reader urword", "tagged true", "optional true",
+            "mf6internal ncmesh2drec"],
+           ["block options", "name netcdf_mesh2d", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false", "extended true"],
+           ["block options", "name nc_structured_filerecord",
+            "type record netcdf_structured fileout ncstructfile", "shape",
+            "reader urword", "tagged true", "optional true",
+            "mf6internal ncstructrec"],
+           ["block options", "name netcdf_structured", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false", "mf6internal netcdf_struct", "extended true"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ncmesh2dfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false", "extended true"],
+           ["block options", "name ncstructfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false", "extended true"],
+           ["block options", "name nc_filerecord",
+            "type record netcdf filein netcdf_filename", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name netcdf", "type keyword",
+            "in_record true", "reader urword", "tagged true",
+            "optional false", "extended true"],
+           ["block options", "name filein", "type keyword",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name netcdf_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false", "mf6internal netcdf_fname",
+            "extended true"],
+           ["block packages", "name packages",
+            "type recarray ftype fname pname", "reader urword",
+            "optional false"],
+           ["block packages", "name ftype", "in_record true", "type string",
+            "tagged false", "reader urword"],
+           ["block packages", "name fname", "in_record true", "type string",
+            "preserve_case true", "tagged false", "reader urword"],
+           ["block packages", "name pname", "in_record true", "type string",
+            "tagged false", "reader urword", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        list=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        packages=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "nam", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, list=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 nc_mesh2d_filerecord=None, nc_structured_filerecord=None,
+                 nc_filerecord=None, packages=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(model, "nam", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.list = self.build_mfdata("list", list)
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
+        self.nc_mesh2d_filerecord = self.build_mfdata("nc_mesh2d_filerecord",
+                                                      nc_mesh2d_filerecord)
+        self.nc_structured_filerecord = self.build_mfdata(
+            "nc_structured_filerecord", nc_structured_filerecord)
+        self.nc_filerecord = self.build_mfdata("nc_filerecord", nc_filerecord)
         self.packages = self.build_mfdata("packages", packages)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgweoc.py b/flopy/mf6/modflow/mfgweoc.py
index f188f4b293..2f103cc0e5 100644
--- a/flopy/mf6/modflow/mfgweoc.py
+++ b/flopy/mf6/modflow/mfgweoc.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -87,347 +87,127 @@ class ModflowGweoc(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    budget_filerecord = ListTemplateGenerator(
-        ("gwe6", "oc", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwe6", "oc", "options", "budgetcsv_filerecord")
-    )
-    temperature_filerecord = ListTemplateGenerator(
-        ("gwe6", "oc", "options", "temperature_filerecord")
-    )
-    temperatureprintrecord = ListTemplateGenerator(
-        ("gwe6", "oc", "options", "temperatureprintrecord")
-    )
-    saverecord = ListTemplateGenerator(("gwe6", "oc", "period", "saverecord"))
-    printrecord = ListTemplateGenerator(
-        ("gwe6", "oc", "period", "printrecord")
-    )
+    budget_filerecord = ListTemplateGenerator(('gwe6', 'oc', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwe6', 'oc',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    temperature_filerecord = ListTemplateGenerator(('gwe6', 'oc',
+                                                    'options',
+                                                    'temperature_filerecord'))
+    temperatureprintrecord = ListTemplateGenerator(('gwe6', 'oc',
+                                                    'options',
+                                                    'temperatureprintrecord'))
+    saverecord = ListTemplateGenerator(('gwe6', 'oc', 'period',
+                                        'saverecord'))
+    printrecord = ListTemplateGenerator(('gwe6', 'oc', 'period',
+                                         'printrecord'))
     package_abbr = "gweoc"
     _package_type = "oc"
     dfn_file_name = "gwe-oc.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name temperature_filerecord",
-            "type record temperature fileout temperaturefile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name temperature",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name temperaturefile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name temperatureprintrecord",
-            "type record temperature print_format formatrecord",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_format",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name formatrecord",
-            "type record columns width digits format",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name columns",
-            "type integer",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional",
-        ],
-        [
-            "block options",
-            "name width",
-            "type integer",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional",
-        ],
-        [
-            "block options",
-            "name digits",
-            "type integer",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional",
-        ],
-        [
-            "block options",
-            "name format",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name saverecord",
-            "type record save rtype ocsetting",
-            "shape",
-            "reader urword",
-            "tagged false",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name save",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name printrecord",
-            "type record print rtype ocsetting",
-            "shape",
-            "reader urword",
-            "tagged false",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name print",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name rtype",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name ocsetting",
-            "type keystring all first last frequency steps",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name all",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name first",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name last",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name frequency",
-            "type integer",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name steps",
-            "type integer",
-            "shape (<nstp)",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name temperature_filerecord",
+            "type record temperature fileout temperaturefile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name temperature", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name temperaturefile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name temperatureprintrecord",
+            "type record temperature print_format formatrecord", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_format", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name formatrecord",
+            "type record columns width digits format", "shape",
+            "in_record true", "reader urword", "tagged", "optional false"],
+           ["block options", "name columns", "type integer", "shape",
+            "in_record true", "reader urword", "tagged true", "optional"],
+           ["block options", "name width", "type integer", "shape",
+            "in_record true", "reader urword", "tagged true", "optional"],
+           ["block options", "name digits", "type integer", "shape",
+            "in_record true", "reader urword", "tagged true", "optional"],
+           ["block options", "name format", "type string", "shape",
+            "in_record true", "reader urword", "tagged false",
+            "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name saverecord",
+            "type record save rtype ocsetting", "shape", "reader urword",
+            "tagged false", "optional true"],
+           ["block period", "name save", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block period", "name printrecord",
+            "type record print rtype ocsetting", "shape", "reader urword",
+            "tagged false", "optional true"],
+           ["block period", "name print", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block period", "name rtype", "type string", "shape",
+            "in_record true", "reader urword", "tagged false",
+            "optional false"],
+           ["block period", "name ocsetting",
+            "type keystring all first last frequency steps", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name all", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name first", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name last", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name frequency", "type integer", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name steps", "type integer", "shape (<nstp)",
+            "tagged true", "in_record true", "reader urword"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        temperature_filerecord=None,
-        temperatureprintrecord=None,
-        saverecord=None,
-        printrecord=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "oc", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, budget_filerecord=None,
+                 budgetcsv_filerecord=None, temperature_filerecord=None,
+                 temperatureprintrecord=None, saverecord=None,
+                 printrecord=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "oc", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
         self.temperature_filerecord = self.build_mfdata(
-            "temperature_filerecord", temperature_filerecord
-        )
+            "temperature_filerecord", temperature_filerecord)
         self.temperatureprintrecord = self.build_mfdata(
-            "temperatureprintrecord", temperatureprintrecord
-        )
+            "temperatureprintrecord", temperatureprintrecord)
         self.saverecord = self.build_mfdata("saverecord", saverecord)
         self.printrecord = self.build_mfdata("printrecord", printrecord)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwesfe.py b/flopy/mf6/modflow/mfgwesfe.py
index bd6a0f241a..048600ef98 100644
--- a/flopy/mf6/modflow/mfgwesfe.py
+++ b/flopy/mf6/modflow/mfgwesfe.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -37,7 +37,7 @@ class ModflowGwesfe(mfpackage.MFPackage):
     flow_package_auxiliary_name : string
         * flow_package_auxiliary_name (string) keyword to specify the name of
           an auxiliary variable provided in the corresponding flow package
-          (i.e., FLOW_PACKAE_NAME). If specified, then the simulated
+          (i.e., FLOW_PACKAGE_NAME). If specified, then the simulated
           temperatures from this advanced energy transport package will be
           copied into the auxiliary variable specified with this name. Note
           that the flow package must have an auxiliary variable with this name
@@ -154,34 +154,36 @@ class ModflowGwesfe(mfpackage.MFPackage):
                   value.
             rainfall : [string]
                 * rainfall (string) real or character value that defines the
-                  rainfall temperature :math:`(^{\\circ}C)` for the reach. If
-                  the Options block includes a TIMESERIESFILE entry (see the
-                  "Time-Variable Input" section), values can be obtained from a
-                  time series by entering the time-series name in place of a
-                  numeric value.
+                  rainfall temperature :math:`(e.g., ^{\\circ}C or ^{\\circ}F)`
+                  for the reach. If the Options block includes a TIMESERIESFILE
+                  entry (see the "Time-Variable Input" section), values can be
+                  obtained from a time series by entering the time-series name
+                  in place of a numeric value.
             evaporation : [string]
-                * evaporation (string) real or character value that defines the
-                  temperature of evaporated water :math:`(^{\\circ}C)` for the
-                  reach. If this temperature value is larger than the simulated
-                  temperature in the reach, then the evaporated water will be
-                  removed at the same temperature as the reach. If the Options
-                  block includes a TIMESERIESFILE entry (see the "Time-Variable
-                  Input" section), values can be obtained from a time series by
-                  entering the time-series name in place of a numeric value.
+                * evaporation (string) use of the EVAPORATION keyword is
+                  allowed in the SFE package; however, the specified value is
+                  not currently used in SFE calculations. Instead, the latent
+                  heat of evaporation is multiplied by the simulated
+                  evaporation rate for determining the thermal energy lost from
+                  a stream reach.
             runoff : [string]
                 * runoff (string) real or character value that defines the
-                  temperature of runoff :math:`(^{\\circ}C)` for the reach.
-                  Value must be greater than or equal to zero. If the Options
-                  block includes a TIMESERIESFILE entry (see the "Time-Variable
-                  Input" section), values can be obtained from a time series by
-                  entering the time-series name in place of a numeric value.
+                  temperature of runoff :math:`(e.g., ^{\\circ}C or
+                  ^{\\circ}F)` for the reach. Users are free to use whatever
+                  temperature scale they want, which might include negative
+                  temperatures. If the Options block includes a TIMESERIESFILE
+                  entry (see the "Time-Variable Input" section), values can be
+                  obtained from a time series by entering the time-series name
+                  in place of a numeric value.
             inflow : [string]
                 * inflow (string) real or character value that defines the
-                  temperature of inflow :math:`(^{\\circ}C)` for the reach.
-                  Value must be greater than or equal to zero. If the Options
-                  block includes a TIMESERIESFILE entry (see the "Time-Variable
-                  Input" section), values can be obtained from a time series by
-                  entering the time-series name in place of a numeric value.
+                  temperature of inflow :math:`(e.g., ^{\\circ}C or
+                  ^{\\circ}F)` for the reach. Users are free to use whatever
+                  temperature scale they want, which might include negative
+                  temperatures. If the Options block includes a TIMESERIESFILE
+                  entry (see the "Time-Variable Input" section), values can be
+                  obtained from a time series by entering the time-series name
+                  in place of a numeric value.
             auxiliaryrecord : [auxname, auxval]
                 * auxname (string) name for the auxiliary variable to be
                   assigned AUXVAL. AUXNAME must match one of the auxiliary
@@ -199,538 +201,202 @@ class ModflowGwesfe(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwe6", "sfe", "options", "auxiliary"))
-    temperature_filerecord = ListTemplateGenerator(
-        ("gwe6", "sfe", "options", "temperature_filerecord")
-    )
-    budget_filerecord = ListTemplateGenerator(
-        ("gwe6", "sfe", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwe6", "sfe", "options", "budgetcsv_filerecord")
-    )
-    ts_filerecord = ListTemplateGenerator(
-        ("gwe6", "sfe", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwe6", "sfe", "options", "obs_filerecord")
-    )
-    packagedata = ListTemplateGenerator(
-        ("gwe6", "sfe", "packagedata", "packagedata")
-    )
-    reachperioddata = ListTemplateGenerator(
-        ("gwe6", "sfe", "period", "reachperioddata")
-    )
+    auxiliary = ListTemplateGenerator(('gwe6', 'sfe', 'options',
+                                       'auxiliary'))
+    temperature_filerecord = ListTemplateGenerator(('gwe6', 'sfe',
+                                                    'options',
+                                                    'temperature_filerecord'))
+    budget_filerecord = ListTemplateGenerator(('gwe6', 'sfe', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwe6', 'sfe',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    ts_filerecord = ListTemplateGenerator(('gwe6', 'sfe', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwe6', 'sfe', 'options',
+                                            'obs_filerecord'))
+    packagedata = ListTemplateGenerator(('gwe6', 'sfe', 'packagedata',
+                                         'packagedata'))
+    reachperioddata = ListTemplateGenerator(('gwe6', 'sfe', 'period',
+                                             'reachperioddata'))
     package_abbr = "gwesfe"
     _package_type = "sfe"
     dfn_file_name = "gwe-sfe.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name flow_package_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name flow_package_auxiliary_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_temperature",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name temperature_filerecord",
-            "type record temperature fileout tempfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name temperature",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name tempfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
+           ["header", 
+            "multi-package", ],
+           ["block options", "name flow_package_name", "type string",
+            "shape", "reader urword", "optional true"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name flow_package_auxiliary_name",
+            "type string", "shape", "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_temperature", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name temperature_filerecord",
+            "type record temperature fileout tempfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name temperature", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name tempfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block packagedata", "name packagedata",
             "type recarray rno strt ktf rbthcnd aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name rno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name strt",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name ktf",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name rbthcnd",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "time_series true",
-            "optional true",
-        ],
-        [
-            "block packagedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name reachperioddata",
-            "type recarray rno reachsetting",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name rno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name reachsetting",
+            "shape (maxbound)", "reader urword"],
+           ["block packagedata", "name rno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name strt", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name ktf", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name rbthcnd", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "time_series true", "optional true"],
+           ["block packagedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name reachperioddata",
+            "type recarray rno reachsetting", "shape", "reader urword"],
+           ["block period", "name rno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name reachsetting",
             "type keystring status temperature rainfall evaporation runoff "
             "inflow auxiliaryrecord",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name status",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name temperature",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "time_series true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name rainfall",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name evaporation",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name runoff",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name inflow",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name auxiliaryrecord",
-            "type record auxiliary auxname auxval",
-            "shape",
-            "tagged",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxiliary",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxval",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-    ]
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name status", "type string", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name temperature", "type string", "shape",
+            "tagged true", "in_record true", "time_series true",
+            "reader urword"],
+           ["block period", "name rainfall", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name evaporation", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name runoff", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name inflow", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name auxiliaryrecord",
+            "type record auxiliary auxname auxval", "shape", "tagged",
+            "in_record true", "reader urword"],
+           ["block period", "name auxiliary", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name auxname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name auxval", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        flow_package_name=None,
-        auxiliary=None,
-        flow_package_auxiliary_name=None,
-        boundnames=None,
-        print_input=None,
-        print_temperature=None,
-        print_flows=None,
-        save_flows=None,
-        temperature_filerecord=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        timeseries=None,
-        observations=None,
-        packagedata=None,
-        reachperioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "sfe", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, flow_package_name=None,
+                 auxiliary=None, flow_package_auxiliary_name=None,
+                 boundnames=None, print_input=None, print_temperature=None,
+                 print_flows=None, save_flows=None,
+                 temperature_filerecord=None, budget_filerecord=None,
+                 budgetcsv_filerecord=None, timeseries=None, observations=None,
+                 packagedata=None, reachperioddata=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "sfe", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.flow_package_name = self.build_mfdata(
-            "flow_package_name", flow_package_name
-        )
+        self.flow_package_name = self.build_mfdata("flow_package_name",
+                                                   flow_package_name)
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
         self.flow_package_auxiliary_name = self.build_mfdata(
-            "flow_package_auxiliary_name", flow_package_auxiliary_name
-        )
+            "flow_package_auxiliary_name", flow_package_auxiliary_name)
         self.boundnames = self.build_mfdata("boundnames", boundnames)
         self.print_input = self.build_mfdata("print_input", print_input)
-        self.print_temperature = self.build_mfdata(
-            "print_temperature", print_temperature
-        )
+        self.print_temperature = self.build_mfdata("print_temperature",
+                                                   print_temperature)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
         self.temperature_filerecord = self.build_mfdata(
-            "temperature_filerecord", temperature_filerecord
-        )
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+            "temperature_filerecord", temperature_filerecord)
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
-        self.reachperioddata = self.build_mfdata(
-            "reachperioddata", reachperioddata
-        )
+        self.reachperioddata = self.build_mfdata("reachperioddata",
+                                                 reachperioddata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwessm.py b/flopy/mf6/modflow/mfgwessm.py
index e21aafdf47..3482c79021 100644
--- a/flopy/mf6/modflow/mfgwessm.py
+++ b/flopy/mf6/modflow/mfgwessm.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -40,7 +40,7 @@ class ModflowGwessm(mfpackage.MFPackage):
           variable in the corresponding flow package. The auxiliary variable
           must have the same name as the AUXNAME value that follows. If the AUX
           keyword is specified, then the auxiliary variable specified by the
-          user will be assigned as the concenration value for groundwater
+          user will be assigned as the temperature value for groundwater
           sources (flows with a positive sign). For negative flow rates
           (sinks), groundwater will be withdrawn from the cell at the simulated
           temperature of the cell. The AUXMIXED option provides an alternative
@@ -58,16 +58,16 @@ class ModflowGwessm(mfpackage.MFPackage):
           that package. The values in this auxiliary variable will be used to
           set the temperature associated with the flows for that boundary
           package.
-    fileinput : [pname, spt6_filename]
-        * pname (string) name of the flow package for which an SPT6 input file
+    fileinput : [pname, spc6_filename]
+        * pname (string) name of the flow package for which an SPC6 input file
           contains a source temperature. If this flow package is represented
           using an advanced transport package (SFE, LKE, MWE, or UZE), then the
           advanced transport package will override SSM terms specified here.
-        * spt6_filename (string) character string that defines the path and
+        * spc6_filename (string) character string that defines the path and
           filename for the file containing source and sink input data for the
-          flow package. The SPT6_FILENAME file is a flexible input file that
+          flow package. The SPC6_FILENAME file is a flexible input file that
           allows temperatures to be specified by stress period and with time
-          series. Instructions for creating the SPT6_FILENAME input file are
+          series. Instructions for creating the SPC6_FILENAME input file are
           provided in the next section on file input for boundary temperatures.
     filename : String
         File name for this package.
@@ -75,141 +75,55 @@ class ModflowGwessm(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    sources = ListTemplateGenerator(("gwe6", "ssm", "sources", "sources"))
-    fileinput = ListTemplateGenerator(
-        ("gwe6", "ssm", "fileinput", "fileinput")
-    )
+    sources = ListTemplateGenerator(('gwe6', 'ssm', 'sources',
+                                     'sources'))
+    fileinput = ListTemplateGenerator(('gwe6', 'ssm', 'fileinput',
+                                       'fileinput'))
     package_abbr = "gwessm"
     _package_type = "ssm"
     dfn_file_name = "gwe-ssm.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block sources",
-            "name sources",
-            "type recarray pname srctype auxname",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block sources",
-            "name pname",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block sources",
-            "name srctype",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "optional false",
-            "reader urword",
-        ],
-        [
-            "block sources",
-            "name auxname",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block fileinput",
-            "name fileinput",
-            "type recarray pname spt6 filein spt6_filename mixed",
-            "reader urword",
-        ],
-        [
-            "block fileinput",
-            "name pname",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block fileinput",
-            "name spt6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block fileinput",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block fileinput",
-            "name spt6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block fileinput",
-            "name mixed",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block sources", "name sources",
+            "type recarray pname srctype auxname", "reader urword",
+            "optional false"],
+           ["block sources", "name pname", "in_record true", "type string",
+            "tagged false", "reader urword"],
+           ["block sources", "name srctype", "in_record true",
+            "type string", "tagged false", "optional false", "reader urword"],
+           ["block sources", "name auxname", "in_record true",
+            "type string", "tagged false", "reader urword", "optional false"],
+           ["block fileinput", "name fileinput",
+            "type recarray pname spc6 filein spc6_filename mixed",
+            "reader urword"],
+           ["block fileinput", "name pname", "in_record true",
+            "type string", "tagged false", "reader urword"],
+           ["block fileinput", "name spc6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block fileinput", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block fileinput", "name spc6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block fileinput", "name mixed", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        print_flows=None,
-        save_flows=None,
-        sources=None,
-        fileinput=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "ssm", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, print_flows=None,
+                 save_flows=None, sources=None, fileinput=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "ssm", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.print_flows = self.build_mfdata("print_flows", print_flows)
diff --git a/flopy/mf6/modflow/mfgweuze.py b/flopy/mf6/modflow/mfgweuze.py
index a8eb86b0b5..c1a2a6a1ea 100644
--- a/flopy/mf6/modflow/mfgweuze.py
+++ b/flopy/mf6/modflow/mfgweuze.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -37,7 +37,7 @@ class ModflowGweuze(mfpackage.MFPackage):
     flow_package_auxiliary_name : string
         * flow_package_auxiliary_name (string) keyword to specify the name of
           an auxiliary variable in the corresponding flow package. If
-          specified, then the simulated concentrations from this advanced
+          specified, then the simulated temperatures from this advanced
           transport package will be copied into the auxiliary variable
           specified with this name. Note that the flow package must have an
           auxiliary variable with this name or the program will terminate with
@@ -146,11 +146,11 @@ class ModflowGweuze(mfpackage.MFPackage):
                   entering the time-series name in place of a numeric value.
             infiltration : [string]
                 * infiltration (string) real or character value that defines
-                  the temperature of the infiltration :math:`(^\\circ C)` for
-                  the UZF cell. If the Options block includes a TIMESERIESFILE
-                  entry (see the "Time-Variable Input" section), values can be
-                  obtained from a time series by entering the time-series name
-                  in place of a numeric value.
+                  the temperature of the infiltration :math:`(e.g., ^{\\circ}C
+                  or ^{\\circ}F)` for the UZF cell. If the Options block
+                  includes a TIMESERIESFILE entry (see the "Time-Variable
+                  Input" section), values can be obtained from a time series by
+                  entering the time-series name in place of a numeric value.
             uzet : [string]
                 * uzet (string) real or character value that states what
                   fraction of the simulated unsaturated zone evapotranspiration
@@ -179,498 +179,191 @@ class ModflowGweuze(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwe6", "uze", "options", "auxiliary"))
-    temperature_filerecord = ListTemplateGenerator(
-        ("gwe6", "uze", "options", "temperature_filerecord")
-    )
-    budget_filerecord = ListTemplateGenerator(
-        ("gwe6", "uze", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwe6", "uze", "options", "budgetcsv_filerecord")
-    )
-    ts_filerecord = ListTemplateGenerator(
-        ("gwe6", "uze", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwe6", "uze", "options", "obs_filerecord")
-    )
-    packagedata = ListTemplateGenerator(
-        ("gwe6", "uze", "packagedata", "packagedata")
-    )
-    uzeperioddata = ListTemplateGenerator(
-        ("gwe6", "uze", "period", "uzeperioddata")
-    )
+    auxiliary = ListTemplateGenerator(('gwe6', 'uze', 'options',
+                                       'auxiliary'))
+    temperature_filerecord = ListTemplateGenerator(('gwe6', 'uze',
+                                                    'options',
+                                                    'temperature_filerecord'))
+    budget_filerecord = ListTemplateGenerator(('gwe6', 'uze', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwe6', 'uze',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    ts_filerecord = ListTemplateGenerator(('gwe6', 'uze', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwe6', 'uze', 'options',
+                                            'obs_filerecord'))
+    packagedata = ListTemplateGenerator(('gwe6', 'uze', 'packagedata',
+                                         'packagedata'))
+    uzeperioddata = ListTemplateGenerator(('gwe6', 'uze', 'period',
+                                           'uzeperioddata'))
     package_abbr = "gweuze"
     _package_type = "uze"
     dfn_file_name = "gwe-uze.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name flow_package_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name flow_package_auxiliary_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_temperature",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name temperature_filerecord",
-            "type record temperature fileout tempfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name temperature",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name tempfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
-            "type recarray uzfno strt aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name uzfno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name strt",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "time_series true",
-            "optional true",
-        ],
-        [
-            "block packagedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name uzeperioddata",
-            "type recarray uzfno uzesetting",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name uzfno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name uzesetting",
+           ["header", 
+            "multi-package", ],
+           ["block options", "name flow_package_name", "type string",
+            "shape", "reader urword", "optional true"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name flow_package_auxiliary_name",
+            "type string", "shape", "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_temperature", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name temperature_filerecord",
+            "type record temperature fileout tempfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name temperature", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name tempfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block packagedata", "name packagedata",
+            "type recarray uzfno strt aux boundname", "shape (maxbound)",
+            "reader urword"],
+           ["block packagedata", "name uzfno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name strt", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "time_series true", "optional true"],
+           ["block packagedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name uzeperioddata",
+            "type recarray uzfno uzesetting", "shape", "reader urword"],
+           ["block period", "name uzfno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name uzesetting",
             "type keystring status temperature infiltration uzet "
             "auxiliaryrecord",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name status",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name temperature",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "time_series true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name infiltration",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name uzet",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name auxiliaryrecord",
-            "type record auxiliary auxname auxval",
-            "shape",
-            "tagged",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxiliary",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxval",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-    ]
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name status", "type string", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name temperature", "type string", "shape",
+            "tagged true", "in_record true", "time_series true",
+            "reader urword"],
+           ["block period", "name infiltration", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name uzet", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name auxiliaryrecord",
+            "type record auxiliary auxname auxval", "shape", "tagged",
+            "in_record true", "reader urword"],
+           ["block period", "name auxiliary", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name auxname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name auxval", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        flow_package_name=None,
-        auxiliary=None,
-        flow_package_auxiliary_name=None,
-        boundnames=None,
-        print_input=None,
-        print_temperature=None,
-        print_flows=None,
-        save_flows=None,
-        temperature_filerecord=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        timeseries=None,
-        observations=None,
-        packagedata=None,
-        uzeperioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "uze", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, flow_package_name=None,
+                 auxiliary=None, flow_package_auxiliary_name=None,
+                 boundnames=None, print_input=None, print_temperature=None,
+                 print_flows=None, save_flows=None,
+                 temperature_filerecord=None, budget_filerecord=None,
+                 budgetcsv_filerecord=None, timeseries=None, observations=None,
+                 packagedata=None, uzeperioddata=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "uze", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.flow_package_name = self.build_mfdata(
-            "flow_package_name", flow_package_name
-        )
+        self.flow_package_name = self.build_mfdata("flow_package_name",
+                                                   flow_package_name)
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
         self.flow_package_auxiliary_name = self.build_mfdata(
-            "flow_package_auxiliary_name", flow_package_auxiliary_name
-        )
+            "flow_package_auxiliary_name", flow_package_auxiliary_name)
         self.boundnames = self.build_mfdata("boundnames", boundnames)
         self.print_input = self.build_mfdata("print_input", print_input)
-        self.print_temperature = self.build_mfdata(
-            "print_temperature", print_temperature
-        )
+        self.print_temperature = self.build_mfdata("print_temperature",
+                                                   print_temperature)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
         self.temperature_filerecord = self.build_mfdata(
-            "temperature_filerecord", temperature_filerecord
-        )
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+            "temperature_filerecord", temperature_filerecord)
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
         self.uzeperioddata = self.build_mfdata("uzeperioddata", uzeperioddata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwf.py b/flopy/mf6/modflow/mfgwf.py
index d7f33aa024..3e50707c82 100644
--- a/flopy/mf6/modflow/mfgwf.py
+++ b/flopy/mf6/modflow/mfgwf.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfmodel
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -50,6 +50,13 @@ class ModflowGwf(mfmodel.MFModel):
           groundwater head in a cell will be under-relaxed when water levels
           fall below the bottom of the model below any given cell. By default,
           Newton-Raphson UNDER_RELAXATION is not applied.
+    nc_mesh2d_filerecord : [ncmesh2dfile]
+        * ncmesh2dfile (string) name of the netcdf ugrid layered mesh output
+          file.
+    nc_structured_filerecord : [ncstructfile]
+        * ncstructfile (string) name of the netcdf structured output file.
+    nc_filerecord : [netcdf_filename]
+        * netcdf_filename (string) defines a netcdf input file.
     packages : [ftype, fname, pname]
         * ftype (string) is the file type, which must be one of the following
           character values shown in table ref{table:ftype-gwf}. Ftype may be
@@ -74,70 +81,44 @@ class ModflowGwf(mfmodel.MFModel):
         model_ws : string, strict : boolean) : MFSimulation
         a class method that loads a model from files
     """
+    model_type = 'gwf'
 
-    model_type = "gwf"
-
-    def __init__(
-        self,
-        simulation,
-        modelname="model",
-        model_nam_file=None,
-        version="mf6",
-        exe_name="mf6",
-        model_rel_path=".",
-        list=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        newtonoptions=None,
-        **kwargs,
-    ):
-        super().__init__(
-            simulation,
-            model_type="gwf6",
-            modelname=modelname,
-            model_nam_file=model_nam_file,
-            version=version,
-            exe_name=exe_name,
-            model_rel_path=model_rel_path,
-            **kwargs,
-        )
+    def __init__(self, simulation, modelname='model', model_nam_file=None,
+                 version='mf6', exe_name='mf6', model_rel_path='.', list=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 newtonoptions=None, nc_mesh2d_filerecord=None,
+                 nc_structured_filerecord=None, nc_filerecord=None, **kwargs,):
+        super().__init__(simulation, model_type='gwf6',
+                         modelname=modelname,
+                         model_nam_file=model_nam_file,
+                         version=version, exe_name=exe_name,
+                         model_rel_path=model_rel_path,
+                         **kwargs,)
 
         self.name_file.list.set_data(list)
         self.name_file.print_input.set_data(print_input)
         self.name_file.print_flows.set_data(print_flows)
         self.name_file.save_flows.set_data(save_flows)
         self.name_file.newtonoptions.set_data(newtonoptions)
+        self.name_file.nc_mesh2d_filerecord.set_data(nc_mesh2d_filerecord)
+        self.name_file.nc_structured_filerecord.set_data(nc_structured_filerecord)
+        self.name_file.nc_filerecord.set_data(nc_filerecord)
 
         self.list = self.name_file.list
         self.print_input = self.name_file.print_input
         self.print_flows = self.name_file.print_flows
         self.save_flows = self.name_file.save_flows
         self.newtonoptions = self.name_file.newtonoptions
+        self.nc_mesh2d_filerecord = self.name_file.nc_mesh2d_filerecord
+        self.nc_structured_filerecord = self.name_file.nc_structured_filerecord
+        self.nc_filerecord = self.name_file.nc_filerecord
 
     @classmethod
-    def load(
-        cls,
-        simulation,
-        structure,
-        modelname="NewModel",
-        model_nam_file="modflowtest.nam",
-        version="mf6",
-        exe_name="mf6",
-        strict=True,
-        model_rel_path=".",
-        load_only=None,
-    ):
-        return mfmodel.MFModel.load_base(
-            cls,
-            simulation,
-            structure,
-            modelname,
-            model_nam_file,
-            "gwf6",
-            version,
-            exe_name,
-            strict,
-            model_rel_path,
-            load_only,
-        )
+    def load(cls, simulation, structure, modelname='NewModel',
+             model_nam_file='modflowtest.nam', version='mf6',
+             exe_name='mf6', strict=True, model_rel_path='.',
+             load_only=None):
+        return mfmodel.MFModel.load_base(cls, simulation, structure, modelname,
+                                         model_nam_file, 'gwf6', version,
+                                         exe_name, strict, model_rel_path,
+                                         load_only)
diff --git a/flopy/mf6/modflow/mfgwfapi.py b/flopy/mf6/modflow/mfgwfapi.py
index 9ab7d774bf..de0ae55e19 100644
--- a/flopy/mf6/modflow/mfgwfapi.py
+++ b/flopy/mf6/modflow/mfgwfapi.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -55,138 +55,61 @@ class ModflowGwfapi(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    obs_filerecord = ListTemplateGenerator(
-        ("gwf6", "api", "options", "obs_filerecord")
-    )
+    obs_filerecord = ListTemplateGenerator(('gwf6', 'api', 'options',
+                                            'obs_filerecord'))
     package_abbr = "gwfapi"
     _package_type = "api"
     dfn_file_name = "gwf-api.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mover",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block dimensions",
-            "name maxbound",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name mover", "type keyword", "tagged true",
+            "reader urword", "optional true"],
+           ["block dimensions", "name maxbound", "type integer",
+            "reader urword", "optional false"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        observations=None,
-        mover=None,
-        maxbound=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "api", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, boundnames=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 observations=None, mover=None, maxbound=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "api", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.boundnames = self.build_mfdata("boundnames", boundnames)
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.mover = self.build_mfdata("mover", mover)
         self.maxbound = self.build_mfdata("maxbound", maxbound)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfbuy.py b/flopy/mf6/modflow/mfgwfbuy.py
index e422345fb3..a57faa6e79 100644
--- a/flopy/mf6/modflow/mfgwfbuy.py
+++ b/flopy/mf6/modflow/mfgwfbuy.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -79,178 +79,70 @@ class ModflowGwfbuy(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    density_filerecord = ListTemplateGenerator(
-        ("gwf6", "buy", "options", "density_filerecord")
-    )
-    packagedata = ListTemplateGenerator(
-        ("gwf6", "buy", "packagedata", "packagedata")
-    )
+    density_filerecord = ListTemplateGenerator(('gwf6', 'buy', 'options',
+                                                'density_filerecord'))
+    packagedata = ListTemplateGenerator(('gwf6', 'buy', 'packagedata',
+                                         'packagedata'))
     package_abbr = "gwfbuy"
     _package_type = "buy"
     dfn_file_name = "gwf-buy.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name hhformulation_rhs",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name denseref",
-            "type double precision",
-            "reader urword",
-            "optional true",
-            "default_value 1000.",
-        ],
-        [
-            "block options",
-            "name density_filerecord",
-            "type record density fileout densityfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name density",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name densityfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name dev_efh_formulation",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block dimensions",
-            "name nrhospecies",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
+           ["header", ],
+           ["block options", "name hhformulation_rhs", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name denseref", "type double precision",
+            "reader urword", "optional true", "default_value 1000."],
+           ["block options", "name density_filerecord",
+            "type record density fileout densityfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name density", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name densityfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name dev_efh_formulation", "type keyword",
+            "reader urword", "optional true"],
+           ["block dimensions", "name nrhospecies", "type integer",
+            "reader urword", "optional false"],
+           ["block packagedata", "name packagedata",
             "type recarray irhospec drhodc crhoref modelname auxspeciesname",
-            "shape (nrhospecies)",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name irhospec",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name drhodc",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name crhoref",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name modelname",
-            "type string",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name auxspeciesname",
-            "type string",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "reader urword",
-        ],
-    ]
+            "shape (nrhospecies)", "reader urword"],
+           ["block packagedata", "name irhospec", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name drhodc", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name crhoref", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name modelname", "type string",
+            "in_record true", "tagged false", "shape", "reader urword"],
+           ["block packagedata", "name auxspeciesname", "type string",
+            "in_record true", "tagged false", "shape", "reader urword"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        hhformulation_rhs=None,
-        denseref=1000.0,
-        density_filerecord=None,
-        dev_efh_formulation=None,
-        nrhospecies=None,
-        packagedata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "buy", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, hhformulation_rhs=None,
+                 denseref=1000., density_filerecord=None,
+                 dev_efh_formulation=None, nrhospecies=None, packagedata=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "buy", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.hhformulation_rhs = self.build_mfdata(
-            "hhformulation_rhs", hhformulation_rhs
-        )
+        self.hhformulation_rhs = self.build_mfdata("hhformulation_rhs",
+                                                   hhformulation_rhs)
         self.denseref = self.build_mfdata("denseref", denseref)
-        self.density_filerecord = self.build_mfdata(
-            "density_filerecord", density_filerecord
-        )
-        self.dev_efh_formulation = self.build_mfdata(
-            "dev_efh_formulation", dev_efh_formulation
-        )
+        self.density_filerecord = self.build_mfdata("density_filerecord",
+                                                    density_filerecord)
+        self.dev_efh_formulation = self.build_mfdata("dev_efh_formulation",
+                                                     dev_efh_formulation)
         self.nrhospecies = self.build_mfdata("nrhospecies", nrhospecies)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfchd.py b/flopy/mf6/modflow/mfgwfchd.py
index ae10e92767..7fe6137546 100644
--- a/flopy/mf6/modflow/mfgwfchd.py
+++ b/flopy/mf6/modflow/mfgwfchd.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -99,249 +99,91 @@ class ModflowGwfchd(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwf6", "chd", "options", "auxiliary"))
-    ts_filerecord = ListTemplateGenerator(
-        ("gwf6", "chd", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwf6", "chd", "options", "obs_filerecord")
-    )
-    stress_period_data = ListTemplateGenerator(
-        ("gwf6", "chd", "period", "stress_period_data")
-    )
+    auxiliary = ListTemplateGenerator(('gwf6', 'chd', 'options',
+                                       'auxiliary'))
+    ts_filerecord = ListTemplateGenerator(('gwf6', 'chd', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwf6', 'chd', 'options',
+                                            'obs_filerecord'))
+    stress_period_data = ListTemplateGenerator(('gwf6', 'chd', 'period',
+                                                'stress_period_data'))
     package_abbr = "gwfchd"
     _package_type = "chd"
     dfn_file_name = "gwf-chd.dfn"
 
     dfn = [
-        ["header", "multi-package", "package-type stress-package"],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxmultname",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprpak",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprflow",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ipakcb",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name dev_no_newton",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal inewton",
-        ],
-        [
-            "block dimensions",
-            "name maxbound",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name stress_period_data",
-            "type recarray cellid head aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-            "mf6internal spd",
-        ],
-        [
-            "block period",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name head",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-            "time_series true",
-            "mf6internal auxvar",
-        ],
-        [
-            "block period",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+           ["header", 
+            "multi-package", 
+            "package-type stress-package"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name auxmultname", "type string", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true", "mf6internal iprpak"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal iprflow"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal ipakcb"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name dev_no_newton", "type keyword",
+            "reader urword", "optional true", "mf6internal inewton"],
+           ["block dimensions", "name maxbound", "type integer",
+            "reader urword", "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name stress_period_data",
+            "type recarray cellid head aux boundname", "shape (maxbound)",
+            "reader urword", "mf6internal spd"],
+           ["block period", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block period", "name head", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "optional true", "time_series true", "mf6internal auxvar"],
+           ["block period", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        auxiliary=None,
-        auxmultname=None,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        timeseries=None,
-        observations=None,
-        dev_no_newton=None,
-        maxbound=None,
-        stress_period_data=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "chd", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, auxiliary=None,
+                 auxmultname=None, boundnames=None, print_input=None,
+                 print_flows=None, save_flows=None, timeseries=None,
+                 observations=None, dev_no_newton=None, maxbound=None,
+                 stress_period_data=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "chd", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
@@ -350,17 +192,18 @@ def __init__(
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.dev_no_newton = self.build_mfdata("dev_no_newton", dev_no_newton)
         self.maxbound = self.build_mfdata("maxbound", maxbound)
-        self.stress_period_data = self.build_mfdata(
-            "stress_period_data", stress_period_data
-        )
+        self.stress_period_data = self.build_mfdata("stress_period_data",
+                                                    stress_period_data)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfcsub.py b/flopy/mf6/modflow/mfgwfcsub.py
index 9e95d50a9a..a09b7c0798 100644
--- a/flopy/mf6/modflow/mfgwfcsub.py
+++ b/flopy/mf6/modflow/mfgwfcsub.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -264,772 +264,271 @@ class ModflowGwfcsub(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    strainib_filerecord = ListTemplateGenerator(
-        ("gwf6", "csub", "options", "strainib_filerecord")
-    )
-    straincg_filerecord = ListTemplateGenerator(
-        ("gwf6", "csub", "options", "straincg_filerecord")
-    )
-    compaction_filerecord = ListTemplateGenerator(
-        ("gwf6", "csub", "options", "compaction_filerecord")
-    )
-    compaction_elastic_filerecord = ListTemplateGenerator(
-        ("gwf6", "csub", "options", "compaction_elastic_filerecord")
-    )
-    compaction_inelastic_filerecord = ListTemplateGenerator(
-        ("gwf6", "csub", "options", "compaction_inelastic_filerecord")
-    )
-    compaction_interbed_filerecord = ListTemplateGenerator(
-        ("gwf6", "csub", "options", "compaction_interbed_filerecord")
-    )
-    compaction_coarse_filerecord = ListTemplateGenerator(
-        ("gwf6", "csub", "options", "compaction_coarse_filerecord")
-    )
-    zdisplacement_filerecord = ListTemplateGenerator(
-        ("gwf6", "csub", "options", "zdisplacement_filerecord")
-    )
-    package_convergence_filerecord = ListTemplateGenerator(
-        ("gwf6", "csub", "options", "package_convergence_filerecord")
-    )
-    ts_filerecord = ListTemplateGenerator(
-        ("gwf6", "csub", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwf6", "csub", "options", "obs_filerecord")
-    )
-    cg_ske_cr = ArrayTemplateGenerator(
-        ("gwf6", "csub", "griddata", "cg_ske_cr")
-    )
-    cg_theta = ArrayTemplateGenerator(("gwf6", "csub", "griddata", "cg_theta"))
-    sgm = ArrayTemplateGenerator(("gwf6", "csub", "griddata", "sgm"))
-    sgs = ArrayTemplateGenerator(("gwf6", "csub", "griddata", "sgs"))
-    packagedata = ListTemplateGenerator(
-        ("gwf6", "csub", "packagedata", "packagedata")
-    )
-    stress_period_data = ListTemplateGenerator(
-        ("gwf6", "csub", "period", "stress_period_data")
-    )
+    strainib_filerecord = ListTemplateGenerator(('gwf6', 'csub',
+                                                 'options',
+                                                 'strainib_filerecord'))
+    straincg_filerecord = ListTemplateGenerator(('gwf6', 'csub',
+                                                 'options',
+                                                 'straincg_filerecord'))
+    compaction_filerecord = ListTemplateGenerator(('gwf6', 'csub',
+                                                   'options',
+                                                   'compaction_filerecord'))
+    compaction_elastic_filerecord = ListTemplateGenerator((
+        'gwf6', 'csub', 'options', 'compaction_elastic_filerecord'))
+    compaction_inelastic_filerecord = ListTemplateGenerator((
+        'gwf6', 'csub', 'options', 'compaction_inelastic_filerecord'))
+    compaction_interbed_filerecord = ListTemplateGenerator((
+        'gwf6', 'csub', 'options', 'compaction_interbed_filerecord'))
+    compaction_coarse_filerecord = ListTemplateGenerator((
+        'gwf6', 'csub', 'options', 'compaction_coarse_filerecord'))
+    zdisplacement_filerecord = ListTemplateGenerator((
+        'gwf6', 'csub', 'options', 'zdisplacement_filerecord'))
+    package_convergence_filerecord = ListTemplateGenerator((
+        'gwf6', 'csub', 'options', 'package_convergence_filerecord'))
+    ts_filerecord = ListTemplateGenerator(('gwf6', 'csub', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwf6', 'csub', 'options',
+                                            'obs_filerecord'))
+    cg_ske_cr = ArrayTemplateGenerator(('gwf6', 'csub', 'griddata',
+                                        'cg_ske_cr'))
+    cg_theta = ArrayTemplateGenerator(('gwf6', 'csub', 'griddata',
+                                       'cg_theta'))
+    sgm = ArrayTemplateGenerator(('gwf6', 'csub', 'griddata', 'sgm'))
+    sgs = ArrayTemplateGenerator(('gwf6', 'csub', 'griddata', 'sgs'))
+    packagedata = ListTemplateGenerator(('gwf6', 'csub', 'packagedata',
+                                         'packagedata'))
+    stress_period_data = ListTemplateGenerator(('gwf6', 'csub', 'period',
+                                                'stress_period_data'))
     package_abbr = "gwfcsub"
     _package_type = "csub"
     dfn_file_name = "gwf-csub.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name gammaw",
-            "type double precision",
-            "reader urword",
-            "optional true",
-            "default_value 9806.65",
-        ],
-        [
-            "block options",
-            "name beta",
-            "type double precision",
-            "reader urword",
-            "optional true",
-            "default_value 4.6512e-10",
-        ],
-        [
-            "block options",
-            "name head_based",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name initial_preconsolidation_head",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name ndelaycells",
-            "type integer",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name compression_indices",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name update_material_properties",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name cell_fraction",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name specified_initial_interbed_state",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name specified_initial_preconsolidation_stress",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name specified_initial_delay_head",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name effective_stress_lag",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name strainib_filerecord",
+           ["header", ],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name gammaw", "type double precision",
+            "reader urword", "optional true", "default_value 9806.65"],
+           ["block options", "name beta", "type double precision",
+            "reader urword", "optional true", "default_value 4.6512e-10"],
+           ["block options", "name head_based", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name initial_preconsolidation_head",
+            "type keyword", "reader urword", "optional true"],
+           ["block options", "name ndelaycells", "type integer",
+            "reader urword", "optional true"],
+           ["block options", "name compression_indices", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name update_material_properties",
+            "type keyword", "reader urword", "optional true"],
+           ["block options", "name cell_fraction", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name specified_initial_interbed_state",
+            "type keyword", "reader urword", "optional true"],
+           ["block options",
+            "name specified_initial_preconsolidation_stress", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name specified_initial_delay_head",
+            "type keyword", "reader urword", "optional true"],
+           ["block options", "name effective_stress_lag", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name strainib_filerecord",
             "type record strain_csv_interbed fileout interbedstrain_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name strain_csv_interbed",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name interbedstrain_filename",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name straincg_filerecord",
+            "shape", "reader urword", "tagged true", "optional true"],
+           ["block options", "name strain_csv_interbed", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name interbedstrain_filename", "type string",
+            "shape", "in_record true", "reader urword", "tagged false",
+            "optional false"],
+           ["block options", "name straincg_filerecord",
             "type record strain_csv_coarse fileout coarsestrain_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name strain_csv_coarse",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name coarsestrain_filename",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name compaction_filerecord",
-            "type record compaction fileout compaction_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name compaction",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name compaction_filename",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name compaction_elastic_filerecord",
+            "shape", "reader urword", "tagged true", "optional true"],
+           ["block options", "name strain_csv_coarse", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name coarsestrain_filename", "type string",
+            "shape", "in_record true", "reader urword", "tagged false",
+            "optional false"],
+           ["block options", "name compaction_filerecord",
+            "type record compaction fileout compaction_filename", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name compaction", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name compaction_filename", "type string",
+            "shape", "in_record true", "reader urword", "tagged false",
+            "optional false"],
+           ["block options", "name compaction_elastic_filerecord",
             "type record compaction_elastic fileout elastic_compaction_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name compaction_elastic",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name elastic_compaction_filename",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name compaction_inelastic_filerecord",
+            "shape", "reader urword", "tagged true", "optional true"],
+           ["block options", "name compaction_elastic", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name elastic_compaction_filename",
+            "type string", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name compaction_inelastic_filerecord",
             "type record compaction_inelastic fileout "
             "inelastic_compaction_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name compaction_inelastic",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name inelastic_compaction_filename",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name compaction_interbed_filerecord",
+            "shape", "reader urword", "tagged true", "optional true"],
+           ["block options", "name compaction_inelastic", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name inelastic_compaction_filename",
+            "type string", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name compaction_interbed_filerecord",
             "type record compaction_interbed fileout "
             "interbed_compaction_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name compaction_interbed",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name interbed_compaction_filename",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name compaction_coarse_filerecord",
+            "shape", "reader urword", "tagged true", "optional true"],
+           ["block options", "name compaction_interbed", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name interbed_compaction_filename",
+            "type string", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name compaction_coarse_filerecord",
             "type record compaction_coarse fileout coarse_compaction_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name compaction_coarse",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name coarse_compaction_filename",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name zdisplacement_filerecord",
+            "shape", "reader urword", "tagged true", "optional true"],
+           ["block options", "name compaction_coarse", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name coarse_compaction_filename",
+            "type string", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name zdisplacement_filerecord",
             "type record zdisplacement fileout zdisplacement_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name zdisplacement",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name zdisplacement_filename",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name package_convergence_filerecord",
+            "shape", "reader urword", "tagged true", "optional true"],
+           ["block options", "name zdisplacement", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name zdisplacement_filename", "type string",
+            "shape", "in_record true", "reader urword", "tagged false",
+            "optional false"],
+           ["block options", "name package_convergence_filerecord",
             "type record package_convergence fileout "
             "package_convergence_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name package_convergence",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name package_convergence_filename",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name ninterbeds",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name maxsig0",
-            "type integer",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name cg_ske_cr",
-            "type double precision",
-            "shape (nodes)",
-            "valid",
-            "reader readarray",
-            "default_value 1e-5",
-        ],
-        [
-            "block griddata",
-            "name cg_theta",
-            "type double precision",
-            "shape (nodes)",
-            "valid",
-            "reader readarray",
-            "default_value 0.2",
-        ],
-        [
-            "block griddata",
-            "name sgm",
-            "type double precision",
-            "shape (nodes)",
-            "valid",
-            "reader readarray",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name sgs",
-            "type double precision",
-            "shape (nodes)",
-            "valid",
-            "reader readarray",
-            "optional true",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
+            "shape", "reader urword", "tagged true", "optional true"],
+           ["block options", "name package_convergence", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name package_convergence_filename",
+            "type string", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "in_record true", "reader urword", "optional false",
+            "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block dimensions", "name ninterbeds", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name maxsig0", "type integer",
+            "reader urword", "optional true"],
+           ["block griddata", "name cg_ske_cr", "type double precision",
+            "shape (nodes)", "valid", "reader readarray",
+            "default_value 1e-5"],
+           ["block griddata", "name cg_theta", "type double precision",
+            "shape (nodes)", "valid", "reader readarray", "default_value 0.2"],
+           ["block griddata", "name sgm", "type double precision",
+            "shape (nodes)", "valid", "reader readarray", "optional true"],
+           ["block griddata", "name sgs", "type double precision",
+            "shape (nodes)", "valid", "reader readarray", "optional true"],
+           ["block packagedata", "name packagedata",
             "type recarray icsubno cellid cdelay pcs0 thick_frac rnb ssv_cc "
             "sse_cr theta kv h0 boundname",
-            "shape (ninterbeds)",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name icsubno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name cdelay",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name pcs0",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name thick_frac",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name rnb",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name ssv_cc",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name sse_cr",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name theta",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "default_value 0.2",
-        ],
-        [
-            "block packagedata",
-            "name kv",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name h0",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name stress_period_data",
-            "type recarray cellid sig0",
-            "shape (maxsig0)",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name sig0",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-    ]
+            "shape (ninterbeds)", "reader urword"],
+           ["block packagedata", "name icsubno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block packagedata", "name cdelay", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name pcs0", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name thick_frac", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name rnb", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name ssv_cc", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name sse_cr", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name theta", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword",
+            "default_value 0.2"],
+           ["block packagedata", "name kv", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name h0", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name stress_period_data",
+            "type recarray cellid sig0", "shape (maxsig0)", "reader urword"],
+           ["block period", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block period", "name sig0", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        boundnames=None,
-        print_input=None,
-        save_flows=None,
-        gammaw=9806.65,
-        beta=4.6512e-10,
-        head_based=None,
-        initial_preconsolidation_head=None,
-        ndelaycells=None,
-        compression_indices=None,
-        update_material_properties=None,
-        cell_fraction=None,
-        specified_initial_interbed_state=None,
-        specified_initial_preconsolidation_stress=None,
-        specified_initial_delay_head=None,
-        effective_stress_lag=None,
-        strainib_filerecord=None,
-        straincg_filerecord=None,
-        compaction_filerecord=None,
-        compaction_elastic_filerecord=None,
-        compaction_inelastic_filerecord=None,
-        compaction_interbed_filerecord=None,
-        compaction_coarse_filerecord=None,
-        zdisplacement_filerecord=None,
-        package_convergence_filerecord=None,
-        timeseries=None,
-        observations=None,
-        ninterbeds=None,
-        maxsig0=None,
-        cg_ske_cr=1e-5,
-        cg_theta=0.2,
-        sgm=None,
-        sgs=None,
-        packagedata=None,
-        stress_period_data=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "csub", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, boundnames=None,
+                 print_input=None, save_flows=None, gammaw=9806.65,
+                 beta=4.6512e-10, head_based=None,
+                 initial_preconsolidation_head=None, ndelaycells=None,
+                 compression_indices=None, update_material_properties=None,
+                 cell_fraction=None, specified_initial_interbed_state=None,
+                 specified_initial_preconsolidation_stress=None,
+                 specified_initial_delay_head=None, effective_stress_lag=None,
+                 strainib_filerecord=None, straincg_filerecord=None,
+                 compaction_filerecord=None,
+                 compaction_elastic_filerecord=None,
+                 compaction_inelastic_filerecord=None,
+                 compaction_interbed_filerecord=None,
+                 compaction_coarse_filerecord=None,
+                 zdisplacement_filerecord=None,
+                 package_convergence_filerecord=None, timeseries=None,
+                 observations=None, ninterbeds=None, maxsig0=None,
+                 cg_ske_cr=1e-5, cg_theta=0.2, sgm=None, sgs=None,
+                 packagedata=None, stress_period_data=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "csub", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.boundnames = self.build_mfdata("boundnames", boundnames)
@@ -1039,65 +538,52 @@ def __init__(
         self.beta = self.build_mfdata("beta", beta)
         self.head_based = self.build_mfdata("head_based", head_based)
         self.initial_preconsolidation_head = self.build_mfdata(
-            "initial_preconsolidation_head", initial_preconsolidation_head
-        )
+            "initial_preconsolidation_head", initial_preconsolidation_head)
         self.ndelaycells = self.build_mfdata("ndelaycells", ndelaycells)
-        self.compression_indices = self.build_mfdata(
-            "compression_indices", compression_indices
-        )
+        self.compression_indices = self.build_mfdata("compression_indices",
+                                                     compression_indices)
         self.update_material_properties = self.build_mfdata(
-            "update_material_properties", update_material_properties
-        )
+            "update_material_properties", update_material_properties)
         self.cell_fraction = self.build_mfdata("cell_fraction", cell_fraction)
         self.specified_initial_interbed_state = self.build_mfdata(
             "specified_initial_interbed_state",
-            specified_initial_interbed_state,
-        )
+            specified_initial_interbed_state)
         self.specified_initial_preconsolidation_stress = self.build_mfdata(
             "specified_initial_preconsolidation_stress",
-            specified_initial_preconsolidation_stress,
-        )
+            specified_initial_preconsolidation_stress)
         self.specified_initial_delay_head = self.build_mfdata(
-            "specified_initial_delay_head", specified_initial_delay_head
-        )
-        self.effective_stress_lag = self.build_mfdata(
-            "effective_stress_lag", effective_stress_lag
-        )
-        self.strainib_filerecord = self.build_mfdata(
-            "strainib_filerecord", strainib_filerecord
-        )
-        self.straincg_filerecord = self.build_mfdata(
-            "straincg_filerecord", straincg_filerecord
-        )
-        self.compaction_filerecord = self.build_mfdata(
-            "compaction_filerecord", compaction_filerecord
-        )
+            "specified_initial_delay_head", specified_initial_delay_head)
+        self.effective_stress_lag = self.build_mfdata("effective_stress_lag",
+                                                      effective_stress_lag)
+        self.strainib_filerecord = self.build_mfdata("strainib_filerecord",
+                                                     strainib_filerecord)
+        self.straincg_filerecord = self.build_mfdata("straincg_filerecord",
+                                                     straincg_filerecord)
+        self.compaction_filerecord = self.build_mfdata("compaction_filerecord",
+                                                       compaction_filerecord)
         self.compaction_elastic_filerecord = self.build_mfdata(
-            "compaction_elastic_filerecord", compaction_elastic_filerecord
-        )
+            "compaction_elastic_filerecord", compaction_elastic_filerecord)
         self.compaction_inelastic_filerecord = self.build_mfdata(
-            "compaction_inelastic_filerecord", compaction_inelastic_filerecord
-        )
+            "compaction_inelastic_filerecord",
+            compaction_inelastic_filerecord)
         self.compaction_interbed_filerecord = self.build_mfdata(
-            "compaction_interbed_filerecord", compaction_interbed_filerecord
-        )
+            "compaction_interbed_filerecord", compaction_interbed_filerecord)
         self.compaction_coarse_filerecord = self.build_mfdata(
-            "compaction_coarse_filerecord", compaction_coarse_filerecord
-        )
+            "compaction_coarse_filerecord", compaction_coarse_filerecord)
         self.zdisplacement_filerecord = self.build_mfdata(
-            "zdisplacement_filerecord", zdisplacement_filerecord
-        )
+            "zdisplacement_filerecord", zdisplacement_filerecord)
         self.package_convergence_filerecord = self.build_mfdata(
-            "package_convergence_filerecord", package_convergence_filerecord
-        )
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+            "package_convergence_filerecord", package_convergence_filerecord)
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.ninterbeds = self.build_mfdata("ninterbeds", ninterbeds)
         self.maxsig0 = self.build_mfdata("maxsig0", maxsig0)
         self.cg_ske_cr = self.build_mfdata("cg_ske_cr", cg_ske_cr)
@@ -1105,7 +591,6 @@ def __init__(
         self.sgm = self.build_mfdata("sgm", sgm)
         self.sgs = self.build_mfdata("sgs", sgs)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
-        self.stress_period_data = self.build_mfdata(
-            "stress_period_data", stress_period_data
-        )
+        self.stress_period_data = self.build_mfdata("stress_period_data",
+                                                    stress_period_data)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfdis.py b/flopy/mf6/modflow/mfgwfdis.py
index d217e01aad..c32541e693 100644
--- a/flopy/mf6/modflow/mfgwfdis.py
+++ b/flopy/mf6/modflow/mfgwfdis.py
@@ -1,8 +1,8 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
-from ..data.mfdatautil import ArrayTemplateGenerator
+from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
 
 class ModflowGwfdis(mfpackage.MFPackage):
@@ -45,6 +45,14 @@ class ModflowGwfdis(mfpackage.MFPackage):
     export_array_ascii : boolean
         * export_array_ascii (boolean) keyword that specifies input griddata
           arrays should be written to layered ascii output files.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
+    packagedata : {varname:data} or packagedata data
+        * Contains data for the ncf package. Data can be stored in a dictionary
+          containing data for the ncf package with variable names as keys and
+          package data as values. Data just for the packagedata variable is
+          also acceptable. See ncf package documentation for more information.
     nlay : integer
         * nlay (integer) is the number of layers in the model grid.
     nrow : integer
@@ -78,160 +86,81 @@ class ModflowGwfdis(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    delr = ArrayTemplateGenerator(("gwf6", "dis", "griddata", "delr"))
-    delc = ArrayTemplateGenerator(("gwf6", "dis", "griddata", "delc"))
-    top = ArrayTemplateGenerator(("gwf6", "dis", "griddata", "top"))
-    botm = ArrayTemplateGenerator(("gwf6", "dis", "griddata", "botm"))
-    idomain = ArrayTemplateGenerator(("gwf6", "dis", "griddata", "idomain"))
+    ncf_filerecord = ListTemplateGenerator(('gwf6', 'dis', 'options',
+                                            'ncf_filerecord'))
+    delr = ArrayTemplateGenerator(('gwf6', 'dis', 'griddata', 'delr'))
+    delc = ArrayTemplateGenerator(('gwf6', 'dis', 'griddata', 'delc'))
+    top = ArrayTemplateGenerator(('gwf6', 'dis', 'griddata', 'top'))
+    botm = ArrayTemplateGenerator(('gwf6', 'dis', 'griddata', 'botm'))
+    idomain = ArrayTemplateGenerator(('gwf6', 'dis', 'griddata',
+                                      'idomain'))
     package_abbr = "gwfdis"
     _package_type = "dis"
     dfn_file_name = "gwf-dis.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name length_units",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name nogrb",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name xorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name yorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name angrot",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block dimensions",
-            "name nlay",
-            "type integer",
-            "reader urword",
-            "optional false",
-            "default_value 1",
-        ],
-        [
-            "block dimensions",
-            "name nrow",
-            "type integer",
-            "reader urword",
-            "optional false",
-            "default_value 2",
-        ],
-        [
-            "block dimensions",
-            "name ncol",
-            "type integer",
-            "reader urword",
-            "optional false",
-            "default_value 2",
-        ],
-        [
-            "block griddata",
-            "name delr",
-            "type double precision",
-            "shape (ncol)",
-            "reader readarray",
-            "default_value 1.0",
-        ],
-        [
-            "block griddata",
-            "name delc",
-            "type double precision",
-            "shape (nrow)",
-            "reader readarray",
-            "default_value 1.0",
-        ],
-        [
-            "block griddata",
-            "name top",
-            "type double precision",
-            "shape (ncol, nrow)",
-            "reader readarray",
-            "default_value 1.0",
-        ],
-        [
-            "block griddata",
-            "name botm",
-            "type double precision",
-            "shape (ncol, nrow, nlay)",
-            "reader readarray",
-            "layered true",
-            "default_value 0.",
-        ],
-        [
-            "block griddata",
-            "name idomain",
-            "type integer",
-            "shape (ncol, nrow, nlay)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name length_units", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name nogrb", "type keyword", "reader urword",
+            "optional true"],
+           ["block options", "name xorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name yorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name angrot", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc",
+            "extended true"],
+           ["block options", "name ncf_filerecord",
+            "type record ncf6 filein ncf6_filename", "reader urword",
+            "tagged true", "optional true", "construct_package ncf",
+            "construct_data packagedata", "parameter_name packagedata"],
+           ["block options", "name ncf6", "type keyword", "in_record true",
+            "reader urword", "tagged true", "optional false", "extended true"],
+           ["block options", "name filein", "type keyword",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ncf6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false", "extended true"],
+           ["block dimensions", "name nlay", "type integer",
+            "reader urword", "optional false", "default_value 1"],
+           ["block dimensions", "name nrow", "type integer",
+            "reader urword", "optional false", "default_value 2"],
+           ["block dimensions", "name ncol", "type integer",
+            "reader urword", "optional false", "default_value 2"],
+           ["block griddata", "name delr", "type double precision",
+            "shape (ncol)", "reader readarray", "netcdf true",
+            "default_value 1.0"],
+           ["block griddata", "name delc", "type double precision",
+            "shape (nrow)", "reader readarray", "netcdf true",
+            "default_value 1.0"],
+           ["block griddata", "name top", "type double precision",
+            "shape (ncol, nrow)", "reader readarray", "netcdf true",
+            "default_value 1.0"],
+           ["block griddata", "name botm", "type double precision",
+            "shape (ncol, nrow, nlay)", "reader readarray", "layered true",
+            "netcdf true", "default_value 0."],
+           ["block griddata", "name idomain", "type integer",
+            "shape (ncol, nrow, nlay)", "reader readarray", "layered true",
+            "netcdf true", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        length_units=None,
-        nogrb=None,
-        xorigin=None,
-        yorigin=None,
-        angrot=None,
-        export_array_ascii=None,
-        nlay=1,
-        nrow=2,
-        ncol=2,
-        delr=1.0,
-        delc=1.0,
-        top=1.0,
-        botm=0.0,
-        idomain=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "dis", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, length_units=None,
+                 nogrb=None, xorigin=None, yorigin=None, angrot=None,
+                 export_array_ascii=None, export_array_netcdf=None,
+                 packagedata=None, nlay=1, nrow=2, ncol=2, delr=1.0, delc=1.0,
+                 top=1.0, botm=0., idomain=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(model, "dis", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.length_units = self.build_mfdata("length_units", length_units)
@@ -239,9 +168,15 @@ def __init__(
         self.xorigin = self.build_mfdata("xorigin", xorigin)
         self.yorigin = self.build_mfdata("yorigin", yorigin)
         self.angrot = self.build_mfdata("angrot", angrot)
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
+        self._ncf_filerecord = self.build_mfdata("ncf_filerecord",
+                                                 None)
+        self._ncf_package = self.build_child_package("ncf", packagedata,
+                                                     "packagedata",
+                                                     self._ncf_filerecord)
         self.nlay = self.build_mfdata("nlay", nlay)
         self.nrow = self.build_mfdata("nrow", nrow)
         self.ncol = self.build_mfdata("ncol", ncol)
diff --git a/flopy/mf6/modflow/mfgwfdisu.py b/flopy/mf6/modflow/mfgwfdisu.py
index 94cb8b068b..0dd612364f 100644
--- a/flopy/mf6/modflow/mfgwfdisu.py
+++ b/flopy/mf6/modflow/mfgwfdisu.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -184,312 +184,118 @@ class ModflowGwfdisu(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    top = ArrayTemplateGenerator(("gwf6", "disu", "griddata", "top"))
-    bot = ArrayTemplateGenerator(("gwf6", "disu", "griddata", "bot"))
-    area = ArrayTemplateGenerator(("gwf6", "disu", "griddata", "area"))
-    idomain = ArrayTemplateGenerator(("gwf6", "disu", "griddata", "idomain"))
-    iac = ArrayTemplateGenerator(("gwf6", "disu", "connectiondata", "iac"))
-    ja = ArrayTemplateGenerator(("gwf6", "disu", "connectiondata", "ja"))
-    ihc = ArrayTemplateGenerator(("gwf6", "disu", "connectiondata", "ihc"))
-    cl12 = ArrayTemplateGenerator(("gwf6", "disu", "connectiondata", "cl12"))
-    hwva = ArrayTemplateGenerator(("gwf6", "disu", "connectiondata", "hwva"))
-    angldegx = ArrayTemplateGenerator(
-        ("gwf6", "disu", "connectiondata", "angldegx")
-    )
-    vertices = ListTemplateGenerator(("gwf6", "disu", "vertices", "vertices"))
-    cell2d = ListTemplateGenerator(("gwf6", "disu", "cell2d", "cell2d"))
+    top = ArrayTemplateGenerator(('gwf6', 'disu', 'griddata', 'top'))
+    bot = ArrayTemplateGenerator(('gwf6', 'disu', 'griddata', 'bot'))
+    area = ArrayTemplateGenerator(('gwf6', 'disu', 'griddata', 'area'))
+    idomain = ArrayTemplateGenerator(('gwf6', 'disu', 'griddata',
+                                      'idomain'))
+    iac = ArrayTemplateGenerator(('gwf6', 'disu', 'connectiondata',
+                                  'iac'))
+    ja = ArrayTemplateGenerator(('gwf6', 'disu', 'connectiondata',
+                                 'ja'))
+    ihc = ArrayTemplateGenerator(('gwf6', 'disu', 'connectiondata',
+                                  'ihc'))
+    cl12 = ArrayTemplateGenerator(('gwf6', 'disu', 'connectiondata',
+                                   'cl12'))
+    hwva = ArrayTemplateGenerator(('gwf6', 'disu', 'connectiondata',
+                                   'hwva'))
+    angldegx = ArrayTemplateGenerator(('gwf6', 'disu', 'connectiondata',
+                                       'angldegx'))
+    vertices = ListTemplateGenerator(('gwf6', 'disu', 'vertices',
+                                      'vertices'))
+    cell2d = ListTemplateGenerator(('gwf6', 'disu', 'cell2d', 'cell2d'))
     package_abbr = "gwfdisu"
     _package_type = "disu"
     dfn_file_name = "gwf-disu.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name length_units",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name nogrb",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name xorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name yorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name angrot",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name vertical_offset_tolerance",
-            "type double precision",
-            "reader urword",
-            "optional true",
-            "default_value 0.0",
-            "mf6internal voffsettol",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block dimensions",
-            "name nodes",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name nja",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name nvert",
-            "type integer",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name top",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-        ],
-        [
-            "block griddata",
-            "name bot",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-        ],
-        [
-            "block griddata",
-            "name area",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-        ],
-        [
-            "block griddata",
-            "name idomain",
-            "type integer",
-            "shape (nodes)",
-            "reader readarray",
-            "layered false",
-            "optional true",
-        ],
-        [
-            "block connectiondata",
-            "name iac",
-            "type integer",
-            "shape (nodes)",
-            "reader readarray",
-        ],
-        [
-            "block connectiondata",
-            "name ja",
-            "type integer",
-            "shape (nja)",
-            "reader readarray",
-            "numeric_index true",
-            "jagged_array iac",
-        ],
-        [
-            "block connectiondata",
-            "name ihc",
-            "type integer",
-            "shape (nja)",
-            "reader readarray",
-            "jagged_array iac",
-        ],
-        [
-            "block connectiondata",
-            "name cl12",
-            "type double precision",
-            "shape (nja)",
-            "reader readarray",
-            "jagged_array iac",
-        ],
-        [
-            "block connectiondata",
-            "name hwva",
-            "type double precision",
-            "shape (nja)",
-            "reader readarray",
-            "jagged_array iac",
-        ],
-        [
-            "block connectiondata",
-            "name angldegx",
-            "type double precision",
-            "optional true",
-            "shape (nja)",
-            "reader readarray",
-            "jagged_array iac",
-        ],
-        [
-            "block vertices",
-            "name vertices",
-            "type recarray iv xv yv",
-            "shape (nvert)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block vertices",
-            "name iv",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block vertices",
-            "name xv",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block vertices",
-            "name yv",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name cell2d",
-            "type recarray icell2d xc yc ncvert icvert",
-            "shape (nodes)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block cell2d",
-            "name icell2d",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block cell2d",
-            "name xc",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name yc",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name ncvert",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name icvert",
-            "type integer",
-            "shape (ncvert)",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name length_units", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name nogrb", "type keyword", "reader urword",
+            "optional true"],
+           ["block options", "name xorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name yorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name angrot", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name vertical_offset_tolerance",
+            "type double precision", "reader urword", "optional true",
+            "default_value 0.0", "mf6internal voffsettol"],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block dimensions", "name nodes", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name nja", "type integer", "reader urword",
+            "optional false"],
+           ["block dimensions", "name nvert", "type integer",
+            "reader urword", "optional true"],
+           ["block griddata", "name top", "type double precision",
+            "shape (nodes)", "reader readarray"],
+           ["block griddata", "name bot", "type double precision",
+            "shape (nodes)", "reader readarray"],
+           ["block griddata", "name area", "type double precision",
+            "shape (nodes)", "reader readarray"],
+           ["block griddata", "name idomain", "type integer",
+            "shape (nodes)", "reader readarray", "layered false",
+            "optional true"],
+           ["block connectiondata", "name iac", "type integer",
+            "shape (nodes)", "reader readarray"],
+           ["block connectiondata", "name ja", "type integer",
+            "shape (nja)", "reader readarray", "numeric_index true",
+            "jagged_array iac"],
+           ["block connectiondata", "name ihc", "type integer",
+            "shape (nja)", "reader readarray", "jagged_array iac"],
+           ["block connectiondata", "name cl12", "type double precision",
+            "shape (nja)", "reader readarray", "jagged_array iac"],
+           ["block connectiondata", "name hwva", "type double precision",
+            "shape (nja)", "reader readarray", "jagged_array iac"],
+           ["block connectiondata", "name angldegx",
+            "type double precision", "optional true", "shape (nja)",
+            "reader readarray", "jagged_array iac"],
+           ["block vertices", "name vertices", "type recarray iv xv yv",
+            "shape (nvert)", "reader urword", "optional true"],
+           ["block vertices", "name iv", "type integer", "in_record true",
+            "tagged false", "reader urword", "optional false",
+            "numeric_index true"],
+           ["block vertices", "name xv", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block vertices", "name yv", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name cell2d",
+            "type recarray icell2d xc yc ncvert icvert", "shape (nodes)",
+            "reader urword", "optional true"],
+           ["block cell2d", "name icell2d", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"],
+           ["block cell2d", "name xc", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name yc", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name ncvert", "type integer", "in_record true",
+            "tagged false", "reader urword", "optional false"],
+           ["block cell2d", "name icvert", "type integer", "shape (ncvert)",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        length_units=None,
-        nogrb=None,
-        xorigin=None,
-        yorigin=None,
-        angrot=None,
-        vertical_offset_tolerance=0.0,
-        export_array_ascii=None,
-        nodes=None,
-        nja=None,
-        nvert=None,
-        top=None,
-        bot=None,
-        area=None,
-        idomain=None,
-        iac=None,
-        ja=None,
-        ihc=None,
-        cl12=None,
-        hwva=None,
-        angldegx=None,
-        vertices=None,
-        cell2d=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "disu", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, length_units=None,
+                 nogrb=None, xorigin=None, yorigin=None, angrot=None,
+                 vertical_offset_tolerance=0.0, export_array_ascii=None,
+                 nodes=None, nja=None, nvert=None, top=None, bot=None,
+                 area=None, idomain=None, iac=None, ja=None, ihc=None,
+                 cl12=None, hwva=None, angldegx=None, vertices=None,
+                 cell2d=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "disu", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.length_units = self.build_mfdata("length_units", length_units)
@@ -498,11 +304,9 @@ def __init__(
         self.yorigin = self.build_mfdata("yorigin", yorigin)
         self.angrot = self.build_mfdata("angrot", angrot)
         self.vertical_offset_tolerance = self.build_mfdata(
-            "vertical_offset_tolerance", vertical_offset_tolerance
-        )
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+            "vertical_offset_tolerance", vertical_offset_tolerance)
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
         self.nodes = self.build_mfdata("nodes", nodes)
         self.nja = self.build_mfdata("nja", nja)
         self.nvert = self.build_mfdata("nvert", nvert)
diff --git a/flopy/mf6/modflow/mfgwfdisv.py b/flopy/mf6/modflow/mfgwfdisv.py
index 50acb39177..759a2339b7 100644
--- a/flopy/mf6/modflow/mfgwfdisv.py
+++ b/flopy/mf6/modflow/mfgwfdisv.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -48,6 +48,14 @@ class ModflowGwfdisv(mfpackage.MFPackage):
     export_array_ascii : boolean
         * export_array_ascii (boolean) keyword that specifies input griddata
           arrays should be written to layered ascii output files.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
+    packagedata : {varname:data} or packagedata data
+        * Contains data for the ncf package. Data can be stored in a dictionary
+          containing data for the ncf package with variable names as keys and
+          package data as values. Data just for the packagedata variable is
+          also acceptable. See ncf package documentation for more information.
     nlay : integer
         * nlay (integer) is the number of layers in the model grid.
     ncpl : integer
@@ -106,231 +114,103 @@ class ModflowGwfdisv(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    top = ArrayTemplateGenerator(("gwf6", "disv", "griddata", "top"))
-    botm = ArrayTemplateGenerator(("gwf6", "disv", "griddata", "botm"))
-    idomain = ArrayTemplateGenerator(("gwf6", "disv", "griddata", "idomain"))
-    vertices = ListTemplateGenerator(("gwf6", "disv", "vertices", "vertices"))
-    cell2d = ListTemplateGenerator(("gwf6", "disv", "cell2d", "cell2d"))
+    ncf_filerecord = ListTemplateGenerator(('gwf6', 'disv', 'options',
+                                            'ncf_filerecord'))
+    top = ArrayTemplateGenerator(('gwf6', 'disv', 'griddata', 'top'))
+    botm = ArrayTemplateGenerator(('gwf6', 'disv', 'griddata', 'botm'))
+    idomain = ArrayTemplateGenerator(('gwf6', 'disv', 'griddata',
+                                      'idomain'))
+    vertices = ListTemplateGenerator(('gwf6', 'disv', 'vertices',
+                                      'vertices'))
+    cell2d = ListTemplateGenerator(('gwf6', 'disv', 'cell2d', 'cell2d'))
     package_abbr = "gwfdisv"
     _package_type = "disv"
     dfn_file_name = "gwf-disv.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name length_units",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name nogrb",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name xorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name yorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name angrot",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block dimensions",
-            "name nlay",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name ncpl",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name nvert",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block griddata",
-            "name top",
-            "type double precision",
-            "shape (ncpl)",
-            "reader readarray",
-        ],
-        [
-            "block griddata",
-            "name botm",
-            "type double precision",
-            "shape (ncpl, nlay)",
-            "reader readarray",
-            "layered true",
-        ],
-        [
-            "block griddata",
-            "name idomain",
-            "type integer",
-            "shape (ncpl, nlay)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block vertices",
-            "name vertices",
-            "type recarray iv xv yv",
-            "shape (nvert)",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block vertices",
-            "name iv",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block vertices",
-            "name xv",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block vertices",
-            "name yv",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name cell2d",
-            "type recarray icell2d xc yc ncvert icvert",
-            "shape (ncpl)",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name icell2d",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block cell2d",
-            "name xc",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name yc",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name ncvert",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name icvert",
-            "type integer",
-            "shape (ncvert)",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name length_units", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name nogrb", "type keyword", "reader urword",
+            "optional true"],
+           ["block options", "name xorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name yorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name angrot", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc",
+            "extended true"],
+           ["block options", "name ncf_filerecord",
+            "type record ncf6 filein ncf6_filename", "reader urword",
+            "tagged true", "optional true", "construct_package ncf",
+            "construct_data packagedata", "parameter_name packagedata"],
+           ["block options", "name ncf6", "type keyword", "in_record true",
+            "reader urword", "tagged true", "optional false", "extended true"],
+           ["block options", "name filein", "type keyword",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ncf6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false", "extended true"],
+           ["block dimensions", "name nlay", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name ncpl", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name nvert", "type integer",
+            "reader urword", "optional false"],
+           ["block griddata", "name top", "type double precision",
+            "shape (ncpl)", "reader readarray", "netcdf true"],
+           ["block griddata", "name botm", "type double precision",
+            "shape (ncpl, nlay)", "reader readarray", "layered true",
+            "netcdf true"],
+           ["block griddata", "name idomain", "type integer",
+            "shape (ncpl, nlay)", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block vertices", "name vertices", "type recarray iv xv yv",
+            "shape (nvert)", "reader urword", "optional false"],
+           ["block vertices", "name iv", "type integer", "in_record true",
+            "tagged false", "reader urword", "optional false",
+            "numeric_index true"],
+           ["block vertices", "name xv", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block vertices", "name yv", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name cell2d",
+            "type recarray icell2d xc yc ncvert icvert", "shape (ncpl)",
+            "reader urword", "optional false"],
+           ["block cell2d", "name icell2d", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"],
+           ["block cell2d", "name xc", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name yc", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name ncvert", "type integer", "in_record true",
+            "tagged false", "reader urword", "optional false"],
+           ["block cell2d", "name icvert", "type integer", "shape (ncvert)",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        length_units=None,
-        nogrb=None,
-        xorigin=None,
-        yorigin=None,
-        angrot=None,
-        export_array_ascii=None,
-        nlay=None,
-        ncpl=None,
-        nvert=None,
-        top=None,
-        botm=None,
-        idomain=None,
-        vertices=None,
-        cell2d=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "disv", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, length_units=None,
+                 nogrb=None, xorigin=None, yorigin=None, angrot=None,
+                 export_array_ascii=None, export_array_netcdf=None,
+                 packagedata=None, nlay=None, ncpl=None, nvert=None, top=None,
+                 botm=None, idomain=None, vertices=None, cell2d=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "disv", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.length_units = self.build_mfdata("length_units", length_units)
@@ -338,9 +218,15 @@ def __init__(
         self.xorigin = self.build_mfdata("xorigin", xorigin)
         self.yorigin = self.build_mfdata("yorigin", yorigin)
         self.angrot = self.build_mfdata("angrot", angrot)
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
+        self._ncf_filerecord = self.build_mfdata("ncf_filerecord",
+                                                 None)
+        self._ncf_package = self.build_child_package("ncf", packagedata,
+                                                     "packagedata",
+                                                     self._ncf_filerecord)
         self.nlay = self.build_mfdata("nlay", nlay)
         self.ncpl = self.build_mfdata("ncpl", ncpl)
         self.nvert = self.build_mfdata("nvert", nvert)
diff --git a/flopy/mf6/modflow/mfgwfdrn.py b/flopy/mf6/modflow/mfgwfdrn.py
index 5403082e1e..e99b0e9fb1 100644
--- a/flopy/mf6/modflow/mfgwfdrn.py
+++ b/flopy/mf6/modflow/mfgwfdrn.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -123,277 +123,99 @@ class ModflowGwfdrn(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwf6", "drn", "options", "auxiliary"))
-    ts_filerecord = ListTemplateGenerator(
-        ("gwf6", "drn", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwf6", "drn", "options", "obs_filerecord")
-    )
-    stress_period_data = ListTemplateGenerator(
-        ("gwf6", "drn", "period", "stress_period_data")
-    )
+    auxiliary = ListTemplateGenerator(('gwf6', 'drn', 'options',
+                                       'auxiliary'))
+    ts_filerecord = ListTemplateGenerator(('gwf6', 'drn', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwf6', 'drn', 'options',
+                                            'obs_filerecord'))
+    stress_period_data = ListTemplateGenerator(('gwf6', 'drn', 'period',
+                                                'stress_period_data'))
     package_abbr = "gwfdrn"
     _package_type = "drn"
     dfn_file_name = "gwf-drn.dfn"
 
     dfn = [
-        ["header", "multi-package", "package-type stress-package"],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxmultname",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxdepthname",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprpak",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprflow",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ipakcb",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mover",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name dev_cubic_scaling",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal icubicsfac",
-        ],
-        [
-            "block dimensions",
-            "name maxbound",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name stress_period_data",
+           ["header", 
+            "multi-package", 
+            "package-type stress-package"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name auxmultname", "type string", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name auxdepthname", "type string", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true", "mf6internal iprpak"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal iprflow"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal ipakcb"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name mover", "type keyword", "tagged true",
+            "reader urword", "optional true"],
+           ["block options", "name dev_cubic_scaling", "type keyword",
+            "reader urword", "optional true", "mf6internal icubicsfac"],
+           ["block dimensions", "name maxbound", "type integer",
+            "reader urword", "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name stress_period_data",
             "type recarray cellid elev cond aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-            "mf6internal spd",
-        ],
-        [
-            "block period",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name elev",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name cond",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-            "time_series true",
-            "mf6internal auxvar",
-        ],
-        [
-            "block period",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+            "shape (maxbound)", "reader urword", "mf6internal spd"],
+           ["block period", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block period", "name elev", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name cond", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "optional true", "time_series true", "mf6internal auxvar"],
+           ["block period", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        auxiliary=None,
-        auxmultname=None,
-        auxdepthname=None,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        timeseries=None,
-        observations=None,
-        mover=None,
-        dev_cubic_scaling=None,
-        maxbound=None,
-        stress_period_data=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "drn", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, auxiliary=None,
+                 auxmultname=None, auxdepthname=None, boundnames=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 timeseries=None, observations=None, mover=None,
+                 dev_cubic_scaling=None, maxbound=None,
+                 stress_period_data=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "drn", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
@@ -403,20 +225,20 @@ def __init__(
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.mover = self.build_mfdata("mover", mover)
-        self.dev_cubic_scaling = self.build_mfdata(
-            "dev_cubic_scaling", dev_cubic_scaling
-        )
+        self.dev_cubic_scaling = self.build_mfdata("dev_cubic_scaling",
+                                                   dev_cubic_scaling)
         self.maxbound = self.build_mfdata("maxbound", maxbound)
-        self.stress_period_data = self.build_mfdata(
-            "stress_period_data", stress_period_data
-        )
+        self.stress_period_data = self.build_mfdata("stress_period_data",
+                                                    stress_period_data)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfevt.py b/flopy/mf6/modflow/mfgwfevt.py
index 7c975b997c..7adc133bb5 100644
--- a/flopy/mf6/modflow/mfgwfevt.py
+++ b/flopy/mf6/modflow/mfgwfevt.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -140,320 +140,112 @@ class ModflowGwfevt(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwf6", "evt", "options", "auxiliary"))
-    ts_filerecord = ListTemplateGenerator(
-        ("gwf6", "evt", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwf6", "evt", "options", "obs_filerecord")
-    )
-    stress_period_data = ListTemplateGenerator(
-        ("gwf6", "evt", "period", "stress_period_data")
-    )
+    auxiliary = ListTemplateGenerator(('gwf6', 'evt', 'options',
+                                       'auxiliary'))
+    ts_filerecord = ListTemplateGenerator(('gwf6', 'evt', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwf6', 'evt', 'options',
+                                            'obs_filerecord'))
+    stress_period_data = ListTemplateGenerator(('gwf6', 'evt', 'period',
+                                                'stress_period_data'))
     package_abbr = "gwfevt"
     _package_type = "evt"
     dfn_file_name = "gwf-evt.dfn"
 
     dfn = [
-        ["header", "multi-package", "package-type stress-package"],
-        [
-            "block options",
-            "name fixed_cell",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxmultname",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprpak",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprflow",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ipakcb",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name surf_rate_specified",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal surfratespec",
-        ],
-        [
-            "block dimensions",
-            "name maxbound",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name nseg",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name stress_period_data",
+           ["header", 
+            "multi-package", 
+            "package-type stress-package"],
+           ["block options", "name fixed_cell", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name auxmultname", "type string", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true", "mf6internal iprpak"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal iprflow"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal ipakcb"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name surf_rate_specified", "type keyword",
+            "reader urword", "optional true", "mf6internal surfratespec"],
+           ["block dimensions", "name maxbound", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name nseg", "type integer",
+            "reader urword", "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name stress_period_data",
             "type recarray cellid surface rate depth pxdp petm petm0 aux "
             "boundname",
-            "shape (maxbound)",
-            "reader urword",
-            "mf6internal spd",
-        ],
-        [
-            "block period",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name surface",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name rate",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name depth",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name pxdp",
-            "type double precision",
-            "shape (nseg-1)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name petm",
-            "type double precision",
-            "shape (nseg-1)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name petm0",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-            "time_series true",
-            "mf6internal auxvar",
-        ],
-        [
-            "block period",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+            "shape (maxbound)", "reader urword", "mf6internal spd"],
+           ["block period", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block period", "name surface", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name rate", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name depth", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name pxdp", "type double precision",
+            "shape (nseg-1)", "tagged false", "in_record true",
+            "reader urword", "optional true", "time_series true"],
+           ["block period", "name petm", "type double precision",
+            "shape (nseg-1)", "tagged false", "in_record true",
+            "reader urword", "optional true", "time_series true"],
+           ["block period", "name petm0", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true", "time_series true"],
+           ["block period", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "optional true", "time_series true", "mf6internal auxvar"],
+           ["block period", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        fixed_cell=None,
-        auxiliary=None,
-        auxmultname=None,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        timeseries=None,
-        observations=None,
-        surf_rate_specified=None,
-        maxbound=None,
-        nseg=None,
-        stress_period_data=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "evt", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, fixed_cell=None,
+                 auxiliary=None, auxmultname=None, boundnames=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 timeseries=None, observations=None, surf_rate_specified=None,
+                 maxbound=None, nseg=None, stress_period_data=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "evt", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.fixed_cell = self.build_mfdata("fixed_cell", fixed_cell)
@@ -463,20 +255,20 @@ def __init__(
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
-        self.surf_rate_specified = self.build_mfdata(
-            "surf_rate_specified", surf_rate_specified
-        )
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
+        self.surf_rate_specified = self.build_mfdata("surf_rate_specified",
+                                                     surf_rate_specified)
         self.maxbound = self.build_mfdata("maxbound", maxbound)
         self.nseg = self.build_mfdata("nseg", nseg)
-        self.stress_period_data = self.build_mfdata(
-            "stress_period_data", stress_period_data
-        )
+        self.stress_period_data = self.build_mfdata("stress_period_data",
+                                                    stress_period_data)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfevta.py b/flopy/mf6/modflow/mfgwfevta.py
index a15b9f9526..c84d251b9e 100644
--- a/flopy/mf6/modflow/mfgwfevta.py
+++ b/flopy/mf6/modflow/mfgwfevta.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -69,6 +69,9 @@ class ModflowGwfevta(mfpackage.MFPackage):
           containing data for the obs package with variable names as keys and
           package data as values. Data just for the observations variable is
           also acceptable. See obs package documentation for more information.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
     ievt : [integer]
         * ievt (integer) IEVT is the layer number that defines the layer in
           each vertical column where evapotranspiration is applied. If IEVT is
@@ -99,242 +102,96 @@ class ModflowGwfevta(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwf6", "evta", "options", "auxiliary"))
-    tas_filerecord = ListTemplateGenerator(
-        ("gwf6", "evta", "options", "tas_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwf6", "evta", "options", "obs_filerecord")
-    )
-    ievt = ArrayTemplateGenerator(("gwf6", "evta", "period", "ievt"))
-    surface = ArrayTemplateGenerator(("gwf6", "evta", "period", "surface"))
-    rate = ArrayTemplateGenerator(("gwf6", "evta", "period", "rate"))
-    depth = ArrayTemplateGenerator(("gwf6", "evta", "period", "depth"))
-    aux = ArrayTemplateGenerator(("gwf6", "evta", "period", "aux"))
+    auxiliary = ListTemplateGenerator(('gwf6', 'evta', 'options',
+                                       'auxiliary'))
+    tas_filerecord = ListTemplateGenerator(('gwf6', 'evta', 'options',
+                                            'tas_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwf6', 'evta', 'options',
+                                            'obs_filerecord'))
+    ievt = ArrayTemplateGenerator(('gwf6', 'evta', 'period', 'ievt'))
+    surface = ArrayTemplateGenerator(('gwf6', 'evta', 'period',
+                                      'surface'))
+    rate = ArrayTemplateGenerator(('gwf6', 'evta', 'period', 'rate'))
+    depth = ArrayTemplateGenerator(('gwf6', 'evta', 'period', 'depth'))
+    aux = ArrayTemplateGenerator(('gwf6', 'evta', 'period', 'aux'))
     package_abbr = "gwfevta"
     _package_type = "evta"
     dfn_file_name = "gwf-evta.dfn"
 
     dfn = [
-        ["header", "multi-package", "package-type stress-package"],
-        [
-            "block options",
-            "name readasarrays",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional false",
-            "default_value True",
-        ],
-        [
-            "block options",
-            "name fixed_cell",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxmultname",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprpak",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprflow",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ipakcb",
-        ],
-        [
-            "block options",
-            "name tas_filerecord",
-            "type record tas6 filein tas6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package tas",
-            "construct_data tas_array",
-            "parameter_name timearrayseries",
-        ],
-        [
-            "block options",
-            "name tas6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name tas6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name ievt",
-            "type integer",
-            "shape (ncol*nrow; ncpl)",
-            "reader readarray",
-            "numeric_index true",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name surface",
-            "type double precision",
-            "shape (ncol*nrow; ncpl)",
-            "reader readarray",
-            "default_value 0.",
-        ],
-        [
-            "block period",
-            "name rate",
-            "type double precision",
-            "shape (ncol*nrow; ncpl)",
-            "reader readarray",
-            "time_series true",
-            "default_value 1.e-3",
-        ],
-        [
-            "block period",
-            "name depth",
-            "type double precision",
-            "shape (ncol*nrow; ncpl)",
-            "reader readarray",
-            "default_value 1.0",
-        ],
-        [
-            "block period",
-            "name aux",
-            "type double precision",
-            "shape (ncol*nrow; ncpl)",
-            "reader readarray",
-            "time_series true",
-            "mf6internal auxvar",
-        ],
-    ]
+           ["header", 
+            "multi-package", 
+            "package-type stress-package"],
+           ["block options", "name readasarrays", "type keyword", "shape",
+            "reader urword", "optional false", "default_value True"],
+           ["block options", "name fixed_cell", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name auxmultname", "type string", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true", "mf6internal iprpak"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal iprflow"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal ipakcb"],
+           ["block options", "name tas_filerecord",
+            "type record tas6 filein tas6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package tas",
+            "construct_data tas_array", "parameter_name timearrayseries"],
+           ["block options", "name tas6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name tas6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc",
+            "extended true"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name ievt", "type integer",
+            "shape (ncol*nrow; ncpl)", "reader readarray",
+            "numeric_index true", "optional true"],
+           ["block period", "name surface", "type double precision",
+            "shape (ncol*nrow; ncpl)", "reader readarray", "default_value 0."],
+           ["block period", "name rate", "type double precision",
+            "shape (ncol*nrow; ncpl)", "reader readarray", "time_series true",
+            "default_value 1.e-3"],
+           ["block period", "name depth", "type double precision",
+            "shape (ncol*nrow; ncpl)", "reader readarray",
+            "default_value 1.0"],
+           ["block period", "name aux", "type double precision",
+            "shape (ncol*nrow; ncpl)", "reader readarray", "time_series true",
+            "mf6internal auxvar"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        readasarrays=True,
-        fixed_cell=None,
-        auxiliary=None,
-        auxmultname=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        timearrayseries=None,
-        observations=None,
-        ievt=None,
-        surface=0.0,
-        rate=1.0e-3,
-        depth=1.0,
-        aux=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "evta", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, readasarrays=True,
+                 fixed_cell=None, auxiliary=None, auxmultname=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 timearrayseries=None, observations=None,
+                 export_array_netcdf=None, ievt=None, surface=0., rate=1.e-3,
+                 depth=1.0, aux=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "evta", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.readasarrays = self.build_mfdata("readasarrays", readasarrays)
@@ -344,14 +201,18 @@ def __init__(
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self._tas_filerecord = self.build_mfdata("tas_filerecord", None)
-        self._tas_package = self.build_child_package(
-            "tas", timearrayseries, "tas_array", self._tas_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+        self._tas_filerecord = self.build_mfdata("tas_filerecord",
+                                                 None)
+        self._tas_package = self.build_child_package("tas", timearrayseries,
+                                                     "tas_array",
+                                                     self._tas_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
         self.ievt = self.build_mfdata("ievt", ievt)
         self.surface = self.build_mfdata("surface", surface)
         self.rate = self.build_mfdata("rate", rate)
diff --git a/flopy/mf6/modflow/mfgwfghb.py b/flopy/mf6/modflow/mfgwfghb.py
index 8c5af93165..75769628e8 100644
--- a/flopy/mf6/modflow/mfgwfghb.py
+++ b/flopy/mf6/modflow/mfgwfghb.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -108,259 +108,94 @@ class ModflowGwfghb(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwf6", "ghb", "options", "auxiliary"))
-    ts_filerecord = ListTemplateGenerator(
-        ("gwf6", "ghb", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwf6", "ghb", "options", "obs_filerecord")
-    )
-    stress_period_data = ListTemplateGenerator(
-        ("gwf6", "ghb", "period", "stress_period_data")
-    )
+    auxiliary = ListTemplateGenerator(('gwf6', 'ghb', 'options',
+                                       'auxiliary'))
+    ts_filerecord = ListTemplateGenerator(('gwf6', 'ghb', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwf6', 'ghb', 'options',
+                                            'obs_filerecord'))
+    stress_period_data = ListTemplateGenerator(('gwf6', 'ghb', 'period',
+                                                'stress_period_data'))
     package_abbr = "gwfghb"
     _package_type = "ghb"
     dfn_file_name = "gwf-ghb.dfn"
 
     dfn = [
-        ["header", "multi-package", "package-type stress-package"],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxmultname",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprpak",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprflow",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ipakcb",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mover",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block dimensions",
-            "name maxbound",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name stress_period_data",
+           ["header", 
+            "multi-package", 
+            "package-type stress-package"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name auxmultname", "type string", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true", "mf6internal iprpak"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal iprflow"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal ipakcb"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name mover", "type keyword", "tagged true",
+            "reader urword", "optional true"],
+           ["block dimensions", "name maxbound", "type integer",
+            "reader urword", "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name stress_period_data",
             "type recarray cellid bhead cond aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-            "mf6internal spd",
-        ],
-        [
-            "block period",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name bhead",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name cond",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-            "time_series true",
-            "mf6internal auxvar",
-        ],
-        [
-            "block period",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+            "shape (maxbound)", "reader urword", "mf6internal spd"],
+           ["block period", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block period", "name bhead", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name cond", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "optional true", "time_series true", "mf6internal auxvar"],
+           ["block period", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        auxiliary=None,
-        auxmultname=None,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        timeseries=None,
-        observations=None,
-        mover=None,
-        maxbound=None,
-        stress_period_data=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "ghb", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, auxiliary=None,
+                 auxmultname=None, boundnames=None, print_input=None,
+                 print_flows=None, save_flows=None, timeseries=None,
+                 observations=None, mover=None, maxbound=None,
+                 stress_period_data=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "ghb", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
@@ -369,17 +204,18 @@ def __init__(
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.mover = self.build_mfdata("mover", mover)
         self.maxbound = self.build_mfdata("maxbound", maxbound)
-        self.stress_period_data = self.build_mfdata(
-            "stress_period_data", stress_period_data
-        )
+        self.stress_period_data = self.build_mfdata("stress_period_data",
+                                                    stress_period_data)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfgnc.py b/flopy/mf6/modflow/mfgwfgnc.py
index 7f2a16ec12..95ffc67f78 100644
--- a/flopy/mf6/modflow/mfgwfgnc.py
+++ b/flopy/mf6/modflow/mfgwfgnc.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -93,126 +93,50 @@ class ModflowGwfgnc(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    gncdata = ListTemplateGenerator(("gwf6", "gnc", "gncdata", "gncdata"))
+    gncdata = ListTemplateGenerator(('gwf6', 'gnc', 'gncdata',
+                                     'gncdata'))
     package_abbr = "gwfgnc"
     _package_type = "gnc"
     dfn_file_name = "gwf-gnc.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name explicit",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block dimensions",
-            "name numgnc",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name numalphaj",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block gncdata",
-            "name gncdata",
+           ["header", ],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name explicit", "type keyword", "tagged true",
+            "reader urword", "optional true"],
+           ["block dimensions", "name numgnc", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name numalphaj", "type integer",
+            "reader urword", "optional false"],
+           ["block gncdata", "name gncdata",
             "type recarray cellidn cellidm cellidsj alphasj",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block gncdata",
-            "name cellidn",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block gncdata",
-            "name cellidm",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block gncdata",
-            "name cellidsj",
-            "type integer",
-            "shape (numalphaj)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block gncdata",
-            "name alphasj",
-            "type double precision",
-            "shape (numalphaj)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-    ]
+            "shape (maxbound)", "reader urword"],
+           ["block gncdata", "name cellidn", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block gncdata", "name cellidm", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block gncdata", "name cellidsj", "type integer",
+            "shape (numalphaj)", "tagged false", "in_record true",
+            "reader urword", "numeric_index true"],
+           ["block gncdata", "name alphasj", "type double precision",
+            "shape (numalphaj)", "tagged false", "in_record true",
+            "reader urword"]]
 
-    def __init__(
-        self,
-        parent_model_or_package,
-        loading_package=False,
-        print_input=None,
-        print_flows=None,
-        explicit=None,
-        numgnc=None,
-        numalphaj=None,
-        gncdata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            parent_model_or_package,
-            "gnc",
-            filename,
-            pname,
-            loading_package,
-            **kwargs,
-        )
+    def __init__(self, parent_model_or_package, loading_package=False,
+                 print_input=None, print_flows=None, explicit=None,
+                 numgnc=None, numalphaj=None, gncdata=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(parent_model_or_package, "gnc", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.print_input = self.build_mfdata("print_input", print_input)
@@ -238,55 +162,24 @@ class GwfgncPackages(mfpackage.MFChildPackages):
         Adds a new ModflowGwfgnc package to the container. See ModflowGwfgnc
         init documentation for definition of parameters.
     """
-
     package_abbr = "gwfgncpackages"
 
-    def initialize(
-        self,
-        print_input=None,
-        print_flows=None,
-        explicit=None,
-        numgnc=None,
-        numalphaj=None,
-        gncdata=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowGwfgnc(
-            self._cpparent,
-            print_input=print_input,
-            print_flows=print_flows,
-            explicit=explicit,
-            numgnc=numgnc,
-            numalphaj=numalphaj,
-            gncdata=gncdata,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def initialize(self, print_input=None, print_flows=None, explicit=None,
+                   numgnc=None, numalphaj=None, gncdata=None, filename=None,
+                   pname=None):
+        new_package = ModflowGwfgnc(self._cpparent, print_input=print_input,
+                                    print_flows=print_flows, explicit=explicit,
+                                    numgnc=numgnc, numalphaj=numalphaj,
+                                    gncdata=gncdata, filename=filename,
+                                    pname=pname, child_builder_call=True)
         self.init_package(new_package, filename)
 
-    def append_package(
-        self,
-        print_input=None,
-        print_flows=None,
-        explicit=None,
-        numgnc=None,
-        numalphaj=None,
-        gncdata=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowGwfgnc(
-            self._cpparent,
-            print_input=print_input,
-            print_flows=print_flows,
-            explicit=explicit,
-            numgnc=numgnc,
-            numalphaj=numalphaj,
-            gncdata=gncdata,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def append_package(self, print_input=None, print_flows=None,
+                   explicit=None, numgnc=None, numalphaj=None, gncdata=None,
+                   filename=None, pname=None):
+        new_package = ModflowGwfgnc(self._cpparent, print_input=print_input,
+                                    print_flows=print_flows, explicit=explicit,
+                                    numgnc=numgnc, numalphaj=numalphaj,
+                                    gncdata=gncdata, filename=filename,
+                                    pname=pname, child_builder_call=True)
         self._append_package(new_package, filename)
diff --git a/flopy/mf6/modflow/mfgwfgwe.py b/flopy/mf6/modflow/mfgwfgwe.py
index 557c8d451b..de3ad3b28c 100644
--- a/flopy/mf6/modflow/mfgwfgwe.py
+++ b/flopy/mf6/modflow/mfgwfgwe.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 
 
@@ -28,7 +28,7 @@ class ModflowGwfgwe(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
@@ -38,25 +38,14 @@ class ModflowGwfgwe(mfpackage.MFPackage):
     dfn_file_name = "exg-gwfgwe.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-    ]
-
-    def __init__(
-        self,
-        simulation,
-        loading_package=False,
-        exgtype="GWF6-GWE6",
-        exgmnamea=None,
-        exgmnameb=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            simulation, "gwfgwe", filename, pname, loading_package, **kwargs
-        )
+           ["header", ],
+           ]
+
+    def __init__(self, simulation, loading_package=False, exgtype="GWF6-GWE6",
+                 exgmnamea=None, exgmnameb=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(simulation, "gwfgwe", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.exgtype = exgtype
diff --git a/flopy/mf6/modflow/mfgwfgwf.py b/flopy/mf6/modflow/mfgwfgwf.py
index f3cc9d8677..448840ce9b 100644
--- a/flopy/mf6/modflow/mfgwfgwf.py
+++ b/flopy/mf6/modflow/mfgwfgwf.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -151,354 +151,124 @@ class ModflowGwfgwf(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwfgwf", "options", "auxiliary"))
-    gnc_filerecord = ListTemplateGenerator(
-        ("gwfgwf", "options", "gnc_filerecord")
-    )
-    mvr_filerecord = ListTemplateGenerator(
-        ("gwfgwf", "options", "mvr_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwfgwf", "options", "obs_filerecord")
-    )
-    exchangedata = ListTemplateGenerator(
-        ("gwfgwf", "exchangedata", "exchangedata")
-    )
+    auxiliary = ListTemplateGenerator(('gwfgwf', 'options', 'auxiliary'))
+    gnc_filerecord = ListTemplateGenerator(('gwfgwf', 'options',
+                                            'gnc_filerecord'))
+    mvr_filerecord = ListTemplateGenerator(('gwfgwf', 'options',
+                                            'mvr_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwfgwf', 'options',
+                                            'obs_filerecord'))
+    exchangedata = ListTemplateGenerator(('gwfgwf', 'exchangedata',
+                                          'exchangedata'))
     package_abbr = "gwfgwf"
     _package_type = "gwfgwf"
     dfn_file_name = "exg-gwfgwf.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprpak",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprflow",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ipakcb",
-        ],
-        [
-            "block options",
-            "name cell_averaging",
-            "type string",
-            "valid harmonic logarithmic amt-lmk",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name cvoptions",
-            "type record variablecv dewatered",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name variablecv",
-            "in_record true",
-            "type keyword",
-            "reader urword",
-        ],
-        [
-            "block options",
-            "name dewatered",
-            "in_record true",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name newton",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name xt3d",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name gnc_filerecord",
-            "type record gnc6 filein gnc6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package gnc",
-            "construct_data gncdata",
-            "parameter_name gncdata",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name gnc6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name gnc6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mvr_filerecord",
-            "type record mvr6 filein mvr6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package mvr",
-            "construct_data perioddata",
-            "parameter_name perioddata",
-        ],
-        [
-            "block options",
-            "name mvr6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mvr6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name dev_interfacemodel_on",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal dev_ifmod_on",
-        ],
-        [
-            "block dimensions",
-            "name nexg",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name exchangedata",
+           ["header", 
+            "multi-package", ],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true", "mf6internal iprpak"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal iprflow"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal ipakcb"],
+           ["block options", "name cell_averaging", "type string",
+            "valid harmonic logarithmic amt-lmk", "reader urword",
+            "optional true"],
+           ["block options", "name cvoptions",
+            "type record variablecv dewatered", "reader urword",
+            "optional true"],
+           ["block options", "name variablecv", "in_record true",
+            "type keyword", "reader urword"],
+           ["block options", "name dewatered", "in_record true",
+            "type keyword", "reader urword", "optional true"],
+           ["block options", "name newton", "type keyword", "reader urword",
+            "optional true"],
+           ["block options", "name xt3d", "type keyword", "reader urword",
+            "optional true"],
+           ["block options", "name gnc_filerecord",
+            "type record gnc6 filein gnc6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package gnc",
+            "construct_data gncdata", "parameter_name gncdata"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name gnc6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name gnc6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name mvr_filerecord",
+            "type record mvr6 filein mvr6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package mvr",
+            "construct_data perioddata", "parameter_name perioddata"],
+           ["block options", "name mvr6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name mvr6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name dev_interfacemodel_on", "type keyword",
+            "reader urword", "optional true", "mf6internal dev_ifmod_on"],
+           ["block dimensions", "name nexg", "type integer",
+            "reader urword", "optional false"],
+           ["block exchangedata", "name exchangedata",
             "type recarray cellidm1 cellidm2 ihc cl1 cl2 hwva aux boundname",
-            "shape (nexg)",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name cellidm1",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block exchangedata",
-            "name cellidm2",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block exchangedata",
-            "name ihc",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name cl1",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name cl2",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name hwva",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-            "mf6internal auxvar",
-        ],
-        [
-            "block exchangedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+            "shape (nexg)", "reader urword", "optional false"],
+           ["block exchangedata", "name cellidm1", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"],
+           ["block exchangedata", "name cellidm2", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"],
+           ["block exchangedata", "name ihc", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block exchangedata", "name cl1", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block exchangedata", "name cl2", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block exchangedata", "name hwva", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block exchangedata", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "optional true", "mf6internal auxvar"],
+           ["block exchangedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"]]
 
-    def __init__(
-        self,
-        simulation,
-        loading_package=False,
-        exgtype="GWF6-GWF6",
-        exgmnamea=None,
-        exgmnameb=None,
-        auxiliary=None,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        cell_averaging=None,
-        cvoptions=None,
-        newton=None,
-        xt3d=None,
-        gncdata=None,
-        perioddata=None,
-        observations=None,
-        dev_interfacemodel_on=None,
-        nexg=None,
-        exchangedata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            simulation, "gwfgwf", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, simulation, loading_package=False, exgtype="GWF6-GWF6",
+                 exgmnamea=None, exgmnameb=None, auxiliary=None,
+                 boundnames=None, print_input=None, print_flows=None,
+                 save_flows=None, cell_averaging=None, cvoptions=None,
+                 newton=None, xt3d=None, gncdata=None, perioddata=None,
+                 observations=None, dev_interfacemodel_on=None, nexg=None,
+                 exchangedata=None, filename=None, pname=None, **kwargs):
+        super().__init__(simulation, "gwfgwf", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.exgtype = exgtype
@@ -514,27 +284,28 @@ def __init__(
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self.cell_averaging = self.build_mfdata(
-            "cell_averaging", cell_averaging
-        )
+        self.cell_averaging = self.build_mfdata("cell_averaging",
+                                                cell_averaging)
         self.cvoptions = self.build_mfdata("cvoptions", cvoptions)
         self.newton = self.build_mfdata("newton", newton)
         self.xt3d = self.build_mfdata("xt3d", xt3d)
-        self._gnc_filerecord = self.build_mfdata("gnc_filerecord", None)
-        self._gnc_package = self.build_child_package(
-            "gnc", gncdata, "gncdata", self._gnc_filerecord
-        )
-        self._mvr_filerecord = self.build_mfdata("mvr_filerecord", None)
-        self._mvr_package = self.build_child_package(
-            "mvr", perioddata, "perioddata", self._mvr_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
-        self.dev_interfacemodel_on = self.build_mfdata(
-            "dev_interfacemodel_on", dev_interfacemodel_on
-        )
+        self._gnc_filerecord = self.build_mfdata("gnc_filerecord",
+                                                 None)
+        self._gnc_package = self.build_child_package("gnc", gncdata,
+                                                     "gncdata",
+                                                     self._gnc_filerecord)
+        self._mvr_filerecord = self.build_mfdata("mvr_filerecord",
+                                                 None)
+        self._mvr_package = self.build_child_package("mvr", perioddata,
+                                                     "perioddata",
+                                                     self._mvr_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
+        self.dev_interfacemodel_on = self.build_mfdata("dev_interfacemodel_on",
+                                                       dev_interfacemodel_on)
         self.nexg = self.build_mfdata("nexg", nexg)
         self.exchangedata = self.build_mfdata("exchangedata", exchangedata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfgwt.py b/flopy/mf6/modflow/mfgwfgwt.py
index 0ae8b97354..ca0a295c5a 100644
--- a/flopy/mf6/modflow/mfgwfgwt.py
+++ b/flopy/mf6/modflow/mfgwfgwt.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 
 
@@ -28,7 +28,7 @@ class ModflowGwfgwt(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
@@ -38,25 +38,14 @@ class ModflowGwfgwt(mfpackage.MFPackage):
     dfn_file_name = "exg-gwfgwt.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-    ]
-
-    def __init__(
-        self,
-        simulation,
-        loading_package=False,
-        exgtype="GWF6-GWT6",
-        exgmnamea=None,
-        exgmnameb=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            simulation, "gwfgwt", filename, pname, loading_package, **kwargs
-        )
+           ["header", ],
+           ]
+
+    def __init__(self, simulation, loading_package=False, exgtype="GWF6-GWT6",
+                 exgmnamea=None, exgmnameb=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(simulation, "gwfgwt", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.exgtype = exgtype
diff --git a/flopy/mf6/modflow/mfgwfhfb.py b/flopy/mf6/modflow/mfgwfhfb.py
index ea5c894bde..cb07e766a7 100644
--- a/flopy/mf6/modflow/mfgwfhfb.py
+++ b/flopy/mf6/modflow/mfgwfhfb.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -61,103 +61,46 @@ class ModflowGwfhfb(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    stress_period_data = ListTemplateGenerator(
-        ("gwf6", "hfb", "period", "stress_period_data")
-    )
+    stress_period_data = ListTemplateGenerator(('gwf6', 'hfb', 'period',
+                                                'stress_period_data'))
     package_abbr = "gwfhfb"
     _package_type = "hfb"
     dfn_file_name = "gwf-hfb.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block dimensions",
-            "name maxhfb",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name stress_period_data",
-            "type recarray cellid1 cellid2 hydchr",
-            "shape (maxhfb)",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name cellid1",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name cellid2",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name hydchr",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block dimensions", "name maxhfb", "type integer",
+            "reader urword", "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name stress_period_data",
+            "type recarray cellid1 cellid2 hydchr", "shape (maxhfb)",
+            "reader urword"],
+           ["block period", "name cellid1", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block period", "name cellid2", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block period", "name hydchr", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        print_input=None,
-        maxhfb=None,
-        stress_period_data=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "hfb", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, print_input=None,
+                 maxhfb=None, stress_period_data=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "hfb", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.print_input = self.build_mfdata("print_input", print_input)
         self.maxhfb = self.build_mfdata("maxhfb", maxhfb)
-        self.stress_period_data = self.build_mfdata(
-            "stress_period_data", stress_period_data
-        )
+        self.stress_period_data = self.build_mfdata("stress_period_data",
+                                                    stress_period_data)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfic.py b/flopy/mf6/modflow/mfgwfic.py
index 65efa5ab86..aa130cfcac 100644
--- a/flopy/mf6/modflow/mfgwfic.py
+++ b/flopy/mf6/modflow/mfgwfic.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator
 
@@ -20,6 +20,9 @@ class ModflowGwfic(mfpackage.MFPackage):
     export_array_ascii : boolean
         * export_array_ascii (boolean) keyword that specifies input griddata
           arrays should be written to layered ascii output files.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
     strt : [double]
         * strt (double) is the initial (starting) head---that is, head at the
           beginning of the GWF Model simulation. STRT must be specified for all
@@ -37,56 +40,36 @@ class ModflowGwfic(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    strt = ArrayTemplateGenerator(("gwf6", "ic", "griddata", "strt"))
+    strt = ArrayTemplateGenerator(('gwf6', 'ic', 'griddata', 'strt'))
     package_abbr = "gwfic"
     _package_type = "ic"
     dfn_file_name = "gwf-ic.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block griddata",
-            "name strt",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "default_value 1.0",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc",
+            "extended true"],
+           ["block griddata", "name strt", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "netcdf true", "default_value 1.0"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        export_array_ascii=None,
-        strt=1.0,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "ic", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, export_array_ascii=None,
+                 export_array_netcdf=None, strt=1.0, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(model, "ic", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
         self.strt = self.build_mfdata("strt", strt)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwflak.py b/flopy/mf6/modflow/mfgwflak.py
index 06ea7e5c47..2da5caa676 100644
--- a/flopy/mf6/modflow/mfgwflak.py
+++ b/flopy/mf6/modflow/mfgwflak.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -431,871 +431,291 @@ class ModflowGwflak(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwf6", "lak", "options", "auxiliary"))
-    stage_filerecord = ListTemplateGenerator(
-        ("gwf6", "lak", "options", "stage_filerecord")
-    )
-    budget_filerecord = ListTemplateGenerator(
-        ("gwf6", "lak", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwf6", "lak", "options", "budgetcsv_filerecord")
-    )
-    package_convergence_filerecord = ListTemplateGenerator(
-        ("gwf6", "lak", "options", "package_convergence_filerecord")
-    )
-    ts_filerecord = ListTemplateGenerator(
-        ("gwf6", "lak", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwf6", "lak", "options", "obs_filerecord")
-    )
-    packagedata = ListTemplateGenerator(
-        ("gwf6", "lak", "packagedata", "packagedata")
-    )
-    connectiondata = ListTemplateGenerator(
-        ("gwf6", "lak", "connectiondata", "connectiondata")
-    )
-    tables = ListTemplateGenerator(("gwf6", "lak", "tables", "tables"))
-    outlets = ListTemplateGenerator(("gwf6", "lak", "outlets", "outlets"))
-    perioddata = ListTemplateGenerator(("gwf6", "lak", "period", "perioddata"))
+    auxiliary = ListTemplateGenerator(('gwf6', 'lak', 'options',
+                                       'auxiliary'))
+    stage_filerecord = ListTemplateGenerator(('gwf6', 'lak', 'options',
+                                              'stage_filerecord'))
+    budget_filerecord = ListTemplateGenerator(('gwf6', 'lak', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwf6', 'lak',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    package_convergence_filerecord = ListTemplateGenerator((
+        'gwf6', 'lak', 'options', 'package_convergence_filerecord'))
+    ts_filerecord = ListTemplateGenerator(('gwf6', 'lak', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwf6', 'lak', 'options',
+                                            'obs_filerecord'))
+    packagedata = ListTemplateGenerator(('gwf6', 'lak', 'packagedata',
+                                         'packagedata'))
+    connectiondata = ListTemplateGenerator(('gwf6', 'lak',
+                                            'connectiondata',
+                                            'connectiondata'))
+    tables = ListTemplateGenerator(('gwf6', 'lak', 'tables', 'tables'))
+    outlets = ListTemplateGenerator(('gwf6', 'lak', 'outlets',
+                                     'outlets'))
+    perioddata = ListTemplateGenerator(('gwf6', 'lak', 'period',
+                                        'perioddata'))
     package_abbr = "gwflak"
     _package_type = "lak"
     dfn_file_name = "gwf-lak.dfn"
 
     dfn = [
-        ["header", "multi-package", "package-type advanced-stress-package"],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_stage",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name stage_filerecord",
-            "type record stage fileout stagefile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name stage",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name stagefile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name package_convergence_filerecord",
+           ["header", 
+            "multi-package", 
+            "package-type advanced-stress-package"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_stage", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name stage_filerecord",
+            "type record stage fileout stagefile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name stage", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name stagefile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name package_convergence_filerecord",
             "type record package_convergence fileout "
             "package_convergence_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name package_convergence",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name package_convergence_filename",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mover",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name surfdep",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name maximum_iterations",
-            "type integer",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name maximum_stage_change",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name time_conversion",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name length_conversion",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block dimensions",
-            "name nlakes",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name noutlets",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name ntables",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
+            "shape", "reader urword", "tagged true", "optional true"],
+           ["block options", "name package_convergence", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name package_convergence_filename",
+            "type string", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name mover", "type keyword", "tagged true",
+            "reader urword", "optional true"],
+           ["block options", "name surfdep", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name maximum_iterations", "type integer",
+            "reader urword", "optional true"],
+           ["block options", "name maximum_stage_change",
+            "type double precision", "reader urword", "optional true"],
+           ["block options", "name time_conversion",
+            "type double precision", "reader urword", "optional true"],
+           ["block options", "name length_conversion",
+            "type double precision", "reader urword", "optional true"],
+           ["block dimensions", "name nlakes", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name noutlets", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name ntables", "type integer",
+            "reader urword", "optional false"],
+           ["block packagedata", "name packagedata",
             "type recarray ifno strt nlakeconn aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name strt",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name nlakeconn",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "time_series true",
-            "optional true",
-        ],
-        [
-            "block packagedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block connectiondata",
-            "name connectiondata",
+            "shape (maxbound)", "reader urword"],
+           ["block packagedata", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name strt", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name nlakeconn", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "time_series true", "optional true"],
+           ["block packagedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"],
+           ["block connectiondata", "name connectiondata",
             "type recarray ifno iconn cellid claktype bedleak belev telev "
             "connlen connwidth",
-            "shape (sum(nlakeconn))",
-            "reader urword",
-        ],
-        [
-            "block connectiondata",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block connectiondata",
-            "name iconn",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block connectiondata",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block connectiondata",
-            "name claktype",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block connectiondata",
-            "name bedleak",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block connectiondata",
-            "name belev",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block connectiondata",
-            "name telev",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block connectiondata",
-            "name connlen",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block connectiondata",
-            "name connwidth",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block tables",
-            "name tables",
-            "type recarray ifno tab6 filein tab6_filename",
-            "shape (ntables)",
-            "reader urword",
-        ],
-        [
-            "block tables",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block tables",
-            "name tab6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block tables",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block tables",
-            "name tab6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block outlets",
-            "name outlets",
+            "shape (sum(nlakeconn))", "reader urword"],
+           ["block connectiondata", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block connectiondata", "name iconn", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block connectiondata", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block connectiondata", "name claktype", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block connectiondata", "name bedleak", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block connectiondata", "name belev", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block connectiondata", "name telev", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block connectiondata", "name connlen", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block connectiondata", "name connwidth",
+            "type double precision", "shape", "tagged false",
+            "in_record true", "reader urword"],
+           ["block tables", "name tables",
+            "type recarray ifno tab6 filein tab6_filename", "shape (ntables)",
+            "reader urword"],
+           ["block tables", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block tables", "name tab6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block tables", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block tables", "name tab6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block outlets", "name outlets",
             "type recarray outletno lakein lakeout couttype invert width "
             "rough slope",
-            "shape (noutlets)",
-            "reader urword",
-        ],
-        [
-            "block outlets",
-            "name outletno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block outlets",
-            "name lakein",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block outlets",
-            "name lakeout",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block outlets",
-            "name couttype",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block outlets",
-            "name invert",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block outlets",
-            "name width",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block outlets",
-            "name rough",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block outlets",
-            "name slope",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name perioddata",
-            "type recarray number laksetting",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name number",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name laksetting",
+            "shape (noutlets)", "reader urword"],
+           ["block outlets", "name outletno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block outlets", "name lakein", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block outlets", "name lakeout", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block outlets", "name couttype", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block outlets", "name invert", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block outlets", "name width", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block outlets", "name rough", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block outlets", "name slope", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name perioddata",
+            "type recarray number laksetting", "shape", "reader urword"],
+           ["block period", "name number", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name laksetting",
             "type keystring status stage rainfall evaporation runoff inflow "
             "withdrawal rate invert width slope rough auxiliaryrecord",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name status",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name stage",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "time_series true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name rainfall",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name evaporation",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name runoff",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name inflow",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name withdrawal",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name rate",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name invert",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name rough",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name width",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name slope",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name auxiliaryrecord",
-            "type record auxiliary auxname auxval",
-            "shape",
-            "tagged",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxiliary",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxval",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-    ]
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name status", "type string", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name stage", "type string", "shape",
+            "tagged true", "in_record true", "time_series true",
+            "reader urword"],
+           ["block period", "name rainfall", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name evaporation", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name runoff", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name inflow", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name withdrawal", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name rate", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name invert", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name rough", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name width", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name slope", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name auxiliaryrecord",
+            "type record auxiliary auxname auxval", "shape", "tagged",
+            "in_record true", "reader urword"],
+           ["block period", "name auxiliary", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name auxname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name auxval", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        auxiliary=None,
-        boundnames=None,
-        print_input=None,
-        print_stage=None,
-        print_flows=None,
-        save_flows=None,
-        stage_filerecord=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        package_convergence_filerecord=None,
-        timeseries=None,
-        observations=None,
-        mover=None,
-        surfdep=None,
-        maximum_iterations=None,
-        maximum_stage_change=None,
-        time_conversion=None,
-        length_conversion=None,
-        nlakes=None,
-        noutlets=None,
-        ntables=None,
-        packagedata=None,
-        connectiondata=None,
-        tables=None,
-        outlets=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "lak", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, auxiliary=None,
+                 boundnames=None, print_input=None, print_stage=None,
+                 print_flows=None, save_flows=None, stage_filerecord=None,
+                 budget_filerecord=None, budgetcsv_filerecord=None,
+                 package_convergence_filerecord=None, timeseries=None,
+                 observations=None, mover=None, surfdep=None,
+                 maximum_iterations=None, maximum_stage_change=None,
+                 time_conversion=None, length_conversion=None, nlakes=None,
+                 noutlets=None, ntables=None, packagedata=None,
+                 connectiondata=None, tables=None, outlets=None,
+                 perioddata=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "lak", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
@@ -1304,47 +724,40 @@ def __init__(
         self.print_stage = self.build_mfdata("print_stage", print_stage)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self.stage_filerecord = self.build_mfdata(
-            "stage_filerecord", stage_filerecord
-        )
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
+        self.stage_filerecord = self.build_mfdata("stage_filerecord",
+                                                  stage_filerecord)
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
         self.package_convergence_filerecord = self.build_mfdata(
-            "package_convergence_filerecord", package_convergence_filerecord
-        )
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+            "package_convergence_filerecord", package_convergence_filerecord)
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.mover = self.build_mfdata("mover", mover)
         self.surfdep = self.build_mfdata("surfdep", surfdep)
-        self.maximum_iterations = self.build_mfdata(
-            "maximum_iterations", maximum_iterations
-        )
-        self.maximum_stage_change = self.build_mfdata(
-            "maximum_stage_change", maximum_stage_change
-        )
-        self.time_conversion = self.build_mfdata(
-            "time_conversion", time_conversion
-        )
-        self.length_conversion = self.build_mfdata(
-            "length_conversion", length_conversion
-        )
+        self.maximum_iterations = self.build_mfdata("maximum_iterations",
+                                                    maximum_iterations)
+        self.maximum_stage_change = self.build_mfdata("maximum_stage_change",
+                                                      maximum_stage_change)
+        self.time_conversion = self.build_mfdata("time_conversion",
+                                                 time_conversion)
+        self.length_conversion = self.build_mfdata("length_conversion",
+                                                   length_conversion)
         self.nlakes = self.build_mfdata("nlakes", nlakes)
         self.noutlets = self.build_mfdata("noutlets", noutlets)
         self.ntables = self.build_mfdata("ntables", ntables)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
-        self.connectiondata = self.build_mfdata(
-            "connectiondata", connectiondata
-        )
+        self.connectiondata = self.build_mfdata("connectiondata",
+                                                connectiondata)
         self.tables = self.build_mfdata("tables", tables)
         self.outlets = self.build_mfdata("outlets", outlets)
         self.perioddata = self.build_mfdata("perioddata", perioddata)
diff --git a/flopy/mf6/modflow/mfgwfmaw.py b/flopy/mf6/modflow/mfgwfmaw.py
index b0fd0fe125..b8c87089b6 100644
--- a/flopy/mf6/modflow/mfgwfmaw.py
+++ b/flopy/mf6/modflow/mfgwfmaw.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -173,7 +173,7 @@ class ModflowGwfmaw(mfpackage.MFPackage):
           the Multi-Node Well (MNW2) package for MODFLOW-2005. The program will
           terminate with an error condition if CONDEQN is SKIN or CUMULATIVE
           and the calculated saturated conductance is less than zero; if an
-          error condition occurs, it is suggested that the THEIM or MEAN
+          error condition occurs, it is suggested that the THIEM or MEAN
           conductance equations be used for these multi-aquifer wells.
         * ngwfnodes (integer) integer value that defines the number of GWF
           nodes connected to this (IFNO) multi-aquifer well. NGWFNODES must be
@@ -252,7 +252,7 @@ class ModflowGwfmaw(mfpackage.MFPackage):
           thicknesses) must be greater than one in node CELLID or the program
           will terminate with an error condition; if an error condition occurs,
           it is suggested that the HK_SKIN be reduced to a value less than K11
-          and K22 in node CELLID or the THEIM or MEAN conductance equations be
+          and K22 in node CELLID or the THIEM or MEAN conductance equations be
           used for these multi-aquifer wells.
         * radius_skin (double) real value that defines the skin radius (filter
           pack radius) for the multi-aquifer well. RADIUS_SKIN can be any value
@@ -359,759 +359,249 @@ class ModflowGwfmaw(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwf6", "maw", "options", "auxiliary"))
-    head_filerecord = ListTemplateGenerator(
-        ("gwf6", "maw", "options", "head_filerecord")
-    )
-    budget_filerecord = ListTemplateGenerator(
-        ("gwf6", "maw", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwf6", "maw", "options", "budgetcsv_filerecord")
-    )
-    mfrcsv_filerecord = ListTemplateGenerator(
-        ("gwf6", "maw", "options", "mfrcsv_filerecord")
-    )
-    ts_filerecord = ListTemplateGenerator(
-        ("gwf6", "maw", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwf6", "maw", "options", "obs_filerecord")
-    )
-    packagedata = ListTemplateGenerator(
-        ("gwf6", "maw", "packagedata", "packagedata")
-    )
-    connectiondata = ListTemplateGenerator(
-        ("gwf6", "maw", "connectiondata", "connectiondata")
-    )
-    perioddata = ListTemplateGenerator(("gwf6", "maw", "period", "perioddata"))
+    auxiliary = ListTemplateGenerator(('gwf6', 'maw', 'options',
+                                       'auxiliary'))
+    head_filerecord = ListTemplateGenerator(('gwf6', 'maw', 'options',
+                                             'head_filerecord'))
+    budget_filerecord = ListTemplateGenerator(('gwf6', 'maw', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwf6', 'maw',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    mfrcsv_filerecord = ListTemplateGenerator(('gwf6', 'maw', 'options',
+                                               'mfrcsv_filerecord'))
+    ts_filerecord = ListTemplateGenerator(('gwf6', 'maw', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwf6', 'maw', 'options',
+                                            'obs_filerecord'))
+    packagedata = ListTemplateGenerator(('gwf6', 'maw', 'packagedata',
+                                         'packagedata'))
+    connectiondata = ListTemplateGenerator(('gwf6', 'maw',
+                                            'connectiondata',
+                                            'connectiondata'))
+    perioddata = ListTemplateGenerator(('gwf6', 'maw', 'period',
+                                        'perioddata'))
     package_abbr = "gwfmaw"
     _package_type = "maw"
     dfn_file_name = "gwf-maw.dfn"
 
     dfn = [
-        ["header", "multi-package", "package-type advanced-stress-package"],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_head",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name head_filerecord",
-            "type record head fileout headfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name head",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name headfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name no_well_storage",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name flow_correction",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name flowing_wells",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name shutdown_theta",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name shutdown_kappa",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name mfrcsv_filerecord",
-            "type record maw_flow_reduce_csv fileout mfrcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name maw_flow_reduce_csv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mfrcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mover",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block dimensions",
-            "name nmawwells",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
+           ["header", 
+            "multi-package", 
+            "package-type advanced-stress-package"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_head", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name head_filerecord",
+            "type record head fileout headfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name head", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name headfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name no_well_storage", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name flow_correction", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name flowing_wells", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name shutdown_theta", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name shutdown_kappa", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name mfrcsv_filerecord",
+            "type record maw_flow_reduce_csv fileout mfrcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name maw_flow_reduce_csv", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name mfrcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name mover", "type keyword", "tagged true",
+            "reader urword", "optional true"],
+           ["block dimensions", "name nmawwells", "type integer",
+            "reader urword", "optional false"],
+           ["block packagedata", "name packagedata",
             "type recarray ifno radius bottom strt condeqn ngwfnodes aux "
             "boundname",
-            "shape (nmawwells)",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name radius",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name bottom",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name strt",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name condeqn",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name ngwfnodes",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "time_series true",
-            "optional true",
-        ],
-        [
-            "block packagedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block connectiondata",
-            "name connectiondata",
+            "shape (nmawwells)", "reader urword"],
+           ["block packagedata", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name radius", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name bottom", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name strt", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name condeqn", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name ngwfnodes", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "time_series true", "optional true"],
+           ["block packagedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"],
+           ["block connectiondata", "name connectiondata",
             "type recarray ifno icon cellid scrn_top scrn_bot hk_skin "
             "radius_skin",
-            "reader urword",
-        ],
-        [
-            "block connectiondata",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block connectiondata",
-            "name icon",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block connectiondata",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block connectiondata",
-            "name scrn_top",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block connectiondata",
-            "name scrn_bot",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block connectiondata",
-            "name hk_skin",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block connectiondata",
-            "name radius_skin",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name perioddata",
-            "type recarray ifno mawsetting",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name mawsetting",
+            "reader urword"],
+           ["block connectiondata", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block connectiondata", "name icon", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block connectiondata", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block connectiondata", "name scrn_top",
+            "type double precision", "shape", "tagged false",
+            "in_record true", "reader urword"],
+           ["block connectiondata", "name scrn_bot",
+            "type double precision", "shape", "tagged false",
+            "in_record true", "reader urword"],
+           ["block connectiondata", "name hk_skin", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block connectiondata", "name radius_skin",
+            "type double precision", "shape", "tagged false",
+            "in_record true", "reader urword"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name perioddata",
+            "type recarray ifno mawsetting", "shape", "reader urword"],
+           ["block period", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name mawsetting",
             "type keystring status flowing_wellrecord rate well_head "
             "head_limit shutoffrecord rate_scalingrecord auxiliaryrecord",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name status",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name flowing_wellrecord",
-            "type record flowing_well fwelev fwcond fwrlen",
-            "shape",
-            "tagged",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name flowing_well",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name fwelev",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name fwcond",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name fwrlen",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name rate",
-            "type double precision",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name well_head",
-            "type double precision",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name head_limit",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name shutoffrecord",
-            "type record shut_off minrate maxrate",
-            "shape",
-            "tagged",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name shut_off",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name minrate",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name maxrate",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name rate_scalingrecord",
-            "type record rate_scaling pump_elevation scaling_length",
-            "shape",
-            "tagged",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name rate_scaling",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name pump_elevation",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name scaling_length",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxiliaryrecord",
-            "type record auxiliary auxname auxval",
-            "shape",
-            "tagged",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxiliary",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxval",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-    ]
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name status", "type string", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name flowing_wellrecord",
+            "type record flowing_well fwelev fwcond fwrlen", "shape",
+            "tagged", "in_record true", "reader urword"],
+           ["block period", "name flowing_well", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name fwelev", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name fwcond", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name fwrlen", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name rate", "type double precision", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name well_head", "type double precision",
+            "shape", "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name head_limit", "type string", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name shutoffrecord",
+            "type record shut_off minrate maxrate", "shape", "tagged",
+            "in_record true", "reader urword"],
+           ["block period", "name shut_off", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name minrate", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name maxrate", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name rate_scalingrecord",
+            "type record rate_scaling pump_elevation scaling_length", "shape",
+            "tagged", "in_record true", "reader urword"],
+           ["block period", "name rate_scaling", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name pump_elevation", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name scaling_length", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name auxiliaryrecord",
+            "type record auxiliary auxname auxval", "shape", "tagged",
+            "in_record true", "reader urword"],
+           ["block period", "name auxiliary", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name auxname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name auxval", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        auxiliary=None,
-        boundnames=None,
-        print_input=None,
-        print_head=None,
-        print_flows=None,
-        save_flows=None,
-        head_filerecord=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        no_well_storage=None,
-        flow_correction=None,
-        flowing_wells=None,
-        shutdown_theta=None,
-        shutdown_kappa=None,
-        mfrcsv_filerecord=None,
-        timeseries=None,
-        observations=None,
-        mover=None,
-        nmawwells=None,
-        packagedata=None,
-        connectiondata=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "maw", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, auxiliary=None,
+                 boundnames=None, print_input=None, print_head=None,
+                 print_flows=None, save_flows=None, head_filerecord=None,
+                 budget_filerecord=None, budgetcsv_filerecord=None,
+                 no_well_storage=None, flow_correction=None,
+                 flowing_wells=None, shutdown_theta=None, shutdown_kappa=None,
+                 mfrcsv_filerecord=None, timeseries=None, observations=None,
+                 mover=None, nmawwells=None, packagedata=None,
+                 connectiondata=None, perioddata=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "maw", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
@@ -1120,44 +610,37 @@ def __init__(
         self.print_head = self.build_mfdata("print_head", print_head)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self.head_filerecord = self.build_mfdata(
-            "head_filerecord", head_filerecord
-        )
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
-        self.no_well_storage = self.build_mfdata(
-            "no_well_storage", no_well_storage
-        )
-        self.flow_correction = self.build_mfdata(
-            "flow_correction", flow_correction
-        )
+        self.head_filerecord = self.build_mfdata("head_filerecord",
+                                                 head_filerecord)
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
+        self.no_well_storage = self.build_mfdata("no_well_storage",
+                                                 no_well_storage)
+        self.flow_correction = self.build_mfdata("flow_correction",
+                                                 flow_correction)
         self.flowing_wells = self.build_mfdata("flowing_wells", flowing_wells)
-        self.shutdown_theta = self.build_mfdata(
-            "shutdown_theta", shutdown_theta
-        )
-        self.shutdown_kappa = self.build_mfdata(
-            "shutdown_kappa", shutdown_kappa
-        )
-        self.mfrcsv_filerecord = self.build_mfdata(
-            "mfrcsv_filerecord", mfrcsv_filerecord
-        )
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+        self.shutdown_theta = self.build_mfdata("shutdown_theta",
+                                                shutdown_theta)
+        self.shutdown_kappa = self.build_mfdata("shutdown_kappa",
+                                                shutdown_kappa)
+        self.mfrcsv_filerecord = self.build_mfdata("mfrcsv_filerecord",
+                                                   mfrcsv_filerecord)
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.mover = self.build_mfdata("mover", mover)
         self.nmawwells = self.build_mfdata("nmawwells", nmawwells)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
-        self.connectiondata = self.build_mfdata(
-            "connectiondata", connectiondata
-        )
+        self.connectiondata = self.build_mfdata("connectiondata",
+                                                connectiondata)
         self.perioddata = self.build_mfdata("perioddata", perioddata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfmvr.py b/flopy/mf6/modflow/mfgwfmvr.py
index 1423f652a4..caa452b9c3 100644
--- a/flopy/mf6/modflow/mfgwfmvr.py
+++ b/flopy/mf6/modflow/mfgwfmvr.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -107,293 +107,103 @@ class ModflowGwfmvr(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    budget_filerecord = ListTemplateGenerator(
-        ("gwf6", "mvr", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwf6", "mvr", "options", "budgetcsv_filerecord")
-    )
-    packages = ListTemplateGenerator(("gwf6", "mvr", "packages", "packages"))
-    perioddata = ListTemplateGenerator(("gwf6", "mvr", "period", "perioddata"))
+    budget_filerecord = ListTemplateGenerator(('gwf6', 'mvr', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwf6', 'mvr',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    packages = ListTemplateGenerator(('gwf6', 'mvr', 'packages',
+                                      'packages'))
+    perioddata = ListTemplateGenerator(('gwf6', 'mvr', 'period',
+                                        'perioddata'))
     package_abbr = "gwfmvr"
     _package_type = "mvr"
     dfn_file_name = "gwf-mvr.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name modelnames",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name maxmvr",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name maxpackages",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packages",
-            "name packages",
-            "type recarray mname pname",
-            "reader urword",
-            "shape (npackages)",
-            "optional false",
-        ],
-        [
-            "block packages",
-            "name mname",
-            "type string",
-            "reader urword",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "optional true",
-        ],
-        [
-            "block packages",
-            "name pname",
-            "type string",
-            "reader urword",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name perioddata",
+           ["header", ],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name modelnames", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block dimensions", "name maxmvr", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name maxpackages", "type integer",
+            "reader urword", "optional false"],
+           ["block packages", "name packages", "type recarray mname pname",
+            "reader urword", "shape (npackages)", "optional false"],
+           ["block packages", "name mname", "type string", "reader urword",
+            "shape", "tagged false", "in_record true", "optional true"],
+           ["block packages", "name pname", "type string", "reader urword",
+            "shape", "tagged false", "in_record true", "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name perioddata",
             "type recarray mname1 pname1 id1 mname2 pname2 id2 mvrtype value",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name mname1",
-            "type string",
-            "reader urword",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name pname1",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name id1",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name mname2",
-            "type string",
-            "reader urword",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name pname2",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name id2",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name mvrtype",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name value",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-    ]
+            "shape (maxbound)", "reader urword"],
+           ["block period", "name mname1", "type string", "reader urword",
+            "shape", "tagged false", "in_record true", "optional true"],
+           ["block period", "name pname1", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name id1", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name mname2", "type string", "reader urword",
+            "shape", "tagged false", "in_record true", "optional true"],
+           ["block period", "name pname2", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name id2", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name mvrtype", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name value", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword"]]
 
-    def __init__(
-        self,
-        parent_model_or_package,
-        loading_package=False,
-        print_input=None,
-        print_flows=None,
-        modelnames=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        maxmvr=None,
-        maxpackages=None,
-        packages=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            parent_model_or_package,
-            "mvr",
-            filename,
-            pname,
-            loading_package,
-            **kwargs,
-        )
+    def __init__(self, parent_model_or_package, loading_package=False,
+                 print_input=None, print_flows=None, modelnames=None,
+                 budget_filerecord=None, budgetcsv_filerecord=None,
+                 maxmvr=None, maxpackages=None, packages=None, perioddata=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(parent_model_or_package, "mvr", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.modelnames = self.build_mfdata("modelnames", modelnames)
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
         self.maxmvr = self.build_mfdata("maxmvr", maxmvr)
         self.maxpackages = self.build_mfdata("maxpackages", maxpackages)
         self.packages = self.build_mfdata("packages", packages)
@@ -415,67 +225,34 @@ class GwfmvrPackages(mfpackage.MFChildPackages):
         Adds a new ModflowGwfmvr package to the container. See ModflowGwfmvr
         init documentation for definition of parameters.
     """
-
     package_abbr = "gwfmvrpackages"
 
-    def initialize(
-        self,
-        print_input=None,
-        print_flows=None,
-        modelnames=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        maxmvr=None,
-        maxpackages=None,
-        packages=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowGwfmvr(
-            self._cpparent,
-            print_input=print_input,
-            print_flows=print_flows,
-            modelnames=modelnames,
-            budget_filerecord=budget_filerecord,
-            budgetcsv_filerecord=budgetcsv_filerecord,
-            maxmvr=maxmvr,
-            maxpackages=maxpackages,
-            packages=packages,
-            perioddata=perioddata,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def initialize(self, print_input=None, print_flows=None, modelnames=None,
+                   budget_filerecord=None, budgetcsv_filerecord=None,
+                   maxmvr=None, maxpackages=None, packages=None,
+                   perioddata=None, filename=None, pname=None):
+        new_package = ModflowGwfmvr(self._cpparent, print_input=print_input,
+                                    print_flows=print_flows,
+                                    modelnames=modelnames,
+                                    budget_filerecord=budget_filerecord,
+                                    budgetcsv_filerecord=budgetcsv_filerecord,
+                                    maxmvr=maxmvr, maxpackages=maxpackages,
+                                    packages=packages, perioddata=perioddata,
+                                    filename=filename, pname=pname,
+                                    child_builder_call=True)
         self.init_package(new_package, filename)
 
-    def append_package(
-        self,
-        print_input=None,
-        print_flows=None,
-        modelnames=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        maxmvr=None,
-        maxpackages=None,
-        packages=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowGwfmvr(
-            self._cpparent,
-            print_input=print_input,
-            print_flows=print_flows,
-            modelnames=modelnames,
-            budget_filerecord=budget_filerecord,
-            budgetcsv_filerecord=budgetcsv_filerecord,
-            maxmvr=maxmvr,
-            maxpackages=maxpackages,
-            packages=packages,
-            perioddata=perioddata,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def append_package(self, print_input=None, print_flows=None,
+                   modelnames=None, budget_filerecord=None,
+                   budgetcsv_filerecord=None, maxmvr=None, maxpackages=None,
+                   packages=None, perioddata=None, filename=None, pname=None):
+        new_package = ModflowGwfmvr(self._cpparent, print_input=print_input,
+                                    print_flows=print_flows,
+                                    modelnames=modelnames,
+                                    budget_filerecord=budget_filerecord,
+                                    budgetcsv_filerecord=budgetcsv_filerecord,
+                                    maxmvr=maxmvr, maxpackages=maxpackages,
+                                    packages=packages, perioddata=perioddata,
+                                    filename=filename, pname=pname,
+                                    child_builder_call=True)
         self._append_package(new_package, filename)
diff --git a/flopy/mf6/modflow/mfgwfnam.py b/flopy/mf6/modflow/mfgwfnam.py
index ffbca4bebd..adde245d8d 100644
--- a/flopy/mf6/modflow/mfgwfnam.py
+++ b/flopy/mf6/modflow/mfgwfnam.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -43,6 +43,13 @@ class ModflowGwfnam(mfpackage.MFPackage):
           groundwater head in a cell will be under-relaxed when water levels
           fall below the bottom of the model below any given cell. By default,
           Newton-Raphson UNDER_RELAXATION is not applied.
+    nc_mesh2d_filerecord : [ncmesh2dfile]
+        * ncmesh2dfile (string) name of the netcdf ugrid layered mesh output
+          file.
+    nc_structured_filerecord : [ncstructfile]
+        * ncstructfile (string) name of the netcdf structured output file.
+    nc_filerecord : [netcdf_filename]
+        * netcdf_filename (string) defines a netcdf input file.
     packages : [ftype, fname, pname]
         * ftype (string) is the file type, which must be one of the following
           character values shown in table ref{table:ftype-gwf}. Ftype may be
@@ -65,123 +72,93 @@ class ModflowGwfnam(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    packages = ListTemplateGenerator(("gwf6", "nam", "packages", "packages"))
+    nc_mesh2d_filerecord = ListTemplateGenerator(('gwf6', 'nam',
+                                                  'options',
+                                                  'nc_mesh2d_filerecord'))
+    nc_structured_filerecord = ListTemplateGenerator((
+        'gwf6', 'nam', 'options', 'nc_structured_filerecord'))
+    nc_filerecord = ListTemplateGenerator(('gwf6', 'nam', 'options',
+                                           'nc_filerecord'))
+    packages = ListTemplateGenerator(('gwf6', 'nam', 'packages',
+                                      'packages'))
     package_abbr = "gwfnam"
     _package_type = "nam"
     dfn_file_name = "gwf-nam.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name list",
-            "type string",
-            "reader urword",
-            "optional true",
-            "preserve_case true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name newtonoptions",
-            "type record newton under_relaxation",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name newton",
-            "in_record true",
-            "type keyword",
-            "reader urword",
-        ],
-        [
-            "block options",
-            "name under_relaxation",
-            "in_record true",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block packages",
-            "name packages",
-            "type recarray ftype fname pname",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packages",
-            "name ftype",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block packages",
-            "name fname",
-            "in_record true",
-            "type string",
-            "preserve_case true",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block packages",
-            "name pname",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name list", "type string", "reader urword",
+            "optional true", "preserve_case true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name newtonoptions",
+            "type record newton under_relaxation", "reader urword",
+            "optional true"],
+           ["block options", "name newton", "in_record true",
+            "type keyword", "reader urword"],
+           ["block options", "name under_relaxation", "in_record true",
+            "type keyword", "reader urword", "optional true"],
+           ["block options", "name nc_mesh2d_filerecord",
+            "type record netcdf_mesh2d fileout ncmesh2dfile", "shape",
+            "reader urword", "tagged true", "optional true",
+            "mf6internal ncmesh2drec"],
+           ["block options", "name netcdf_mesh2d", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false", "extended true"],
+           ["block options", "name nc_structured_filerecord",
+            "type record netcdf_structured fileout ncstructfile", "shape",
+            "reader urword", "tagged true", "optional true",
+            "mf6internal ncstructrec"],
+           ["block options", "name netcdf_structured", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false", "mf6internal netcdf_struct", "extended true"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ncmesh2dfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false", "extended true"],
+           ["block options", "name ncstructfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false", "extended true"],
+           ["block options", "name nc_filerecord",
+            "type record netcdf filein netcdf_filename", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name netcdf", "type keyword",
+            "in_record true", "reader urword", "tagged true",
+            "optional false", "extended true"],
+           ["block options", "name filein", "type keyword",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name netcdf_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false", "mf6internal netcdf_fname",
+            "extended true"],
+           ["block packages", "name packages",
+            "type recarray ftype fname pname", "reader urword",
+            "optional false"],
+           ["block packages", "name ftype", "in_record true", "type string",
+            "tagged false", "reader urword"],
+           ["block packages", "name fname", "in_record true", "type string",
+            "preserve_case true", "tagged false", "reader urword"],
+           ["block packages", "name pname", "in_record true", "type string",
+            "tagged false", "reader urword", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        list=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        newtonoptions=None,
-        packages=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "nam", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, list=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 newtonoptions=None, nc_mesh2d_filerecord=None,
+                 nc_structured_filerecord=None, nc_filerecord=None,
+                 packages=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "nam", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.list = self.build_mfdata("list", list)
@@ -189,5 +166,10 @@ def __init__(
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
         self.newtonoptions = self.build_mfdata("newtonoptions", newtonoptions)
+        self.nc_mesh2d_filerecord = self.build_mfdata("nc_mesh2d_filerecord",
+                                                      nc_mesh2d_filerecord)
+        self.nc_structured_filerecord = self.build_mfdata(
+            "nc_structured_filerecord", nc_structured_filerecord)
+        self.nc_filerecord = self.build_mfdata("nc_filerecord", nc_filerecord)
         self.packages = self.build_mfdata("packages", packages)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfnpf.py b/flopy/mf6/modflow/mfgwfnpf.py
index ad3798a871..e7d0e98865 100644
--- a/flopy/mf6/modflow/mfgwfnpf.py
+++ b/flopy/mf6/modflow/mfgwfnpf.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -111,6 +111,9 @@ class ModflowGwfnpf(mfpackage.MFPackage):
     export_array_ascii : boolean
         * export_array_ascii (boolean) keyword that specifies input griddata
           arrays should be written to layered ascii output files.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
     dev_no_newton : boolean
         * dev_no_newton (boolean) turn off Newton for unconfined cells
     dev_omega : double
@@ -215,408 +218,162 @@ class ModflowGwfnpf(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    rewet_record = ListTemplateGenerator(
-        ("gwf6", "npf", "options", "rewet_record")
-    )
-    tvk_filerecord = ListTemplateGenerator(
-        ("gwf6", "npf", "options", "tvk_filerecord")
-    )
-    icelltype = ArrayTemplateGenerator(
-        ("gwf6", "npf", "griddata", "icelltype")
-    )
-    k = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "k"))
-    k22 = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "k22"))
-    k33 = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "k33"))
-    angle1 = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "angle1"))
-    angle2 = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "angle2"))
-    angle3 = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "angle3"))
-    wetdry = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "wetdry"))
+    rewet_record = ListTemplateGenerator(('gwf6', 'npf', 'options',
+                                          'rewet_record'))
+    tvk_filerecord = ListTemplateGenerator(('gwf6', 'npf', 'options',
+                                            'tvk_filerecord'))
+    icelltype = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata',
+                                        'icelltype'))
+    k = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', 'k'))
+    k22 = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', 'k22'))
+    k33 = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', 'k33'))
+    angle1 = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata',
+                                     'angle1'))
+    angle2 = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata',
+                                     'angle2'))
+    angle3 = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata',
+                                     'angle3'))
+    wetdry = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata',
+                                     'wetdry'))
     package_abbr = "gwfnpf"
     _package_type = "npf"
     dfn_file_name = "gwf-npf.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ipakcb",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprflow",
-        ],
-        [
-            "block options",
-            "name alternative_cell_averaging",
-            "type string",
-            "valid logarithmic amt-lmk amt-hmk",
-            "reader urword",
-            "optional true",
-            "mf6internal cellavg",
-        ],
-        [
-            "block options",
-            "name thickstrt",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ithickstrt",
-        ],
-        [
-            "block options",
-            "name cvoptions",
-            "type record variablecv dewatered",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name variablecv",
-            "in_record true",
-            "type keyword",
-            "reader urword",
-            "mf6internal ivarcv",
-        ],
-        [
-            "block options",
-            "name dewatered",
-            "in_record true",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal idewatcv",
-        ],
-        [
-            "block options",
-            "name perched",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iperched",
-        ],
-        [
-            "block options",
-            "name rewet_record",
-            "type record rewet wetfct iwetit ihdwet",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name rewet",
-            "type keyword",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "mf6internal irewet",
-        ],
-        [
-            "block options",
-            "name wetfct",
-            "type double precision",
-            "in_record true",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name iwetit",
-            "type integer",
-            "in_record true",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ihdwet",
-            "type integer",
-            "in_record true",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name xt3doptions",
-            "type record xt3d rhs",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name xt3d",
-            "in_record true",
-            "type keyword",
-            "reader urword",
-            "mf6internal ixt3d",
-        ],
-        [
-            "block options",
-            "name rhs",
-            "in_record true",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ixt3drhs",
-        ],
-        [
-            "block options",
-            "name save_specific_discharge",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal isavspdis",
-        ],
-        [
-            "block options",
-            "name save_saturation",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal isavsat",
-        ],
-        [
-            "block options",
-            "name k22overk",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ik22overk",
-        ],
-        [
-            "block options",
-            "name k33overk",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ik33overk",
-        ],
-        [
-            "block options",
-            "name tvk_filerecord",
-            "type record tvk6 filein tvk6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package tvk",
-            "construct_data tvk_perioddata",
-            "parameter_name perioddata",
-        ],
-        [
-            "block options",
-            "name tvk6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name tvk6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block options",
-            "name dev_no_newton",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal inewton",
-        ],
-        [
-            "block options",
-            "name dev_omega",
-            "type double precision",
-            "reader urword",
-            "optional true",
-            "mf6internal satomega",
-        ],
-        [
-            "block griddata",
-            "name icelltype",
-            "type integer",
-            "shape (nodes)",
-            "valid",
-            "reader readarray",
-            "layered true",
-            "optional",
-            "default_value 0",
-        ],
-        [
-            "block griddata",
-            "name k",
-            "type double precision",
-            "shape (nodes)",
-            "valid",
-            "reader readarray",
-            "layered true",
-            "optional",
-            "default_value 1.0",
-        ],
-        [
-            "block griddata",
-            "name k22",
-            "type double precision",
-            "shape (nodes)",
-            "valid",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name k33",
-            "type double precision",
-            "shape (nodes)",
-            "valid",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name angle1",
-            "type double precision",
-            "shape (nodes)",
-            "valid",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name angle2",
-            "type double precision",
-            "shape (nodes)",
-            "valid",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name angle3",
-            "type double precision",
-            "shape (nodes)",
-            "valid",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name wetdry",
-            "type double precision",
-            "shape (nodes)",
-            "valid",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal ipakcb"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal iprflow"],
+           ["block options", "name alternative_cell_averaging",
+            "type string", "valid logarithmic amt-lmk amt-hmk",
+            "reader urword", "optional true", "mf6internal cellavg"],
+           ["block options", "name thickstrt", "type keyword",
+            "reader urword", "optional true", "mf6internal ithickstrt"],
+           ["block options", "name cvoptions",
+            "type record variablecv dewatered", "reader urword",
+            "optional true"],
+           ["block options", "name variablecv", "in_record true",
+            "type keyword", "reader urword", "mf6internal ivarcv"],
+           ["block options", "name dewatered", "in_record true",
+            "type keyword", "reader urword", "optional true",
+            "mf6internal idewatcv"],
+           ["block options", "name perched", "type keyword",
+            "reader urword", "optional true", "mf6internal iperched"],
+           ["block options", "name rewet_record",
+            "type record rewet wetfct iwetit ihdwet", "reader urword",
+            "optional true"],
+           ["block options", "name rewet", "type keyword", "in_record true",
+            "reader urword", "optional false", "mf6internal irewet"],
+           ["block options", "name wetfct", "type double precision",
+            "in_record true", "reader urword", "optional false"],
+           ["block options", "name iwetit", "type integer",
+            "in_record true", "reader urword", "optional false"],
+           ["block options", "name ihdwet", "type integer",
+            "in_record true", "reader urword", "optional false"],
+           ["block options", "name xt3doptions", "type record xt3d rhs",
+            "reader urword", "optional true"],
+           ["block options", "name xt3d", "in_record true", "type keyword",
+            "reader urword", "mf6internal ixt3d"],
+           ["block options", "name rhs", "in_record true", "type keyword",
+            "reader urword", "optional true", "mf6internal ixt3drhs"],
+           ["block options", "name save_specific_discharge", "type keyword",
+            "reader urword", "optional true", "mf6internal isavspdis"],
+           ["block options", "name save_saturation", "type keyword",
+            "reader urword", "optional true", "mf6internal isavsat"],
+           ["block options", "name k22overk", "type keyword",
+            "reader urword", "optional true", "mf6internal ik22overk"],
+           ["block options", "name k33overk", "type keyword",
+            "reader urword", "optional true", "mf6internal ik33overk"],
+           ["block options", "name tvk_filerecord",
+            "type record tvk6 filein tvk6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package tvk",
+            "construct_data tvk_perioddata", "parameter_name perioddata"],
+           ["block options", "name tvk6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name tvk6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc",
+            "extended true"],
+           ["block options", "name dev_no_newton", "type keyword",
+            "reader urword", "optional true", "mf6internal inewton"],
+           ["block options", "name dev_omega", "type double precision",
+            "reader urword", "optional true", "mf6internal satomega"],
+           ["block griddata", "name icelltype", "type integer",
+            "shape (nodes)", "valid", "reader readarray", "layered true",
+            "netcdf true", "optional", "default_value 0"],
+           ["block griddata", "name k", "type double precision",
+            "shape (nodes)", "valid", "reader readarray", "layered true",
+            "netcdf true", "optional", "default_value 1.0"],
+           ["block griddata", "name k22", "type double precision",
+            "shape (nodes)", "valid", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block griddata", "name k33", "type double precision",
+            "shape (nodes)", "valid", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block griddata", "name angle1", "type double precision",
+            "shape (nodes)", "valid", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block griddata", "name angle2", "type double precision",
+            "shape (nodes)", "valid", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block griddata", "name angle3", "type double precision",
+            "shape (nodes)", "valid", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block griddata", "name wetdry", "type double precision",
+            "shape (nodes)", "valid", "reader readarray", "layered true",
+            "netcdf true", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        save_flows=None,
-        print_flows=None,
-        alternative_cell_averaging=None,
-        thickstrt=None,
-        cvoptions=None,
-        perched=None,
-        rewet_record=None,
-        xt3doptions=None,
-        save_specific_discharge=None,
-        save_saturation=None,
-        k22overk=None,
-        k33overk=None,
-        perioddata=None,
-        export_array_ascii=None,
-        dev_no_newton=None,
-        dev_omega=None,
-        icelltype=0,
-        k=1.0,
-        k22=None,
-        k33=None,
-        angle1=None,
-        angle2=None,
-        angle3=None,
-        wetdry=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "npf", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, save_flows=None,
+                 print_flows=None, alternative_cell_averaging=None,
+                 thickstrt=None, cvoptions=None, perched=None,
+                 rewet_record=None, xt3doptions=None,
+                 save_specific_discharge=None, save_saturation=None,
+                 k22overk=None, k33overk=None, perioddata=None,
+                 export_array_ascii=None, export_array_netcdf=None,
+                 dev_no_newton=None, dev_omega=None, icelltype=0, k=1.0,
+                 k22=None, k33=None, angle1=None, angle2=None, angle3=None,
+                 wetdry=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "npf", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.save_flows = self.build_mfdata("save_flows", save_flows)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.alternative_cell_averaging = self.build_mfdata(
-            "alternative_cell_averaging", alternative_cell_averaging
-        )
+            "alternative_cell_averaging", alternative_cell_averaging)
         self.thickstrt = self.build_mfdata("thickstrt", thickstrt)
         self.cvoptions = self.build_mfdata("cvoptions", cvoptions)
         self.perched = self.build_mfdata("perched", perched)
         self.rewet_record = self.build_mfdata("rewet_record", rewet_record)
         self.xt3doptions = self.build_mfdata("xt3doptions", xt3doptions)
         self.save_specific_discharge = self.build_mfdata(
-            "save_specific_discharge", save_specific_discharge
-        )
-        self.save_saturation = self.build_mfdata(
-            "save_saturation", save_saturation
-        )
+            "save_specific_discharge", save_specific_discharge)
+        self.save_saturation = self.build_mfdata("save_saturation",
+                                                 save_saturation)
         self.k22overk = self.build_mfdata("k22overk", k22overk)
         self.k33overk = self.build_mfdata("k33overk", k33overk)
-        self._tvk_filerecord = self.build_mfdata("tvk_filerecord", None)
-        self._tvk_package = self.build_child_package(
-            "tvk", perioddata, "tvk_perioddata", self._tvk_filerecord
-        )
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+        self._tvk_filerecord = self.build_mfdata("tvk_filerecord",
+                                                 None)
+        self._tvk_package = self.build_child_package("tvk", perioddata,
+                                                     "tvk_perioddata",
+                                                     self._tvk_filerecord)
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
         self.dev_no_newton = self.build_mfdata("dev_no_newton", dev_no_newton)
         self.dev_omega = self.build_mfdata("dev_omega", dev_omega)
         self.icelltype = self.build_mfdata("icelltype", icelltype)
diff --git a/flopy/mf6/modflow/mfgwfoc.py b/flopy/mf6/modflow/mfgwfoc.py
index 906c319ad6..5ef9218f33 100644
--- a/flopy/mf6/modflow/mfgwfoc.py
+++ b/flopy/mf6/modflow/mfgwfoc.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -86,347 +86,125 @@ class ModflowGwfoc(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    budget_filerecord = ListTemplateGenerator(
-        ("gwf6", "oc", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwf6", "oc", "options", "budgetcsv_filerecord")
-    )
-    head_filerecord = ListTemplateGenerator(
-        ("gwf6", "oc", "options", "head_filerecord")
-    )
-    headprintrecord = ListTemplateGenerator(
-        ("gwf6", "oc", "options", "headprintrecord")
-    )
-    saverecord = ListTemplateGenerator(("gwf6", "oc", "period", "saverecord"))
-    printrecord = ListTemplateGenerator(
-        ("gwf6", "oc", "period", "printrecord")
-    )
+    budget_filerecord = ListTemplateGenerator(('gwf6', 'oc', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwf6', 'oc',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    head_filerecord = ListTemplateGenerator(('gwf6', 'oc', 'options',
+                                             'head_filerecord'))
+    headprintrecord = ListTemplateGenerator(('gwf6', 'oc', 'options',
+                                             'headprintrecord'))
+    saverecord = ListTemplateGenerator(('gwf6', 'oc', 'period',
+                                        'saverecord'))
+    printrecord = ListTemplateGenerator(('gwf6', 'oc', 'period',
+                                         'printrecord'))
     package_abbr = "gwfoc"
     _package_type = "oc"
     dfn_file_name = "gwf-oc.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name head_filerecord",
-            "type record head fileout headfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name head",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name headfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name headprintrecord",
-            "type record head print_format formatrecord",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_format",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name formatrecord",
-            "type record columns width digits format",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name columns",
-            "type integer",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional",
-        ],
-        [
-            "block options",
-            "name width",
-            "type integer",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional",
-        ],
-        [
-            "block options",
-            "name digits",
-            "type integer",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional",
-        ],
-        [
-            "block options",
-            "name format",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name saverecord",
-            "type record save rtype ocsetting",
-            "shape",
-            "reader urword",
-            "tagged false",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name save",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name printrecord",
-            "type record print rtype ocsetting",
-            "shape",
-            "reader urword",
-            "tagged false",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name print",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name rtype",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name ocsetting",
-            "type keystring all first last frequency steps",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name all",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name first",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name last",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name frequency",
-            "type integer",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name steps",
-            "type integer",
-            "shape (<nstp)",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name head_filerecord",
+            "type record head fileout headfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name head", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name headfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name headprintrecord",
+            "type record head print_format formatrecord", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_format", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name formatrecord",
+            "type record columns width digits format", "shape",
+            "in_record true", "reader urword", "tagged", "optional false"],
+           ["block options", "name columns", "type integer", "shape",
+            "in_record true", "reader urword", "tagged true", "optional"],
+           ["block options", "name width", "type integer", "shape",
+            "in_record true", "reader urword", "tagged true", "optional"],
+           ["block options", "name digits", "type integer", "shape",
+            "in_record true", "reader urword", "tagged true", "optional"],
+           ["block options", "name format", "type string", "shape",
+            "in_record true", "reader urword", "tagged false",
+            "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name saverecord",
+            "type record save rtype ocsetting", "shape", "reader urword",
+            "tagged false", "optional true"],
+           ["block period", "name save", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block period", "name printrecord",
+            "type record print rtype ocsetting", "shape", "reader urword",
+            "tagged false", "optional true"],
+           ["block period", "name print", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block period", "name rtype", "type string", "shape",
+            "in_record true", "reader urword", "tagged false",
+            "optional false"],
+           ["block period", "name ocsetting",
+            "type keystring all first last frequency steps", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name all", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name first", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name last", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name frequency", "type integer", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name steps", "type integer", "shape (<nstp)",
+            "tagged true", "in_record true", "reader urword"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        head_filerecord=None,
-        headprintrecord=None,
-        saverecord=None,
-        printrecord=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "oc", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, budget_filerecord=None,
+                 budgetcsv_filerecord=None, head_filerecord=None,
+                 headprintrecord=None, saverecord=None, printrecord=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "oc", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
-        self.head_filerecord = self.build_mfdata(
-            "head_filerecord", head_filerecord
-        )
-        self.headprintrecord = self.build_mfdata(
-            "headprintrecord", headprintrecord
-        )
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
+        self.head_filerecord = self.build_mfdata("head_filerecord",
+                                                 head_filerecord)
+        self.headprintrecord = self.build_mfdata("headprintrecord",
+                                                 headprintrecord)
         self.saverecord = self.build_mfdata("saverecord", saverecord)
         self.printrecord = self.build_mfdata("printrecord", printrecord)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfprt.py b/flopy/mf6/modflow/mfgwfprt.py
index 7a008660bb..5916f41cb5 100644
--- a/flopy/mf6/modflow/mfgwfprt.py
+++ b/flopy/mf6/modflow/mfgwfprt.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 
 
@@ -28,7 +28,7 @@ class ModflowGwfprt(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
@@ -38,25 +38,14 @@ class ModflowGwfprt(mfpackage.MFPackage):
     dfn_file_name = "exg-gwfprt.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-    ]
-
-    def __init__(
-        self,
-        simulation,
-        loading_package=False,
-        exgtype="GWF6-PRT6",
-        exgmnamea=None,
-        exgmnameb=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            simulation, "gwfprt", filename, pname, loading_package, **kwargs
-        )
+           ["header", ],
+           ]
+
+    def __init__(self, simulation, loading_package=False, exgtype="GWF6-PRT6",
+                 exgmnamea=None, exgmnameb=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(simulation, "gwfprt", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.exgtype = exgtype
diff --git a/flopy/mf6/modflow/mfgwfrch.py b/flopy/mf6/modflow/mfgwfrch.py
index cb8f3d3869..5450f3fa03 100644
--- a/flopy/mf6/modflow/mfgwfrch.py
+++ b/flopy/mf6/modflow/mfgwfrch.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -103,249 +103,91 @@ class ModflowGwfrch(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwf6", "rch", "options", "auxiliary"))
-    ts_filerecord = ListTemplateGenerator(
-        ("gwf6", "rch", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwf6", "rch", "options", "obs_filerecord")
-    )
-    stress_period_data = ListTemplateGenerator(
-        ("gwf6", "rch", "period", "stress_period_data")
-    )
+    auxiliary = ListTemplateGenerator(('gwf6', 'rch', 'options',
+                                       'auxiliary'))
+    ts_filerecord = ListTemplateGenerator(('gwf6', 'rch', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwf6', 'rch', 'options',
+                                            'obs_filerecord'))
+    stress_period_data = ListTemplateGenerator(('gwf6', 'rch', 'period',
+                                                'stress_period_data'))
     package_abbr = "gwfrch"
     _package_type = "rch"
     dfn_file_name = "gwf-rch.dfn"
 
     dfn = [
-        ["header", "multi-package", "package-type stress-package"],
-        [
-            "block options",
-            "name fixed_cell",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxmultname",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprpak",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprflow",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ipakcb",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name maxbound",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name stress_period_data",
-            "type recarray cellid recharge aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-            "mf6internal spd",
-        ],
-        [
-            "block period",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name recharge",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-            "time_series true",
-            "mf6internal auxvar",
-        ],
-        [
-            "block period",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+           ["header", 
+            "multi-package", 
+            "package-type stress-package"],
+           ["block options", "name fixed_cell", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name auxmultname", "type string", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true", "mf6internal iprpak"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal iprflow"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal ipakcb"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block dimensions", "name maxbound", "type integer",
+            "reader urword", "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name stress_period_data",
+            "type recarray cellid recharge aux boundname", "shape (maxbound)",
+            "reader urword", "mf6internal spd"],
+           ["block period", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block period", "name recharge", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "optional true", "time_series true", "mf6internal auxvar"],
+           ["block period", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        fixed_cell=None,
-        auxiliary=None,
-        auxmultname=None,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        timeseries=None,
-        observations=None,
-        maxbound=None,
-        stress_period_data=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "rch", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, fixed_cell=None,
+                 auxiliary=None, auxmultname=None, boundnames=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 timeseries=None, observations=None, maxbound=None,
+                 stress_period_data=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "rch", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.fixed_cell = self.build_mfdata("fixed_cell", fixed_cell)
@@ -355,16 +197,17 @@ def __init__(
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.maxbound = self.build_mfdata("maxbound", maxbound)
-        self.stress_period_data = self.build_mfdata(
-            "stress_period_data", stress_period_data
-        )
+        self.stress_period_data = self.build_mfdata("stress_period_data",
+                                                    stress_period_data)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfrcha.py b/flopy/mf6/modflow/mfgwfrcha.py
index 84aefa86e7..6946df029e 100644
--- a/flopy/mf6/modflow/mfgwfrcha.py
+++ b/flopy/mf6/modflow/mfgwfrcha.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -69,6 +69,9 @@ class ModflowGwfrcha(mfpackage.MFPackage):
           containing data for the obs package with variable names as keys and
           package data as values. Data just for the observations variable is
           also acceptable. See obs package documentation for more information.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
     irch : [integer]
         * irch (integer) IRCH is the layer number that defines the layer in
           each vertical column where recharge is applied. If IRCH is omitted,
@@ -100,223 +103,89 @@ class ModflowGwfrcha(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwf6", "rcha", "options", "auxiliary"))
-    tas_filerecord = ListTemplateGenerator(
-        ("gwf6", "rcha", "options", "tas_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwf6", "rcha", "options", "obs_filerecord")
-    )
-    irch = ArrayTemplateGenerator(("gwf6", "rcha", "period", "irch"))
-    recharge = ArrayTemplateGenerator(("gwf6", "rcha", "period", "recharge"))
-    aux = ArrayTemplateGenerator(("gwf6", "rcha", "period", "aux"))
+    auxiliary = ListTemplateGenerator(('gwf6', 'rcha', 'options',
+                                       'auxiliary'))
+    tas_filerecord = ListTemplateGenerator(('gwf6', 'rcha', 'options',
+                                            'tas_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwf6', 'rcha', 'options',
+                                            'obs_filerecord'))
+    irch = ArrayTemplateGenerator(('gwf6', 'rcha', 'period', 'irch'))
+    recharge = ArrayTemplateGenerator(('gwf6', 'rcha', 'period',
+                                       'recharge'))
+    aux = ArrayTemplateGenerator(('gwf6', 'rcha', 'period', 'aux'))
     package_abbr = "gwfrcha"
     _package_type = "rcha"
     dfn_file_name = "gwf-rcha.dfn"
 
     dfn = [
-        ["header", "multi-package", "package-type stress-package"],
-        [
-            "block options",
-            "name readasarrays",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional false",
-            "default_value True",
-        ],
-        [
-            "block options",
-            "name fixed_cell",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxmultname",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprpak",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprflow",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ipakcb",
-        ],
-        [
-            "block options",
-            "name tas_filerecord",
-            "type record tas6 filein tas6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package tas",
-            "construct_data tas_array",
-            "parameter_name timearrayseries",
-        ],
-        [
-            "block options",
-            "name tas6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name tas6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name irch",
-            "type integer",
-            "shape (ncol*nrow; ncpl)",
-            "reader readarray",
-            "numeric_index true",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name recharge",
-            "type double precision",
-            "shape (ncol*nrow; ncpl)",
-            "reader readarray",
-            "time_series true",
-            "default_value 1.e-3",
-        ],
-        [
-            "block period",
-            "name aux",
-            "type double precision",
-            "shape (ncol*nrow; ncpl)",
-            "reader readarray",
-            "time_series true",
-            "optional true",
-            "mf6internal auxvar",
-        ],
-    ]
+           ["header", 
+            "multi-package", 
+            "package-type stress-package"],
+           ["block options", "name readasarrays", "type keyword", "shape",
+            "reader urword", "optional false", "default_value True"],
+           ["block options", "name fixed_cell", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name auxmultname", "type string", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true", "mf6internal iprpak"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal iprflow"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal ipakcb"],
+           ["block options", "name tas_filerecord",
+            "type record tas6 filein tas6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package tas",
+            "construct_data tas_array", "parameter_name timearrayseries"],
+           ["block options", "name tas6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name tas6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc",
+            "extended true"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name irch", "type integer",
+            "shape (ncol*nrow; ncpl)", "reader readarray",
+            "numeric_index true", "optional true"],
+           ["block period", "name recharge", "type double precision",
+            "shape (ncol*nrow; ncpl)", "reader readarray", "time_series true",
+            "default_value 1.e-3"],
+           ["block period", "name aux", "type double precision",
+            "shape (ncol*nrow; ncpl)", "reader readarray", "time_series true",
+            "optional true", "mf6internal auxvar"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        readasarrays=True,
-        fixed_cell=None,
-        auxiliary=None,
-        auxmultname=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        timearrayseries=None,
-        observations=None,
-        irch=None,
-        recharge=1.0e-3,
-        aux=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "rcha", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, readasarrays=True,
+                 fixed_cell=None, auxiliary=None, auxmultname=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 timearrayseries=None, observations=None,
+                 export_array_netcdf=None, irch=None, recharge=1.e-3, aux=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "rcha", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.readasarrays = self.build_mfdata("readasarrays", readasarrays)
@@ -326,14 +195,18 @@ def __init__(
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self._tas_filerecord = self.build_mfdata("tas_filerecord", None)
-        self._tas_package = self.build_child_package(
-            "tas", timearrayseries, "tas_array", self._tas_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+        self._tas_filerecord = self.build_mfdata("tas_filerecord",
+                                                 None)
+        self._tas_package = self.build_child_package("tas", timearrayseries,
+                                                     "tas_array",
+                                                     self._tas_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
         self.irch = self.build_mfdata("irch", irch)
         self.recharge = self.build_mfdata("recharge", recharge)
         self.aux = self.build_mfdata("aux", aux)
diff --git a/flopy/mf6/modflow/mfgwfriv.py b/flopy/mf6/modflow/mfgwfriv.py
index 336cd9f93c..b2ffb96b5b 100644
--- a/flopy/mf6/modflow/mfgwfriv.py
+++ b/flopy/mf6/modflow/mfgwfriv.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -109,269 +109,97 @@ class ModflowGwfriv(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwf6", "riv", "options", "auxiliary"))
-    ts_filerecord = ListTemplateGenerator(
-        ("gwf6", "riv", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwf6", "riv", "options", "obs_filerecord")
-    )
-    stress_period_data = ListTemplateGenerator(
-        ("gwf6", "riv", "period", "stress_period_data")
-    )
+    auxiliary = ListTemplateGenerator(('gwf6', 'riv', 'options',
+                                       'auxiliary'))
+    ts_filerecord = ListTemplateGenerator(('gwf6', 'riv', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwf6', 'riv', 'options',
+                                            'obs_filerecord'))
+    stress_period_data = ListTemplateGenerator(('gwf6', 'riv', 'period',
+                                                'stress_period_data'))
     package_abbr = "gwfriv"
     _package_type = "riv"
     dfn_file_name = "gwf-riv.dfn"
 
     dfn = [
-        ["header", "multi-package", "package-type stress-package"],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxmultname",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprpak",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprflow",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ipakcb",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mover",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block dimensions",
-            "name maxbound",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name stress_period_data",
+           ["header", 
+            "multi-package", 
+            "package-type stress-package"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name auxmultname", "type string", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true", "mf6internal iprpak"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal iprflow"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal ipakcb"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name mover", "type keyword", "tagged true",
+            "reader urword", "optional true"],
+           ["block dimensions", "name maxbound", "type integer",
+            "reader urword", "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name stress_period_data",
             "type recarray cellid stage cond rbot aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-            "mf6internal spd",
-        ],
-        [
-            "block period",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name stage",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name cond",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name rbot",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-            "time_series true",
-            "mf6internal auxvar",
-        ],
-        [
-            "block period",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+            "shape (maxbound)", "reader urword", "mf6internal spd"],
+           ["block period", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block period", "name stage", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name cond", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name rbot", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "optional true", "time_series true", "mf6internal auxvar"],
+           ["block period", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        auxiliary=None,
-        auxmultname=None,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        timeseries=None,
-        observations=None,
-        mover=None,
-        maxbound=None,
-        stress_period_data=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "riv", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, auxiliary=None,
+                 auxmultname=None, boundnames=None, print_input=None,
+                 print_flows=None, save_flows=None, timeseries=None,
+                 observations=None, mover=None, maxbound=None,
+                 stress_period_data=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "riv", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
@@ -380,17 +208,18 @@ def __init__(
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.mover = self.build_mfdata("mover", mover)
         self.maxbound = self.build_mfdata("maxbound", maxbound)
-        self.stress_period_data = self.build_mfdata(
-            "stress_period_data", stress_period_data
-        )
+        self.stress_period_data = self.build_mfdata("stress_period_data",
+                                                    stress_period_data)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfsfr.py b/flopy/mf6/modflow/mfgwfsfr.py
index 7b1ac67c38..2048b8624b 100644
--- a/flopy/mf6/modflow/mfgwfsfr.py
+++ b/flopy/mf6/modflow/mfgwfsfr.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -17,6 +17,9 @@ class ModflowGwfsfr(mfpackage.MFPackage):
     loading_package : bool
         Do not set this parameter. It is intended for debugging and internal
         processing purposes only.
+    storage : boolean
+        * storage (boolean) keyword that activates storage contributions to the
+          stream-flow routing package continuity equation.
     auxiliary : [string]
         * auxiliary (string) defines an array of one or more auxiliary variable
           names. There is no limit on the number of auxiliary variables that
@@ -128,6 +131,11 @@ class ModflowGwfsfr(mfpackage.MFPackage):
           minutes, hours, days, or years in the simulation, respectively.
           TIME_CONVERSION does not need to be specified if TIME_UNITS are
           seconds.
+    dev_storage_weight : double
+        * dev_storage_weight (double) real number value that defines the time
+          weighting factor used to calculate the change in channel storage.
+          STORAGE_WEIGHT must have a value between 0.5 and 1. Default
+          STORAGE_WEIGHT value is 1.
     nreaches : integer
         * nreaches (integer) integer value specifying the number of stream
           reaches. There must be NREACHES entries in the PACKAGEDATA block.
@@ -303,6 +311,22 @@ class ModflowGwfsfr(mfpackage.MFPackage):
           reach IFNO is less than DIVFLOW, DIVFLOW is set to :math:`Q_{DS}` and
           there will be no flow available for reaches connected to downstream
           end of reach IFNO.
+    initialstages : [ifno, initialstage]
+        * ifno (integer) integer value that defines the feature (reach) number
+          associated with the specified initial stage. Initial stage data must
+          be specified for every reach or the program will terminate with an
+          error. The program will also terminate with a error if IFNO is less
+          than one or greater than NREACHES. This argument is an index
+          variable, which means that it should be treated as zero-based when
+          working with FloPy and Python. Flopy will automatically subtract one
+          when loading index variables and add one when writing index
+          variables.
+        * initialstage (double) real value that defines the initial stage for
+          the reach. The program will terminate with an error if INITIALSTAGE
+          is less than the RTP value for reach IFNO defined in the PACKAGEDATA
+          block. INITIALSTAGE data are used only if STORAGE is specified in the
+          Options block and the first stress period is transient or for reaches
+          defined to use the SIMPLE STATUS in the Period block.
     perioddata : [ifno, sfrsetting]
         * ifno (integer) integer value that defines the feature (reach) number
           associated with the specified PERIOD data on the line. IFNO must be
@@ -447,961 +471,369 @@ class ModflowGwfsfr(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwf6", "sfr", "options", "auxiliary"))
-    stage_filerecord = ListTemplateGenerator(
-        ("gwf6", "sfr", "options", "stage_filerecord")
-    )
-    budget_filerecord = ListTemplateGenerator(
-        ("gwf6", "sfr", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwf6", "sfr", "options", "budgetcsv_filerecord")
-    )
-    package_convergence_filerecord = ListTemplateGenerator(
-        ("gwf6", "sfr", "options", "package_convergence_filerecord")
-    )
-    ts_filerecord = ListTemplateGenerator(
-        ("gwf6", "sfr", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwf6", "sfr", "options", "obs_filerecord")
-    )
-    packagedata = ListTemplateGenerator(
-        ("gwf6", "sfr", "packagedata", "packagedata")
-    )
-    crosssections = ListTemplateGenerator(
-        ("gwf6", "sfr", "crosssections", "crosssections")
-    )
-    connectiondata = ListTemplateGenerator(
-        ("gwf6", "sfr", "connectiondata", "connectiondata")
-    )
-    diversions = ListTemplateGenerator(
-        ("gwf6", "sfr", "diversions", "diversions")
-    )
-    perioddata = ListTemplateGenerator(("gwf6", "sfr", "period", "perioddata"))
+    auxiliary = ListTemplateGenerator(('gwf6', 'sfr', 'options',
+                                       'auxiliary'))
+    stage_filerecord = ListTemplateGenerator(('gwf6', 'sfr', 'options',
+                                              'stage_filerecord'))
+    budget_filerecord = ListTemplateGenerator(('gwf6', 'sfr', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwf6', 'sfr',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    package_convergence_filerecord = ListTemplateGenerator((
+        'gwf6', 'sfr', 'options', 'package_convergence_filerecord'))
+    ts_filerecord = ListTemplateGenerator(('gwf6', 'sfr', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwf6', 'sfr', 'options',
+                                            'obs_filerecord'))
+    packagedata = ListTemplateGenerator(('gwf6', 'sfr', 'packagedata',
+                                         'packagedata'))
+    crosssections = ListTemplateGenerator(('gwf6', 'sfr',
+                                           'crosssections',
+                                           'crosssections'))
+    connectiondata = ListTemplateGenerator(('gwf6', 'sfr',
+                                            'connectiondata',
+                                            'connectiondata'))
+    diversions = ListTemplateGenerator(('gwf6', 'sfr', 'diversions',
+                                        'diversions'))
+    initialstages = ListTemplateGenerator(('gwf6', 'sfr',
+                                           'initialstages',
+                                           'initialstages'))
+    perioddata = ListTemplateGenerator(('gwf6', 'sfr', 'period',
+                                        'perioddata'))
     package_abbr = "gwfsfr"
     _package_type = "sfr"
     dfn_file_name = "gwf-sfr.dfn"
 
     dfn = [
-        ["header", "multi-package", "package-type advanced-stress-package"],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_stage",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name stage_filerecord",
-            "type record stage fileout stagefile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name stage",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name stagefile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name package_convergence_filerecord",
+           ["header", 
+            "multi-package", 
+            "package-type advanced-stress-package"],
+           ["block options", "name storage", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_stage", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name stage_filerecord",
+            "type record stage fileout stagefile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name stage", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name stagefile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name package_convergence_filerecord",
             "type record package_convergence fileout "
             "package_convergence_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name package_convergence",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name package_convergence_filename",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mover",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name maximum_picard_iterations",
-            "type integer",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name maximum_iterations",
-            "type integer",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name maximum_depth_change",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name unit_conversion",
-            "type double precision",
-            "reader urword",
-            "optional true",
-            "deprecated 6.4.2",
-        ],
-        [
-            "block options",
-            "name length_conversion",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name time_conversion",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block dimensions",
-            "name nreaches",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
+            "shape", "reader urword", "tagged true", "optional true"],
+           ["block options", "name package_convergence", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name package_convergence_filename",
+            "type string", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name mover", "type keyword", "tagged true",
+            "reader urword", "optional true"],
+           ["block options", "name maximum_picard_iterations",
+            "type integer", "reader urword", "optional true"],
+           ["block options", "name maximum_iterations", "type integer",
+            "reader urword", "optional true"],
+           ["block options", "name maximum_depth_change",
+            "type double precision", "reader urword", "optional true"],
+           ["block options", "name unit_conversion",
+            "type double precision", "reader urword", "optional true",
+            "deprecated 6.4.2"],
+           ["block options", "name length_conversion",
+            "type double precision", "reader urword", "optional true"],
+           ["block options", "name time_conversion",
+            "type double precision", "reader urword", "optional true"],
+           ["block options", "name dev_storage_weight",
+            "type double precision", "reader urword", "optional true"],
+           ["block dimensions", "name nreaches", "type integer",
+            "reader urword", "optional false"],
+           ["block packagedata", "name packagedata",
             "type recarray ifno cellid rlen rwid rgrd rtp rbth rhk man ncon "
             "ustrf ndv aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name rlen",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name rwid",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name rgrd",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name rtp",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name rbth",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name rhk",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block packagedata",
-            "name man",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block packagedata",
-            "name ncon",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name ustrf",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block packagedata",
-            "name ndv",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "time_series true",
-            "optional true",
-        ],
-        [
-            "block packagedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block crosssections",
-            "name crosssections",
-            "type recarray ifno tab6 filein tab6_filename",
-            "shape",
-            "valid",
-            "optional false",
-            "reader urword",
-        ],
-        [
-            "block crosssections",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block crosssections",
-            "name tab6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block crosssections",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block crosssections",
-            "name tab6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block connectiondata",
-            "name connectiondata",
-            "type recarray ifno ic",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block connectiondata",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block connectiondata",
-            "name ic",
-            "type integer",
-            "shape (ncon(ifno))",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-            "numeric_index true",
-            "support_negative_index true",
-        ],
-        [
-            "block diversions",
-            "name diversions",
-            "type recarray ifno idv iconr cprior",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block diversions",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block diversions",
-            "name idv",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block diversions",
-            "name iconr",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block diversions",
-            "name cprior",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name perioddata",
-            "type recarray ifno sfrsetting",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name sfrsetting",
+            "shape (maxbound)", "reader urword"],
+           ["block packagedata", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block packagedata", "name rlen", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name rwid", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name rgrd", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name rtp", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name rbth", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name rhk", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block packagedata", "name man", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block packagedata", "name ncon", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name ustrf", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block packagedata", "name ndv", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "time_series true", "optional true"],
+           ["block packagedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"],
+           ["block crosssections", "name crosssections",
+            "type recarray ifno tab6 filein tab6_filename", "shape", "valid",
+            "optional false", "reader urword"],
+           ["block crosssections", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block crosssections", "name tab6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block crosssections", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block crosssections", "name tab6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block connectiondata", "name connectiondata",
+            "type recarray ifno ic", "shape (maxbound)", "reader urword"],
+           ["block connectiondata", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block connectiondata", "name ic", "type integer",
+            "shape (ncon(ifno))", "tagged false", "in_record true",
+            "reader urword", "optional true", "numeric_index true",
+            "support_negative_index true"],
+           ["block diversions", "name diversions",
+            "type recarray ifno idv iconr cprior", "shape (maxbound)",
+            "reader urword"],
+           ["block diversions", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block diversions", "name idv", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block diversions", "name iconr", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block diversions", "name cprior", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block initialstages", "name initialstages",
+            "type recarray ifno initialstage", "shape (maxbound)", "valid",
+            "optional false", "reader urword"],
+           ["block initialstages", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "optional false",
+            "reader urword", "numeric_index true"],
+           ["block initialstages", "name initialstage",
+            "type double precision", "shape", "tagged false",
+            "in_record true", "optional false", "reader urword"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name perioddata",
+            "type recarray ifno sfrsetting", "shape", "reader urword"],
+           ["block period", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name sfrsetting",
             "type keystring status bedk manning stage inflow rainfall "
             "evaporation runoff diversionrecord upstream_fraction "
             "cross_sectionrecord auxiliaryrecord",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name status",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name bedk",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name manning",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name stage",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name inflow",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name rainfall",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name evaporation",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name runoff",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name diversionrecord",
-            "type record diversion idv divflow",
-            "shape",
-            "tagged",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name diversion",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name idv",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name divflow",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name upstream_fraction",
-            "type double precision",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name cross_sectionrecord",
-            "type record cross_section tab6 filein tab6_filename",
-            "shape",
-            "tagged",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name cross_section",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name tab6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name tab6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block period",
-            "name auxiliaryrecord",
-            "type record auxiliary auxname auxval",
-            "shape",
-            "tagged",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxiliary",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxval",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-    ]
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name status", "type string", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name bedk", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name manning", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name stage", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name inflow", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name rainfall", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name evaporation", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name runoff", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name diversionrecord",
+            "type record diversion idv divflow", "shape", "tagged",
+            "in_record true", "reader urword"],
+           ["block period", "name diversion", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name idv", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name divflow", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name upstream_fraction",
+            "type double precision", "shape", "tagged true", "in_record true",
+            "reader urword"],
+           ["block period", "name cross_sectionrecord",
+            "type record cross_section tab6 filein tab6_filename", "shape",
+            "tagged", "in_record true", "reader urword"],
+           ["block period", "name cross_section", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block period", "name tab6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block period", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block period", "name tab6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block period", "name auxiliaryrecord",
+            "type record auxiliary auxname auxval", "shape", "tagged",
+            "in_record true", "reader urword"],
+           ["block period", "name auxiliary", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name auxname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name auxval", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        auxiliary=None,
-        boundnames=None,
-        print_input=None,
-        print_stage=None,
-        print_flows=None,
-        save_flows=None,
-        stage_filerecord=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        package_convergence_filerecord=None,
-        timeseries=None,
-        observations=None,
-        mover=None,
-        maximum_picard_iterations=None,
-        maximum_iterations=None,
-        maximum_depth_change=None,
-        unit_conversion=None,
-        length_conversion=None,
-        time_conversion=None,
-        nreaches=None,
-        packagedata=None,
-        crosssections=None,
-        connectiondata=None,
-        diversions=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "sfr", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, storage=None,
+                 auxiliary=None, boundnames=None, print_input=None,
+                 print_stage=None, print_flows=None, save_flows=None,
+                 stage_filerecord=None, budget_filerecord=None,
+                 budgetcsv_filerecord=None,
+                 package_convergence_filerecord=None, timeseries=None,
+                 observations=None, mover=None, maximum_picard_iterations=None,
+                 maximum_iterations=None, maximum_depth_change=None,
+                 unit_conversion=None, length_conversion=None,
+                 time_conversion=None, dev_storage_weight=None, nreaches=None,
+                 packagedata=None, crosssections=None, connectiondata=None,
+                 diversions=None, initialstages=None, perioddata=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "sfr", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
+        self.storage = self.build_mfdata("storage", storage)
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
         self.boundnames = self.build_mfdata("boundnames", boundnames)
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_stage = self.build_mfdata("print_stage", print_stage)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self.stage_filerecord = self.build_mfdata(
-            "stage_filerecord", stage_filerecord
-        )
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
+        self.stage_filerecord = self.build_mfdata("stage_filerecord",
+                                                  stage_filerecord)
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
         self.package_convergence_filerecord = self.build_mfdata(
-            "package_convergence_filerecord", package_convergence_filerecord
-        )
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+            "package_convergence_filerecord", package_convergence_filerecord)
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.mover = self.build_mfdata("mover", mover)
         self.maximum_picard_iterations = self.build_mfdata(
-            "maximum_picard_iterations", maximum_picard_iterations
-        )
-        self.maximum_iterations = self.build_mfdata(
-            "maximum_iterations", maximum_iterations
-        )
-        self.maximum_depth_change = self.build_mfdata(
-            "maximum_depth_change", maximum_depth_change
-        )
-        self.unit_conversion = self.build_mfdata(
-            "unit_conversion", unit_conversion
-        )
-        self.length_conversion = self.build_mfdata(
-            "length_conversion", length_conversion
-        )
-        self.time_conversion = self.build_mfdata(
-            "time_conversion", time_conversion
-        )
+            "maximum_picard_iterations", maximum_picard_iterations)
+        self.maximum_iterations = self.build_mfdata("maximum_iterations",
+                                                    maximum_iterations)
+        self.maximum_depth_change = self.build_mfdata("maximum_depth_change",
+                                                      maximum_depth_change)
+        self.unit_conversion = self.build_mfdata("unit_conversion",
+                                                 unit_conversion)
+        self.length_conversion = self.build_mfdata("length_conversion",
+                                                   length_conversion)
+        self.time_conversion = self.build_mfdata("time_conversion",
+                                                 time_conversion)
+        self.dev_storage_weight = self.build_mfdata("dev_storage_weight",
+                                                    dev_storage_weight)
         self.nreaches = self.build_mfdata("nreaches", nreaches)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
         self.crosssections = self.build_mfdata("crosssections", crosssections)
-        self.connectiondata = self.build_mfdata(
-            "connectiondata", connectiondata
-        )
+        self.connectiondata = self.build_mfdata("connectiondata",
+                                                connectiondata)
         self.diversions = self.build_mfdata("diversions", diversions)
+        self.initialstages = self.build_mfdata("initialstages", initialstages)
         self.perioddata = self.build_mfdata("perioddata", perioddata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfsto.py b/flopy/mf6/modflow/mfgwfsto.py
index 398b5572e9..87cc12b524 100644
--- a/flopy/mf6/modflow/mfgwfsto.py
+++ b/flopy/mf6/modflow/mfgwfsto.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -37,6 +37,19 @@ class ModflowGwfsto(mfpackage.MFPackage):
           containing data for the tvs package with variable names as keys and
           package data as values. Data just for the perioddata variable is also
           acceptable. See tvs package documentation for more information.
+    export_array_ascii : boolean
+        * export_array_ascii (boolean) keyword that specifies input grid
+          arrays, which already support the layered keyword, should be written
+          to layered ascii output files.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
+    dev_original_specific_storage : boolean
+        * dev_original_specific_storage (boolean) flag indicating the original
+          storage specific storage formulation should be used
+    dev_oldstorageformulation : boolean
+        * dev_oldstorageformulation (boolean) development option flag for old
+          storage formulation
     iconvert : [integer]
         * iconvert (integer) is a flag for each cell that specifies whether or
           not a cell is convertible for the storage calculation. 0 indicates
@@ -69,186 +82,99 @@ class ModflowGwfsto(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    tvs_filerecord = ListTemplateGenerator(
-        ("gwf6", "sto", "options", "tvs_filerecord")
-    )
-    iconvert = ArrayTemplateGenerator(("gwf6", "sto", "griddata", "iconvert"))
-    ss = ArrayTemplateGenerator(("gwf6", "sto", "griddata", "ss"))
-    sy = ArrayTemplateGenerator(("gwf6", "sto", "griddata", "sy"))
+    tvs_filerecord = ListTemplateGenerator(('gwf6', 'sto', 'options',
+                                            'tvs_filerecord'))
+    iconvert = ArrayTemplateGenerator(('gwf6', 'sto', 'griddata',
+                                       'iconvert'))
+    ss = ArrayTemplateGenerator(('gwf6', 'sto', 'griddata', 'ss'))
+    sy = ArrayTemplateGenerator(('gwf6', 'sto', 'griddata', 'sy'))
     package_abbr = "gwfsto"
     _package_type = "sto"
     dfn_file_name = "gwf-sto.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name storagecoefficient",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name ss_confined_only",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name tvs_filerecord",
-            "type record tvs6 filein tvs_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package tvs",
-            "construct_data tvs_perioddata",
-            "parameter_name perioddata",
-        ],
-        [
-            "block options",
-            "name tvs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name tvs_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block griddata",
-            "name iconvert",
-            "type integer",
-            "shape (nodes)",
-            "valid",
-            "reader readarray",
-            "layered true",
-            "optional false",
-            "default_value 0",
-        ],
-        [
-            "block griddata",
-            "name ss",
-            "type double precision",
-            "shape (nodes)",
-            "valid",
-            "reader readarray",
-            "layered true",
-            "optional false",
-            "default_value 1.e-5",
-        ],
-        [
-            "block griddata",
-            "name sy",
-            "type double precision",
-            "shape (nodes)",
-            "valid",
-            "reader readarray",
-            "layered true",
-            "optional false",
-            "default_value 0.15",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name steady-state",
-            "type keyword",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name transient",
-            "type keyword",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal ipakcb"],
+           ["block options", "name storagecoefficient", "type keyword",
+            "reader urword", "optional true", "mf6internal istor_coef"],
+           ["block options", "name ss_confined_only", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name tvs_filerecord",
+            "type record tvs6 filein tvs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package tvs",
+            "construct_data tvs_perioddata", "parameter_name perioddata"],
+           ["block options", "name tvs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name tvs6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc",
+            "extended true"],
+           ["block options", "name dev_original_specific_storage",
+            "type keyword", "reader urword", "optional true",
+            "mf6internal iorig_ss"],
+           ["block options", "name dev_oldstorageformulation",
+            "type keyword", "reader urword", "optional true",
+            "mf6internal iconf_ss"],
+           ["block griddata", "name iconvert", "type integer",
+            "shape (nodes)", "valid", "reader readarray", "layered true",
+            "netcdf true", "optional false", "default_value 0"],
+           ["block griddata", "name ss", "type double precision",
+            "shape (nodes)", "valid", "reader readarray", "layered true",
+            "netcdf true", "optional false", "default_value 1.e-5"],
+           ["block griddata", "name sy", "type double precision",
+            "shape (nodes)", "valid", "reader readarray", "layered true",
+            "netcdf true", "optional false", "default_value 0.15"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name steady-state", "type keyword", "shape",
+            "valid", "reader urword", "optional true",
+            "mf6internal steady_state"],
+           ["block period", "name transient", "type keyword", "shape",
+            "valid", "reader urword", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        save_flows=None,
-        storagecoefficient=None,
-        ss_confined_only=None,
-        perioddata=None,
-        iconvert=0,
-        ss=1.0e-5,
-        sy=0.15,
-        steady_state=None,
-        transient=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "sto", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, save_flows=None,
+                 storagecoefficient=None, ss_confined_only=None,
+                 perioddata=None, export_array_ascii=None,
+                 export_array_netcdf=None, dev_original_specific_storage=None,
+                 dev_oldstorageformulation=None, iconvert=0, ss=1.e-5, sy=0.15,
+                 steady_state=None, transient=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(model, "sto", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self.storagecoefficient = self.build_mfdata(
-            "storagecoefficient", storagecoefficient
-        )
-        self.ss_confined_only = self.build_mfdata(
-            "ss_confined_only", ss_confined_only
-        )
-        self._tvs_filerecord = self.build_mfdata("tvs_filerecord", None)
-        self._tvs_package = self.build_child_package(
-            "tvs", perioddata, "tvs_perioddata", self._tvs_filerecord
-        )
+        self.storagecoefficient = self.build_mfdata("storagecoefficient",
+                                                    storagecoefficient)
+        self.ss_confined_only = self.build_mfdata("ss_confined_only",
+                                                  ss_confined_only)
+        self._tvs_filerecord = self.build_mfdata("tvs_filerecord",
+                                                 None)
+        self._tvs_package = self.build_child_package("tvs", perioddata,
+                                                     "tvs_perioddata",
+                                                     self._tvs_filerecord)
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
+        self.dev_original_specific_storage = self.build_mfdata(
+            "dev_original_specific_storage", dev_original_specific_storage)
+        self.dev_oldstorageformulation = self.build_mfdata(
+            "dev_oldstorageformulation", dev_oldstorageformulation)
         self.iconvert = self.build_mfdata("iconvert", iconvert)
         self.ss = self.build_mfdata("ss", ss)
         self.sy = self.build_mfdata("sy", sy)
diff --git a/flopy/mf6/modflow/mfgwfuzf.py b/flopy/mf6/modflow/mfgwfuzf.py
index 1549865f28..c3e97baae2 100644
--- a/flopy/mf6/modflow/mfgwfuzf.py
+++ b/flopy/mf6/modflow/mfgwfuzf.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -264,626 +264,209 @@ class ModflowGwfuzf(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwf6", "uzf", "options", "auxiliary"))
-    wc_filerecord = ListTemplateGenerator(
-        ("gwf6", "uzf", "options", "wc_filerecord")
-    )
-    budget_filerecord = ListTemplateGenerator(
-        ("gwf6", "uzf", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwf6", "uzf", "options", "budgetcsv_filerecord")
-    )
-    package_convergence_filerecord = ListTemplateGenerator(
-        ("gwf6", "uzf", "options", "package_convergence_filerecord")
-    )
-    ts_filerecord = ListTemplateGenerator(
-        ("gwf6", "uzf", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwf6", "uzf", "options", "obs_filerecord")
-    )
-    packagedata = ListTemplateGenerator(
-        ("gwf6", "uzf", "packagedata", "packagedata")
-    )
-    perioddata = ListTemplateGenerator(("gwf6", "uzf", "period", "perioddata"))
+    auxiliary = ListTemplateGenerator(('gwf6', 'uzf', 'options',
+                                       'auxiliary'))
+    wc_filerecord = ListTemplateGenerator(('gwf6', 'uzf', 'options',
+                                           'wc_filerecord'))
+    budget_filerecord = ListTemplateGenerator(('gwf6', 'uzf', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwf6', 'uzf',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    package_convergence_filerecord = ListTemplateGenerator((
+        'gwf6', 'uzf', 'options', 'package_convergence_filerecord'))
+    ts_filerecord = ListTemplateGenerator(('gwf6', 'uzf', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwf6', 'uzf', 'options',
+                                            'obs_filerecord'))
+    packagedata = ListTemplateGenerator(('gwf6', 'uzf', 'packagedata',
+                                         'packagedata'))
+    perioddata = ListTemplateGenerator(('gwf6', 'uzf', 'period',
+                                        'perioddata'))
     package_abbr = "gwfuzf"
     _package_type = "uzf"
     dfn_file_name = "gwf-uzf.dfn"
 
     dfn = [
-        ["header", "multi-package", "package-type advanced-stress-package"],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxmultname",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name wc_filerecord",
-            "type record water_content fileout wcfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name water_content",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name wcfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "preserve_case true",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name package_convergence_filerecord",
+           ["header", 
+            "multi-package", 
+            "package-type advanced-stress-package"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name auxmultname", "type string", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name wc_filerecord",
+            "type record water_content fileout wcfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name water_content", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name wcfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "preserve_case true",
+            "type string", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name package_convergence_filerecord",
             "type record package_convergence fileout "
             "package_convergence_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name package_convergence",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name package_convergence_filename",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mover",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name simulate_et",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name linear_gwet",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name square_gwet",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name simulate_gwseep",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-            "deprecated 6.5.0",
-        ],
-        [
-            "block options",
-            "name unsat_etwc",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name unsat_etae",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block dimensions",
-            "name nuzfcells",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name ntrailwaves",
-            "type integer",
-            "reader urword",
-            "optional false",
-            "default_value 7",
-        ],
-        [
-            "block dimensions",
-            "name nwavesets",
-            "type integer",
-            "reader urword",
-            "optional false",
-            "default_value 40",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
+            "shape", "reader urword", "tagged true", "optional true"],
+           ["block options", "name package_convergence", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name package_convergence_filename",
+            "type string", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name mover", "type keyword", "tagged true",
+            "reader urword", "optional true"],
+           ["block options", "name simulate_et", "type keyword",
+            "tagged true", "reader urword", "optional true"],
+           ["block options", "name linear_gwet", "type keyword",
+            "tagged true", "reader urword", "optional true"],
+           ["block options", "name square_gwet", "type keyword",
+            "tagged true", "reader urword", "optional true"],
+           ["block options", "name simulate_gwseep", "type keyword",
+            "tagged true", "reader urword", "optional true",
+            "deprecated 6.5.0"],
+           ["block options", "name unsat_etwc", "type keyword",
+            "tagged true", "reader urword", "optional true"],
+           ["block options", "name unsat_etae", "type keyword",
+            "tagged true", "reader urword", "optional true"],
+           ["block dimensions", "name nuzfcells", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name ntrailwaves", "type integer",
+            "reader urword", "optional false", "default_value 7"],
+           ["block dimensions", "name nwavesets", "type integer",
+            "reader urword", "optional false", "default_value 40"],
+           ["block packagedata", "name packagedata",
             "type recarray ifno cellid landflag ivertcon surfdep vks thtr "
             "thts thti eps boundname",
-            "shape (nuzfcells)",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name landflag",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name ivertcon",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name surfdep",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name vks",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name thtr",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name thts",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name thti",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name eps",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name perioddata",
+            "shape (nuzfcells)", "reader urword"],
+           ["block packagedata", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block packagedata", "name landflag", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name ivertcon", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name surfdep", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name vks", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name thtr", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name thts", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name thti", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name eps", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name perioddata",
             "type recarray ifno finf pet extdp extwc ha hroot rootact aux",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name finf",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "time_series true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name pet",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name extdp",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name extwc",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name ha",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "time_series true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name hroot",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name rootact",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "time_series true",
-            "optional true",
-        ],
-    ]
+            "shape", "reader urword"],
+           ["block period", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name finf", "type string", "shape",
+            "tagged false", "in_record true", "time_series true",
+            "reader urword"],
+           ["block period", "name pet", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name extdp", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name extwc", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name ha", "type string", "shape",
+            "tagged false", "in_record true", "time_series true",
+            "reader urword"],
+           ["block period", "name hroot", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name rootact", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "time_series true", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        auxiliary=None,
-        auxmultname=None,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        wc_filerecord=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        package_convergence_filerecord=None,
-        timeseries=None,
-        observations=None,
-        mover=None,
-        simulate_et=None,
-        linear_gwet=None,
-        square_gwet=None,
-        simulate_gwseep=None,
-        unsat_etwc=None,
-        unsat_etae=None,
-        nuzfcells=None,
-        ntrailwaves=7,
-        nwavesets=40,
-        packagedata=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "uzf", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, auxiliary=None,
+                 auxmultname=None, boundnames=None, print_input=None,
+                 print_flows=None, save_flows=None, wc_filerecord=None,
+                 budget_filerecord=None, budgetcsv_filerecord=None,
+                 package_convergence_filerecord=None, timeseries=None,
+                 observations=None, mover=None, simulate_et=None,
+                 linear_gwet=None, square_gwet=None, simulate_gwseep=None,
+                 unsat_etwc=None, unsat_etae=None, nuzfcells=None,
+                 ntrailwaves=7, nwavesets=40, packagedata=None,
+                 perioddata=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "uzf", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
@@ -893,30 +476,28 @@ def __init__(
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
         self.wc_filerecord = self.build_mfdata("wc_filerecord", wc_filerecord)
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
         self.package_convergence_filerecord = self.build_mfdata(
-            "package_convergence_filerecord", package_convergence_filerecord
-        )
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+            "package_convergence_filerecord", package_convergence_filerecord)
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.mover = self.build_mfdata("mover", mover)
         self.simulate_et = self.build_mfdata("simulate_et", simulate_et)
         self.linear_gwet = self.build_mfdata("linear_gwet", linear_gwet)
         self.square_gwet = self.build_mfdata("square_gwet", square_gwet)
-        self.simulate_gwseep = self.build_mfdata(
-            "simulate_gwseep", simulate_gwseep
-        )
+        self.simulate_gwseep = self.build_mfdata("simulate_gwseep",
+                                                 simulate_gwseep)
         self.unsat_etwc = self.build_mfdata("unsat_etwc", unsat_etwc)
         self.unsat_etae = self.build_mfdata("unsat_etae", unsat_etae)
         self.nuzfcells = self.build_mfdata("nuzfcells", nuzfcells)
diff --git a/flopy/mf6/modflow/mfgwfvsc.py b/flopy/mf6/modflow/mfgwfvsc.py
index 76dec5a1fe..2d1632ff29 100644
--- a/flopy/mf6/modflow/mfgwfvsc.py
+++ b/flopy/mf6/modflow/mfgwfvsc.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -105,211 +105,82 @@ class ModflowGwfvsc(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    viscosity_filerecord = ListTemplateGenerator(
-        ("gwf6", "vsc", "options", "viscosity_filerecord")
-    )
-    packagedata = ListTemplateGenerator(
-        ("gwf6", "vsc", "packagedata", "packagedata")
-    )
+    viscosity_filerecord = ListTemplateGenerator(('gwf6', 'vsc',
+                                                  'options',
+                                                  'viscosity_filerecord'))
+    packagedata = ListTemplateGenerator(('gwf6', 'vsc', 'packagedata',
+                                         'packagedata'))
     package_abbr = "gwfvsc"
     _package_type = "vsc"
     dfn_file_name = "gwf-vsc.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name viscref",
-            "type double precision",
-            "reader urword",
-            "optional true",
-            "default_value 1.0",
-        ],
-        [
-            "block options",
-            "name temperature_species_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name thermal_formulation",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-            "valid linear nonlinear",
-        ],
-        [
-            "block options",
-            "name thermal_a2",
-            "type double precision",
-            "reader urword",
-            "optional true",
-            "default_value 10.",
-        ],
-        [
-            "block options",
-            "name thermal_a3",
-            "type double precision",
-            "reader urword",
-            "optional true",
-            "default_value 248.37",
-        ],
-        [
-            "block options",
-            "name thermal_a4",
-            "type double precision",
-            "reader urword",
-            "optional true",
-            "default_value 133.15",
-        ],
-        [
-            "block options",
-            "name viscosity_filerecord",
-            "type record viscosity fileout viscosityfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name viscosity",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name viscosityfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name nviscspecies",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
+           ["header", ],
+           ["block options", "name viscref", "type double precision",
+            "reader urword", "optional true", "default_value 1.0"],
+           ["block options", "name temperature_species_name", "type string",
+            "shape", "reader urword", "optional true"],
+           ["block options", "name thermal_formulation", "type string",
+            "shape", "reader urword", "optional true",
+            "valid linear nonlinear"],
+           ["block options", "name thermal_a2", "type double precision",
+            "reader urword", "optional true", "default_value 10."],
+           ["block options", "name thermal_a3", "type double precision",
+            "reader urword", "optional true", "default_value 248.37"],
+           ["block options", "name thermal_a4", "type double precision",
+            "reader urword", "optional true", "default_value 133.15"],
+           ["block options", "name viscosity_filerecord",
+            "type record viscosity fileout viscosityfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name viscosity", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name viscosityfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block dimensions", "name nviscspecies", "type integer",
+            "reader urword", "optional false"],
+           ["block packagedata", "name packagedata",
             "type recarray iviscspec dviscdc cviscref modelname auxspeciesname",
-            "shape (nrhospecies)",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name iviscspec",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name dviscdc",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name cviscref",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name modelname",
-            "type string",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name auxspeciesname",
-            "type string",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "reader urword",
-        ],
-    ]
+            "shape (nrhospecies)", "reader urword"],
+           ["block packagedata", "name iviscspec", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name dviscdc", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name cviscref", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name modelname", "type string",
+            "in_record true", "tagged false", "shape", "reader urword"],
+           ["block packagedata", "name auxspeciesname", "type string",
+            "in_record true", "tagged false", "shape", "reader urword"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        viscref=1.0,
-        temperature_species_name=None,
-        thermal_formulation=None,
-        thermal_a2=10.0,
-        thermal_a3=248.37,
-        thermal_a4=133.15,
-        viscosity_filerecord=None,
-        nviscspecies=None,
-        packagedata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "vsc", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, viscref=1.0,
+                 temperature_species_name=None, thermal_formulation=None,
+                 thermal_a2=10., thermal_a3=248.37, thermal_a4=133.15,
+                 viscosity_filerecord=None, nviscspecies=None,
+                 packagedata=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "vsc", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.viscref = self.build_mfdata("viscref", viscref)
         self.temperature_species_name = self.build_mfdata(
-            "temperature_species_name", temperature_species_name
-        )
-        self.thermal_formulation = self.build_mfdata(
-            "thermal_formulation", thermal_formulation
-        )
+            "temperature_species_name", temperature_species_name)
+        self.thermal_formulation = self.build_mfdata("thermal_formulation",
+                                                     thermal_formulation)
         self.thermal_a2 = self.build_mfdata("thermal_a2", thermal_a2)
         self.thermal_a3 = self.build_mfdata("thermal_a3", thermal_a3)
         self.thermal_a4 = self.build_mfdata("thermal_a4", thermal_a4)
-        self.viscosity_filerecord = self.build_mfdata(
-            "viscosity_filerecord", viscosity_filerecord
-        )
+        self.viscosity_filerecord = self.build_mfdata("viscosity_filerecord",
+                                                      viscosity_filerecord)
         self.nviscspecies = self.build_mfdata("nviscspecies", nviscspecies)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfwel.py b/flopy/mf6/modflow/mfgwfwel.py
index 67da4504c9..3004511055 100644
--- a/flopy/mf6/modflow/mfgwfwel.py
+++ b/flopy/mf6/modflow/mfgwfwel.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -122,304 +122,110 @@ class ModflowGwfwel(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwf6", "wel", "options", "auxiliary"))
-    afrcsv_filerecord = ListTemplateGenerator(
-        ("gwf6", "wel", "options", "afrcsv_filerecord")
-    )
-    ts_filerecord = ListTemplateGenerator(
-        ("gwf6", "wel", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwf6", "wel", "options", "obs_filerecord")
-    )
-    stress_period_data = ListTemplateGenerator(
-        ("gwf6", "wel", "period", "stress_period_data")
-    )
+    auxiliary = ListTemplateGenerator(('gwf6', 'wel', 'options',
+                                       'auxiliary'))
+    afrcsv_filerecord = ListTemplateGenerator(('gwf6', 'wel', 'options',
+                                               'afrcsv_filerecord'))
+    ts_filerecord = ListTemplateGenerator(('gwf6', 'wel', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwf6', 'wel', 'options',
+                                            'obs_filerecord'))
+    stress_period_data = ListTemplateGenerator(('gwf6', 'wel', 'period',
+                                                'stress_period_data'))
     package_abbr = "gwfwel"
     _package_type = "wel"
     dfn_file_name = "gwf-wel.dfn"
 
     dfn = [
-        ["header", "multi-package", "package-type stress-package"],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxmultname",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprpak",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprflow",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ipakcb",
-        ],
-        [
-            "block options",
-            "name auto_flow_reduce",
-            "type double precision",
-            "reader urword",
-            "optional true",
-            "mf6internal flowred",
-        ],
-        [
-            "block options",
-            "name afrcsv_filerecord",
-            "type record auto_flow_reduce_csv fileout afrcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "mf6internal afrcsv_rec",
-        ],
-        [
-            "block options",
-            "name auto_flow_reduce_csv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-            "mf6internal afrcsv",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name afrcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mover",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block dimensions",
-            "name maxbound",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name stress_period_data",
-            "type recarray cellid q aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-            "mf6internal spd",
-        ],
-        [
-            "block period",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name q",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-            "time_series true",
-            "mf6internal auxvar",
-        ],
-        [
-            "block period",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+           ["header", 
+            "multi-package", 
+            "package-type stress-package"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name auxmultname", "type string", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true", "mf6internal iprpak"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal iprflow"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal ipakcb"],
+           ["block options", "name auto_flow_reduce",
+            "type double precision", "reader urword", "optional true",
+            "mf6internal flowred"],
+           ["block options", "name afrcsv_filerecord",
+            "type record auto_flow_reduce_csv fileout afrcsvfile", "shape",
+            "reader urword", "tagged true", "optional true",
+            "mf6internal afrcsv_rec"],
+           ["block options", "name auto_flow_reduce_csv", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false", "mf6internal afrcsv"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name afrcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name mover", "type keyword", "tagged true",
+            "reader urword", "optional true"],
+           ["block dimensions", "name maxbound", "type integer",
+            "reader urword", "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name stress_period_data",
+            "type recarray cellid q aux boundname", "shape (maxbound)",
+            "reader urword", "mf6internal spd"],
+           ["block period", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block period", "name q", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "optional true", "time_series true", "mf6internal auxvar"],
+           ["block period", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        auxiliary=None,
-        auxmultname=None,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        auto_flow_reduce=None,
-        afrcsv_filerecord=None,
-        timeseries=None,
-        observations=None,
-        mover=None,
-        maxbound=None,
-        stress_period_data=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "wel", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, auxiliary=None,
+                 auxmultname=None, boundnames=None, print_input=None,
+                 print_flows=None, save_flows=None, auto_flow_reduce=None,
+                 afrcsv_filerecord=None, timeseries=None, observations=None,
+                 mover=None, maxbound=None, stress_period_data=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "wel", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
@@ -428,23 +234,22 @@ def __init__(
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self.auto_flow_reduce = self.build_mfdata(
-            "auto_flow_reduce", auto_flow_reduce
-        )
-        self.afrcsv_filerecord = self.build_mfdata(
-            "afrcsv_filerecord", afrcsv_filerecord
-        )
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+        self.auto_flow_reduce = self.build_mfdata("auto_flow_reduce",
+                                                  auto_flow_reduce)
+        self.afrcsv_filerecord = self.build_mfdata("afrcsv_filerecord",
+                                                   afrcsv_filerecord)
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.mover = self.build_mfdata("mover", mover)
         self.maxbound = self.build_mfdata("maxbound", maxbound)
-        self.stress_period_data = self.build_mfdata(
-            "stress_period_data", stress_period_data
-        )
+        self.stress_period_data = self.build_mfdata("stress_period_data",
+                                                    stress_period_data)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwt.py b/flopy/mf6/modflow/mfgwt.py
index 5a39c1e55f..5bcdcd7448 100644
--- a/flopy/mf6/modflow/mfgwt.py
+++ b/flopy/mf6/modflow/mfgwt.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfmodel
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -45,6 +45,13 @@ class ModflowGwt(mfmodel.MFModel):
         * save_flows (boolean) keyword to indicate that all model package flow
           terms will be written to the file specified with "BUDGET FILEOUT" in
           Output Control.
+    nc_mesh2d_filerecord : [ncmesh2dfile]
+        * ncmesh2dfile (string) name of the netcdf ugrid layered mesh output
+          file.
+    nc_structured_filerecord : [ncstructfile]
+        * ncstructfile (string) name of the netcdf structured output file.
+    nc_filerecord : [netcdf_filename]
+        * netcdf_filename (string) defines a netcdf input file.
     packages : [ftype, fname, pname]
         * ftype (string) is the file type, which must be one of the following
           character values shown in table ref{table:ftype-gwt}. Ftype may be
@@ -69,67 +76,42 @@ class ModflowGwt(mfmodel.MFModel):
         model_ws : string, strict : boolean) : MFSimulation
         a class method that loads a model from files
     """
+    model_type = 'gwt'
 
-    model_type = "gwt"
-
-    def __init__(
-        self,
-        simulation,
-        modelname="model",
-        model_nam_file=None,
-        version="mf6",
-        exe_name="mf6",
-        model_rel_path=".",
-        list=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        **kwargs,
-    ):
-        super().__init__(
-            simulation,
-            model_type="gwt6",
-            modelname=modelname,
-            model_nam_file=model_nam_file,
-            version=version,
-            exe_name=exe_name,
-            model_rel_path=model_rel_path,
-            **kwargs,
-        )
+    def __init__(self, simulation, modelname='model', model_nam_file=None,
+                 version='mf6', exe_name='mf6', model_rel_path='.', list=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 nc_mesh2d_filerecord=None, nc_structured_filerecord=None,
+                 nc_filerecord=None, **kwargs,):
+        super().__init__(simulation, model_type='gwt6',
+                         modelname=modelname,
+                         model_nam_file=model_nam_file,
+                         version=version, exe_name=exe_name,
+                         model_rel_path=model_rel_path,
+                         **kwargs,)
 
         self.name_file.list.set_data(list)
         self.name_file.print_input.set_data(print_input)
         self.name_file.print_flows.set_data(print_flows)
         self.name_file.save_flows.set_data(save_flows)
+        self.name_file.nc_mesh2d_filerecord.set_data(nc_mesh2d_filerecord)
+        self.name_file.nc_structured_filerecord.set_data(nc_structured_filerecord)
+        self.name_file.nc_filerecord.set_data(nc_filerecord)
 
         self.list = self.name_file.list
         self.print_input = self.name_file.print_input
         self.print_flows = self.name_file.print_flows
         self.save_flows = self.name_file.save_flows
+        self.nc_mesh2d_filerecord = self.name_file.nc_mesh2d_filerecord
+        self.nc_structured_filerecord = self.name_file.nc_structured_filerecord
+        self.nc_filerecord = self.name_file.nc_filerecord
 
     @classmethod
-    def load(
-        cls,
-        simulation,
-        structure,
-        modelname="NewModel",
-        model_nam_file="modflowtest.nam",
-        version="mf6",
-        exe_name="mf6",
-        strict=True,
-        model_rel_path=".",
-        load_only=None,
-    ):
-        return mfmodel.MFModel.load_base(
-            cls,
-            simulation,
-            structure,
-            modelname,
-            model_nam_file,
-            "gwt6",
-            version,
-            exe_name,
-            strict,
-            model_rel_path,
-            load_only,
-        )
+    def load(cls, simulation, structure, modelname='NewModel',
+             model_nam_file='modflowtest.nam', version='mf6',
+             exe_name='mf6', strict=True, model_rel_path='.',
+             load_only=None):
+        return mfmodel.MFModel.load_base(cls, simulation, structure, modelname,
+                                         model_nam_file, 'gwt6', version,
+                                         exe_name, strict, model_rel_path,
+                                         load_only)
diff --git a/flopy/mf6/modflow/mfgwtadv.py b/flopy/mf6/modflow/mfgwtadv.py
index 56e7e10e2e..f0551b038f 100644
--- a/flopy/mf6/modflow/mfgwtadv.py
+++ b/flopy/mf6/modflow/mfgwtadv.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 
 
@@ -20,13 +20,26 @@ class ModflowGwtadv(mfpackage.MFPackage):
         * scheme (string) scheme used to solve the advection term. Can be
           upstream, central, or TVD. If not specified, upstream weighting is
           the default weighting scheme.
+    ats_percel : double
+        * ats_percel (double) fractional cell distance submitted by the ADV
+          Package to the adaptive time stepping (ATS) package. If ATS_PERCEL is
+          specified and the ATS Package is active, a time step calculation will
+          be made for each cell based on flow through the cell and cell
+          properties. The largest time step will be calculated such that the
+          advective fractional cell distance (ATS_PERCEL) is not exceeded for
+          any active cell in the grid. This time-step constraint will be
+          submitted to the ATS Package, perhaps with constraints submitted by
+          other packages, in the calculation of the time step. ATS_PERCEL must
+          be greater than zero. If a value of zero is specified for ATS_PERCEL
+          the program will automatically reset it to an internal no data value
+          to indicate that time steps should not be subject to this constraint.
     filename : String
         File name for this package.
     pname : String
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
@@ -36,32 +49,18 @@ class ModflowGwtadv(mfpackage.MFPackage):
     dfn_file_name = "gwt-adv.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name scheme",
-            "type string",
-            "valid central upstream tvd",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name scheme", "type string",
+            "valid central upstream tvd", "reader urword", "optional true"],
+           ["block options", "name ats_percel", "type double precision",
+            "reader urword", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        scheme=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "adv", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, scheme=None,
+                 ats_percel=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "adv", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.scheme = self.build_mfdata("scheme", scheme)
+        self.ats_percel = self.build_mfdata("ats_percel", ats_percel)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwtapi.py b/flopy/mf6/modflow/mfgwtapi.py
index fdd2b6639f..ec5e1f039c 100644
--- a/flopy/mf6/modflow/mfgwtapi.py
+++ b/flopy/mf6/modflow/mfgwtapi.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -55,138 +55,61 @@ class ModflowGwtapi(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    obs_filerecord = ListTemplateGenerator(
-        ("gwt6", "api", "options", "obs_filerecord")
-    )
+    obs_filerecord = ListTemplateGenerator(('gwt6', 'api', 'options',
+                                            'obs_filerecord'))
     package_abbr = "gwtapi"
     _package_type = "api"
     dfn_file_name = "gwt-api.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mover",
-            "type keyword",
-            "tagged true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block dimensions",
-            "name maxbound",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name mover", "type keyword", "tagged true",
+            "reader urword", "optional true"],
+           ["block dimensions", "name maxbound", "type integer",
+            "reader urword", "optional false"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        observations=None,
-        mover=None,
-        maxbound=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "api", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, boundnames=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 observations=None, mover=None, maxbound=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "api", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.boundnames = self.build_mfdata("boundnames", boundnames)
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.mover = self.build_mfdata("mover", mover)
         self.maxbound = self.build_mfdata("maxbound", maxbound)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwtcnc.py b/flopy/mf6/modflow/mfgwtcnc.py
index 535dc6a352..1d42293d7a 100644
--- a/flopy/mf6/modflow/mfgwtcnc.py
+++ b/flopy/mf6/modflow/mfgwtcnc.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -97,244 +97,88 @@ class ModflowGwtcnc(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwt6", "cnc", "options", "auxiliary"))
-    ts_filerecord = ListTemplateGenerator(
-        ("gwt6", "cnc", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwt6", "cnc", "options", "obs_filerecord")
-    )
-    stress_period_data = ListTemplateGenerator(
-        ("gwt6", "cnc", "period", "stress_period_data")
-    )
+    auxiliary = ListTemplateGenerator(('gwt6', 'cnc', 'options',
+                                       'auxiliary'))
+    ts_filerecord = ListTemplateGenerator(('gwt6', 'cnc', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwt6', 'cnc', 'options',
+                                            'obs_filerecord'))
+    stress_period_data = ListTemplateGenerator(('gwt6', 'cnc', 'period',
+                                                'stress_period_data'))
     package_abbr = "gwtcnc"
     _package_type = "cnc"
     dfn_file_name = "gwt-cnc.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxmultname",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprflow",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ipakcb",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprpak",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name maxbound",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name stress_period_data",
-            "type recarray cellid conc aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-            "mf6internal spd",
-        ],
-        [
-            "block period",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name conc",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-            "mf6internal tspvar",
-        ],
-        [
-            "block period",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-            "time_series true",
-            "mf6internal auxvar",
-        ],
-        [
-            "block period",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+           ["header", 
+            "multi-package", ],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name auxmultname", "type string", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true", "mf6internal iprflow"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal ipakcb"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal iprpak"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block dimensions", "name maxbound", "type integer",
+            "reader urword", "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name stress_period_data",
+            "type recarray cellid conc aux boundname", "shape (maxbound)",
+            "reader urword", "mf6internal spd"],
+           ["block period", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block period", "name conc", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true", "mf6internal tspvar"],
+           ["block period", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "optional true", "time_series true", "mf6internal auxvar"],
+           ["block period", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        auxiliary=None,
-        auxmultname=None,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        timeseries=None,
-        observations=None,
-        maxbound=None,
-        stress_period_data=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "cnc", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, auxiliary=None,
+                 auxmultname=None, boundnames=None, print_input=None,
+                 print_flows=None, save_flows=None, timeseries=None,
+                 observations=None, maxbound=None, stress_period_data=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "cnc", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
@@ -343,16 +187,17 @@ def __init__(
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.maxbound = self.build_mfdata("maxbound", maxbound)
-        self.stress_period_data = self.build_mfdata(
-            "stress_period_data", stress_period_data
-        )
+        self.stress_period_data = self.build_mfdata("stress_period_data",
+                                                    stress_period_data)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwtdis.py b/flopy/mf6/modflow/mfgwtdis.py
index f1b09397b8..f0100e6eeb 100644
--- a/flopy/mf6/modflow/mfgwtdis.py
+++ b/flopy/mf6/modflow/mfgwtdis.py
@@ -1,8 +1,8 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
-from ..data.mfdatautil import ArrayTemplateGenerator
+from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
 
 class ModflowGwtdis(mfpackage.MFPackage):
@@ -45,6 +45,14 @@ class ModflowGwtdis(mfpackage.MFPackage):
     export_array_ascii : boolean
         * export_array_ascii (boolean) keyword that specifies input griddata
           arrays should be written to layered ascii output files.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
+    packagedata : {varname:data} or packagedata data
+        * Contains data for the ncf package. Data can be stored in a dictionary
+          containing data for the ncf package with variable names as keys and
+          package data as values. Data just for the packagedata variable is
+          also acceptable. See ncf package documentation for more information.
     nlay : integer
         * nlay (integer) is the number of layers in the model grid.
     nrow : integer
@@ -78,160 +86,81 @@ class ModflowGwtdis(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    delr = ArrayTemplateGenerator(("gwt6", "dis", "griddata", "delr"))
-    delc = ArrayTemplateGenerator(("gwt6", "dis", "griddata", "delc"))
-    top = ArrayTemplateGenerator(("gwt6", "dis", "griddata", "top"))
-    botm = ArrayTemplateGenerator(("gwt6", "dis", "griddata", "botm"))
-    idomain = ArrayTemplateGenerator(("gwt6", "dis", "griddata", "idomain"))
+    ncf_filerecord = ListTemplateGenerator(('gwt6', 'dis', 'options',
+                                            'ncf_filerecord'))
+    delr = ArrayTemplateGenerator(('gwt6', 'dis', 'griddata', 'delr'))
+    delc = ArrayTemplateGenerator(('gwt6', 'dis', 'griddata', 'delc'))
+    top = ArrayTemplateGenerator(('gwt6', 'dis', 'griddata', 'top'))
+    botm = ArrayTemplateGenerator(('gwt6', 'dis', 'griddata', 'botm'))
+    idomain = ArrayTemplateGenerator(('gwt6', 'dis', 'griddata',
+                                      'idomain'))
     package_abbr = "gwtdis"
     _package_type = "dis"
     dfn_file_name = "gwt-dis.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name length_units",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name nogrb",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name xorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name yorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name angrot",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block dimensions",
-            "name nlay",
-            "type integer",
-            "reader urword",
-            "optional false",
-            "default_value 1",
-        ],
-        [
-            "block dimensions",
-            "name nrow",
-            "type integer",
-            "reader urword",
-            "optional false",
-            "default_value 2",
-        ],
-        [
-            "block dimensions",
-            "name ncol",
-            "type integer",
-            "reader urword",
-            "optional false",
-            "default_value 2",
-        ],
-        [
-            "block griddata",
-            "name delr",
-            "type double precision",
-            "shape (ncol)",
-            "reader readarray",
-            "default_value 1.0",
-        ],
-        [
-            "block griddata",
-            "name delc",
-            "type double precision",
-            "shape (nrow)",
-            "reader readarray",
-            "default_value 1.0",
-        ],
-        [
-            "block griddata",
-            "name top",
-            "type double precision",
-            "shape (ncol, nrow)",
-            "reader readarray",
-            "default_value 1.0",
-        ],
-        [
-            "block griddata",
-            "name botm",
-            "type double precision",
-            "shape (ncol, nrow, nlay)",
-            "reader readarray",
-            "layered true",
-            "default_value 0.",
-        ],
-        [
-            "block griddata",
-            "name idomain",
-            "type integer",
-            "shape (ncol, nrow, nlay)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name length_units", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name nogrb", "type keyword", "reader urword",
+            "optional true"],
+           ["block options", "name xorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name yorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name angrot", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc",
+            "extended true"],
+           ["block options", "name ncf_filerecord",
+            "type record ncf6 filein ncf6_filename", "reader urword",
+            "tagged true", "optional true", "construct_package ncf",
+            "construct_data packagedata", "parameter_name packagedata"],
+           ["block options", "name ncf6", "type keyword", "in_record true",
+            "reader urword", "tagged true", "optional false", "extended true"],
+           ["block options", "name filein", "type keyword",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ncf6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false", "extended true"],
+           ["block dimensions", "name nlay", "type integer",
+            "reader urword", "optional false", "default_value 1"],
+           ["block dimensions", "name nrow", "type integer",
+            "reader urword", "optional false", "default_value 2"],
+           ["block dimensions", "name ncol", "type integer",
+            "reader urword", "optional false", "default_value 2"],
+           ["block griddata", "name delr", "type double precision",
+            "shape (ncol)", "reader readarray", "netcdf true",
+            "default_value 1.0"],
+           ["block griddata", "name delc", "type double precision",
+            "shape (nrow)", "reader readarray", "netcdf true",
+            "default_value 1.0"],
+           ["block griddata", "name top", "type double precision",
+            "shape (ncol, nrow)", "reader readarray", "netcdf true",
+            "default_value 1.0"],
+           ["block griddata", "name botm", "type double precision",
+            "shape (ncol, nrow, nlay)", "reader readarray", "netcdf true",
+            "layered true", "default_value 0."],
+           ["block griddata", "name idomain", "type integer",
+            "shape (ncol, nrow, nlay)", "reader readarray", "layered true",
+            "netcdf true", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        length_units=None,
-        nogrb=None,
-        xorigin=None,
-        yorigin=None,
-        angrot=None,
-        export_array_ascii=None,
-        nlay=1,
-        nrow=2,
-        ncol=2,
-        delr=1.0,
-        delc=1.0,
-        top=1.0,
-        botm=0.0,
-        idomain=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "dis", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, length_units=None,
+                 nogrb=None, xorigin=None, yorigin=None, angrot=None,
+                 export_array_ascii=None, export_array_netcdf=None,
+                 packagedata=None, nlay=1, nrow=2, ncol=2, delr=1.0, delc=1.0,
+                 top=1.0, botm=0., idomain=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(model, "dis", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.length_units = self.build_mfdata("length_units", length_units)
@@ -239,9 +168,15 @@ def __init__(
         self.xorigin = self.build_mfdata("xorigin", xorigin)
         self.yorigin = self.build_mfdata("yorigin", yorigin)
         self.angrot = self.build_mfdata("angrot", angrot)
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
+        self._ncf_filerecord = self.build_mfdata("ncf_filerecord",
+                                                 None)
+        self._ncf_package = self.build_child_package("ncf", packagedata,
+                                                     "packagedata",
+                                                     self._ncf_filerecord)
         self.nlay = self.build_mfdata("nlay", nlay)
         self.nrow = self.build_mfdata("nrow", nrow)
         self.ncol = self.build_mfdata("ncol", ncol)
diff --git a/flopy/mf6/modflow/mfgwtdisu.py b/flopy/mf6/modflow/mfgwtdisu.py
index fbd2613b0f..0385b6cd47 100644
--- a/flopy/mf6/modflow/mfgwtdisu.py
+++ b/flopy/mf6/modflow/mfgwtdisu.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -184,312 +184,118 @@ class ModflowGwtdisu(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    top = ArrayTemplateGenerator(("gwt6", "disu", "griddata", "top"))
-    bot = ArrayTemplateGenerator(("gwt6", "disu", "griddata", "bot"))
-    area = ArrayTemplateGenerator(("gwt6", "disu", "griddata", "area"))
-    idomain = ArrayTemplateGenerator(("gwt6", "disu", "griddata", "idomain"))
-    iac = ArrayTemplateGenerator(("gwt6", "disu", "connectiondata", "iac"))
-    ja = ArrayTemplateGenerator(("gwt6", "disu", "connectiondata", "ja"))
-    ihc = ArrayTemplateGenerator(("gwt6", "disu", "connectiondata", "ihc"))
-    cl12 = ArrayTemplateGenerator(("gwt6", "disu", "connectiondata", "cl12"))
-    hwva = ArrayTemplateGenerator(("gwt6", "disu", "connectiondata", "hwva"))
-    angldegx = ArrayTemplateGenerator(
-        ("gwt6", "disu", "connectiondata", "angldegx")
-    )
-    vertices = ListTemplateGenerator(("gwt6", "disu", "vertices", "vertices"))
-    cell2d = ListTemplateGenerator(("gwt6", "disu", "cell2d", "cell2d"))
+    top = ArrayTemplateGenerator(('gwt6', 'disu', 'griddata', 'top'))
+    bot = ArrayTemplateGenerator(('gwt6', 'disu', 'griddata', 'bot'))
+    area = ArrayTemplateGenerator(('gwt6', 'disu', 'griddata', 'area'))
+    idomain = ArrayTemplateGenerator(('gwt6', 'disu', 'griddata',
+                                      'idomain'))
+    iac = ArrayTemplateGenerator(('gwt6', 'disu', 'connectiondata',
+                                  'iac'))
+    ja = ArrayTemplateGenerator(('gwt6', 'disu', 'connectiondata',
+                                 'ja'))
+    ihc = ArrayTemplateGenerator(('gwt6', 'disu', 'connectiondata',
+                                  'ihc'))
+    cl12 = ArrayTemplateGenerator(('gwt6', 'disu', 'connectiondata',
+                                   'cl12'))
+    hwva = ArrayTemplateGenerator(('gwt6', 'disu', 'connectiondata',
+                                   'hwva'))
+    angldegx = ArrayTemplateGenerator(('gwt6', 'disu', 'connectiondata',
+                                       'angldegx'))
+    vertices = ListTemplateGenerator(('gwt6', 'disu', 'vertices',
+                                      'vertices'))
+    cell2d = ListTemplateGenerator(('gwt6', 'disu', 'cell2d', 'cell2d'))
     package_abbr = "gwtdisu"
     _package_type = "disu"
     dfn_file_name = "gwt-disu.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name length_units",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name nogrb",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name xorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name yorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name angrot",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name vertical_offset_tolerance",
-            "type double precision",
-            "reader urword",
-            "optional true",
-            "default_value 0.0",
-            "mf6internal voffsettol",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block dimensions",
-            "name nodes",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name nja",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name nvert",
-            "type integer",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name top",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-        ],
-        [
-            "block griddata",
-            "name bot",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-        ],
-        [
-            "block griddata",
-            "name area",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-        ],
-        [
-            "block griddata",
-            "name idomain",
-            "type integer",
-            "shape (nodes)",
-            "reader readarray",
-            "layered false",
-            "optional true",
-        ],
-        [
-            "block connectiondata",
-            "name iac",
-            "type integer",
-            "shape (nodes)",
-            "reader readarray",
-        ],
-        [
-            "block connectiondata",
-            "name ja",
-            "type integer",
-            "shape (nja)",
-            "reader readarray",
-            "numeric_index true",
-            "jagged_array iac",
-        ],
-        [
-            "block connectiondata",
-            "name ihc",
-            "type integer",
-            "shape (nja)",
-            "reader readarray",
-            "jagged_array iac",
-        ],
-        [
-            "block connectiondata",
-            "name cl12",
-            "type double precision",
-            "shape (nja)",
-            "reader readarray",
-            "jagged_array iac",
-        ],
-        [
-            "block connectiondata",
-            "name hwva",
-            "type double precision",
-            "shape (nja)",
-            "reader readarray",
-            "jagged_array iac",
-        ],
-        [
-            "block connectiondata",
-            "name angldegx",
-            "type double precision",
-            "optional true",
-            "shape (nja)",
-            "reader readarray",
-            "jagged_array iac",
-        ],
-        [
-            "block vertices",
-            "name vertices",
-            "type recarray iv xv yv",
-            "shape (nvert)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block vertices",
-            "name iv",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block vertices",
-            "name xv",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block vertices",
-            "name yv",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name cell2d",
-            "type recarray icell2d xc yc ncvert icvert",
-            "shape (nodes)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block cell2d",
-            "name icell2d",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block cell2d",
-            "name xc",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name yc",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name ncvert",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name icvert",
-            "type integer",
-            "shape (ncvert)",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name length_units", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name nogrb", "type keyword", "reader urword",
+            "optional true"],
+           ["block options", "name xorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name yorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name angrot", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name vertical_offset_tolerance",
+            "type double precision", "reader urword", "optional true",
+            "default_value 0.0", "mf6internal voffsettol"],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block dimensions", "name nodes", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name nja", "type integer", "reader urword",
+            "optional false"],
+           ["block dimensions", "name nvert", "type integer",
+            "reader urword", "optional true"],
+           ["block griddata", "name top", "type double precision",
+            "shape (nodes)", "reader readarray"],
+           ["block griddata", "name bot", "type double precision",
+            "shape (nodes)", "reader readarray"],
+           ["block griddata", "name area", "type double precision",
+            "shape (nodes)", "reader readarray"],
+           ["block griddata", "name idomain", "type integer",
+            "shape (nodes)", "reader readarray", "layered false",
+            "optional true"],
+           ["block connectiondata", "name iac", "type integer",
+            "shape (nodes)", "reader readarray"],
+           ["block connectiondata", "name ja", "type integer",
+            "shape (nja)", "reader readarray", "numeric_index true",
+            "jagged_array iac"],
+           ["block connectiondata", "name ihc", "type integer",
+            "shape (nja)", "reader readarray", "jagged_array iac"],
+           ["block connectiondata", "name cl12", "type double precision",
+            "shape (nja)", "reader readarray", "jagged_array iac"],
+           ["block connectiondata", "name hwva", "type double precision",
+            "shape (nja)", "reader readarray", "jagged_array iac"],
+           ["block connectiondata", "name angldegx",
+            "type double precision", "optional true", "shape (nja)",
+            "reader readarray", "jagged_array iac"],
+           ["block vertices", "name vertices", "type recarray iv xv yv",
+            "shape (nvert)", "reader urword", "optional true"],
+           ["block vertices", "name iv", "type integer", "in_record true",
+            "tagged false", "reader urword", "optional false",
+            "numeric_index true"],
+           ["block vertices", "name xv", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block vertices", "name yv", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name cell2d",
+            "type recarray icell2d xc yc ncvert icvert", "shape (nodes)",
+            "reader urword", "optional true"],
+           ["block cell2d", "name icell2d", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"],
+           ["block cell2d", "name xc", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name yc", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name ncvert", "type integer", "in_record true",
+            "tagged false", "reader urword", "optional false"],
+           ["block cell2d", "name icvert", "type integer", "shape (ncvert)",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        length_units=None,
-        nogrb=None,
-        xorigin=None,
-        yorigin=None,
-        angrot=None,
-        vertical_offset_tolerance=0.0,
-        export_array_ascii=None,
-        nodes=None,
-        nja=None,
-        nvert=None,
-        top=None,
-        bot=None,
-        area=None,
-        idomain=None,
-        iac=None,
-        ja=None,
-        ihc=None,
-        cl12=None,
-        hwva=None,
-        angldegx=None,
-        vertices=None,
-        cell2d=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "disu", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, length_units=None,
+                 nogrb=None, xorigin=None, yorigin=None, angrot=None,
+                 vertical_offset_tolerance=0.0, export_array_ascii=None,
+                 nodes=None, nja=None, nvert=None, top=None, bot=None,
+                 area=None, idomain=None, iac=None, ja=None, ihc=None,
+                 cl12=None, hwva=None, angldegx=None, vertices=None,
+                 cell2d=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "disu", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.length_units = self.build_mfdata("length_units", length_units)
@@ -498,11 +304,9 @@ def __init__(
         self.yorigin = self.build_mfdata("yorigin", yorigin)
         self.angrot = self.build_mfdata("angrot", angrot)
         self.vertical_offset_tolerance = self.build_mfdata(
-            "vertical_offset_tolerance", vertical_offset_tolerance
-        )
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+            "vertical_offset_tolerance", vertical_offset_tolerance)
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
         self.nodes = self.build_mfdata("nodes", nodes)
         self.nja = self.build_mfdata("nja", nja)
         self.nvert = self.build_mfdata("nvert", nvert)
diff --git a/flopy/mf6/modflow/mfgwtdisv.py b/flopy/mf6/modflow/mfgwtdisv.py
index 05ad0b76fb..efc6872cb3 100644
--- a/flopy/mf6/modflow/mfgwtdisv.py
+++ b/flopy/mf6/modflow/mfgwtdisv.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -48,6 +48,14 @@ class ModflowGwtdisv(mfpackage.MFPackage):
     export_array_ascii : boolean
         * export_array_ascii (boolean) keyword that specifies input griddata
           arrays should be written to layered ascii output files.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
+    packagedata : {varname:data} or packagedata data
+        * Contains data for the ncf package. Data can be stored in a dictionary
+          containing data for the ncf package with variable names as keys and
+          package data as values. Data just for the packagedata variable is
+          also acceptable. See ncf package documentation for more information.
     nlay : integer
         * nlay (integer) is the number of layers in the model grid.
     ncpl : integer
@@ -106,231 +114,103 @@ class ModflowGwtdisv(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    top = ArrayTemplateGenerator(("gwt6", "disv", "griddata", "top"))
-    botm = ArrayTemplateGenerator(("gwt6", "disv", "griddata", "botm"))
-    idomain = ArrayTemplateGenerator(("gwt6", "disv", "griddata", "idomain"))
-    vertices = ListTemplateGenerator(("gwt6", "disv", "vertices", "vertices"))
-    cell2d = ListTemplateGenerator(("gwt6", "disv", "cell2d", "cell2d"))
+    ncf_filerecord = ListTemplateGenerator(('gwt6', 'disv', 'options',
+                                            'ncf_filerecord'))
+    top = ArrayTemplateGenerator(('gwt6', 'disv', 'griddata', 'top'))
+    botm = ArrayTemplateGenerator(('gwt6', 'disv', 'griddata', 'botm'))
+    idomain = ArrayTemplateGenerator(('gwt6', 'disv', 'griddata',
+                                      'idomain'))
+    vertices = ListTemplateGenerator(('gwt6', 'disv', 'vertices',
+                                      'vertices'))
+    cell2d = ListTemplateGenerator(('gwt6', 'disv', 'cell2d', 'cell2d'))
     package_abbr = "gwtdisv"
     _package_type = "disv"
     dfn_file_name = "gwt-disv.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name length_units",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name nogrb",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name xorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name yorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name angrot",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block dimensions",
-            "name nlay",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name ncpl",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name nvert",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block griddata",
-            "name top",
-            "type double precision",
-            "shape (ncpl)",
-            "reader readarray",
-        ],
-        [
-            "block griddata",
-            "name botm",
-            "type double precision",
-            "shape (ncpl, nlay)",
-            "reader readarray",
-            "layered true",
-        ],
-        [
-            "block griddata",
-            "name idomain",
-            "type integer",
-            "shape (ncpl, nlay)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block vertices",
-            "name vertices",
-            "type recarray iv xv yv",
-            "shape (nvert)",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block vertices",
-            "name iv",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block vertices",
-            "name xv",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block vertices",
-            "name yv",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name cell2d",
-            "type recarray icell2d xc yc ncvert icvert",
-            "shape (ncpl)",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name icell2d",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block cell2d",
-            "name xc",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name yc",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name ncvert",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name icvert",
-            "type integer",
-            "shape (ncvert)",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name length_units", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name nogrb", "type keyword", "reader urword",
+            "optional true"],
+           ["block options", "name xorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name yorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name angrot", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc",
+            "extended true"],
+           ["block options", "name ncf_filerecord",
+            "type record ncf6 filein ncf6_filename", "reader urword",
+            "tagged true", "optional true", "construct_package ncf",
+            "construct_data packagedata", "parameter_name packagedata"],
+           ["block options", "name ncf6", "type keyword", "in_record true",
+            "reader urword", "tagged true", "optional false", "extended true"],
+           ["block options", "name filein", "type keyword",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ncf6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false", "extended true"],
+           ["block dimensions", "name nlay", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name ncpl", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name nvert", "type integer",
+            "reader urword", "optional false"],
+           ["block griddata", "name top", "type double precision",
+            "shape (ncpl)", "reader readarray", "netcdf true"],
+           ["block griddata", "name botm", "type double precision",
+            "shape (ncpl, nlay)", "reader readarray", "layered true",
+            "netcdf true"],
+           ["block griddata", "name idomain", "type integer",
+            "shape (ncpl, nlay)", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block vertices", "name vertices", "type recarray iv xv yv",
+            "shape (nvert)", "reader urword", "optional false"],
+           ["block vertices", "name iv", "type integer", "in_record true",
+            "tagged false", "reader urword", "optional false",
+            "numeric_index true"],
+           ["block vertices", "name xv", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block vertices", "name yv", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name cell2d",
+            "type recarray icell2d xc yc ncvert icvert", "shape (ncpl)",
+            "reader urword", "optional false"],
+           ["block cell2d", "name icell2d", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"],
+           ["block cell2d", "name xc", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name yc", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name ncvert", "type integer", "in_record true",
+            "tagged false", "reader urword", "optional false"],
+           ["block cell2d", "name icvert", "type integer", "shape (ncvert)",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        length_units=None,
-        nogrb=None,
-        xorigin=None,
-        yorigin=None,
-        angrot=None,
-        export_array_ascii=None,
-        nlay=None,
-        ncpl=None,
-        nvert=None,
-        top=None,
-        botm=None,
-        idomain=None,
-        vertices=None,
-        cell2d=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "disv", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, length_units=None,
+                 nogrb=None, xorigin=None, yorigin=None, angrot=None,
+                 export_array_ascii=None, export_array_netcdf=None,
+                 packagedata=None, nlay=None, ncpl=None, nvert=None, top=None,
+                 botm=None, idomain=None, vertices=None, cell2d=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "disv", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.length_units = self.build_mfdata("length_units", length_units)
@@ -338,9 +218,15 @@ def __init__(
         self.xorigin = self.build_mfdata("xorigin", xorigin)
         self.yorigin = self.build_mfdata("yorigin", yorigin)
         self.angrot = self.build_mfdata("angrot", angrot)
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
+        self._ncf_filerecord = self.build_mfdata("ncf_filerecord",
+                                                 None)
+        self._ncf_package = self.build_child_package("ncf", packagedata,
+                                                     "packagedata",
+                                                     self._ncf_filerecord)
         self.nlay = self.build_mfdata("nlay", nlay)
         self.ncpl = self.build_mfdata("ncpl", ncpl)
         self.nvert = self.build_mfdata("nvert", nvert)
diff --git a/flopy/mf6/modflow/mfgwtdsp.py b/flopy/mf6/modflow/mfgwtdsp.py
index 93d15b3ca4..578bd5463c 100644
--- a/flopy/mf6/modflow/mfgwtdsp.py
+++ b/flopy/mf6/modflow/mfgwtdsp.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator
 
@@ -31,6 +31,9 @@ class ModflowGwtdsp(mfpackage.MFPackage):
     export_array_ascii : boolean
         * export_array_ascii (boolean) keyword that specifies input griddata
           arrays should be written to layered ascii output files.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
     diffc : [double]
         * diffc (double) effective molecular diffusion coefficient.
     alh : [double]
@@ -73,132 +76,65 @@ class ModflowGwtdsp(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    diffc = ArrayTemplateGenerator(("gwt6", "dsp", "griddata", "diffc"))
-    alh = ArrayTemplateGenerator(("gwt6", "dsp", "griddata", "alh"))
-    alv = ArrayTemplateGenerator(("gwt6", "dsp", "griddata", "alv"))
-    ath1 = ArrayTemplateGenerator(("gwt6", "dsp", "griddata", "ath1"))
-    ath2 = ArrayTemplateGenerator(("gwt6", "dsp", "griddata", "ath2"))
-    atv = ArrayTemplateGenerator(("gwt6", "dsp", "griddata", "atv"))
+    diffc = ArrayTemplateGenerator(('gwt6', 'dsp', 'griddata', 'diffc'))
+    alh = ArrayTemplateGenerator(('gwt6', 'dsp', 'griddata', 'alh'))
+    alv = ArrayTemplateGenerator(('gwt6', 'dsp', 'griddata', 'alv'))
+    ath1 = ArrayTemplateGenerator(('gwt6', 'dsp', 'griddata', 'ath1'))
+    ath2 = ArrayTemplateGenerator(('gwt6', 'dsp', 'griddata', 'ath2'))
+    atv = ArrayTemplateGenerator(('gwt6', 'dsp', 'griddata', 'atv'))
     package_abbr = "gwtdsp"
     _package_type = "dsp"
     dfn_file_name = "gwt-dsp.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name xt3d_off",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name xt3d_rhs",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block griddata",
-            "name diffc",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name alh",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name alv",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name ath1",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name ath2",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name atv",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name xt3d_off", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name xt3d_rhs", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc",
+            "extended true"],
+           ["block griddata", "name diffc", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block griddata", "name alh", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block griddata", "name alv", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block griddata", "name ath1", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block griddata", "name ath2", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "netcdf true", "optional true"],
+           ["block griddata", "name atv", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "netcdf true", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        xt3d_off=None,
-        xt3d_rhs=None,
-        export_array_ascii=None,
-        diffc=None,
-        alh=None,
-        alv=None,
-        ath1=None,
-        ath2=None,
-        atv=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "dsp", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, xt3d_off=None,
+                 xt3d_rhs=None, export_array_ascii=None,
+                 export_array_netcdf=None, diffc=None, alh=None, alv=None,
+                 ath1=None, ath2=None, atv=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(model, "dsp", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.xt3d_off = self.build_mfdata("xt3d_off", xt3d_off)
         self.xt3d_rhs = self.build_mfdata("xt3d_rhs", xt3d_rhs)
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
         self.diffc = self.build_mfdata("diffc", diffc)
         self.alh = self.build_mfdata("alh", alh)
         self.alv = self.build_mfdata("alv", alv)
diff --git a/flopy/mf6/modflow/mfgwtfmi.py b/flopy/mf6/modflow/mfgwtfmi.py
index 5951f3b464..ba951b6887 100644
--- a/flopy/mf6/modflow/mfgwtfmi.py
+++ b/flopy/mf6/modflow/mfgwtfmi.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -47,91 +47,43 @@ class ModflowGwtfmi(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    packagedata = ListTemplateGenerator(
-        ("gwt6", "fmi", "packagedata", "packagedata")
-    )
+    packagedata = ListTemplateGenerator(('gwt6', 'fmi', 'packagedata',
+                                         'packagedata'))
     package_abbr = "gwtfmi"
     _package_type = "fmi"
     dfn_file_name = "gwt-fmi.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name flow_imbalance_correction",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
-            "type recarray flowtype filein fname",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name flowtype",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name fname",
-            "in_record true",
-            "type string",
-            "preserve_case true",
-            "tagged false",
-            "reader urword",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name flow_imbalance_correction",
+            "type keyword", "reader urword", "optional true"],
+           ["block packagedata", "name packagedata",
+            "type recarray flowtype filein fname", "reader urword",
+            "optional false"],
+           ["block packagedata", "name flowtype", "in_record true",
+            "type string", "tagged false", "reader urword"],
+           ["block packagedata", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block packagedata", "name fname", "in_record true",
+            "type string", "preserve_case true", "tagged false",
+            "reader urword"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        save_flows=None,
-        flow_imbalance_correction=None,
-        packagedata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "fmi", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, save_flows=None,
+                 flow_imbalance_correction=None, packagedata=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "fmi", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.save_flows = self.build_mfdata("save_flows", save_flows)
         self.flow_imbalance_correction = self.build_mfdata(
-            "flow_imbalance_correction", flow_imbalance_correction
-        )
+            "flow_imbalance_correction", flow_imbalance_correction)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwtgwt.py b/flopy/mf6/modflow/mfgwtgwt.py
index baa4fc3cc1..217e4b15fa 100644
--- a/flopy/mf6/modflow/mfgwtgwt.py
+++ b/flopy/mf6/modflow/mfgwtgwt.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -144,314 +144,109 @@ class ModflowGwtgwt(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwtgwt", "options", "auxiliary"))
-    mvt_filerecord = ListTemplateGenerator(
-        ("gwtgwt", "options", "mvt_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwtgwt", "options", "obs_filerecord")
-    )
-    exchangedata = ListTemplateGenerator(
-        ("gwtgwt", "exchangedata", "exchangedata")
-    )
+    auxiliary = ListTemplateGenerator(('gwtgwt', 'options', 'auxiliary'))
+    mvt_filerecord = ListTemplateGenerator(('gwtgwt', 'options',
+                                            'mvt_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwtgwt', 'options',
+                                            'obs_filerecord'))
+    exchangedata = ListTemplateGenerator(('gwtgwt', 'exchangedata',
+                                          'exchangedata'))
     package_abbr = "gwtgwt"
     _package_type = "gwtgwt"
     dfn_file_name = "exg-gwtgwt.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name gwfmodelname1",
-            "type string",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name gwfmodelname2",
-            "type string",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprpak",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal iprflow",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal ipakcb",
-        ],
-        [
-            "block options",
-            "name adv_scheme",
-            "type string",
-            "valid upstream central tvd",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name dsp_xt3d_off",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name dsp_xt3d_rhs",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mvt_filerecord",
-            "type record mvt6 filein mvt6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package mvt",
-            "construct_data perioddata",
-            "parameter_name perioddata",
-        ],
-        [
-            "block options",
-            "name mvt6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name mvt6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name dev_interfacemodel_on",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal dev_ifmod_on",
-        ],
-        [
-            "block dimensions",
-            "name nexg",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name exchangedata",
+           ["header", 
+            "multi-package", ],
+           ["block options", "name gwfmodelname1", "type string",
+            "reader urword", "optional false"],
+           ["block options", "name gwfmodelname2", "type string",
+            "reader urword", "optional false"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true", "mf6internal iprpak"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal iprflow"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true", "mf6internal ipakcb"],
+           ["block options", "name adv_scheme", "type string",
+            "valid upstream central tvd", "reader urword", "optional true"],
+           ["block options", "name dsp_xt3d_off", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name dsp_xt3d_rhs", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name mvt_filerecord",
+            "type record mvt6 filein mvt6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package mvt",
+            "construct_data perioddata", "parameter_name perioddata"],
+           ["block options", "name mvt6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name mvt6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block options", "name dev_interfacemodel_on", "type keyword",
+            "reader urword", "optional true", "mf6internal dev_ifmod_on"],
+           ["block dimensions", "name nexg", "type integer",
+            "reader urword", "optional false"],
+           ["block exchangedata", "name exchangedata",
             "type recarray cellidm1 cellidm2 ihc cl1 cl2 hwva aux boundname",
-            "shape (nexg)",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name cellidm1",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block exchangedata",
-            "name cellidm2",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block exchangedata",
-            "name ihc",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name cl1",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name cl2",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name hwva",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block exchangedata",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-            "mf6internal auxvar",
-        ],
-        [
-            "block exchangedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+            "shape (nexg)", "reader urword", "optional false"],
+           ["block exchangedata", "name cellidm1", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"],
+           ["block exchangedata", "name cellidm2", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"],
+           ["block exchangedata", "name ihc", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block exchangedata", "name cl1", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block exchangedata", "name cl2", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block exchangedata", "name hwva", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block exchangedata", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "optional true", "mf6internal auxvar"],
+           ["block exchangedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"]]
 
-    def __init__(
-        self,
-        simulation,
-        loading_package=False,
-        exgtype="GWT6-GWT6",
-        exgmnamea=None,
-        exgmnameb=None,
-        gwfmodelname1=None,
-        gwfmodelname2=None,
-        auxiliary=None,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        adv_scheme=None,
-        dsp_xt3d_off=None,
-        dsp_xt3d_rhs=None,
-        filein=None,
-        perioddata=None,
-        observations=None,
-        dev_interfacemodel_on=None,
-        nexg=None,
-        exchangedata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            simulation, "gwtgwt", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, simulation, loading_package=False, exgtype="GWT6-GWT6",
+                 exgmnamea=None, exgmnameb=None, gwfmodelname1=None,
+                 gwfmodelname2=None, auxiliary=None, boundnames=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 adv_scheme=None, dsp_xt3d_off=None, dsp_xt3d_rhs=None,
+                 filein=None, perioddata=None, observations=None,
+                 dev_interfacemodel_on=None, nexg=None, exchangedata=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(simulation, "gwtgwt", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.exgtype = exgtype
@@ -473,17 +268,18 @@ def __init__(
         self.dsp_xt3d_off = self.build_mfdata("dsp_xt3d_off", dsp_xt3d_off)
         self.dsp_xt3d_rhs = self.build_mfdata("dsp_xt3d_rhs", dsp_xt3d_rhs)
         self.filein = self.build_mfdata("filein", filein)
-        self._mvt_filerecord = self.build_mfdata("mvt_filerecord", None)
-        self._mvt_package = self.build_child_package(
-            "mvt", perioddata, "perioddata", self._mvt_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
-        self.dev_interfacemodel_on = self.build_mfdata(
-            "dev_interfacemodel_on", dev_interfacemodel_on
-        )
+        self._mvt_filerecord = self.build_mfdata("mvt_filerecord",
+                                                 None)
+        self._mvt_package = self.build_child_package("mvt", perioddata,
+                                                     "perioddata",
+                                                     self._mvt_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
+        self.dev_interfacemodel_on = self.build_mfdata("dev_interfacemodel_on",
+                                                       dev_interfacemodel_on)
         self.nexg = self.build_mfdata("nexg", nexg)
         self.exchangedata = self.build_mfdata("exchangedata", exchangedata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwtic.py b/flopy/mf6/modflow/mfgwtic.py
index b6fb52a54c..050c9b5b20 100644
--- a/flopy/mf6/modflow/mfgwtic.py
+++ b/flopy/mf6/modflow/mfgwtic.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator
 
@@ -20,6 +20,9 @@ class ModflowGwtic(mfpackage.MFPackage):
     export_array_ascii : boolean
         * export_array_ascii (boolean) keyword that specifies input griddata
           arrays should be written to layered ascii output files.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
     strt : [double]
         * strt (double) is the initial (starting) concentration---that is,
           concentration at the beginning of the GWT Model simulation. STRT must
@@ -31,56 +34,36 @@ class ModflowGwtic(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    strt = ArrayTemplateGenerator(("gwt6", "ic", "griddata", "strt"))
+    strt = ArrayTemplateGenerator(('gwt6', 'ic', 'griddata', 'strt'))
     package_abbr = "gwtic"
     _package_type = "ic"
     dfn_file_name = "gwt-ic.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block griddata",
-            "name strt",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "default_value 0.0",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc",
+            "extended true"],
+           ["block griddata", "name strt", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "netcdf true", "default_value 0.0"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        export_array_ascii=None,
-        strt=0.0,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "ic", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, export_array_ascii=None,
+                 export_array_netcdf=None, strt=0.0, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(model, "ic", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
         self.strt = self.build_mfdata("strt", strt)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwtist.py b/flopy/mf6/modflow/mfgwtist.py
index 625c00923c..a66f928feb 100644
--- a/flopy/mf6/modflow/mfgwtist.py
+++ b/flopy/mf6/modflow/mfgwtist.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -28,11 +28,13 @@ class ModflowGwtist(mfpackage.MFPackage):
         * budgetcsvfile (string) name of the comma-separated value (CSV) output
           file to write budget summary information. A budget summary record
           will be written to this file for each time step of the simulation.
-    sorption : boolean
-        * sorption (boolean) is a text keyword to indicate that sorption will
-          be activated. Use of this keyword requires that BULK_DENSITY and
-          DISTCOEF are specified in the GRIDDATA block. The linear sorption
-          isotherm is the only isotherm presently supported in the IST Package.
+    sorption : string
+        * sorption (string) is a text keyword to indicate that sorption will be
+          activated. Valid sorption options include LINEAR, FREUNDLICH, and
+          LANGMUIR. Use of this keyword requires that BULK_DENSITY and DISTCOEF
+          are specified in the GRIDDATA block. If sorption is specified as
+          FREUNDLICH or LANGMUIR then SP2 is also required in the GRIDDATA
+          block.
     first_order_decay : boolean
         * first_order_decay (boolean) is a text keyword to indicate that first-
           order decay will occur. Use of this keyword requires that DECAY and
@@ -57,6 +59,11 @@ class ModflowGwtist(mfpackage.MFPackage):
         * digits (integer) number of digits to use for writing a number.
         * format (string) write format can be EXPONENTIAL, FIXED, GENERAL, or
           SCIENTIFIC.
+    sorbate_filerecord : [sorbatefile]
+        * sorbatefile (string) name of the output file to write immobile
+          sorbate concentration information. Immobile sorbate concentrations
+          will be written whenever aqueous immobile concentrations are saved,
+          as determined by settings in the Output Control option.
     porosity : [double]
         * porosity (double) porosity of the immobile domain specified as the
           immobile domain pore volume per immobile domain volume.
@@ -103,365 +110,174 @@ class ModflowGwtist(mfpackage.MFPackage):
           keyword is specified in the options block. If the SORPTION keyword is
           not specified in the options block, distcoef will have no effect on
           simulation results.
+    sp2 : [double]
+        * sp2 (double) is the exponent for the Freundlich isotherm and the
+          sorption capacity for the Langmuir isotherm. sp2 is not required
+          unless the SORPTION keyword is specified in the options block and
+          sorption is specified as FREUNDLICH or LANGMUIR. If the SORPTION
+          keyword is not specified in the options block, or if sorption is
+          specified as LINEAR, sp2 will have no effect on simulation results.
     filename : String
         File name for this package.
     pname : String
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    budget_filerecord = ListTemplateGenerator(
-        ("gwt6", "ist", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwt6", "ist", "options", "budgetcsv_filerecord")
-    )
-    cim_filerecord = ListTemplateGenerator(
-        ("gwt6", "ist", "options", "cim_filerecord")
-    )
-    cimprintrecord = ListTemplateGenerator(
-        ("gwt6", "ist", "options", "cimprintrecord")
-    )
-    porosity = ArrayTemplateGenerator(("gwt6", "ist", "griddata", "porosity"))
-    volfrac = ArrayTemplateGenerator(("gwt6", "ist", "griddata", "volfrac"))
-    zetaim = ArrayTemplateGenerator(("gwt6", "ist", "griddata", "zetaim"))
-    cim = ArrayTemplateGenerator(("gwt6", "ist", "griddata", "cim"))
-    decay = ArrayTemplateGenerator(("gwt6", "ist", "griddata", "decay"))
-    decay_sorbed = ArrayTemplateGenerator(
-        ("gwt6", "ist", "griddata", "decay_sorbed")
-    )
-    bulk_density = ArrayTemplateGenerator(
-        ("gwt6", "ist", "griddata", "bulk_density")
-    )
-    distcoef = ArrayTemplateGenerator(("gwt6", "ist", "griddata", "distcoef"))
+    budget_filerecord = ListTemplateGenerator(('gwt6', 'ist', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwt6', 'ist',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    cim_filerecord = ListTemplateGenerator(('gwt6', 'ist', 'options',
+                                            'cim_filerecord'))
+    cimprintrecord = ListTemplateGenerator(('gwt6', 'ist', 'options',
+                                            'cimprintrecord'))
+    sorbate_filerecord = ListTemplateGenerator(('gwt6', 'ist', 'options',
+                                                'sorbate_filerecord'))
+    porosity = ArrayTemplateGenerator(('gwt6', 'ist', 'griddata',
+                                       'porosity'))
+    volfrac = ArrayTemplateGenerator(('gwt6', 'ist', 'griddata',
+                                      'volfrac'))
+    zetaim = ArrayTemplateGenerator(('gwt6', 'ist', 'griddata',
+                                     'zetaim'))
+    cim = ArrayTemplateGenerator(('gwt6', 'ist', 'griddata', 'cim'))
+    decay = ArrayTemplateGenerator(('gwt6', 'ist', 'griddata', 'decay'))
+    decay_sorbed = ArrayTemplateGenerator(('gwt6', 'ist', 'griddata',
+                                           'decay_sorbed'))
+    bulk_density = ArrayTemplateGenerator(('gwt6', 'ist', 'griddata',
+                                           'bulk_density'))
+    distcoef = ArrayTemplateGenerator(('gwt6', 'ist', 'griddata',
+                                       'distcoef'))
+    sp2 = ArrayTemplateGenerator(('gwt6', 'ist', 'griddata', 'sp2'))
     package_abbr = "gwtist"
     _package_type = "ist"
     dfn_file_name = "gwt-ist.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name sorption",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name first_order_decay",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name zero_order_decay",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name cim_filerecord",
-            "type record cim fileout cimfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name cim",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name cimfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name cimprintrecord",
-            "type record cim print_format formatrecord",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_format",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name formatrecord",
-            "type record columns width digits format",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name columns",
-            "type integer",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional",
-        ],
-        [
-            "block options",
-            "name width",
-            "type integer",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional",
-        ],
-        [
-            "block options",
-            "name digits",
-            "type integer",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional",
-        ],
-        [
-            "block options",
-            "name format",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block griddata",
-            "name porosity",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-        ],
-        [
-            "block griddata",
-            "name volfrac",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-        ],
-        [
-            "block griddata",
-            "name zetaim",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-        ],
-        [
-            "block griddata",
-            "name cim",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "optional true",
-            "layered true",
-        ],
-        [
-            "block griddata",
-            "name decay",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name decay_sorbed",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "optional true",
-            "layered true",
-        ],
-        [
-            "block griddata",
-            "name bulk_density",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "optional true",
-            "layered true",
-        ],
-        [
-            "block griddata",
-            "name distcoef",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "optional true",
-            "layered true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name sorption", "type string",
+            "valid linear freundlich langmuir", "reader urword",
+            "optional true"],
+           ["block options", "name first_order_decay", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name zero_order_decay", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name cim_filerecord",
+            "type record cim fileout cimfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name cim", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name cimfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name cimprintrecord",
+            "type record cim print_format formatrecord", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_format", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name formatrecord",
+            "type record columns width digits format", "shape",
+            "in_record true", "reader urword", "tagged", "optional false"],
+           ["block options", "name columns", "type integer", "shape",
+            "in_record true", "reader urword", "tagged true", "optional"],
+           ["block options", "name width", "type integer", "shape",
+            "in_record true", "reader urword", "tagged true", "optional"],
+           ["block options", "name digits", "type integer", "shape",
+            "in_record true", "reader urword", "tagged true", "optional"],
+           ["block options", "name format", "type string", "shape",
+            "in_record true", "reader urword", "tagged false",
+            "optional false"],
+           ["block options", "name sorbate_filerecord",
+            "type record sorbate fileout sorbatefile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name sorbate", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name sorbatefile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block griddata", "name porosity", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true"],
+           ["block griddata", "name volfrac", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true"],
+           ["block griddata", "name zetaim", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true"],
+           ["block griddata", "name cim", "type double precision",
+            "shape (nodes)", "reader readarray", "optional true",
+            "layered true"],
+           ["block griddata", "name decay", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "optional true"],
+           ["block griddata", "name decay_sorbed", "type double precision",
+            "shape (nodes)", "reader readarray", "optional true",
+            "layered true"],
+           ["block griddata", "name bulk_density", "type double precision",
+            "shape (nodes)", "reader readarray", "optional true",
+            "layered true"],
+           ["block griddata", "name distcoef", "type double precision",
+            "shape (nodes)", "reader readarray", "optional true",
+            "layered true"],
+           ["block griddata", "name sp2", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        save_flows=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        sorption=None,
-        first_order_decay=None,
-        zero_order_decay=None,
-        cim_filerecord=None,
-        cimprintrecord=None,
-        porosity=None,
-        volfrac=None,
-        zetaim=None,
-        cim=None,
-        decay=None,
-        decay_sorbed=None,
-        bulk_density=None,
-        distcoef=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "ist", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, save_flows=None,
+                 budget_filerecord=None, budgetcsv_filerecord=None,
+                 sorption=None, first_order_decay=None, zero_order_decay=None,
+                 cim_filerecord=None, cimprintrecord=None,
+                 sorbate_filerecord=None, porosity=None, volfrac=None,
+                 zetaim=None, cim=None, decay=None, decay_sorbed=None,
+                 bulk_density=None, distcoef=None, sp2=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "ist", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
         self.sorption = self.build_mfdata("sorption", sorption)
-        self.first_order_decay = self.build_mfdata(
-            "first_order_decay", first_order_decay
-        )
-        self.zero_order_decay = self.build_mfdata(
-            "zero_order_decay", zero_order_decay
-        )
-        self.cim_filerecord = self.build_mfdata(
-            "cim_filerecord", cim_filerecord
-        )
-        self.cimprintrecord = self.build_mfdata(
-            "cimprintrecord", cimprintrecord
-        )
+        self.first_order_decay = self.build_mfdata("first_order_decay",
+                                                   first_order_decay)
+        self.zero_order_decay = self.build_mfdata("zero_order_decay",
+                                                  zero_order_decay)
+        self.cim_filerecord = self.build_mfdata("cim_filerecord",
+                                                cim_filerecord)
+        self.cimprintrecord = self.build_mfdata("cimprintrecord",
+                                                cimprintrecord)
+        self.sorbate_filerecord = self.build_mfdata("sorbate_filerecord",
+                                                    sorbate_filerecord)
         self.porosity = self.build_mfdata("porosity", porosity)
         self.volfrac = self.build_mfdata("volfrac", volfrac)
         self.zetaim = self.build_mfdata("zetaim", zetaim)
@@ -470,4 +286,5 @@ def __init__(
         self.decay_sorbed = self.build_mfdata("decay_sorbed", decay_sorbed)
         self.bulk_density = self.build_mfdata("bulk_density", bulk_density)
         self.distcoef = self.build_mfdata("distcoef", distcoef)
+        self.sp2 = self.build_mfdata("sp2", sp2)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwtlkt.py b/flopy/mf6/modflow/mfgwtlkt.py
index 80e80558c6..05b5b55253 100644
--- a/flopy/mf6/modflow/mfgwtlkt.py
+++ b/flopy/mf6/modflow/mfgwtlkt.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -196,520 +196,197 @@ class ModflowGwtlkt(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwt6", "lkt", "options", "auxiliary"))
-    concentration_filerecord = ListTemplateGenerator(
-        ("gwt6", "lkt", "options", "concentration_filerecord")
-    )
-    budget_filerecord = ListTemplateGenerator(
-        ("gwt6", "lkt", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwt6", "lkt", "options", "budgetcsv_filerecord")
-    )
-    ts_filerecord = ListTemplateGenerator(
-        ("gwt6", "lkt", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwt6", "lkt", "options", "obs_filerecord")
-    )
-    packagedata = ListTemplateGenerator(
-        ("gwt6", "lkt", "packagedata", "packagedata")
-    )
-    lakeperioddata = ListTemplateGenerator(
-        ("gwt6", "lkt", "period", "lakeperioddata")
-    )
+    auxiliary = ListTemplateGenerator(('gwt6', 'lkt', 'options',
+                                       'auxiliary'))
+    concentration_filerecord = ListTemplateGenerator((
+        'gwt6', 'lkt', 'options', 'concentration_filerecord'))
+    budget_filerecord = ListTemplateGenerator(('gwt6', 'lkt', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwt6', 'lkt',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    ts_filerecord = ListTemplateGenerator(('gwt6', 'lkt', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwt6', 'lkt', 'options',
+                                            'obs_filerecord'))
+    packagedata = ListTemplateGenerator(('gwt6', 'lkt', 'packagedata',
+                                         'packagedata'))
+    lakeperioddata = ListTemplateGenerator(('gwt6', 'lkt', 'period',
+                                            'lakeperioddata'))
     package_abbr = "gwtlkt"
     _package_type = "lkt"
     dfn_file_name = "gwt-lkt.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name flow_package_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name flow_package_auxiliary_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_concentration",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name concentration_filerecord",
-            "type record concentration fileout concfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name concentration",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name concfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
-            "type recarray ifno strt aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name strt",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "time_series true",
-            "optional true",
-        ],
-        [
-            "block packagedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name lakeperioddata",
-            "type recarray ifno laksetting",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name laksetting",
+           ["header", 
+            "multi-package", ],
+           ["block options", "name flow_package_name", "type string",
+            "shape", "reader urword", "optional true"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name flow_package_auxiliary_name",
+            "type string", "shape", "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_concentration", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name concentration_filerecord",
+            "type record concentration fileout concfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name concentration", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name concfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block packagedata", "name packagedata",
+            "type recarray ifno strt aux boundname", "shape (maxbound)",
+            "reader urword"],
+           ["block packagedata", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name strt", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "time_series true", "optional true"],
+           ["block packagedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name lakeperioddata",
+            "type recarray ifno laksetting", "shape", "reader urword"],
+           ["block period", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name laksetting",
             "type keystring status concentration rainfall evaporation runoff "
             "ext-inflow auxiliaryrecord",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name status",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name concentration",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "time_series true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name rainfall",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name evaporation",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name runoff",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name ext-inflow",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name auxiliaryrecord",
-            "type record auxiliary auxname auxval",
-            "shape",
-            "tagged",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxiliary",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxval",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-    ]
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name status", "type string", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name concentration", "type string", "shape",
+            "tagged true", "in_record true", "time_series true",
+            "reader urword"],
+           ["block period", "name rainfall", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name evaporation", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name runoff", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name ext-inflow", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name auxiliaryrecord",
+            "type record auxiliary auxname auxval", "shape", "tagged",
+            "in_record true", "reader urword"],
+           ["block period", "name auxiliary", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name auxname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name auxval", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        flow_package_name=None,
-        auxiliary=None,
-        flow_package_auxiliary_name=None,
-        boundnames=None,
-        print_input=None,
-        print_concentration=None,
-        print_flows=None,
-        save_flows=None,
-        concentration_filerecord=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        timeseries=None,
-        observations=None,
-        packagedata=None,
-        lakeperioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "lkt", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, flow_package_name=None,
+                 auxiliary=None, flow_package_auxiliary_name=None,
+                 boundnames=None, print_input=None, print_concentration=None,
+                 print_flows=None, save_flows=None,
+                 concentration_filerecord=None, budget_filerecord=None,
+                 budgetcsv_filerecord=None, timeseries=None, observations=None,
+                 packagedata=None, lakeperioddata=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "lkt", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.flow_package_name = self.build_mfdata(
-            "flow_package_name", flow_package_name
-        )
+        self.flow_package_name = self.build_mfdata("flow_package_name",
+                                                   flow_package_name)
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
         self.flow_package_auxiliary_name = self.build_mfdata(
-            "flow_package_auxiliary_name", flow_package_auxiliary_name
-        )
+            "flow_package_auxiliary_name", flow_package_auxiliary_name)
         self.boundnames = self.build_mfdata("boundnames", boundnames)
         self.print_input = self.build_mfdata("print_input", print_input)
-        self.print_concentration = self.build_mfdata(
-            "print_concentration", print_concentration
-        )
+        self.print_concentration = self.build_mfdata("print_concentration",
+                                                     print_concentration)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
         self.concentration_filerecord = self.build_mfdata(
-            "concentration_filerecord", concentration_filerecord
-        )
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+            "concentration_filerecord", concentration_filerecord)
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
-        self.lakeperioddata = self.build_mfdata(
-            "lakeperioddata", lakeperioddata
-        )
+        self.lakeperioddata = self.build_mfdata("lakeperioddata",
+                                                lakeperioddata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwtmst.py b/flopy/mf6/modflow/mfgwtmst.py
index 2007a5591e..c730425c1c 100644
--- a/flopy/mf6/modflow/mfgwtmst.py
+++ b/flopy/mf6/modflow/mfgwtmst.py
@@ -1,8 +1,8 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
-from ..data.mfdatautil import ArrayTemplateGenerator
+from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
 
 class ModflowGwtmst(mfpackage.MFPackage):
@@ -38,6 +38,11 @@ class ModflowGwtmst(mfpackage.MFPackage):
           are specified in the GRIDDATA block. If sorption is specified as
           FREUNDLICH or LANGMUIR then SP2 is also required in the GRIDDATA
           block.
+    sorbate_filerecord : [sorbatefile]
+        * sorbatefile (string) name of the output file to write sorbate
+          concentration information. Sorbate concentrations will be written
+          whenever aqueous concentrations are saved, as determined by settings
+          in the Output Control option.
     porosity : [double]
         * porosity (double) is the mobile domain porosity, defined as the
           mobile domain pore volume per mobile domain volume. Additional
@@ -73,155 +78,100 @@ class ModflowGwtmst(mfpackage.MFPackage):
     distcoef : [double]
         * distcoef (double) is the distribution coefficient for the
           equilibrium-controlled linear sorption isotherm in dimensions of
-          length cubed per mass. distcoef is not required unless the SORPTION
-          keyword is specified.
+          length cubed per mass. If the Freunchlich isotherm is specified, then
+          discoef is the Freundlich constant. If the Langmuir isotherm is
+          specified, then distcoef is the Langmuir constant. distcoef is not
+          required unless the SORPTION keyword is specified.
     sp2 : [double]
         * sp2 (double) is the exponent for the Freundlich isotherm and the
-          sorption capacity for the Langmuir isotherm.
+          sorption capacity for the Langmuir isotherm. sp2 is not required
+          unless the SORPTION keyword is specified in the options block. If the
+          SORPTION keyword is not specified in the options block, sp2 will have
+          no effect on simulation results.
     filename : String
         File name for this package.
     pname : String
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    porosity = ArrayTemplateGenerator(("gwt6", "mst", "griddata", "porosity"))
-    decay = ArrayTemplateGenerator(("gwt6", "mst", "griddata", "decay"))
-    decay_sorbed = ArrayTemplateGenerator(
-        ("gwt6", "mst", "griddata", "decay_sorbed")
-    )
-    bulk_density = ArrayTemplateGenerator(
-        ("gwt6", "mst", "griddata", "bulk_density")
-    )
-    distcoef = ArrayTemplateGenerator(("gwt6", "mst", "griddata", "distcoef"))
-    sp2 = ArrayTemplateGenerator(("gwt6", "mst", "griddata", "sp2"))
+    sorbate_filerecord = ListTemplateGenerator(('gwt6', 'mst', 'options',
+                                                'sorbate_filerecord'))
+    porosity = ArrayTemplateGenerator(('gwt6', 'mst', 'griddata',
+                                       'porosity'))
+    decay = ArrayTemplateGenerator(('gwt6', 'mst', 'griddata', 'decay'))
+    decay_sorbed = ArrayTemplateGenerator(('gwt6', 'mst', 'griddata',
+                                           'decay_sorbed'))
+    bulk_density = ArrayTemplateGenerator(('gwt6', 'mst', 'griddata',
+                                           'bulk_density'))
+    distcoef = ArrayTemplateGenerator(('gwt6', 'mst', 'griddata',
+                                       'distcoef'))
+    sp2 = ArrayTemplateGenerator(('gwt6', 'mst', 'griddata', 'sp2'))
     package_abbr = "gwtmst"
     _package_type = "mst"
     dfn_file_name = "gwt-mst.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name first_order_decay",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name zero_order_decay",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name sorption",
-            "type string",
-            "valid linear freundlich langmuir",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name porosity",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-        ],
-        [
-            "block griddata",
-            "name decay",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name decay_sorbed",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "optional true",
-            "layered true",
-        ],
-        [
-            "block griddata",
-            "name bulk_density",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "optional true",
-            "layered true",
-        ],
-        [
-            "block griddata",
-            "name distcoef",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name sp2",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name first_order_decay", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name zero_order_decay", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name sorption", "type string",
+            "valid linear freundlich langmuir", "reader urword",
+            "optional true"],
+           ["block options", "name sorbate_filerecord",
+            "type record sorbate fileout sorbatefile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name sorbate", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name sorbatefile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block griddata", "name porosity", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true"],
+           ["block griddata", "name decay", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "optional true"],
+           ["block griddata", "name decay_sorbed", "type double precision",
+            "shape (nodes)", "reader readarray", "optional true",
+            "layered true"],
+           ["block griddata", "name bulk_density", "type double precision",
+            "shape (nodes)", "reader readarray", "optional true",
+            "layered true"],
+           ["block griddata", "name distcoef", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "optional true"],
+           ["block griddata", "name sp2", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        save_flows=None,
-        first_order_decay=None,
-        zero_order_decay=None,
-        sorption=None,
-        porosity=None,
-        decay=None,
-        decay_sorbed=None,
-        bulk_density=None,
-        distcoef=None,
-        sp2=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "mst", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, save_flows=None,
+                 first_order_decay=None, zero_order_decay=None, sorption=None,
+                 sorbate_filerecord=None, porosity=None, decay=None,
+                 decay_sorbed=None, bulk_density=None, distcoef=None, sp2=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "mst", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self.first_order_decay = self.build_mfdata(
-            "first_order_decay", first_order_decay
-        )
-        self.zero_order_decay = self.build_mfdata(
-            "zero_order_decay", zero_order_decay
-        )
+        self.first_order_decay = self.build_mfdata("first_order_decay",
+                                                   first_order_decay)
+        self.zero_order_decay = self.build_mfdata("zero_order_decay",
+                                                  zero_order_decay)
         self.sorption = self.build_mfdata("sorption", sorption)
+        self.sorbate_filerecord = self.build_mfdata("sorbate_filerecord",
+                                                    sorbate_filerecord)
         self.porosity = self.build_mfdata("porosity", porosity)
         self.decay = self.build_mfdata("decay", decay)
         self.decay_sorbed = self.build_mfdata("decay_sorbed", decay_sorbed)
diff --git a/flopy/mf6/modflow/mfgwtmvt.py b/flopy/mf6/modflow/mfgwtmvt.py
index d67b244944..2e087ba48c 100644
--- a/flopy/mf6/modflow/mfgwtmvt.py
+++ b/flopy/mf6/modflow/mfgwtmvt.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -45,150 +45,64 @@ class ModflowGwtmvt(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    budget_filerecord = ListTemplateGenerator(
-        ("gwt6", "mvt", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwt6", "mvt", "options", "budgetcsv_filerecord")
-    )
+    budget_filerecord = ListTemplateGenerator(('gwt6', 'mvt', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwt6', 'mvt',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
     package_abbr = "gwtmvt"
     _package_type = "mvt"
     dfn_file_name = "gwt-mvt.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"]]
 
-    def __init__(
-        self,
-        parent_model_or_package,
-        loading_package=False,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            parent_model_or_package,
-            "mvt",
-            filename,
-            pname,
-            loading_package,
-            **kwargs,
-        )
+    def __init__(self, parent_model_or_package, loading_package=False,
+                 print_input=None, print_flows=None, save_flows=None,
+                 budget_filerecord=None, budgetcsv_filerecord=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(parent_model_or_package, "mvt", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
         self._init_complete = True
 
 
@@ -206,51 +120,28 @@ class GwtmvtPackages(mfpackage.MFChildPackages):
         Adds a new ModflowGwtmvt package to the container. See ModflowGwtmvt
         init documentation for definition of parameters.
     """
-
     package_abbr = "gwtmvtpackages"
 
-    def initialize(
-        self,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowGwtmvt(
-            self._cpparent,
-            print_input=print_input,
-            print_flows=print_flows,
-            save_flows=save_flows,
-            budget_filerecord=budget_filerecord,
-            budgetcsv_filerecord=budgetcsv_filerecord,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def initialize(self, print_input=None, print_flows=None, save_flows=None,
+                   budget_filerecord=None, budgetcsv_filerecord=None,
+                   filename=None, pname=None):
+        new_package = ModflowGwtmvt(self._cpparent, print_input=print_input,
+                                    print_flows=print_flows,
+                                    save_flows=save_flows,
+                                    budget_filerecord=budget_filerecord,
+                                    budgetcsv_filerecord=budgetcsv_filerecord,
+                                    filename=filename, pname=pname,
+                                    child_builder_call=True)
         self.init_package(new_package, filename)
 
-    def append_package(
-        self,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowGwtmvt(
-            self._cpparent,
-            print_input=print_input,
-            print_flows=print_flows,
-            save_flows=save_flows,
-            budget_filerecord=budget_filerecord,
-            budgetcsv_filerecord=budgetcsv_filerecord,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def append_package(self, print_input=None, print_flows=None,
+                   save_flows=None, budget_filerecord=None,
+                   budgetcsv_filerecord=None, filename=None, pname=None):
+        new_package = ModflowGwtmvt(self._cpparent, print_input=print_input,
+                                    print_flows=print_flows,
+                                    save_flows=save_flows,
+                                    budget_filerecord=budget_filerecord,
+                                    budgetcsv_filerecord=budgetcsv_filerecord,
+                                    filename=filename, pname=pname,
+                                    child_builder_call=True)
         self._append_package(new_package, filename)
diff --git a/flopy/mf6/modflow/mfgwtmwt.py b/flopy/mf6/modflow/mfgwtmwt.py
index d32195d90c..f01396f5d8 100644
--- a/flopy/mf6/modflow/mfgwtmwt.py
+++ b/flopy/mf6/modflow/mfgwtmwt.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -171,487 +171,186 @@ class ModflowGwtmwt(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwt6", "mwt", "options", "auxiliary"))
-    concentration_filerecord = ListTemplateGenerator(
-        ("gwt6", "mwt", "options", "concentration_filerecord")
-    )
-    budget_filerecord = ListTemplateGenerator(
-        ("gwt6", "mwt", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwt6", "mwt", "options", "budgetcsv_filerecord")
-    )
-    ts_filerecord = ListTemplateGenerator(
-        ("gwt6", "mwt", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwt6", "mwt", "options", "obs_filerecord")
-    )
-    packagedata = ListTemplateGenerator(
-        ("gwt6", "mwt", "packagedata", "packagedata")
-    )
-    mwtperioddata = ListTemplateGenerator(
-        ("gwt6", "mwt", "period", "mwtperioddata")
-    )
+    auxiliary = ListTemplateGenerator(('gwt6', 'mwt', 'options',
+                                       'auxiliary'))
+    concentration_filerecord = ListTemplateGenerator((
+        'gwt6', 'mwt', 'options', 'concentration_filerecord'))
+    budget_filerecord = ListTemplateGenerator(('gwt6', 'mwt', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwt6', 'mwt',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    ts_filerecord = ListTemplateGenerator(('gwt6', 'mwt', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwt6', 'mwt', 'options',
+                                            'obs_filerecord'))
+    packagedata = ListTemplateGenerator(('gwt6', 'mwt', 'packagedata',
+                                         'packagedata'))
+    mwtperioddata = ListTemplateGenerator(('gwt6', 'mwt', 'period',
+                                           'mwtperioddata'))
     package_abbr = "gwtmwt"
     _package_type = "mwt"
     dfn_file_name = "gwt-mwt.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name flow_package_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name flow_package_auxiliary_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_concentration",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name concentration_filerecord",
-            "type record concentration fileout concfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name concentration",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name concfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
-            "type recarray ifno strt aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name strt",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "time_series true",
-            "optional true",
-        ],
-        [
-            "block packagedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name mwtperioddata",
-            "type recarray ifno mwtsetting",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name mwtsetting",
+           ["header", 
+            "multi-package", ],
+           ["block options", "name flow_package_name", "type string",
+            "shape", "reader urword", "optional true"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name flow_package_auxiliary_name",
+            "type string", "shape", "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_concentration", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name concentration_filerecord",
+            "type record concentration fileout concfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name concentration", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name concfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block packagedata", "name packagedata",
+            "type recarray ifno strt aux boundname", "shape (maxbound)",
+            "reader urword"],
+           ["block packagedata", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name strt", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "time_series true", "optional true"],
+           ["block packagedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name mwtperioddata",
+            "type recarray ifno mwtsetting", "shape", "reader urword"],
+           ["block period", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name mwtsetting",
             "type keystring status concentration rate auxiliaryrecord",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name status",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name concentration",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "time_series true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name rate",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name auxiliaryrecord",
-            "type record auxiliary auxname auxval",
-            "shape",
-            "tagged",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxiliary",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxval",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-    ]
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name status", "type string", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name concentration", "type string", "shape",
+            "tagged true", "in_record true", "time_series true",
+            "reader urword"],
+           ["block period", "name rate", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name auxiliaryrecord",
+            "type record auxiliary auxname auxval", "shape", "tagged",
+            "in_record true", "reader urword"],
+           ["block period", "name auxiliary", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name auxname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name auxval", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        flow_package_name=None,
-        auxiliary=None,
-        flow_package_auxiliary_name=None,
-        boundnames=None,
-        print_input=None,
-        print_concentration=None,
-        print_flows=None,
-        save_flows=None,
-        concentration_filerecord=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        timeseries=None,
-        observations=None,
-        packagedata=None,
-        mwtperioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "mwt", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, flow_package_name=None,
+                 auxiliary=None, flow_package_auxiliary_name=None,
+                 boundnames=None, print_input=None, print_concentration=None,
+                 print_flows=None, save_flows=None,
+                 concentration_filerecord=None, budget_filerecord=None,
+                 budgetcsv_filerecord=None, timeseries=None, observations=None,
+                 packagedata=None, mwtperioddata=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "mwt", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.flow_package_name = self.build_mfdata(
-            "flow_package_name", flow_package_name
-        )
+        self.flow_package_name = self.build_mfdata("flow_package_name",
+                                                   flow_package_name)
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
         self.flow_package_auxiliary_name = self.build_mfdata(
-            "flow_package_auxiliary_name", flow_package_auxiliary_name
-        )
+            "flow_package_auxiliary_name", flow_package_auxiliary_name)
         self.boundnames = self.build_mfdata("boundnames", boundnames)
         self.print_input = self.build_mfdata("print_input", print_input)
-        self.print_concentration = self.build_mfdata(
-            "print_concentration", print_concentration
-        )
+        self.print_concentration = self.build_mfdata("print_concentration",
+                                                     print_concentration)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
         self.concentration_filerecord = self.build_mfdata(
-            "concentration_filerecord", concentration_filerecord
-        )
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+            "concentration_filerecord", concentration_filerecord)
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
         self.mwtperioddata = self.build_mfdata("mwtperioddata", mwtperioddata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwtnam.py b/flopy/mf6/modflow/mfgwtnam.py
index 9734127a44..48df634bea 100644
--- a/flopy/mf6/modflow/mfgwtnam.py
+++ b/flopy/mf6/modflow/mfgwtnam.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -38,6 +38,13 @@ class ModflowGwtnam(mfpackage.MFPackage):
         * save_flows (boolean) keyword to indicate that all model package flow
           terms will be written to the file specified with "BUDGET FILEOUT" in
           Output Control.
+    nc_mesh2d_filerecord : [ncmesh2dfile]
+        * ncmesh2dfile (string) name of the netcdf ugrid layered mesh output
+          file.
+    nc_structured_filerecord : [ncstructfile]
+        * ncstructfile (string) name of the netcdf structured output file.
+    nc_filerecord : [netcdf_filename]
+        * netcdf_filename (string) defines a netcdf input file.
     packages : [ftype, fname, pname]
         * ftype (string) is the file type, which must be one of the following
           character values shown in table ref{table:ftype-gwt}. Ftype may be
@@ -60,105 +67,96 @@ class ModflowGwtnam(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    packages = ListTemplateGenerator(("gwt6", "nam", "packages", "packages"))
+    nc_mesh2d_filerecord = ListTemplateGenerator(('gwt6', 'nam',
+                                                  'options',
+                                                  'nc_mesh2d_filerecord'))
+    nc_structured_filerecord = ListTemplateGenerator((
+        'gwt6', 'nam', 'options', 'nc_structured_filerecord'))
+    nc_filerecord = ListTemplateGenerator(('gwt6', 'nam', 'options',
+                                           'nc_filerecord'))
+    packages = ListTemplateGenerator(('gwt6', 'nam', 'packages',
+                                      'packages'))
     package_abbr = "gwtnam"
     _package_type = "nam"
     dfn_file_name = "gwt-nam.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name list",
-            "type string",
-            "reader urword",
-            "optional true",
-            "preserve_case true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block packages",
-            "name packages",
-            "type recarray ftype fname pname",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packages",
-            "name ftype",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block packages",
-            "name fname",
-            "in_record true",
-            "type string",
-            "preserve_case true",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block packages",
-            "name pname",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name list", "type string", "reader urword",
+            "optional true", "preserve_case true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name nc_mesh2d_filerecord",
+            "type record netcdf_mesh2d fileout ncmesh2dfile", "shape",
+            "reader urword", "tagged true", "optional true",
+            "mf6internal ncmesh2drec"],
+           ["block options", "name netcdf_mesh2d", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false", "extended true"],
+           ["block options", "name nc_structured_filerecord",
+            "type record netcdf_structured fileout ncstructfile", "shape",
+            "reader urword", "tagged true", "optional true",
+            "mf6internal ncstructrec"],
+           ["block options", "name netcdf_structured", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false", "mf6internal netcdf_struct", "extended true"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ncmesh2dfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false", "extended true"],
+           ["block options", "name ncstructfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false", "extended true"],
+           ["block options", "name nc_filerecord",
+            "type record netcdf filein netcdf_filename", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name netcdf", "type keyword",
+            "in_record true", "reader urword", "tagged true",
+            "optional false", "extended true"],
+           ["block options", "name filein", "type keyword",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name netcdf_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false", "mf6internal netcdf_fname",
+            "extended true"],
+           ["block packages", "name packages",
+            "type recarray ftype fname pname", "reader urword",
+            "optional false"],
+           ["block packages", "name ftype", "in_record true", "type string",
+            "tagged false", "reader urword"],
+           ["block packages", "name fname", "in_record true", "type string",
+            "preserve_case true", "tagged false", "reader urword"],
+           ["block packages", "name pname", "in_record true", "type string",
+            "tagged false", "reader urword", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        list=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        packages=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "nam", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, list=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 nc_mesh2d_filerecord=None, nc_structured_filerecord=None,
+                 nc_filerecord=None, packages=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(model, "nam", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.list = self.build_mfdata("list", list)
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
+        self.nc_mesh2d_filerecord = self.build_mfdata("nc_mesh2d_filerecord",
+                                                      nc_mesh2d_filerecord)
+        self.nc_structured_filerecord = self.build_mfdata(
+            "nc_structured_filerecord", nc_structured_filerecord)
+        self.nc_filerecord = self.build_mfdata("nc_filerecord", nc_filerecord)
         self.packages = self.build_mfdata("packages", packages)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwtoc.py b/flopy/mf6/modflow/mfgwtoc.py
index ade2382cbf..554843f915 100644
--- a/flopy/mf6/modflow/mfgwtoc.py
+++ b/flopy/mf6/modflow/mfgwtoc.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -87,347 +87,125 @@ class ModflowGwtoc(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    budget_filerecord = ListTemplateGenerator(
-        ("gwt6", "oc", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwt6", "oc", "options", "budgetcsv_filerecord")
-    )
-    concentration_filerecord = ListTemplateGenerator(
-        ("gwt6", "oc", "options", "concentration_filerecord")
-    )
-    concentrationprintrecord = ListTemplateGenerator(
-        ("gwt6", "oc", "options", "concentrationprintrecord")
-    )
-    saverecord = ListTemplateGenerator(("gwt6", "oc", "period", "saverecord"))
-    printrecord = ListTemplateGenerator(
-        ("gwt6", "oc", "period", "printrecord")
-    )
+    budget_filerecord = ListTemplateGenerator(('gwt6', 'oc', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwt6', 'oc',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    concentration_filerecord = ListTemplateGenerator((
+        'gwt6', 'oc', 'options', 'concentration_filerecord'))
+    concentrationprintrecord = ListTemplateGenerator((
+        'gwt6', 'oc', 'options', 'concentrationprintrecord'))
+    saverecord = ListTemplateGenerator(('gwt6', 'oc', 'period',
+                                        'saverecord'))
+    printrecord = ListTemplateGenerator(('gwt6', 'oc', 'period',
+                                         'printrecord'))
     package_abbr = "gwtoc"
     _package_type = "oc"
     dfn_file_name = "gwt-oc.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name concentration_filerecord",
-            "type record concentration fileout concentrationfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name concentration",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name concentrationfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name concentrationprintrecord",
-            "type record concentration print_format formatrecord",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_format",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name formatrecord",
-            "type record columns width digits format",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name columns",
-            "type integer",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional",
-        ],
-        [
-            "block options",
-            "name width",
-            "type integer",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional",
-        ],
-        [
-            "block options",
-            "name digits",
-            "type integer",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional",
-        ],
-        [
-            "block options",
-            "name format",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name saverecord",
-            "type record save rtype ocsetting",
-            "shape",
-            "reader urword",
-            "tagged false",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name save",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name printrecord",
-            "type record print rtype ocsetting",
-            "shape",
-            "reader urword",
-            "tagged false",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name print",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name rtype",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name ocsetting",
-            "type keystring all first last frequency steps",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name all",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name first",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name last",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name frequency",
-            "type integer",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name steps",
-            "type integer",
-            "shape (<nstp)",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name concentration_filerecord",
+            "type record concentration fileout concentrationfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name concentration", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name concentrationfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name concentrationprintrecord",
+            "type record concentration print_format formatrecord", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_format", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name formatrecord",
+            "type record columns width digits format", "shape",
+            "in_record true", "reader urword", "tagged", "optional false"],
+           ["block options", "name columns", "type integer", "shape",
+            "in_record true", "reader urword", "tagged true", "optional"],
+           ["block options", "name width", "type integer", "shape",
+            "in_record true", "reader urword", "tagged true", "optional"],
+           ["block options", "name digits", "type integer", "shape",
+            "in_record true", "reader urword", "tagged true", "optional"],
+           ["block options", "name format", "type string", "shape",
+            "in_record true", "reader urword", "tagged false",
+            "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name saverecord",
+            "type record save rtype ocsetting", "shape", "reader urword",
+            "tagged false", "optional true"],
+           ["block period", "name save", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block period", "name printrecord",
+            "type record print rtype ocsetting", "shape", "reader urword",
+            "tagged false", "optional true"],
+           ["block period", "name print", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block period", "name rtype", "type string", "shape",
+            "in_record true", "reader urword", "tagged false",
+            "optional false"],
+           ["block period", "name ocsetting",
+            "type keystring all first last frequency steps", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name all", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name first", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name last", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name frequency", "type integer", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name steps", "type integer", "shape (<nstp)",
+            "tagged true", "in_record true", "reader urword"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        concentration_filerecord=None,
-        concentrationprintrecord=None,
-        saverecord=None,
-        printrecord=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "oc", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, budget_filerecord=None,
+                 budgetcsv_filerecord=None, concentration_filerecord=None,
+                 concentrationprintrecord=None, saverecord=None,
+                 printrecord=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "oc", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
         self.concentration_filerecord = self.build_mfdata(
-            "concentration_filerecord", concentration_filerecord
-        )
+            "concentration_filerecord", concentration_filerecord)
         self.concentrationprintrecord = self.build_mfdata(
-            "concentrationprintrecord", concentrationprintrecord
-        )
+            "concentrationprintrecord", concentrationprintrecord)
         self.saverecord = self.build_mfdata("saverecord", saverecord)
         self.printrecord = self.build_mfdata("printrecord", printrecord)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwtsft.py b/flopy/mf6/modflow/mfgwtsft.py
index cc5afe7f84..19262b8919 100644
--- a/flopy/mf6/modflow/mfgwtsft.py
+++ b/flopy/mf6/modflow/mfgwtsft.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -194,520 +194,197 @@ class ModflowGwtsft(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwt6", "sft", "options", "auxiliary"))
-    concentration_filerecord = ListTemplateGenerator(
-        ("gwt6", "sft", "options", "concentration_filerecord")
-    )
-    budget_filerecord = ListTemplateGenerator(
-        ("gwt6", "sft", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwt6", "sft", "options", "budgetcsv_filerecord")
-    )
-    ts_filerecord = ListTemplateGenerator(
-        ("gwt6", "sft", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwt6", "sft", "options", "obs_filerecord")
-    )
-    packagedata = ListTemplateGenerator(
-        ("gwt6", "sft", "packagedata", "packagedata")
-    )
-    reachperioddata = ListTemplateGenerator(
-        ("gwt6", "sft", "period", "reachperioddata")
-    )
+    auxiliary = ListTemplateGenerator(('gwt6', 'sft', 'options',
+                                       'auxiliary'))
+    concentration_filerecord = ListTemplateGenerator((
+        'gwt6', 'sft', 'options', 'concentration_filerecord'))
+    budget_filerecord = ListTemplateGenerator(('gwt6', 'sft', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwt6', 'sft',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    ts_filerecord = ListTemplateGenerator(('gwt6', 'sft', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwt6', 'sft', 'options',
+                                            'obs_filerecord'))
+    packagedata = ListTemplateGenerator(('gwt6', 'sft', 'packagedata',
+                                         'packagedata'))
+    reachperioddata = ListTemplateGenerator(('gwt6', 'sft', 'period',
+                                             'reachperioddata'))
     package_abbr = "gwtsft"
     _package_type = "sft"
     dfn_file_name = "gwt-sft.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name flow_package_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name flow_package_auxiliary_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_concentration",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name concentration_filerecord",
-            "type record concentration fileout concfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name concentration",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name concfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
-            "type recarray ifno strt aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name strt",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "time_series true",
-            "optional true",
-        ],
-        [
-            "block packagedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name reachperioddata",
-            "type recarray ifno reachsetting",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name reachsetting",
+           ["header", 
+            "multi-package", ],
+           ["block options", "name flow_package_name", "type string",
+            "shape", "reader urword", "optional true"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name flow_package_auxiliary_name",
+            "type string", "shape", "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_concentration", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name concentration_filerecord",
+            "type record concentration fileout concfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name concentration", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name concfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block packagedata", "name packagedata",
+            "type recarray ifno strt aux boundname", "shape (maxbound)",
+            "reader urword"],
+           ["block packagedata", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name strt", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "time_series true", "optional true"],
+           ["block packagedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name reachperioddata",
+            "type recarray ifno reachsetting", "shape", "reader urword"],
+           ["block period", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name reachsetting",
             "type keystring status concentration rainfall evaporation runoff "
             "inflow auxiliaryrecord",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name status",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name concentration",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "time_series true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name rainfall",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name evaporation",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name runoff",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name inflow",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name auxiliaryrecord",
-            "type record auxiliary auxname auxval",
-            "shape",
-            "tagged",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxiliary",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxval",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-    ]
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name status", "type string", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name concentration", "type string", "shape",
+            "tagged true", "in_record true", "time_series true",
+            "reader urword"],
+           ["block period", "name rainfall", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name evaporation", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name runoff", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name inflow", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name auxiliaryrecord",
+            "type record auxiliary auxname auxval", "shape", "tagged",
+            "in_record true", "reader urword"],
+           ["block period", "name auxiliary", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name auxname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name auxval", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        flow_package_name=None,
-        auxiliary=None,
-        flow_package_auxiliary_name=None,
-        boundnames=None,
-        print_input=None,
-        print_concentration=None,
-        print_flows=None,
-        save_flows=None,
-        concentration_filerecord=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        timeseries=None,
-        observations=None,
-        packagedata=None,
-        reachperioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "sft", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, flow_package_name=None,
+                 auxiliary=None, flow_package_auxiliary_name=None,
+                 boundnames=None, print_input=None, print_concentration=None,
+                 print_flows=None, save_flows=None,
+                 concentration_filerecord=None, budget_filerecord=None,
+                 budgetcsv_filerecord=None, timeseries=None, observations=None,
+                 packagedata=None, reachperioddata=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "sft", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.flow_package_name = self.build_mfdata(
-            "flow_package_name", flow_package_name
-        )
+        self.flow_package_name = self.build_mfdata("flow_package_name",
+                                                   flow_package_name)
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
         self.flow_package_auxiliary_name = self.build_mfdata(
-            "flow_package_auxiliary_name", flow_package_auxiliary_name
-        )
+            "flow_package_auxiliary_name", flow_package_auxiliary_name)
         self.boundnames = self.build_mfdata("boundnames", boundnames)
         self.print_input = self.build_mfdata("print_input", print_input)
-        self.print_concentration = self.build_mfdata(
-            "print_concentration", print_concentration
-        )
+        self.print_concentration = self.build_mfdata("print_concentration",
+                                                     print_concentration)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
         self.concentration_filerecord = self.build_mfdata(
-            "concentration_filerecord", concentration_filerecord
-        )
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+            "concentration_filerecord", concentration_filerecord)
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
-        self.reachperioddata = self.build_mfdata(
-            "reachperioddata", reachperioddata
-        )
+        self.reachperioddata = self.build_mfdata("reachperioddata",
+                                                 reachperioddata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwtsrc.py b/flopy/mf6/modflow/mfgwtsrc.py
index 5e92ba7ae7..537903e2d3 100644
--- a/flopy/mf6/modflow/mfgwtsrc.py
+++ b/flopy/mf6/modflow/mfgwtsrc.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -99,237 +99,87 @@ class ModflowGwtsrc(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwt6", "src", "options", "auxiliary"))
-    ts_filerecord = ListTemplateGenerator(
-        ("gwt6", "src", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwt6", "src", "options", "obs_filerecord")
-    )
-    stress_period_data = ListTemplateGenerator(
-        ("gwt6", "src", "period", "stress_period_data")
-    )
+    auxiliary = ListTemplateGenerator(('gwt6', 'src', 'options',
+                                       'auxiliary'))
+    ts_filerecord = ListTemplateGenerator(('gwt6', 'src', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwt6', 'src', 'options',
+                                            'obs_filerecord'))
+    stress_period_data = ListTemplateGenerator(('gwt6', 'src', 'period',
+                                                'stress_period_data'))
     package_abbr = "gwtsrc"
     _package_type = "src"
     dfn_file_name = "gwt-src.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxmultname",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name maxbound",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name stress_period_data",
+           ["header", ],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name auxmultname", "type string", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block dimensions", "name maxbound", "type integer",
+            "reader urword", "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name stress_period_data",
             "type recarray cellid smassrate aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name smassrate",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+            "shape (maxbound)", "reader urword"],
+           ["block period", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block period", "name smassrate", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "optional true", "time_series true"],
+           ["block period", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        auxiliary=None,
-        auxmultname=None,
-        boundnames=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        timeseries=None,
-        observations=None,
-        maxbound=None,
-        stress_period_data=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "src", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, auxiliary=None,
+                 auxmultname=None, boundnames=None, print_input=None,
+                 print_flows=None, save_flows=None, timeseries=None,
+                 observations=None, maxbound=None, stress_period_data=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "src", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
@@ -338,16 +188,17 @@ def __init__(
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.maxbound = self.build_mfdata("maxbound", maxbound)
-        self.stress_period_data = self.build_mfdata(
-            "stress_period_data", stress_period_data
-        )
+        self.stress_period_data = self.build_mfdata("stress_period_data",
+                                                    stress_period_data)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwtssm.py b/flopy/mf6/modflow/mfgwtssm.py
index 4ac75d98f0..08587fc34e 100644
--- a/flopy/mf6/modflow/mfgwtssm.py
+++ b/flopy/mf6/modflow/mfgwtssm.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -77,141 +77,55 @@ class ModflowGwtssm(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    sources = ListTemplateGenerator(("gwt6", "ssm", "sources", "sources"))
-    fileinput = ListTemplateGenerator(
-        ("gwt6", "ssm", "fileinput", "fileinput")
-    )
+    sources = ListTemplateGenerator(('gwt6', 'ssm', 'sources',
+                                     'sources'))
+    fileinput = ListTemplateGenerator(('gwt6', 'ssm', 'fileinput',
+                                       'fileinput'))
     package_abbr = "gwtssm"
     _package_type = "ssm"
     dfn_file_name = "gwt-ssm.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block sources",
-            "name sources",
-            "type recarray pname srctype auxname",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block sources",
-            "name pname",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block sources",
-            "name srctype",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "optional false",
-            "reader urword",
-        ],
-        [
-            "block sources",
-            "name auxname",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block fileinput",
-            "name fileinput",
+           ["header", ],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block sources", "name sources",
+            "type recarray pname srctype auxname", "reader urword",
+            "optional false"],
+           ["block sources", "name pname", "in_record true", "type string",
+            "tagged false", "reader urword"],
+           ["block sources", "name srctype", "in_record true",
+            "type string", "tagged false", "optional false", "reader urword"],
+           ["block sources", "name auxname", "in_record true",
+            "type string", "tagged false", "reader urword", "optional false"],
+           ["block fileinput", "name fileinput",
             "type recarray pname spc6 filein spc6_filename mixed",
-            "reader urword",
-        ],
-        [
-            "block fileinput",
-            "name pname",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block fileinput",
-            "name spc6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block fileinput",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block fileinput",
-            "name spc6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block fileinput",
-            "name mixed",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-    ]
+            "reader urword"],
+           ["block fileinput", "name pname", "in_record true",
+            "type string", "tagged false", "reader urword"],
+           ["block fileinput", "name spc6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block fileinput", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block fileinput", "name spc6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block fileinput", "name mixed", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        print_flows=None,
-        save_flows=None,
-        sources=None,
-        fileinput=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "ssm", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, print_flows=None,
+                 save_flows=None, sources=None, fileinput=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "ssm", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.print_flows = self.build_mfdata("print_flows", print_flows)
diff --git a/flopy/mf6/modflow/mfgwtuzt.py b/flopy/mf6/modflow/mfgwtuzt.py
index ddbc4bb0ce..809acd9867 100644
--- a/flopy/mf6/modflow/mfgwtuzt.py
+++ b/flopy/mf6/modflow/mfgwtuzt.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -180,498 +180,190 @@ class ModflowGwtuzt(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    auxiliary = ListTemplateGenerator(("gwt6", "uzt", "options", "auxiliary"))
-    concentration_filerecord = ListTemplateGenerator(
-        ("gwt6", "uzt", "options", "concentration_filerecord")
-    )
-    budget_filerecord = ListTemplateGenerator(
-        ("gwt6", "uzt", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("gwt6", "uzt", "options", "budgetcsv_filerecord")
-    )
-    ts_filerecord = ListTemplateGenerator(
-        ("gwt6", "uzt", "options", "ts_filerecord")
-    )
-    obs_filerecord = ListTemplateGenerator(
-        ("gwt6", "uzt", "options", "obs_filerecord")
-    )
-    packagedata = ListTemplateGenerator(
-        ("gwt6", "uzt", "packagedata", "packagedata")
-    )
-    uztperioddata = ListTemplateGenerator(
-        ("gwt6", "uzt", "period", "uztperioddata")
-    )
+    auxiliary = ListTemplateGenerator(('gwt6', 'uzt', 'options',
+                                       'auxiliary'))
+    concentration_filerecord = ListTemplateGenerator((
+        'gwt6', 'uzt', 'options', 'concentration_filerecord'))
+    budget_filerecord = ListTemplateGenerator(('gwt6', 'uzt', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('gwt6', 'uzt',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    ts_filerecord = ListTemplateGenerator(('gwt6', 'uzt', 'options',
+                                           'ts_filerecord'))
+    obs_filerecord = ListTemplateGenerator(('gwt6', 'uzt', 'options',
+                                            'obs_filerecord'))
+    packagedata = ListTemplateGenerator(('gwt6', 'uzt', 'packagedata',
+                                         'packagedata'))
+    uztperioddata = ListTemplateGenerator(('gwt6', 'uzt', 'period',
+                                           'uztperioddata'))
     package_abbr = "gwtuzt"
     _package_type = "uzt"
     dfn_file_name = "gwt-uzt.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name flow_package_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name auxiliary",
-            "type string",
-            "shape (naux)",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name flow_package_auxiliary_name",
-            "type string",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_concentration",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name concentration_filerecord",
-            "type record concentration fileout concfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name concentration",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name concfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name obs_filerecord",
-            "type record obs6 filein obs6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package obs",
-            "construct_data continuous",
-            "parameter_name observations",
-        ],
-        [
-            "block options",
-            "name obs6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name obs6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
-            "type recarray ifno strt aux boundname",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name strt",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name aux",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "shape (naux)",
-            "reader urword",
-            "time_series true",
-            "optional true",
-        ],
-        [
-            "block packagedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name uztperioddata",
-            "type recarray ifno uztsetting",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name ifno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name uztsetting",
+           ["header", 
+            "multi-package", ],
+           ["block options", "name flow_package_name", "type string",
+            "shape", "reader urword", "optional true"],
+           ["block options", "name auxiliary", "type string",
+            "shape (naux)", "reader urword", "optional true"],
+           ["block options", "name flow_package_auxiliary_name",
+            "type string", "shape", "reader urword", "optional true"],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_concentration", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name concentration_filerecord",
+            "type record concentration fileout concfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name concentration", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name concfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block options", "name obs_filerecord",
+            "type record obs6 filein obs6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package obs",
+            "construct_data continuous", "parameter_name observations"],
+           ["block options", "name obs6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name obs6_filename", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword", "optional false"],
+           ["block packagedata", "name packagedata",
+            "type recarray ifno strt aux boundname", "shape (maxbound)",
+            "reader urword"],
+           ["block packagedata", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name strt", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name aux", "type double precision",
+            "in_record true", "tagged false", "shape (naux)", "reader urword",
+            "time_series true", "optional true"],
+           ["block packagedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name uztperioddata",
+            "type recarray ifno uztsetting", "shape", "reader urword"],
+           ["block period", "name ifno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name uztsetting",
             "type keystring status concentration infiltration uzet "
             "auxiliaryrecord",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name status",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name concentration",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "time_series true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name infiltration",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name uzet",
-            "type string",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name auxiliaryrecord",
-            "type record auxiliary auxname auxval",
-            "shape",
-            "tagged",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxiliary",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name auxval",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-    ]
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name status", "type string", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name concentration", "type string", "shape",
+            "tagged true", "in_record true", "time_series true",
+            "reader urword"],
+           ["block period", "name infiltration", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name uzet", "type string", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name auxiliaryrecord",
+            "type record auxiliary auxname auxval", "shape", "tagged",
+            "in_record true", "reader urword"],
+           ["block period", "name auxiliary", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name auxname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name auxval", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "time_series true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        flow_package_name=None,
-        auxiliary=None,
-        flow_package_auxiliary_name=None,
-        boundnames=None,
-        print_input=None,
-        print_concentration=None,
-        print_flows=None,
-        save_flows=None,
-        concentration_filerecord=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        timeseries=None,
-        observations=None,
-        packagedata=None,
-        uztperioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "uzt", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, flow_package_name=None,
+                 auxiliary=None, flow_package_auxiliary_name=None,
+                 boundnames=None, print_input=None, print_concentration=None,
+                 print_flows=None, save_flows=None,
+                 concentration_filerecord=None, budget_filerecord=None,
+                 budgetcsv_filerecord=None, timeseries=None, observations=None,
+                 packagedata=None, uztperioddata=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "uzt", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.flow_package_name = self.build_mfdata(
-            "flow_package_name", flow_package_name
-        )
+        self.flow_package_name = self.build_mfdata("flow_package_name",
+                                                   flow_package_name)
         self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
         self.flow_package_auxiliary_name = self.build_mfdata(
-            "flow_package_auxiliary_name", flow_package_auxiliary_name
-        )
+            "flow_package_auxiliary_name", flow_package_auxiliary_name)
         self.boundnames = self.build_mfdata("boundnames", boundnames)
         self.print_input = self.build_mfdata("print_input", print_input)
-        self.print_concentration = self.build_mfdata(
-            "print_concentration", print_concentration
-        )
+        self.print_concentration = self.build_mfdata("print_concentration",
+                                                     print_concentration)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
         self.concentration_filerecord = self.build_mfdata(
-            "concentration_filerecord", concentration_filerecord
-        )
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
-        self._obs_package = self.build_child_package(
-            "obs", observations, "continuous", self._obs_filerecord
-        )
+            "concentration_filerecord", concentration_filerecord)
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
+        self._obs_filerecord = self.build_mfdata("obs_filerecord",
+                                                 None)
+        self._obs_package = self.build_child_package("obs", observations,
+                                                     "continuous",
+                                                     self._obs_filerecord)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
         self.uztperioddata = self.build_mfdata("uztperioddata", uztperioddata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfims.py b/flopy/mf6/modflow/mfims.py
index 28a2f28f42..800271db15 100644
--- a/flopy/mf6/modflow/mfims.py
+++ b/flopy/mf6/modflow/mfims.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -358,486 +358,202 @@ class ModflowIms(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    csv_output_filerecord = ListTemplateGenerator(
-        ("ims", "options", "csv_output_filerecord")
-    )
-    csv_outer_output_filerecord = ListTemplateGenerator(
-        ("ims", "options", "csv_outer_output_filerecord")
-    )
-    csv_inner_output_filerecord = ListTemplateGenerator(
-        ("ims", "options", "csv_inner_output_filerecord")
-    )
-    no_ptcrecord = ListTemplateGenerator(("ims", "options", "no_ptcrecord"))
-    rcloserecord = ListTemplateGenerator(("ims", "linear", "rcloserecord"))
+    csv_output_filerecord = ListTemplateGenerator(('ims', 'options',
+                                                   'csv_output_filerecord'))
+    csv_outer_output_filerecord = ListTemplateGenerator((
+        'ims', 'options', 'csv_outer_output_filerecord'))
+    csv_inner_output_filerecord = ListTemplateGenerator((
+        'ims', 'options', 'csv_inner_output_filerecord'))
+    no_ptcrecord = ListTemplateGenerator(('ims', 'options',
+                                          'no_ptcrecord'))
+    rcloserecord = ListTemplateGenerator(('ims', 'linear',
+                                          'rcloserecord'))
     package_abbr = "ims"
     _package_type = "ims"
     dfn_file_name = "sln-ims.dfn"
 
     dfn = [
-        [
-            "header",
-            ["solution_package", "*"],
-        ],
-        [
-            "block options",
-            "name print_option",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name complexity",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name csv_output_filerecord",
-            "type record csv_output fileout csvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "deprecated 6.1.1",
-        ],
-        [
-            "block options",
-            "name csv_output",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-            "deprecated 6.1.1",
-        ],
-        [
-            "block options",
-            "name csvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-            "deprecated 6.1.1",
-        ],
-        [
-            "block options",
-            "name csv_outer_output_filerecord",
-            "type record csv_outer_output fileout outer_csvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name csv_outer_output",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name outer_csvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name csv_inner_output_filerecord",
-            "type record csv_inner_output fileout inner_csvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name csv_inner_output",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name inner_csvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name no_ptcrecord",
-            "type record no_ptc no_ptc_option",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name no_ptc",
-            "type keyword",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged true",
-        ],
-        [
-            "block options",
-            "name no_ptc_option",
-            "type string",
-            "in_record true",
-            "reader urword",
-            "optional true",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name ats_outer_maximum_fraction",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block nonlinear",
-            "name outer_hclose",
-            "type double precision",
-            "reader urword",
-            "optional true",
-            "deprecated 6.1.1",
-        ],
-        [
-            "block nonlinear",
-            "name outer_dvclose",
-            "type double precision",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block nonlinear",
-            "name outer_rclosebnd",
-            "type double precision",
-            "reader urword",
-            "optional true",
-            "deprecated 6.1.1",
-        ],
-        [
-            "block nonlinear",
-            "name outer_maximum",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block nonlinear",
-            "name under_relaxation",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block nonlinear",
-            "name under_relaxation_gamma",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block nonlinear",
-            "name under_relaxation_theta",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block nonlinear",
-            "name under_relaxation_kappa",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block nonlinear",
-            "name under_relaxation_momentum",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block nonlinear",
-            "name backtracking_number",
-            "type integer",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block nonlinear",
-            "name backtracking_tolerance",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block nonlinear",
-            "name backtracking_reduction_factor",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block nonlinear",
-            "name backtracking_residual_limit",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block linear",
-            "name inner_maximum",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block linear",
-            "name inner_hclose",
-            "type double precision",
-            "reader urword",
-            "optional true",
-            "deprecated 6.1.1",
-        ],
-        [
-            "block linear",
-            "name inner_dvclose",
-            "type double precision",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block linear",
-            "name rcloserecord",
-            "type record inner_rclose rclose_option",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block linear",
-            "name inner_rclose",
-            "type double precision",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block linear",
-            "name rclose_option",
-            "type string",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block linear",
-            "name linear_acceleration",
-            "type string",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block linear",
-            "name relaxation_factor",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block linear",
-            "name preconditioner_levels",
-            "type integer",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block linear",
-            "name preconditioner_drop_tolerance",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block linear",
-            "name number_orthogonalizations",
-            "type integer",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block linear",
-            "name scaling_method",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block linear",
-            "name reordering_method",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+           ["header", 
+            ["solution_package", "*"], ],
+           ["block options", "name print_option", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name complexity", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name csv_output_filerecord",
+            "type record csv_output fileout csvfile", "shape",
+            "reader urword", "tagged true", "optional true",
+            "deprecated 6.1.1"],
+           ["block options", "name csv_output", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false", "deprecated 6.1.1"],
+           ["block options", "name csvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false", "deprecated 6.1.1"],
+           ["block options", "name csv_outer_output_filerecord",
+            "type record csv_outer_output fileout outer_csvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name csv_outer_output", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name outer_csvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name csv_inner_output_filerecord",
+            "type record csv_inner_output fileout inner_csvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name csv_inner_output", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name inner_csvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name no_ptcrecord",
+            "type record no_ptc no_ptc_option", "reader urword",
+            "optional true"],
+           ["block options", "name no_ptc", "type keyword",
+            "in_record true", "reader urword", "optional false",
+            "tagged true"],
+           ["block options", "name no_ptc_option", "type string",
+            "in_record true", "reader urword", "optional true",
+            "tagged false"],
+           ["block options", "name ats_outer_maximum_fraction",
+            "type double precision", "reader urword", "optional true"],
+           ["block nonlinear", "name outer_hclose", "type double precision",
+            "reader urword", "optional true", "deprecated 6.1.1"],
+           ["block nonlinear", "name outer_dvclose",
+            "type double precision", "reader urword", "optional false"],
+           ["block nonlinear", "name outer_rclosebnd",
+            "type double precision", "reader urword", "optional true",
+            "deprecated 6.1.1"],
+           ["block nonlinear", "name outer_maximum", "type integer",
+            "reader urword", "optional false"],
+           ["block nonlinear", "name under_relaxation", "type string",
+            "reader urword", "optional true"],
+           ["block nonlinear", "name under_relaxation_gamma",
+            "type double precision", "reader urword", "optional true"],
+           ["block nonlinear", "name under_relaxation_theta",
+            "type double precision", "reader urword", "optional true"],
+           ["block nonlinear", "name under_relaxation_kappa",
+            "type double precision", "reader urword", "optional true"],
+           ["block nonlinear", "name under_relaxation_momentum",
+            "type double precision", "reader urword", "optional true"],
+           ["block nonlinear", "name backtracking_number", "type integer",
+            "reader urword", "optional true"],
+           ["block nonlinear", "name backtracking_tolerance",
+            "type double precision", "reader urword", "optional true"],
+           ["block nonlinear", "name backtracking_reduction_factor",
+            "type double precision", "reader urword", "optional true"],
+           ["block nonlinear", "name backtracking_residual_limit",
+            "type double precision", "reader urword", "optional true"],
+           ["block linear", "name inner_maximum", "type integer",
+            "reader urword", "optional false"],
+           ["block linear", "name inner_hclose", "type double precision",
+            "reader urword", "optional true", "deprecated 6.1.1"],
+           ["block linear", "name inner_dvclose", "type double precision",
+            "reader urword", "optional false"],
+           ["block linear", "name rcloserecord",
+            "type record inner_rclose rclose_option", "reader urword",
+            "optional false"],
+           ["block linear", "name inner_rclose", "type double precision",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block linear", "name rclose_option", "type string",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"],
+           ["block linear", "name linear_acceleration", "type string",
+            "reader urword", "optional false"],
+           ["block linear", "name relaxation_factor",
+            "type double precision", "reader urword", "optional true"],
+           ["block linear", "name preconditioner_levels", "type integer",
+            "reader urword", "optional true"],
+           ["block linear", "name preconditioner_drop_tolerance",
+            "type double precision", "reader urword", "optional true"],
+           ["block linear", "name number_orthogonalizations",
+            "type integer", "reader urword", "optional true"],
+           ["block linear", "name scaling_method", "type string",
+            "reader urword", "optional true"],
+           ["block linear", "name reordering_method", "type string",
+            "reader urword", "optional true"]]
 
-    def __init__(
-        self,
-        simulation,
-        loading_package=False,
-        print_option=None,
-        complexity=None,
-        csv_output_filerecord=None,
-        csv_outer_output_filerecord=None,
-        csv_inner_output_filerecord=None,
-        no_ptcrecord=None,
-        ats_outer_maximum_fraction=None,
-        outer_hclose=None,
-        outer_dvclose=None,
-        outer_rclosebnd=None,
-        outer_maximum=None,
-        under_relaxation=None,
-        under_relaxation_gamma=None,
-        under_relaxation_theta=None,
-        under_relaxation_kappa=None,
-        under_relaxation_momentum=None,
-        backtracking_number=None,
-        backtracking_tolerance=None,
-        backtracking_reduction_factor=None,
-        backtracking_residual_limit=None,
-        inner_maximum=None,
-        inner_hclose=None,
-        inner_dvclose=None,
-        rcloserecord=None,
-        linear_acceleration=None,
-        relaxation_factor=None,
-        preconditioner_levels=None,
-        preconditioner_drop_tolerance=None,
-        number_orthogonalizations=None,
-        scaling_method=None,
-        reordering_method=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            simulation, "ims", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, simulation, loading_package=False, print_option=None,
+                 complexity=None, csv_output_filerecord=None,
+                 csv_outer_output_filerecord=None,
+                 csv_inner_output_filerecord=None, no_ptcrecord=None,
+                 ats_outer_maximum_fraction=None, outer_hclose=None,
+                 outer_dvclose=None, outer_rclosebnd=None, outer_maximum=None,
+                 under_relaxation=None, under_relaxation_gamma=None,
+                 under_relaxation_theta=None, under_relaxation_kappa=None,
+                 under_relaxation_momentum=None, backtracking_number=None,
+                 backtracking_tolerance=None,
+                 backtracking_reduction_factor=None,
+                 backtracking_residual_limit=None, inner_maximum=None,
+                 inner_hclose=None, inner_dvclose=None, rcloserecord=None,
+                 linear_acceleration=None, relaxation_factor=None,
+                 preconditioner_levels=None,
+                 preconditioner_drop_tolerance=None,
+                 number_orthogonalizations=None, scaling_method=None,
+                 reordering_method=None, filename=None, pname=None, **kwargs):
+        super().__init__(simulation, "ims", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.print_option = self.build_mfdata("print_option", print_option)
         self.complexity = self.build_mfdata("complexity", complexity)
-        self.csv_output_filerecord = self.build_mfdata(
-            "csv_output_filerecord", csv_output_filerecord
-        )
+        self.csv_output_filerecord = self.build_mfdata("csv_output_filerecord",
+                                                       csv_output_filerecord)
         self.csv_outer_output_filerecord = self.build_mfdata(
-            "csv_outer_output_filerecord", csv_outer_output_filerecord
-        )
+            "csv_outer_output_filerecord", csv_outer_output_filerecord)
         self.csv_inner_output_filerecord = self.build_mfdata(
-            "csv_inner_output_filerecord", csv_inner_output_filerecord
-        )
+            "csv_inner_output_filerecord", csv_inner_output_filerecord)
         self.no_ptcrecord = self.build_mfdata("no_ptcrecord", no_ptcrecord)
         self.ats_outer_maximum_fraction = self.build_mfdata(
-            "ats_outer_maximum_fraction", ats_outer_maximum_fraction
-        )
+            "ats_outer_maximum_fraction", ats_outer_maximum_fraction)
         self.outer_hclose = self.build_mfdata("outer_hclose", outer_hclose)
         self.outer_dvclose = self.build_mfdata("outer_dvclose", outer_dvclose)
-        self.outer_rclosebnd = self.build_mfdata(
-            "outer_rclosebnd", outer_rclosebnd
-        )
+        self.outer_rclosebnd = self.build_mfdata("outer_rclosebnd",
+                                                 outer_rclosebnd)
         self.outer_maximum = self.build_mfdata("outer_maximum", outer_maximum)
-        self.under_relaxation = self.build_mfdata(
-            "under_relaxation", under_relaxation
-        )
+        self.under_relaxation = self.build_mfdata("under_relaxation",
+                                                  under_relaxation)
         self.under_relaxation_gamma = self.build_mfdata(
-            "under_relaxation_gamma", under_relaxation_gamma
-        )
+            "under_relaxation_gamma", under_relaxation_gamma)
         self.under_relaxation_theta = self.build_mfdata(
-            "under_relaxation_theta", under_relaxation_theta
-        )
+            "under_relaxation_theta", under_relaxation_theta)
         self.under_relaxation_kappa = self.build_mfdata(
-            "under_relaxation_kappa", under_relaxation_kappa
-        )
+            "under_relaxation_kappa", under_relaxation_kappa)
         self.under_relaxation_momentum = self.build_mfdata(
-            "under_relaxation_momentum", under_relaxation_momentum
-        )
-        self.backtracking_number = self.build_mfdata(
-            "backtracking_number", backtracking_number
-        )
+            "under_relaxation_momentum", under_relaxation_momentum)
+        self.backtracking_number = self.build_mfdata("backtracking_number",
+                                                     backtracking_number)
         self.backtracking_tolerance = self.build_mfdata(
-            "backtracking_tolerance", backtracking_tolerance
-        )
+            "backtracking_tolerance", backtracking_tolerance)
         self.backtracking_reduction_factor = self.build_mfdata(
-            "backtracking_reduction_factor", backtracking_reduction_factor
-        )
+            "backtracking_reduction_factor", backtracking_reduction_factor)
         self.backtracking_residual_limit = self.build_mfdata(
-            "backtracking_residual_limit", backtracking_residual_limit
-        )
+            "backtracking_residual_limit", backtracking_residual_limit)
         self.inner_maximum = self.build_mfdata("inner_maximum", inner_maximum)
         self.inner_hclose = self.build_mfdata("inner_hclose", inner_hclose)
         self.inner_dvclose = self.build_mfdata("inner_dvclose", inner_dvclose)
         self.rcloserecord = self.build_mfdata("rcloserecord", rcloserecord)
-        self.linear_acceleration = self.build_mfdata(
-            "linear_acceleration", linear_acceleration
-        )
-        self.relaxation_factor = self.build_mfdata(
-            "relaxation_factor", relaxation_factor
-        )
-        self.preconditioner_levels = self.build_mfdata(
-            "preconditioner_levels", preconditioner_levels
-        )
+        self.linear_acceleration = self.build_mfdata("linear_acceleration",
+                                                     linear_acceleration)
+        self.relaxation_factor = self.build_mfdata("relaxation_factor",
+                                                   relaxation_factor)
+        self.preconditioner_levels = self.build_mfdata("preconditioner_levels",
+                                                       preconditioner_levels)
         self.preconditioner_drop_tolerance = self.build_mfdata(
-            "preconditioner_drop_tolerance", preconditioner_drop_tolerance
-        )
+            "preconditioner_drop_tolerance", preconditioner_drop_tolerance)
         self.number_orthogonalizations = self.build_mfdata(
-            "number_orthogonalizations", number_orthogonalizations
-        )
-        self.scaling_method = self.build_mfdata(
-            "scaling_method", scaling_method
-        )
-        self.reordering_method = self.build_mfdata(
-            "reordering_method", reordering_method
-        )
+            "number_orthogonalizations", number_orthogonalizations)
+        self.scaling_method = self.build_mfdata("scaling_method",
+                                                scaling_method)
+        self.reordering_method = self.build_mfdata("reordering_method",
+                                                   reordering_method)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfmvr.py b/flopy/mf6/modflow/mfmvr.py
index 2d30d3e13f..1f74a1a68f 100644
--- a/flopy/mf6/modflow/mfmvr.py
+++ b/flopy/mf6/modflow/mfmvr.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -107,293 +107,100 @@ class ModflowMvr(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    budget_filerecord = ListTemplateGenerator(
-        ("mvr", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("mvr", "options", "budgetcsv_filerecord")
-    )
-    packages = ListTemplateGenerator(("mvr", "packages", "packages"))
-    perioddata = ListTemplateGenerator(("mvr", "period", "perioddata"))
+    budget_filerecord = ListTemplateGenerator(('mvr', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('mvr', 'options',
+                                                  'budgetcsv_filerecord'))
+    packages = ListTemplateGenerator(('mvr', 'packages', 'packages'))
+    perioddata = ListTemplateGenerator(('mvr', 'period', 'perioddata'))
     package_abbr = "mvr"
     _package_type = "mvr"
     dfn_file_name = "gwf-mvr.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name modelnames",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name maxmvr",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name maxpackages",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packages",
-            "name packages",
-            "type recarray mname pname",
-            "reader urword",
-            "shape (npackages)",
-            "optional false",
-        ],
-        [
-            "block packages",
-            "name mname",
-            "type string",
-            "reader urword",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "optional true",
-        ],
-        [
-            "block packages",
-            "name pname",
-            "type string",
-            "reader urword",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name perioddata",
+           ["header", ],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name modelnames", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block dimensions", "name maxmvr", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name maxpackages", "type integer",
+            "reader urword", "optional false"],
+           ["block packages", "name packages", "type recarray mname pname",
+            "reader urword", "shape (npackages)", "optional false"],
+           ["block packages", "name mname", "type string", "reader urword",
+            "shape", "tagged false", "in_record true", "optional true"],
+           ["block packages", "name pname", "type string", "reader urword",
+            "shape", "tagged false", "in_record true", "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name perioddata",
             "type recarray mname1 pname1 id1 mname2 pname2 id2 mvrtype value",
-            "shape (maxbound)",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name mname1",
-            "type string",
-            "reader urword",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name pname1",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name id1",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name mname2",
-            "type string",
-            "reader urword",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name pname2",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name id2",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name mvrtype",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name value",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-    ]
+            "shape (maxbound)", "reader urword"],
+           ["block period", "name mname1", "type string", "reader urword",
+            "shape", "tagged false", "in_record true", "optional true"],
+           ["block period", "name pname1", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name id1", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name mname2", "type string", "reader urword",
+            "shape", "tagged false", "in_record true", "optional true"],
+           ["block period", "name pname2", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name id2", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name mvrtype", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name value", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword"]]
 
-    def __init__(
-        self,
-        parent_model_or_package,
-        loading_package=False,
-        print_input=None,
-        print_flows=None,
-        modelnames=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        maxmvr=None,
-        maxpackages=None,
-        packages=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            parent_model_or_package,
-            "mvr",
-            filename,
-            pname,
-            loading_package,
-            **kwargs,
-        )
+    def __init__(self, parent_model_or_package, loading_package=False,
+                 print_input=None, print_flows=None, modelnames=None,
+                 budget_filerecord=None, budgetcsv_filerecord=None,
+                 maxmvr=None, maxpackages=None, packages=None, perioddata=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(parent_model_or_package, "mvr", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.modelnames = self.build_mfdata("modelnames", modelnames)
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
         self.maxmvr = self.build_mfdata("maxmvr", maxmvr)
         self.maxpackages = self.build_mfdata("maxpackages", maxpackages)
         self.packages = self.build_mfdata("packages", packages)
@@ -415,67 +222,34 @@ class MvrPackages(mfpackage.MFChildPackages):
         Adds a new ModflowGwfmvr package to the container. See ModflowGwfmvr
         init documentation for definition of parameters.
     """
-
     package_abbr = "mvrpackages"
 
-    def initialize(
-        self,
-        print_input=None,
-        print_flows=None,
-        modelnames=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        maxmvr=None,
-        maxpackages=None,
-        packages=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowMvr(
-            self._cpparent,
-            print_input=print_input,
-            print_flows=print_flows,
-            modelnames=modelnames,
-            budget_filerecord=budget_filerecord,
-            budgetcsv_filerecord=budgetcsv_filerecord,
-            maxmvr=maxmvr,
-            maxpackages=maxpackages,
-            packages=packages,
-            perioddata=perioddata,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def initialize(self, print_input=None, print_flows=None, modelnames=None,
+                   budget_filerecord=None, budgetcsv_filerecord=None,
+                   maxmvr=None, maxpackages=None, packages=None,
+                   perioddata=None, filename=None, pname=None):
+        new_package = ModflowMvr(self._cpparent, print_input=print_input,
+                                    print_flows=print_flows,
+                                    modelnames=modelnames,
+                                    budget_filerecord=budget_filerecord,
+                                    budgetcsv_filerecord=budgetcsv_filerecord,
+                                    maxmvr=maxmvr, maxpackages=maxpackages,
+                                    packages=packages, perioddata=perioddata,
+                                    filename=filename, pname=pname,
+                                    child_builder_call=True)
         self.init_package(new_package, filename)
 
-    def append_package(
-        self,
-        print_input=None,
-        print_flows=None,
-        modelnames=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        maxmvr=None,
-        maxpackages=None,
-        packages=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowGwfmvr(
-            self._cpparent,
-            print_input=print_input,
-            print_flows=print_flows,
-            modelnames=modelnames,
-            budget_filerecord=budget_filerecord,
-            budgetcsv_filerecord=budgetcsv_filerecord,
-            maxmvr=maxmvr,
-            maxpackages=maxpackages,
-            packages=packages,
-            perioddata=perioddata,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def append_package(self, print_input=None, print_flows=None,
+                   modelnames=None, budget_filerecord=None,
+                   budgetcsv_filerecord=None, maxmvr=None, maxpackages=None,
+                   packages=None, perioddata=None, filename=None, pname=None):
+        new_package = ModflowGwfmvr(self._cpparent, print_input=print_input,
+                                    print_flows=print_flows,
+                                    modelnames=modelnames,
+                                    budget_filerecord=budget_filerecord,
+                                    budgetcsv_filerecord=budgetcsv_filerecord,
+                                    maxmvr=maxmvr, maxpackages=maxpackages,
+                                    packages=packages, perioddata=perioddata,
+                                    filename=filename, pname=pname,
+                                    child_builder_call=True)
         self._append_package(new_package, filename)
diff --git a/flopy/mf6/modflow/mfmvt.py b/flopy/mf6/modflow/mfmvt.py
index a4994f0847..051d8da7e3 100644
--- a/flopy/mf6/modflow/mfmvt.py
+++ b/flopy/mf6/modflow/mfmvt.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -45,150 +45,63 @@ class ModflowMvt(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    budget_filerecord = ListTemplateGenerator(
-        ("mvt", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("mvt", "options", "budgetcsv_filerecord")
-    )
+    budget_filerecord = ListTemplateGenerator(('mvt', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('mvt', 'options',
+                                                  'budgetcsv_filerecord'))
     package_abbr = "mvt"
     _package_type = "mvt"
     dfn_file_name = "gwt-mvt.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"]]
 
-    def __init__(
-        self,
-        parent_model_or_package,
-        loading_package=False,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            parent_model_or_package,
-            "mvt",
-            filename,
-            pname,
-            loading_package,
-            **kwargs,
-        )
+    def __init__(self, parent_model_or_package, loading_package=False,
+                 print_input=None, print_flows=None, save_flows=None,
+                 budget_filerecord=None, budgetcsv_filerecord=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(parent_model_or_package, "mvt", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.print_input = self.build_mfdata("print_input", print_input)
         self.print_flows = self.build_mfdata("print_flows", print_flows)
         self.save_flows = self.build_mfdata("save_flows", save_flows)
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
         self._init_complete = True
 
 
@@ -206,51 +119,28 @@ class MvtPackages(mfpackage.MFChildPackages):
         Adds a new ModflowGwtmvt package to the container. See ModflowGwtmvt
         init documentation for definition of parameters.
     """
-
     package_abbr = "mvtpackages"
 
-    def initialize(
-        self,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowMvt(
-            self._cpparent,
-            print_input=print_input,
-            print_flows=print_flows,
-            save_flows=save_flows,
-            budget_filerecord=budget_filerecord,
-            budgetcsv_filerecord=budgetcsv_filerecord,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def initialize(self, print_input=None, print_flows=None, save_flows=None,
+                   budget_filerecord=None, budgetcsv_filerecord=None,
+                   filename=None, pname=None):
+        new_package = ModflowMvt(self._cpparent, print_input=print_input,
+                                    print_flows=print_flows,
+                                    save_flows=save_flows,
+                                    budget_filerecord=budget_filerecord,
+                                    budgetcsv_filerecord=budgetcsv_filerecord,
+                                    filename=filename, pname=pname,
+                                    child_builder_call=True)
         self.init_package(new_package, filename)
 
-    def append_package(
-        self,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowGwtmvt(
-            self._cpparent,
-            print_input=print_input,
-            print_flows=print_flows,
-            save_flows=save_flows,
-            budget_filerecord=budget_filerecord,
-            budgetcsv_filerecord=budgetcsv_filerecord,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def append_package(self, print_input=None, print_flows=None,
+                   save_flows=None, budget_filerecord=None,
+                   budgetcsv_filerecord=None, filename=None, pname=None):
+        new_package = ModflowGwtmvt(self._cpparent, print_input=print_input,
+                                    print_flows=print_flows,
+                                    save_flows=save_flows,
+                                    budget_filerecord=budget_filerecord,
+                                    budgetcsv_filerecord=budgetcsv_filerecord,
+                                    filename=filename, pname=pname,
+                                    child_builder_call=True)
         self._append_package(new_package, filename)
diff --git a/flopy/mf6/modflow/mfnam.py b/flopy/mf6/modflow/mfnam.py
index d3ac30e3cb..9e00d03736 100644
--- a/flopy/mf6/modflow/mfnam.py
+++ b/flopy/mf6/modflow/mfnam.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -80,268 +80,100 @@ class ModflowNam(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    hpc_filerecord = ListTemplateGenerator(
-        ("nam", "options", "hpc_filerecord")
-    )
-    models = ListTemplateGenerator(("nam", "models", "models"))
-    exchanges = ListTemplateGenerator(("nam", "exchanges", "exchanges"))
-    solutiongroup = ListTemplateGenerator(
-        ("nam", "solutiongroup", "solutiongroup")
-    )
+    hpc_filerecord = ListTemplateGenerator(('nam', 'options',
+                                            'hpc_filerecord'))
+    models = ListTemplateGenerator(('nam', 'models', 'models'))
+    exchanges = ListTemplateGenerator(('nam', 'exchanges', 'exchanges'))
+    solutiongroup = ListTemplateGenerator(('nam', 'solutiongroup',
+                                           'solutiongroup'))
     package_abbr = "nam"
     _package_type = "nam"
     dfn_file_name = "sim-nam.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name continue",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name nocheck",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name memory_print_option",
-            "type string",
-            "reader urword",
-            "optional true",
-            "mf6internal prmem",
-        ],
-        [
-            "block options",
-            "name maxerrors",
-            "type integer",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name hpc_filerecord",
-            "type record hpc6 filein hpc6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package hpc",
-            "construct_data hpc_data",
-            "parameter_name hpc",
-        ],
-        [
-            "block options",
-            "name hpc6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name hpc6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block timing",
-            "name tdis6",
-            "preserve_case true",
-            "type string",
-            "reader urword",
-            "optional",
-        ],
-        [
-            "block models",
-            "name models",
-            "type recarray mtype mfname mname",
-            "reader urword",
-            "optional",
-        ],
-        [
-            "block models",
-            "name mtype",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block models",
-            "name mfname",
-            "in_record true",
-            "type string",
-            "preserve_case true",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block models",
-            "name mname",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block exchanges",
-            "name exchanges",
+           ["header", ],
+           ["block options", "name continue", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name nocheck", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name memory_print_option", "type string",
+            "reader urword", "optional true", "mf6internal prmem"],
+           ["block options", "name maxerrors", "type integer",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name hpc_filerecord",
+            "type record hpc6 filein hpc6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package hpc",
+            "construct_data hpc_data", "parameter_name hpc"],
+           ["block options", "name hpc6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false", "extended true"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name hpc6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false", "extended true"],
+           ["block timing", "name tdis6", "preserve_case true",
+            "type string", "reader urword", "optional"],
+           ["block models", "name models",
+            "type recarray mtype mfname mname", "reader urword", "optional"],
+           ["block models", "name mtype", "in_record true", "type string",
+            "tagged false", "reader urword"],
+           ["block models", "name mfname", "in_record true", "type string",
+            "preserve_case true", "tagged false", "reader urword"],
+           ["block models", "name mname", "in_record true", "type string",
+            "tagged false", "reader urword"],
+           ["block exchanges", "name exchanges",
             "type recarray exgtype exgfile exgmnamea exgmnameb",
-            "reader urword",
-            "optional",
-        ],
-        [
-            "block exchanges",
-            "name exgtype",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block exchanges",
-            "name exgfile",
-            "in_record true",
-            "type string",
-            "preserve_case true",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block exchanges",
-            "name exgmnamea",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block exchanges",
-            "name exgmnameb",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block solutiongroup",
-            "name group_num",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block solutiongroup",
-            "name mxiter",
-            "type integer",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block solutiongroup",
-            "name solutiongroup",
-            "type recarray slntype slnfname slnmnames",
-            "reader urword",
-        ],
-        [
-            "block solutiongroup",
-            "name slntype",
-            "type string",
-            "valid ims6 ems6",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block solutiongroup",
-            "name slnfname",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block solutiongroup",
-            "name slnmnames",
-            "type string",
-            "in_record true",
-            "shape (:)",
-            "tagged false",
-            "reader urword",
-        ],
-    ]
+            "reader urword", "optional"],
+           ["block exchanges", "name exgtype", "in_record true",
+            "type string", "tagged false", "reader urword"],
+           ["block exchanges", "name exgfile", "in_record true",
+            "type string", "preserve_case true", "tagged false",
+            "reader urword"],
+           ["block exchanges", "name exgmnamea", "in_record true",
+            "type string", "tagged false", "reader urword"],
+           ["block exchanges", "name exgmnameb", "in_record true",
+            "type string", "tagged false", "reader urword"],
+           ["block solutiongroup", "name group_num", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "reader urword"],
+           ["block solutiongroup", "name mxiter", "type integer",
+            "reader urword", "optional true"],
+           ["block solutiongroup", "name solutiongroup",
+            "type recarray slntype slnfname slnmnames", "reader urword"],
+           ["block solutiongroup", "name slntype", "type string",
+            "valid ims6 ems6", "in_record true", "tagged false",
+            "reader urword"],
+           ["block solutiongroup", "name slnfname", "type string",
+            "preserve_case true", "in_record true", "tagged false",
+            "reader urword"],
+           ["block solutiongroup", "name slnmnames", "type string",
+            "in_record true", "shape (:)", "tagged false", "reader urword"]]
 
-    def __init__(
-        self,
-        simulation,
-        loading_package=False,
-        continue_=None,
-        nocheck=None,
-        memory_print_option=None,
-        maxerrors=None,
-        print_input=None,
-        tdis6=None,
-        models=None,
-        exchanges=None,
-        mxiter=None,
-        solutiongroup=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            simulation, "nam", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, simulation, loading_package=False, continue_=None,
+                 nocheck=None, memory_print_option=None, maxerrors=None,
+                 print_input=None, tdis6=None, models=None, exchanges=None,
+                 mxiter=None, solutiongroup=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(simulation, "nam", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.continue_ = self.build_mfdata("continue", continue_)
         self.nocheck = self.build_mfdata("nocheck", nocheck)
-        self.memory_print_option = self.build_mfdata(
-            "memory_print_option", memory_print_option
-        )
+        self.memory_print_option = self.build_mfdata("memory_print_option",
+                                                     memory_print_option)
         self.maxerrors = self.build_mfdata("maxerrors", maxerrors)
         self.print_input = self.build_mfdata("print_input", print_input)
-        self._hpc_filerecord = self.build_mfdata("hpc_filerecord", None)
+        self._hpc_filerecord = self.build_mfdata("hpc_filerecord",
+                                                 None)
         self.tdis6 = self.build_mfdata("tdis6", tdis6)
         self.models = self.build_mfdata("models", models)
         self.exchanges = self.build_mfdata("exchanges", exchanges)
diff --git a/flopy/mf6/modflow/mfprt.py b/flopy/mf6/modflow/mfprt.py
index b5c5eacb2f..95b1c4d406 100644
--- a/flopy/mf6/modflow/mfprt.py
+++ b/flopy/mf6/modflow/mfprt.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfmodel
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -69,33 +69,18 @@ class ModflowPrt(mfmodel.MFModel):
         model_ws : string, strict : boolean) : MFSimulation
         a class method that loads a model from files
     """
+    model_type = 'prt'
 
-    model_type = "prt"
-
-    def __init__(
-        self,
-        simulation,
-        modelname="model",
-        model_nam_file=None,
-        version="mf6",
-        exe_name="mf6",
-        model_rel_path=".",
-        list=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        **kwargs,
-    ):
-        super().__init__(
-            simulation,
-            model_type="prt6",
-            modelname=modelname,
-            model_nam_file=model_nam_file,
-            version=version,
-            exe_name=exe_name,
-            model_rel_path=model_rel_path,
-            **kwargs,
-        )
+    def __init__(self, simulation, modelname='model', model_nam_file=None,
+                 version='mf6', exe_name='mf6', model_rel_path='.', list=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 **kwargs,):
+        super().__init__(simulation, model_type='prt6',
+                         modelname=modelname,
+                         model_nam_file=model_nam_file,
+                         version=version, exe_name=exe_name,
+                         model_rel_path=model_rel_path,
+                         **kwargs,)
 
         self.name_file.list.set_data(list)
         self.name_file.print_input.set_data(print_input)
@@ -108,28 +93,11 @@ def __init__(
         self.save_flows = self.name_file.save_flows
 
     @classmethod
-    def load(
-        cls,
-        simulation,
-        structure,
-        modelname="NewModel",
-        model_nam_file="modflowtest.nam",
-        version="mf6",
-        exe_name="mf6",
-        strict=True,
-        model_rel_path=".",
-        load_only=None,
-    ):
-        return mfmodel.MFModel.load_base(
-            cls,
-            simulation,
-            structure,
-            modelname,
-            model_nam_file,
-            "prt6",
-            version,
-            exe_name,
-            strict,
-            model_rel_path,
-            load_only,
-        )
+    def load(cls, simulation, structure, modelname='NewModel',
+             model_nam_file='modflowtest.nam', version='mf6',
+             exe_name='mf6', strict=True, model_rel_path='.',
+             load_only=None):
+        return mfmodel.MFModel.load_base(cls, simulation, structure, modelname,
+                                         model_nam_file, 'prt6', version,
+                                         exe_name, strict, model_rel_path,
+                                         load_only)
diff --git a/flopy/mf6/modflow/mfprtdis.py b/flopy/mf6/modflow/mfprtdis.py
index 5a29b80c1b..253e090f4c 100644
--- a/flopy/mf6/modflow/mfprtdis.py
+++ b/flopy/mf6/modflow/mfprtdis.py
@@ -1,8 +1,8 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
-from ..data.mfdatautil import ArrayTemplateGenerator
+from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
 
 class ModflowPrtdis(mfpackage.MFPackage):
@@ -45,6 +45,14 @@ class ModflowPrtdis(mfpackage.MFPackage):
     export_array_ascii : boolean
         * export_array_ascii (boolean) keyword that specifies input griddata
           arrays should be written to layered ascii output files.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
+    packagedata : {varname:data} or packagedata data
+        * Contains data for the ncf package. Data can be stored in a dictionary
+          containing data for the ncf package with variable names as keys and
+          package data as values. Data just for the packagedata variable is
+          also acceptable. See ncf package documentation for more information.
     nlay : integer
         * nlay (integer) is the number of layers in the model grid.
     nrow : integer
@@ -78,160 +86,77 @@ class ModflowPrtdis(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    delr = ArrayTemplateGenerator(("prt6", "dis", "griddata", "delr"))
-    delc = ArrayTemplateGenerator(("prt6", "dis", "griddata", "delc"))
-    top = ArrayTemplateGenerator(("prt6", "dis", "griddata", "top"))
-    botm = ArrayTemplateGenerator(("prt6", "dis", "griddata", "botm"))
-    idomain = ArrayTemplateGenerator(("prt6", "dis", "griddata", "idomain"))
+    ncf_filerecord = ListTemplateGenerator(('prt6', 'dis', 'options',
+                                            'ncf_filerecord'))
+    delr = ArrayTemplateGenerator(('prt6', 'dis', 'griddata', 'delr'))
+    delc = ArrayTemplateGenerator(('prt6', 'dis', 'griddata', 'delc'))
+    top = ArrayTemplateGenerator(('prt6', 'dis', 'griddata', 'top'))
+    botm = ArrayTemplateGenerator(('prt6', 'dis', 'griddata', 'botm'))
+    idomain = ArrayTemplateGenerator(('prt6', 'dis', 'griddata',
+                                      'idomain'))
     package_abbr = "prtdis"
     _package_type = "dis"
     dfn_file_name = "prt-dis.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name length_units",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name nogrb",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name xorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name yorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name angrot",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block dimensions",
-            "name nlay",
-            "type integer",
-            "reader urword",
-            "optional false",
-            "default_value 1",
-        ],
-        [
-            "block dimensions",
-            "name nrow",
-            "type integer",
-            "reader urword",
-            "optional false",
-            "default_value 2",
-        ],
-        [
-            "block dimensions",
-            "name ncol",
-            "type integer",
-            "reader urword",
-            "optional false",
-            "default_value 2",
-        ],
-        [
-            "block griddata",
-            "name delr",
-            "type double precision",
-            "shape (ncol)",
-            "reader readarray",
-            "default_value 1.0",
-        ],
-        [
-            "block griddata",
-            "name delc",
-            "type double precision",
-            "shape (nrow)",
-            "reader readarray",
-            "default_value 1.0",
-        ],
-        [
-            "block griddata",
-            "name top",
-            "type double precision",
-            "shape (ncol, nrow)",
-            "reader readarray",
-            "default_value 1.0",
-        ],
-        [
-            "block griddata",
-            "name botm",
-            "type double precision",
-            "shape (ncol, nrow, nlay)",
-            "reader readarray",
-            "layered true",
-            "default_value 0.",
-        ],
-        [
-            "block griddata",
-            "name idomain",
-            "type integer",
-            "shape (ncol, nrow, nlay)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name length_units", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name nogrb", "type keyword", "reader urword",
+            "optional true"],
+           ["block options", "name xorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name yorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name angrot", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc"],
+           ["block options", "name ncf_filerecord",
+            "type record ncf6 filein ncf6_filename", "reader urword",
+            "tagged true", "optional true", "construct_package ncf",
+            "construct_data packagedata", "parameter_name packagedata"],
+           ["block options", "name ncf6", "type keyword", "in_record true",
+            "reader urword", "tagged true", "optional false"],
+           ["block options", "name filein", "type keyword",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ncf6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block dimensions", "name nlay", "type integer",
+            "reader urword", "optional false", "default_value 1"],
+           ["block dimensions", "name nrow", "type integer",
+            "reader urword", "optional false", "default_value 2"],
+           ["block dimensions", "name ncol", "type integer",
+            "reader urword", "optional false", "default_value 2"],
+           ["block griddata", "name delr", "type double precision",
+            "shape (ncol)", "reader readarray", "default_value 1.0"],
+           ["block griddata", "name delc", "type double precision",
+            "shape (nrow)", "reader readarray", "default_value 1.0"],
+           ["block griddata", "name top", "type double precision",
+            "shape (ncol, nrow)", "reader readarray", "default_value 1.0"],
+           ["block griddata", "name botm", "type double precision",
+            "shape (ncol, nrow, nlay)", "reader readarray", "layered true",
+            "default_value 0."],
+           ["block griddata", "name idomain", "type integer",
+            "shape (ncol, nrow, nlay)", "reader readarray", "layered true",
+            "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        length_units=None,
-        nogrb=None,
-        xorigin=None,
-        yorigin=None,
-        angrot=None,
-        export_array_ascii=None,
-        nlay=1,
-        nrow=2,
-        ncol=2,
-        delr=1.0,
-        delc=1.0,
-        top=1.0,
-        botm=0.0,
-        idomain=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "dis", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, length_units=None,
+                 nogrb=None, xorigin=None, yorigin=None, angrot=None,
+                 export_array_ascii=None, export_array_netcdf=None,
+                 packagedata=None, nlay=1, nrow=2, ncol=2, delr=1.0, delc=1.0,
+                 top=1.0, botm=0., idomain=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(model, "dis", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.length_units = self.build_mfdata("length_units", length_units)
@@ -239,9 +164,15 @@ def __init__(
         self.xorigin = self.build_mfdata("xorigin", xorigin)
         self.yorigin = self.build_mfdata("yorigin", yorigin)
         self.angrot = self.build_mfdata("angrot", angrot)
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
+        self._ncf_filerecord = self.build_mfdata("ncf_filerecord",
+                                                 None)
+        self._ncf_package = self.build_child_package("ncf", packagedata,
+                                                     "packagedata",
+                                                     self._ncf_filerecord)
         self.nlay = self.build_mfdata("nlay", nlay)
         self.nrow = self.build_mfdata("nrow", nrow)
         self.ncol = self.build_mfdata("ncol", ncol)
diff --git a/flopy/mf6/modflow/mfprtdisv.py b/flopy/mf6/modflow/mfprtdisv.py
index 43b68ab215..354f43fa15 100644
--- a/flopy/mf6/modflow/mfprtdisv.py
+++ b/flopy/mf6/modflow/mfprtdisv.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -48,6 +48,14 @@ class ModflowPrtdisv(mfpackage.MFPackage):
     export_array_ascii : boolean
         * export_array_ascii (boolean) keyword that specifies input griddata
           arrays should be written to layered ascii output files.
+    export_array_netcdf : boolean
+        * export_array_netcdf (boolean) keyword that specifies input griddata
+          arrays should be written to the model output netcdf file.
+    packagedata : {varname:data} or packagedata data
+        * Contains data for the ncf package. Data can be stored in a dictionary
+          containing data for the ncf package with variable names as keys and
+          package data as values. Data just for the packagedata variable is
+          also acceptable. See ncf package documentation for more information.
     nlay : integer
         * nlay (integer) is the number of layers in the model grid.
     ncpl : integer
@@ -106,231 +114,101 @@ class ModflowPrtdisv(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    top = ArrayTemplateGenerator(("prt6", "disv", "griddata", "top"))
-    botm = ArrayTemplateGenerator(("prt6", "disv", "griddata", "botm"))
-    idomain = ArrayTemplateGenerator(("prt6", "disv", "griddata", "idomain"))
-    vertices = ListTemplateGenerator(("prt6", "disv", "vertices", "vertices"))
-    cell2d = ListTemplateGenerator(("prt6", "disv", "cell2d", "cell2d"))
+    ncf_filerecord = ListTemplateGenerator(('prt6', 'disv', 'options',
+                                            'ncf_filerecord'))
+    top = ArrayTemplateGenerator(('prt6', 'disv', 'griddata', 'top'))
+    botm = ArrayTemplateGenerator(('prt6', 'disv', 'griddata', 'botm'))
+    idomain = ArrayTemplateGenerator(('prt6', 'disv', 'griddata',
+                                      'idomain'))
+    vertices = ListTemplateGenerator(('prt6', 'disv', 'vertices',
+                                      'vertices'))
+    cell2d = ListTemplateGenerator(('prt6', 'disv', 'cell2d', 'cell2d'))
     package_abbr = "prtdisv"
     _package_type = "disv"
     dfn_file_name = "prt-disv.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name length_units",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name nogrb",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name xorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name yorigin",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name angrot",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block dimensions",
-            "name nlay",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name ncpl",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name nvert",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block griddata",
-            "name top",
-            "type double precision",
-            "shape (ncpl)",
-            "reader readarray",
-        ],
-        [
-            "block griddata",
-            "name botm",
-            "type double precision",
-            "shape (ncpl, nlay)",
-            "reader readarray",
-            "layered true",
-        ],
-        [
-            "block griddata",
-            "name idomain",
-            "type integer",
-            "shape (ncpl, nlay)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block vertices",
-            "name vertices",
-            "type recarray iv xv yv",
-            "shape (nvert)",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block vertices",
-            "name iv",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block vertices",
-            "name xv",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block vertices",
-            "name yv",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name cell2d",
-            "type recarray icell2d xc yc ncvert icvert",
-            "shape (ncpl)",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name icell2d",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block cell2d",
-            "name xc",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name yc",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name ncvert",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block cell2d",
-            "name icvert",
-            "type integer",
-            "shape (ncvert)",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name length_units", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name nogrb", "type keyword", "reader urword",
+            "optional true"],
+           ["block options", "name xorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name yorigin", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name angrot", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block options", "name export_array_netcdf", "type keyword",
+            "reader urword", "optional true", "mf6internal export_nc"],
+           ["block options", "name ncf_filerecord",
+            "type record ncf6 filein ncf6_filename", "reader urword",
+            "tagged true", "optional true", "construct_package ncf",
+            "construct_data packagedata", "parameter_name packagedata"],
+           ["block options", "name ncf6", "type keyword", "in_record true",
+            "reader urword", "tagged true", "optional false"],
+           ["block options", "name filein", "type keyword",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ncf6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block dimensions", "name nlay", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name ncpl", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name nvert", "type integer",
+            "reader urword", "optional false"],
+           ["block griddata", "name top", "type double precision",
+            "shape (ncpl)", "reader readarray"],
+           ["block griddata", "name botm", "type double precision",
+            "shape (ncpl, nlay)", "reader readarray", "layered true"],
+           ["block griddata", "name idomain", "type integer",
+            "shape (ncpl, nlay)", "reader readarray", "layered true",
+            "optional true"],
+           ["block vertices", "name vertices", "type recarray iv xv yv",
+            "shape (nvert)", "reader urword", "optional false"],
+           ["block vertices", "name iv", "type integer", "in_record true",
+            "tagged false", "reader urword", "optional false",
+            "numeric_index true"],
+           ["block vertices", "name xv", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block vertices", "name yv", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name cell2d",
+            "type recarray icell2d xc yc ncvert icvert", "shape (ncpl)",
+            "reader urword", "optional false"],
+           ["block cell2d", "name icell2d", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"],
+           ["block cell2d", "name xc", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name yc", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block cell2d", "name ncvert", "type integer", "in_record true",
+            "tagged false", "reader urword", "optional false"],
+           ["block cell2d", "name icvert", "type integer", "shape (ncvert)",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        length_units=None,
-        nogrb=None,
-        xorigin=None,
-        yorigin=None,
-        angrot=None,
-        export_array_ascii=None,
-        nlay=None,
-        ncpl=None,
-        nvert=None,
-        top=None,
-        botm=None,
-        idomain=None,
-        vertices=None,
-        cell2d=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "disv", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, length_units=None,
+                 nogrb=None, xorigin=None, yorigin=None, angrot=None,
+                 export_array_ascii=None, export_array_netcdf=None,
+                 packagedata=None, nlay=None, ncpl=None, nvert=None, top=None,
+                 botm=None, idomain=None, vertices=None, cell2d=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "disv", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.length_units = self.build_mfdata("length_units", length_units)
@@ -338,9 +216,15 @@ def __init__(
         self.xorigin = self.build_mfdata("xorigin", xorigin)
         self.yorigin = self.build_mfdata("yorigin", yorigin)
         self.angrot = self.build_mfdata("angrot", angrot)
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
+        self.export_array_netcdf = self.build_mfdata("export_array_netcdf",
+                                                     export_array_netcdf)
+        self._ncf_filerecord = self.build_mfdata("ncf_filerecord",
+                                                 None)
+        self._ncf_package = self.build_child_package("ncf", packagedata,
+                                                     "packagedata",
+                                                     self._ncf_filerecord)
         self.nlay = self.build_mfdata("nlay", nlay)
         self.ncpl = self.build_mfdata("ncpl", ncpl)
         self.nvert = self.build_mfdata("nvert", nvert)
diff --git a/flopy/mf6/modflow/mfprtfmi.py b/flopy/mf6/modflow/mfprtfmi.py
index 134ae6c3c7..00453faad6 100644
--- a/flopy/mf6/modflow/mfprtfmi.py
+++ b/flopy/mf6/modflow/mfprtfmi.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -34,78 +34,36 @@ class ModflowPrtfmi(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    packagedata = ListTemplateGenerator(
-        ("prt6", "fmi", "packagedata", "packagedata")
-    )
+    packagedata = ListTemplateGenerator(('prt6', 'fmi', 'packagedata',
+                                         'packagedata'))
     package_abbr = "prtfmi"
     _package_type = "fmi"
     dfn_file_name = "prt-fmi.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
-            "type recarray flowtype filein fname",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name flowtype",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name fname",
-            "in_record true",
-            "type string",
-            "preserve_case true",
-            "tagged false",
-            "reader urword",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block packagedata", "name packagedata",
+            "type recarray flowtype filein fname", "reader urword",
+            "optional false"],
+           ["block packagedata", "name flowtype", "in_record true",
+            "type string", "tagged false", "reader urword"],
+           ["block packagedata", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block packagedata", "name fname", "in_record true",
+            "type string", "preserve_case true", "tagged false",
+            "reader urword"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        save_flows=None,
-        packagedata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "fmi", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, save_flows=None,
+                 packagedata=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "fmi", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.save_flows = self.build_mfdata("save_flows", save_flows)
diff --git a/flopy/mf6/modflow/mfprtmip.py b/flopy/mf6/modflow/mfprtmip.py
index 34d2c1d018..d811e4b4bc 100644
--- a/flopy/mf6/modflow/mfprtmip.py
+++ b/flopy/mf6/modflow/mfprtmip.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator
 
@@ -50,80 +50,40 @@ class ModflowPrtmip(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    porosity = ArrayTemplateGenerator(("prt6", "mip", "griddata", "porosity"))
-    retfactor = ArrayTemplateGenerator(
-        ("prt6", "mip", "griddata", "retfactor")
-    )
-    izone = ArrayTemplateGenerator(("prt6", "mip", "griddata", "izone"))
+    porosity = ArrayTemplateGenerator(('prt6', 'mip', 'griddata',
+                                       'porosity'))
+    retfactor = ArrayTemplateGenerator(('prt6', 'mip', 'griddata',
+                                        'retfactor'))
+    izone = ArrayTemplateGenerator(('prt6', 'mip', 'griddata', 'izone'))
     package_abbr = "prtmip"
     _package_type = "mip"
     dfn_file_name = "prt-mip.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name export_array_ascii",
-            "type keyword",
-            "reader urword",
-            "optional true",
-            "mf6internal export_ascii",
-        ],
-        [
-            "block griddata",
-            "name porosity",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-        ],
-        [
-            "block griddata",
-            "name retfactor",
-            "type double precision",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-        [
-            "block griddata",
-            "name izone",
-            "type integer",
-            "shape (nodes)",
-            "reader readarray",
-            "layered true",
-            "optional true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name export_array_ascii", "type keyword",
+            "reader urword", "optional true", "mf6internal export_ascii"],
+           ["block griddata", "name porosity", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true"],
+           ["block griddata", "name retfactor", "type double precision",
+            "shape (nodes)", "reader readarray", "layered true",
+            "optional true"],
+           ["block griddata", "name izone", "type integer", "shape (nodes)",
+            "reader readarray", "layered true", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        export_array_ascii=None,
-        porosity=None,
-        retfactor=None,
-        izone=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "mip", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, export_array_ascii=None,
+                 porosity=None, retfactor=None, izone=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(model, "mip", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.export_array_ascii = self.build_mfdata(
-            "export_array_ascii", export_array_ascii
-        )
+        self.export_array_ascii = self.build_mfdata("export_array_ascii",
+                                                    export_array_ascii)
         self.porosity = self.build_mfdata("porosity", porosity)
         self.retfactor = self.build_mfdata("retfactor", retfactor)
         self.izone = self.build_mfdata("izone", izone)
diff --git a/flopy/mf6/modflow/mfprtnam.py b/flopy/mf6/modflow/mfprtnam.py
index bb875d5822..e9c1a8e69b 100644
--- a/flopy/mf6/modflow/mfprtnam.py
+++ b/flopy/mf6/modflow/mfprtnam.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -60,99 +60,41 @@ class ModflowPrtnam(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    packages = ListTemplateGenerator(("prt6", "nam", "packages", "packages"))
+    packages = ListTemplateGenerator(('prt6', 'nam', 'packages',
+                                      'packages'))
     package_abbr = "prtnam"
     _package_type = "nam"
     dfn_file_name = "prt-nam.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name list",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name save_flows",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block packages",
-            "name packages",
-            "type recarray ftype fname pname",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packages",
-            "name ftype",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block packages",
-            "name fname",
-            "in_record true",
-            "type string",
-            "preserve_case true",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block packages",
-            "name pname",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name list", "type string", "reader urword",
+            "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name print_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name save_flows", "type keyword",
+            "reader urword", "optional true"],
+           ["block packages", "name packages",
+            "type recarray ftype fname pname", "reader urword",
+            "optional false"],
+           ["block packages", "name ftype", "in_record true", "type string",
+            "tagged false", "reader urword"],
+           ["block packages", "name fname", "in_record true", "type string",
+            "preserve_case true", "tagged false", "reader urword"],
+           ["block packages", "name pname", "in_record true", "type string",
+            "tagged false", "reader urword", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        list=None,
-        print_input=None,
-        print_flows=None,
-        save_flows=None,
-        packages=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "nam", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, list=None,
+                 print_input=None, print_flows=None, save_flows=None,
+                 packages=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "nam", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.list = self.build_mfdata("list", list)
diff --git a/flopy/mf6/modflow/mfprtoc.py b/flopy/mf6/modflow/mfprtoc.py
index 511c3006f6..1174fe3a9e 100644
--- a/flopy/mf6/modflow/mfprtoc.py
+++ b/flopy/mf6/modflow/mfprtoc.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -35,7 +35,8 @@ class ModflowPrtoc(mfpackage.MFPackage):
           output is to be written when a particle is released
     track_exit : boolean
         * track_exit (boolean) keyword to indicate that particle tracking
-          output is to be written when a particle exits a cell
+          output is to be written when a particle exits a feature (a model,
+          cell, or subcell)
     track_timestep : boolean
         * track_timestep (boolean) keyword to indicate that particle tracking
           output is to be written at the end of each time step
@@ -49,12 +50,13 @@ class ModflowPrtoc(mfpackage.MFPackage):
     track_usertime : boolean
         * track_usertime (boolean) keyword to indicate that particle tracking
           output is to be written at user-specified times, provided as double
-          precision values to the TRACK_TIMES or TRACK_TIMESFILE options
-    track_timesrecord : [times]
-        * times (double) times to track, relative to the beginning of the
-          simulation.
-    track_timesfilerecord : [timesfile]
-        * timesfile (string) name of the tracking times file
+          precision values in the TRACKTIMES block.
+    ntracktimes : integer
+        * ntracktimes (integer) is the number of user-specified particle
+          tracking times in the TRACKTIMES block.
+    tracktimes : time
+        * time (double) real value that defines the tracking time with respect
+          to the simulation start time.
     saverecord : [rtype, ocsetting]
         * rtype (string) type of information to save or print. Can only be
           BUDGET.
@@ -109,442 +111,151 @@ class ModflowPrtoc(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    budget_filerecord = ListTemplateGenerator(
-        ("prt6", "oc", "options", "budget_filerecord")
-    )
-    budgetcsv_filerecord = ListTemplateGenerator(
-        ("prt6", "oc", "options", "budgetcsv_filerecord")
-    )
-    track_filerecord = ListTemplateGenerator(
-        ("prt6", "oc", "options", "track_filerecord")
-    )
-    trackcsv_filerecord = ListTemplateGenerator(
-        ("prt6", "oc", "options", "trackcsv_filerecord")
-    )
-    track_timesrecord = ListTemplateGenerator(
-        ("prt6", "oc", "options", "track_timesrecord")
-    )
-    track_timesfilerecord = ListTemplateGenerator(
-        ("prt6", "oc", "options", "track_timesfilerecord")
-    )
-    saverecord = ListTemplateGenerator(("prt6", "oc", "period", "saverecord"))
-    printrecord = ListTemplateGenerator(
-        ("prt6", "oc", "period", "printrecord")
-    )
+    budget_filerecord = ListTemplateGenerator(('prt6', 'oc', 'options',
+                                               'budget_filerecord'))
+    budgetcsv_filerecord = ListTemplateGenerator(('prt6', 'oc',
+                                                  'options',
+                                                  'budgetcsv_filerecord'))
+    track_filerecord = ListTemplateGenerator(('prt6', 'oc', 'options',
+                                              'track_filerecord'))
+    trackcsv_filerecord = ListTemplateGenerator(('prt6', 'oc', 'options',
+                                                 'trackcsv_filerecord'))
+    tracktimes = ListTemplateGenerator(('prt6', 'oc', 'tracktimes',
+                                        'tracktimes'))
+    saverecord = ListTemplateGenerator(('prt6', 'oc', 'period',
+                                        'saverecord'))
+    printrecord = ListTemplateGenerator(('prt6', 'oc', 'period',
+                                         'printrecord'))
     package_abbr = "prtoc"
     _package_type = "oc"
     dfn_file_name = "prt-oc.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name budget_filerecord",
-            "type record budget fileout budgetfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budget",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsv_filerecord",
-            "type record budgetcsv fileout budgetcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name budgetcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name budgetcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name track_filerecord",
-            "type record track fileout trackfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name track",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name trackfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name trackcsv_filerecord",
-            "type record trackcsv fileout trackcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name trackcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name trackcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name track_release",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name track_exit",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name track_timestep",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name track_terminate",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name track_weaksink",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name track_usertime",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name track_timesrecord",
-            "type record track_times times",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name track_times",
-            "type keyword",
-            "reader urword",
-            "in_record true",
-            "tagged true",
-            "shape",
-        ],
-        [
-            "block options",
-            "name times",
-            "type double precision",
-            "shape (unknown)",
-            "reader urword",
-            "in_record true",
-            "tagged false",
-            "repeating true",
-        ],
-        [
-            "block options",
-            "name track_timesfilerecord",
-            "type record track_timesfile timesfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name track_timesfile",
-            "type keyword",
-            "reader urword",
-            "in_record true",
-            "tagged true",
-            "shape",
-        ],
-        [
-            "block options",
-            "name timesfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name saverecord",
-            "type record save rtype ocsetting",
-            "shape",
-            "reader urword",
-            "tagged false",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name save",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name printrecord",
-            "type record print rtype ocsetting",
-            "shape",
-            "reader urword",
-            "tagged false",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name print",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name rtype",
-            "type string",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name ocsetting",
-            "type keystring all first last frequency steps",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name all",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name first",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name last",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name frequency",
-            "type integer",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name steps",
-            "type integer",
-            "shape (<nstp)",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name budget_filerecord",
+            "type record budget fileout budgetfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name budget", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name budgetcsv_filerecord",
+            "type record budgetcsv fileout budgetcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name budgetcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name budgetcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name track_filerecord",
+            "type record track fileout trackfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name track", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name trackfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name trackcsv_filerecord",
+            "type record trackcsv fileout trackcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name trackcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name trackcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name track_release", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name track_exit", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name track_timestep", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name track_terminate", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name track_weaksink", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name track_usertime", "type keyword",
+            "reader urword", "optional true"],
+           ["block dimensions", "name ntracktimes", "type integer",
+            "reader urword", "optional false"],
+           ["block tracktimes", "name tracktimes", "type recarray time",
+            "shape (ntracktimes)", "reader urword"],
+           ["block tracktimes", "name time", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name saverecord",
+            "type record save rtype ocsetting", "shape", "reader urword",
+            "tagged false", "optional true"],
+           ["block period", "name save", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block period", "name printrecord",
+            "type record print rtype ocsetting", "shape", "reader urword",
+            "tagged false", "optional true"],
+           ["block period", "name print", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block period", "name rtype", "type string", "shape",
+            "in_record true", "reader urword", "tagged false",
+            "optional false"],
+           ["block period", "name ocsetting",
+            "type keystring all first last frequency steps", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name all", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name first", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name last", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name frequency", "type integer", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name steps", "type integer", "shape (<nstp)",
+            "tagged true", "in_record true", "reader urword"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        budget_filerecord=None,
-        budgetcsv_filerecord=None,
-        track_filerecord=None,
-        trackcsv_filerecord=None,
-        track_release=None,
-        track_exit=None,
-        track_timestep=None,
-        track_terminate=None,
-        track_weaksink=None,
-        track_usertime=None,
-        track_timesrecord=None,
-        track_timesfilerecord=None,
-        saverecord=None,
-        printrecord=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "oc", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, budget_filerecord=None,
+                 budgetcsv_filerecord=None, track_filerecord=None,
+                 trackcsv_filerecord=None, track_release=None, track_exit=None,
+                 track_timestep=None, track_terminate=None,
+                 track_weaksink=None, track_usertime=None, ntracktimes=None,
+                 tracktimes=None, saverecord=None, printrecord=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "oc", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
-        self.budget_filerecord = self.build_mfdata(
-            "budget_filerecord", budget_filerecord
-        )
-        self.budgetcsv_filerecord = self.build_mfdata(
-            "budgetcsv_filerecord", budgetcsv_filerecord
-        )
-        self.track_filerecord = self.build_mfdata(
-            "track_filerecord", track_filerecord
-        )
-        self.trackcsv_filerecord = self.build_mfdata(
-            "trackcsv_filerecord", trackcsv_filerecord
-        )
+        self.budget_filerecord = self.build_mfdata("budget_filerecord",
+                                                   budget_filerecord)
+        self.budgetcsv_filerecord = self.build_mfdata("budgetcsv_filerecord",
+                                                      budgetcsv_filerecord)
+        self.track_filerecord = self.build_mfdata("track_filerecord",
+                                                  track_filerecord)
+        self.trackcsv_filerecord = self.build_mfdata("trackcsv_filerecord",
+                                                     trackcsv_filerecord)
         self.track_release = self.build_mfdata("track_release", track_release)
         self.track_exit = self.build_mfdata("track_exit", track_exit)
-        self.track_timestep = self.build_mfdata(
-            "track_timestep", track_timestep
-        )
-        self.track_terminate = self.build_mfdata(
-            "track_terminate", track_terminate
-        )
-        self.track_weaksink = self.build_mfdata(
-            "track_weaksink", track_weaksink
-        )
-        self.track_usertime = self.build_mfdata(
-            "track_usertime", track_usertime
-        )
-        self.track_timesrecord = self.build_mfdata(
-            "track_timesrecord", track_timesrecord
-        )
-        self.track_timesfilerecord = self.build_mfdata(
-            "track_timesfilerecord", track_timesfilerecord
-        )
+        self.track_timestep = self.build_mfdata("track_timestep",
+                                                track_timestep)
+        self.track_terminate = self.build_mfdata("track_terminate",
+                                                 track_terminate)
+        self.track_weaksink = self.build_mfdata("track_weaksink",
+                                                track_weaksink)
+        self.track_usertime = self.build_mfdata("track_usertime",
+                                                track_usertime)
+        self.ntracktimes = self.build_mfdata("ntracktimes", ntracktimes)
+        self.tracktimes = self.build_mfdata("tracktimes", tracktimes)
         self.saverecord = self.build_mfdata("saverecord", saverecord)
         self.printrecord = self.build_mfdata("printrecord", printrecord)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfprtprp.py b/flopy/mf6/modflow/mfprtprp.py
index 30308cb6ef..e9480c6c5b 100644
--- a/flopy/mf6/modflow/mfprtprp.py
+++ b/flopy/mf6/modflow/mfprtprp.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -27,7 +27,7 @@ class ModflowPrtprp(mfpackage.MFPackage):
     dev_exit_solve_method : integer
         * dev_exit_solve_method (integer) the method for iterative solution of
           particle exit location and time in the generalized Pollock's method.
-          1 Brent, 2 Chandrupatla. The default is Brent.
+          0 default, 1 Brent, 2 Chandrupatla. The default is Brent's method.
     exit_solve_tolerance : double
         * exit_solve_tolerance (double) the convergence tolerance for iterative
           solution of particle exit location and time in the generalized
@@ -41,6 +41,12 @@ class ModflowPrtprp(mfpackage.MFPackage):
           saturated at release time, the top of the cell is considered to be
           the water table elevation (the head in the cell) rather than the top
           defined by the user.
+    extend_tracking : boolean
+        * extend_tracking (boolean) indicates that particles should be tracked
+          beyond the end of the simulation's final time step (using that time
+          step's flows) until particles terminate or reach a specified stop
+          time. By default, particles are terminated at the end of the
+          simulation's final time step.
     track_filerecord : [trackfile]
         * trackfile (string) name of the binary output file to write tracking
           information.
@@ -90,18 +96,39 @@ class ModflowPrtprp(mfpackage.MFPackage):
           time, the particle is to be moved to the topmost active cell below
           it, if any. By default, a particle is not released into the
           simulation if its release point's cell is inactive at release time.
-    release_timesrecord : [times]
-        * times (double) times to release, relative to the beginning of the
-          simulation. RELEASE_TIMES and RELEASE_TIMESFILE are mutually
-          exclusive.
-    release_timesfilerecord : [timesfile]
-        * timesfile (string) name of the release times file. RELEASE_TIMES and
-          RELEASE_TIMESFILE are mutually exclusive.
+    dry_tracking_method : string
+        * dry_tracking_method (string) is a string indicating how particles
+          should behave in dry-but-active cells (as can occur with the Newton
+          formulation). The value can be "DROP", "STOP", or "STAY". The default
+          is "DROP", which passes particles vertically and instantaneously to
+          the water table. "STOP" causes particles to terminate. "STAY" causes
+          particles to remain stationary but active.
     dev_forceternary : boolean
         * dev_forceternary (boolean) force use of the ternary tracking method
           regardless of cell type in DISV grids.
+    release_time_tolerance : double
+        * release_time_tolerance (double) real number indicating the tolerance
+          within which to consider consecutive release times coincident.
+          Coincident release times will be merged into a single release time.
+          The default is :math:`\\epsilon \\times 10^{11}`, where
+          :math:`\\epsilon` is machine precision.
+    release_time_frequency : double
+        * release_time_frequency (double) real number indicating the time
+          frequency at which to release particles. This option can be used to
+          schedule releases at a regular interval for the duration of the
+          simulation, starting at the simulation start time. The release
+          schedule is the union of this option, the RELEASETIMES block, and
+          PERIOD block RELEASESETTING selections. If none of these are
+          provided, a single release time is configured at the beginning of the
+          first time step of the simulation's first stress period.
     nreleasepts : integer
         * nreleasepts (integer) is the number of particle release points.
+    nreleasetimes : integer
+        * nreleasetimes (integer) is the number of particle release times
+          specified in the RELEASETIMES block. This is not necessarily the
+          total number of release times; release times are the union of
+          RELEASE_TIME_FREQUENCY, RELEASETIMES block, and PERIOD block
+          RELEASESETTING selections.
     packagedata : [irptno, cellid, xrpt, yrpt, zrpt, boundname]
         * irptno (integer) integer value that defines the PRP release point
           number associated with the specified PACKAGEDATA data on the line.
@@ -139,30 +166,38 @@ class ModflowPrtprp(mfpackage.MFPackage):
           an ASCII character variable that can contain as many as 40
           characters. If BOUNDNAME contains spaces in it, then the entire name
           must be enclosed within single quotes.
+    releasetimes : time
+        * time (double) real value that defines the release time with respect
+          to the simulation start time.
     perioddata : releasesetting
-        * releasesetting (keystring) specifies when to release particles within
-          the stress period. Overrides package-level RELEASETIME option, which
-          applies to all stress periods. By default, RELEASESETTING configures
-          particles for release at the beginning of the specified time steps.
-          For time-offset releases, provide a FRACTION value.
+        * releasesetting (keystring) specifies time steps at which to release a
+          particle. A particle is released at the beginning of each specified
+          time step. For fine control over release timing, specify times
+          explicitly using the RELEASETIMES block. If the beginning of a
+          specified time step coincides with a release time specified in the
+          RELEASETIMES block or configured via RELEASE_TIME_FREQUENCY, only one
+          particle is released at that time. Coincidence is evaluated up to the
+          tolerance specified in RELEASE_TIME_TOLERANCE, or :math:`\\epsilon
+          \\times 10^{11}` by default, where :math:`\\epsilon` is machine
+          precision. If no release times are configured via this setting, the
+          RELEASETIMES block, or the RELEASE_TIME_FREQUENCY option, a single
+          release time is configured at the beginning of the first time step of
+          the simulation's first stress period.
             all : [keyword]
-                * all (keyword) keyword to indicate release of particles at the
-                  start of all time steps in the period.
+                * all (keyword) keyword to indicate release at the start of all
+                  time steps in the period.
             first : [keyword]
-                * first (keyword) keyword to indicate release of particles at
-                  the start of the first time step in the period. This keyword
-                  may be used in conjunction with other keywords to release
-                  particles at the start of multiple time steps.
+                * first (keyword) keyword to indicate release at the start of
+                  the first time step in the period. This keyword may be used
+                  in conjunction with other RELEASESETTING options.
             frequency : [integer]
-                * frequency (integer) release particles at the specified time
-                  step frequency. This keyword may be used in conjunction with
-                  other keywords to release particles at the start of multiple
-                  time steps.
+                * frequency (integer) release at the specified time step
+                  frequency. This keyword may be used in conjunction with other
+                  RELEASESETTING options.
             steps : [integer]
-                * steps (integer) release particles at the start of each step
-                  specified in STEPS. This keyword may be used in conjunction
-                  with other keywords to release particles at the start of
-                  multiple time steps.
+                * steps (integer) release at the start of each step specified
+                  in STEPS. This option may be used in conjunction with other
+                  RELEASESETTING options.
             fraction : [double]
                 * fraction (double) release particles after the specified
                   fraction of the time step has elapsed. If FRACTION is not
@@ -171,458 +206,188 @@ class ModflowPrtprp(mfpackage.MFPackage):
                   ALL, FIRST, or FREQUENCY. When used with STEPS, FRACTION may
                   be a single value or an array of the same length as STEPS. If
                   a single FRACTION value is provided with STEPS, the fraction
-                  applies to all steps.
+                  applies to all steps. NOTE: The FRACTION option has been
+                  removed. For fine control over release timing, specify times
+                  explicitly using the RELEASETIMES block.
+    last : boolean
+        * last (boolean) keyword to indicate release at the start of the last
+          time step in the period. This keyword may be used in conjunction with
+          other RELEASESETTING options.
     filename : String
         File name for this package.
     pname : String
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    track_filerecord = ListTemplateGenerator(
-        ("prt6", "prp", "options", "track_filerecord")
-    )
-    trackcsv_filerecord = ListTemplateGenerator(
-        ("prt6", "prp", "options", "trackcsv_filerecord")
-    )
-    release_timesrecord = ListTemplateGenerator(
-        ("prt6", "prp", "options", "release_timesrecord")
-    )
-    release_timesfilerecord = ListTemplateGenerator(
-        ("prt6", "prp", "options", "release_timesfilerecord")
-    )
-    packagedata = ListTemplateGenerator(
-        ("prt6", "prp", "packagedata", "packagedata")
-    )
-    perioddata = ListTemplateGenerator(("prt6", "prp", "period", "perioddata"))
+    track_filerecord = ListTemplateGenerator(('prt6', 'prp', 'options',
+                                              'track_filerecord'))
+    trackcsv_filerecord = ListTemplateGenerator(('prt6', 'prp',
+                                                 'options',
+                                                 'trackcsv_filerecord'))
+    packagedata = ListTemplateGenerator(('prt6', 'prp', 'packagedata',
+                                         'packagedata'))
+    releasetimes = ListTemplateGenerator(('prt6', 'prp', 'releasetimes',
+                                          'releasetimes'))
+    perioddata = ListTemplateGenerator(('prt6', 'prp', 'period',
+                                        'perioddata'))
     package_abbr = "prtprp"
     _package_type = "prp"
     dfn_file_name = "prt-prp.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name boundnames",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name dev_exit_solve_method",
-            "type integer",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name exit_solve_tolerance",
-            "type double precision",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name local_z",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name track_filerecord",
-            "type record track fileout trackfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name track",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name trackfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name trackcsv_filerecord",
-            "type record trackcsv fileout trackcsvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name trackcsv",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name trackcsvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name stoptime",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name stoptraveltime",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name stop_at_weak_sink",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name istopzone",
-            "type integer",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name drape",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name release_timesrecord",
-            "type record release_times times",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name release_times",
-            "type keyword",
-            "reader urword",
-            "in_record true",
-            "tagged true",
-            "shape",
-        ],
-        [
-            "block options",
-            "name times",
-            "type double precision",
-            "shape (unknown)",
-            "reader urword",
-            "in_record true",
-            "tagged false",
-            "repeating true",
-        ],
-        [
-            "block options",
-            "name release_timesfilerecord",
-            "type record release_timesfile timesfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name release_timesfile",
-            "type keyword",
-            "reader urword",
-            "in_record true",
-            "tagged true",
-            "shape",
-        ],
-        [
-            "block options",
-            "name timesfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name dev_forceternary",
-            "type keyword",
-            "reader urword",
-            "optional false",
-            "mf6internal ifrctrn",
-        ],
-        [
-            "block dimensions",
-            "name nreleasepts",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block packagedata",
-            "name packagedata",
+           ["header", 
+            "multi-package", ],
+           ["block options", "name boundnames", "type keyword", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name dev_exit_solve_method", "type integer",
+            "reader urword", "optional true"],
+           ["block options", "name exit_solve_tolerance",
+            "type double precision", "reader urword", "optional true",
+            "default_value 1e-5"],
+           ["block options", "name local_z", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name extend_tracking", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name track_filerecord",
+            "type record track fileout trackfile", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block options", "name track", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name trackfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name trackcsv_filerecord",
+            "type record trackcsv fileout trackcsvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name trackcsv", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name trackcsvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name stoptime", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name stoptraveltime", "type double precision",
+            "reader urword", "optional true"],
+           ["block options", "name stop_at_weak_sink", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name istopzone", "type integer",
+            "reader urword", "optional true"],
+           ["block options", "name drape", "type keyword", "reader urword",
+            "optional true"],
+           ["block options", "name dry_tracking_method", "type string",
+            "valid drop stop stay", "reader urword", "optional true"],
+           ["block options", "name dev_forceternary", "type keyword",
+            "reader urword", "optional false", "mf6internal ifrctrn"],
+           ["block options", "name release_time_tolerance",
+            "type double precision", "reader urword", "optional true"],
+           ["block options", "name release_time_frequency",
+            "type double precision", "reader urword", "optional true"],
+           ["block dimensions", "name nreleasepts", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name nreleasetimes", "type integer",
+            "reader urword", "optional false"],
+           ["block packagedata", "name packagedata",
             "type recarray irptno cellid xrpt yrpt zrpt boundname",
-            "shape (nreleasepts)",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name irptno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block packagedata",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name xrpt",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name yrpt",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name zrpt",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block packagedata",
-            "name boundname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name perioddata",
-            "type recarray releasesetting",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name releasesetting",
-            "type keystring all first frequency steps fraction",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name all",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name first",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name frequency",
-            "type integer",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name steps",
-            "type integer",
-            "shape (<nstp)",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name fraction",
-            "type double precision",
-            "shape (<nstp)",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+            "shape (nreleasepts)", "reader urword"],
+           ["block packagedata", "name irptno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block packagedata", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block packagedata", "name xrpt", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name yrpt", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name zrpt", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block packagedata", "name boundname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"],
+           ["block releasetimes", "name releasetimes", "type recarray time",
+            "shape (nreleasetimes)", "reader urword"],
+           ["block releasetimes", "name time", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name perioddata",
+            "type recarray releasesetting", "shape", "reader urword"],
+           ["block period", "name releasesetting",
+            "type keystring all first frequency steps fraction", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name all", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name first", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name last", "type keyword", "shape",
+            "in_record true", "reader urword"],
+           ["block period", "name frequency", "type integer", "shape",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name steps", "type integer", "shape (<nstp)",
+            "tagged true", "in_record true", "reader urword"],
+           ["block period", "name fraction", "type double precision",
+            "shape (<nstp)", "tagged true", "in_record true", "reader urword",
+            "optional true", "removed 6.5.1"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        boundnames=None,
-        print_input=None,
-        dev_exit_solve_method=None,
-        exit_solve_tolerance=None,
-        local_z=None,
-        track_filerecord=None,
-        trackcsv_filerecord=None,
-        stoptime=None,
-        stoptraveltime=None,
-        stop_at_weak_sink=None,
-        istopzone=None,
-        drape=None,
-        release_timesrecord=None,
-        release_timesfilerecord=None,
-        dev_forceternary=None,
-        nreleasepts=None,
-        packagedata=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "prp", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, boundnames=None,
+                 print_input=None, dev_exit_solve_method=None,
+                 exit_solve_tolerance=1e-5, local_z=None, extend_tracking=None,
+                 track_filerecord=None, trackcsv_filerecord=None,
+                 stoptime=None, stoptraveltime=None, stop_at_weak_sink=None,
+                 istopzone=None, drape=None, dry_tracking_method=None,
+                 dev_forceternary=None, release_time_tolerance=None,
+                 release_time_frequency=None, nreleasepts=None,
+                 nreleasetimes=None, packagedata=None, releasetimes=None,
+                 perioddata=None, last=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(model, "prp", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.boundnames = self.build_mfdata("boundnames", boundnames)
         self.print_input = self.build_mfdata("print_input", print_input)
-        self.dev_exit_solve_method = self.build_mfdata(
-            "dev_exit_solve_method", dev_exit_solve_method
-        )
-        self.exit_solve_tolerance = self.build_mfdata(
-            "exit_solve_tolerance", exit_solve_tolerance
-        )
+        self.dev_exit_solve_method = self.build_mfdata("dev_exit_solve_method",
+                                                       dev_exit_solve_method)
+        self.exit_solve_tolerance = self.build_mfdata("exit_solve_tolerance",
+                                                      exit_solve_tolerance)
         self.local_z = self.build_mfdata("local_z", local_z)
-        self.track_filerecord = self.build_mfdata(
-            "track_filerecord", track_filerecord
-        )
-        self.trackcsv_filerecord = self.build_mfdata(
-            "trackcsv_filerecord", trackcsv_filerecord
-        )
+        self.extend_tracking = self.build_mfdata("extend_tracking",
+                                                 extend_tracking)
+        self.track_filerecord = self.build_mfdata("track_filerecord",
+                                                  track_filerecord)
+        self.trackcsv_filerecord = self.build_mfdata("trackcsv_filerecord",
+                                                     trackcsv_filerecord)
         self.stoptime = self.build_mfdata("stoptime", stoptime)
-        self.stoptraveltime = self.build_mfdata(
-            "stoptraveltime", stoptraveltime
-        )
-        self.stop_at_weak_sink = self.build_mfdata(
-            "stop_at_weak_sink", stop_at_weak_sink
-        )
+        self.stoptraveltime = self.build_mfdata("stoptraveltime",
+                                                stoptraveltime)
+        self.stop_at_weak_sink = self.build_mfdata("stop_at_weak_sink",
+                                                   stop_at_weak_sink)
         self.istopzone = self.build_mfdata("istopzone", istopzone)
         self.drape = self.build_mfdata("drape", drape)
-        self.release_timesrecord = self.build_mfdata(
-            "release_timesrecord", release_timesrecord
-        )
-        self.release_timesfilerecord = self.build_mfdata(
-            "release_timesfilerecord", release_timesfilerecord
-        )
-        self.dev_forceternary = self.build_mfdata(
-            "dev_forceternary", dev_forceternary
-        )
+        self.dry_tracking_method = self.build_mfdata("dry_tracking_method",
+                                                     dry_tracking_method)
+        self.dev_forceternary = self.build_mfdata("dev_forceternary",
+                                                  dev_forceternary)
+        self.release_time_tolerance = self.build_mfdata(
+            "release_time_tolerance", release_time_tolerance)
+        self.release_time_frequency = self.build_mfdata(
+            "release_time_frequency", release_time_frequency)
         self.nreleasepts = self.build_mfdata("nreleasepts", nreleasepts)
+        self.nreleasetimes = self.build_mfdata("nreleasetimes", nreleasetimes)
         self.packagedata = self.build_mfdata("packagedata", packagedata)
+        self.releasetimes = self.build_mfdata("releasetimes", releasetimes)
         self.perioddata = self.build_mfdata("perioddata", perioddata)
+        self.last = self.build_mfdata("last", last)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfpts.py b/flopy/mf6/modflow/mfpts.py
index 48738494bb..42dfceab69 100644
--- a/flopy/mf6/modflow/mfpts.py
+++ b/flopy/mf6/modflow/mfpts.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -106,222 +106,93 @@ class ModflowPts(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    csv_output_filerecord = ListTemplateGenerator(
-        ("pts", "options", "csv_output_filerecord")
-    )
-    csv_outer_output_filerecord = ListTemplateGenerator(
-        ("pts", "options", "csv_outer_output_filerecord")
-    )
-    csv_inner_output_filerecord = ListTemplateGenerator(
-        ("pts", "options", "csv_inner_output_filerecord")
-    )
-    no_ptcrecord = ListTemplateGenerator(("pts", "options", "no_ptcrecord"))
+    csv_output_filerecord = ListTemplateGenerator(('pts', 'options',
+                                                   'csv_output_filerecord'))
+    csv_outer_output_filerecord = ListTemplateGenerator((
+        'pts', 'options', 'csv_outer_output_filerecord'))
+    csv_inner_output_filerecord = ListTemplateGenerator((
+        'pts', 'options', 'csv_inner_output_filerecord'))
+    no_ptcrecord = ListTemplateGenerator(('pts', 'options',
+                                          'no_ptcrecord'))
     package_abbr = "pts"
     _package_type = "pts"
     dfn_file_name = "sln-pts.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name print_option",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name complexity",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name csv_output_filerecord",
-            "type record csv_output fileout csvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "deprecated 6.1.1",
-        ],
-        [
-            "block options",
-            "name csv_output",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-            "deprecated 6.1.1",
-        ],
-        [
-            "block options",
-            "name csvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-            "deprecated 6.1.1",
-        ],
-        [
-            "block options",
-            "name csv_outer_output_filerecord",
-            "type record csv_outer_output fileout outer_csvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name csv_outer_output",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name outer_csvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name csv_inner_output_filerecord",
-            "type record csv_inner_output fileout inner_csvfile",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name csv_inner_output",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name inner_csvfile",
-            "type string",
-            "preserve_case true",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name no_ptcrecord",
-            "type record no_ptc no_ptc_option",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name no_ptc",
-            "type keyword",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged true",
-        ],
-        [
-            "block options",
-            "name no_ptc_option",
-            "type string",
-            "in_record true",
-            "reader urword",
-            "optional true",
-            "tagged false",
-        ],
-        [
-            "block options",
-            "name ats_outer_maximum_fraction",
-            "type double precision",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block nonlinear",
-            "name outer_maximum",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name print_option", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name complexity", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name csv_output_filerecord",
+            "type record csv_output fileout csvfile", "shape",
+            "reader urword", "tagged true", "optional true",
+            "deprecated 6.1.1"],
+           ["block options", "name csv_output", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false", "deprecated 6.1.1"],
+           ["block options", "name csvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false", "deprecated 6.1.1"],
+           ["block options", "name csv_outer_output_filerecord",
+            "type record csv_outer_output fileout outer_csvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name csv_outer_output", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name outer_csvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name csv_inner_output_filerecord",
+            "type record csv_inner_output fileout inner_csvfile", "shape",
+            "reader urword", "tagged true", "optional true"],
+           ["block options", "name csv_inner_output", "type keyword",
+            "shape", "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name inner_csvfile", "type string",
+            "preserve_case true", "shape", "in_record true", "reader urword",
+            "tagged false", "optional false"],
+           ["block options", "name no_ptcrecord",
+            "type record no_ptc no_ptc_option", "reader urword",
+            "optional true"],
+           ["block options", "name no_ptc", "type keyword",
+            "in_record true", "reader urword", "optional false",
+            "tagged true"],
+           ["block options", "name no_ptc_option", "type string",
+            "in_record true", "reader urword", "optional true",
+            "tagged false"],
+           ["block options", "name ats_outer_maximum_fraction",
+            "type double precision", "reader urword", "optional true"],
+           ["block nonlinear", "name outer_maximum", "type integer",
+            "reader urword", "optional false"]]
 
-    def __init__(
-        self,
-        simulation,
-        loading_package=False,
-        print_option=None,
-        complexity=None,
-        csv_output_filerecord=None,
-        csv_outer_output_filerecord=None,
-        csv_inner_output_filerecord=None,
-        no_ptcrecord=None,
-        ats_outer_maximum_fraction=None,
-        outer_maximum=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            simulation, "pts", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, simulation, loading_package=False, print_option=None,
+                 complexity=None, csv_output_filerecord=None,
+                 csv_outer_output_filerecord=None,
+                 csv_inner_output_filerecord=None, no_ptcrecord=None,
+                 ats_outer_maximum_fraction=None, outer_maximum=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(simulation, "pts", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.print_option = self.build_mfdata("print_option", print_option)
         self.complexity = self.build_mfdata("complexity", complexity)
-        self.csv_output_filerecord = self.build_mfdata(
-            "csv_output_filerecord", csv_output_filerecord
-        )
+        self.csv_output_filerecord = self.build_mfdata("csv_output_filerecord",
+                                                       csv_output_filerecord)
         self.csv_outer_output_filerecord = self.build_mfdata(
-            "csv_outer_output_filerecord", csv_outer_output_filerecord
-        )
+            "csv_outer_output_filerecord", csv_outer_output_filerecord)
         self.csv_inner_output_filerecord = self.build_mfdata(
-            "csv_inner_output_filerecord", csv_inner_output_filerecord
-        )
+            "csv_inner_output_filerecord", csv_inner_output_filerecord)
         self.no_ptcrecord = self.build_mfdata("no_ptcrecord", no_ptcrecord)
         self.ats_outer_maximum_fraction = self.build_mfdata(
-            "ats_outer_maximum_fraction", ats_outer_maximum_fraction
-        )
+            "ats_outer_maximum_fraction", ats_outer_maximum_fraction)
         self.outer_maximum = self.build_mfdata("outer_maximum", outer_maximum)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfsimulation.py b/flopy/mf6/modflow/mfsimulation.py
index 3f295b7d61..3b1644ccbc 100644
--- a/flopy/mf6/modflow/mfsimulation.py
+++ b/flopy/mf6/modflow/mfsimulation.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 import os
 from typing import Union
 
@@ -9,8 +9,8 @@
 
 class MFSimulation(mfsimbase.MFSimulationBase):
     """
-    MFSimulation is used to load, build, and/or save a MODFLOW 6 simulation.
-    A MFSimulation object must be created before creating any of the MODFLOW 6
+    MFSimulation is used to load, build, and/or save a MODFLOW 6 simulation. 
+    A MFSimulation object must be created before creating any of the MODFLOW 6 
     model objects.
 
     Parameters
@@ -84,34 +84,22 @@ class MFSimulation(mfsimbase.MFSimulationBase):
         ) : MFSimulation
         a class method that loads a simulation from files
     """
-
-    def __init__(
-        self,
-        sim_name="sim",
-        version="mf6",
-        exe_name: Union[str, os.PathLike] = "mf6",
-        sim_ws: Union[str, os.PathLike] = os.curdir,
-        verbosity_level=1,
-        write_headers=True,
-        use_pandas=True,
-        lazy_io=False,
-        continue_=None,
-        nocheck=None,
-        memory_print_option=None,
-        maxerrors=None,
-        print_input=None,
-        hpc_data=None,
-    ):
-        super().__init__(
-            sim_name=sim_name,
-            version=version,
-            exe_name=exe_name,
-            sim_ws=sim_ws,
-            verbosity_level=verbosity_level,
-            write_headers=write_headers,
-            lazy_io=lazy_io,
-            use_pandas=use_pandas,
-        )
+    def __init__(self, sim_name='sim', version='mf6',
+                 exe_name: Union[str, os.PathLike] = "mf6",
+                 sim_ws: Union[str, os.PathLike] = os.curdir,
+                 verbosity_level=1, write_headers=True, use_pandas=True,
+                 lazy_io=False, continue_=None, nocheck=None,
+                 memory_print_option=None, maxerrors=None, print_input=None,
+                 hpc_data=None):
+        super().__init__(sim_name=sim_name,
+                         version=version,
+                         exe_name=exe_name,
+                         sim_ws=sim_ws,
+                         verbosity_level=verbosity_level,
+                         write_headers=write_headers,
+                         lazy_io=lazy_io,
+                         use_pandas=use_pandas,
+                         )
 
         self.name_file.continue_.set_data(continue_)
         self.name_file.nocheck.set_data(nocheck)
@@ -124,34 +112,17 @@ def __init__(
         self.memory_print_option = self.name_file.memory_print_option
         self.maxerrors = self.name_file.maxerrors
         self.print_input = self.name_file.print_input
-        self.hpc_data = self._create_package("hpc", hpc_data)
+        self.hpc_data = self._create_package('hpc', hpc_data)
 
     @classmethod
-    def load(
-        cls,
-        sim_name="modflowsim",
-        version="mf6",
-        exe_name: Union[str, os.PathLike] = "mf6",
-        sim_ws: Union[str, os.PathLike] = os.curdir,
-        strict=True,
-        verbosity_level=1,
-        load_only=None,
-        verify_data=False,
-        write_headers=True,
-        lazy_io=False,
-        use_pandas=True,
-    ):
-        return mfsimbase.MFSimulationBase.load(
-            cls,
-            sim_name,
-            version,
-            exe_name,
-            sim_ws,
-            strict,
-            verbosity_level,
-            load_only,
-            verify_data,
-            write_headers,
-            lazy_io,
-            use_pandas,
-        )
+    def load(cls, sim_name='modflowsim', version='mf6',
+             exe_name: Union[str, os.PathLike] = 'mf6',
+             sim_ws: Union[str, os.PathLike] = os.curdir,
+             strict=True, verbosity_level=1, load_only=None,
+             verify_data=False, write_headers=True,
+             lazy_io=False, use_pandas=True):
+        return mfsimbase.MFSimulationBase.load(cls, sim_name, version, 
+                                               exe_name, sim_ws, strict,
+                                               verbosity_level, load_only,
+                                               verify_data, write_headers, 
+                                               lazy_io, use_pandas)
diff --git a/flopy/mf6/modflow/mftdis.py b/flopy/mf6/modflow/mftdis.py
index e1565d09c3..1bbf235789 100644
--- a/flopy/mf6/modflow/mftdis.py
+++ b/flopy/mf6/modflow/mftdis.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -50,150 +50,68 @@ class ModflowTdis(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    ats_filerecord = ListTemplateGenerator(
-        ("tdis", "options", "ats_filerecord")
-    )
-    perioddata = ListTemplateGenerator(("tdis", "perioddata", "perioddata"))
+    ats_filerecord = ListTemplateGenerator(('tdis', 'options',
+                                            'ats_filerecord'))
+    perioddata = ListTemplateGenerator(('tdis', 'perioddata',
+                                        'perioddata'))
     package_abbr = "tdis"
     _package_type = "tdis"
     dfn_file_name = "sim-tdis.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name time_units",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name start_date_time",
-            "type string",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name ats_filerecord",
-            "type record ats6 filein ats6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ats",
-            "construct_data perioddata",
-            "parameter_name ats_perioddata",
-        ],
-        [
-            "block options",
-            "name ats6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ats6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block dimensions",
-            "name nper",
-            "type integer",
-            "reader urword",
-            "optional false",
-            "default_value 1",
-        ],
-        [
-            "block perioddata",
-            "name perioddata",
-            "type recarray perlen nstp tsmult",
-            "reader urword",
-            "optional false",
-            "default_value ((1.0, 1, 1.0),)",
-        ],
-        [
-            "block perioddata",
-            "name perlen",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block perioddata",
-            "name nstp",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block perioddata",
-            "name tsmult",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name time_units", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name start_date_time", "type string",
+            "reader urword", "optional true"],
+           ["block options", "name ats_filerecord",
+            "type record ats6 filein ats6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ats",
+            "construct_data perioddata", "parameter_name ats_perioddata"],
+           ["block options", "name ats6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ats6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block dimensions", "name nper", "type integer",
+            "reader urword", "optional false", "default_value 1"],
+           ["block perioddata", "name perioddata",
+            "type recarray perlen nstp tsmult", "reader urword",
+            "optional false", "default_value ((1.0, 1, 1.0),)"],
+           ["block perioddata", "name perlen", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block perioddata", "name nstp", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block perioddata", "name tsmult", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"]]
 
-    def __init__(
-        self,
-        simulation,
-        loading_package=False,
-        time_units=None,
-        start_date_time=None,
-        ats_perioddata=None,
-        nper=1,
-        perioddata=((1.0, 1, 1.0),),
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            simulation, "tdis", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, simulation, loading_package=False, time_units=None,
+                 start_date_time=None, ats_perioddata=None, nper=1,
+                 perioddata=((1.0, 1, 1.0),), filename=None, pname=None,
+                 **kwargs):
+        super().__init__(simulation, "tdis", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.time_units = self.build_mfdata("time_units", time_units)
-        self.start_date_time = self.build_mfdata(
-            "start_date_time", start_date_time
-        )
-        self._ats_filerecord = self.build_mfdata("ats_filerecord", None)
-        self._ats_package = self.build_child_package(
-            "ats", ats_perioddata, "perioddata", self._ats_filerecord
-        )
+        self.start_date_time = self.build_mfdata("start_date_time",
+                                                 start_date_time)
+        self._ats_filerecord = self.build_mfdata("ats_filerecord",
+                                                 None)
+        self._ats_package = self.build_child_package("ats", ats_perioddata,
+                                                     "perioddata",
+                                                     self._ats_filerecord)
         self.nper = self.build_mfdata("nper", nper)
         self.perioddata = self.build_mfdata("perioddata", perioddata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfutlats.py b/flopy/mf6/modflow/mfutlats.py
index 09925eb878..224b53925f 100644
--- a/flopy/mf6/modflow/mfutlats.py
+++ b/flopy/mf6/modflow/mfutlats.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -66,105 +66,46 @@ class ModflowUtlats(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    perioddata = ListTemplateGenerator(("ats", "perioddata", "perioddata"))
+    perioddata = ListTemplateGenerator(('ats', 'perioddata',
+                                        'perioddata'))
     package_abbr = "utlats"
     _package_type = "ats"
     dfn_file_name = "utl-ats.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block dimensions",
-            "name maxats",
-            "type integer",
-            "reader urword",
-            "optional false",
-            "default_value 1",
-        ],
-        [
-            "block perioddata",
-            "name perioddata",
+           ["header", ],
+           ["block dimensions", "name maxats", "type integer",
+            "reader urword", "optional false", "default_value 1"],
+           ["block perioddata", "name perioddata",
             "type recarray iperats dt0 dtmin dtmax dtadj dtfailadj",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block perioddata",
-            "name iperats",
-            "type integer",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "numeric_index true",
-        ],
-        [
-            "block perioddata",
-            "name dt0",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block perioddata",
-            "name dtmin",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block perioddata",
-            "name dtmax",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block perioddata",
-            "name dtadj",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block perioddata",
-            "name dtfailadj",
-            "type double precision",
-            "in_record true",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-    ]
+            "reader urword", "optional false"],
+           ["block perioddata", "name iperats", "type integer",
+            "in_record true", "tagged false", "reader urword",
+            "optional false", "numeric_index true"],
+           ["block perioddata", "name dt0", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block perioddata", "name dtmin", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block perioddata", "name dtmax", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block perioddata", "name dtadj", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"],
+           ["block perioddata", "name dtfailadj", "type double precision",
+            "in_record true", "tagged false", "reader urword",
+            "optional false"]]
 
-    def __init__(
-        self,
-        parent_package,
-        loading_package=False,
-        maxats=1,
-        perioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            parent_package, "ats", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, parent_package, loading_package=False, maxats=1,
+                 perioddata=None, filename=None, pname=None, **kwargs):
+        super().__init__(parent_package, "ats", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.maxats = self.build_mfdata("maxats", maxats)
@@ -186,29 +127,17 @@ class UtlatsPackages(mfpackage.MFChildPackages):
         Adds a new ModflowUtlats package to the container. See ModflowUtlats
         init documentation for definition of parameters.
     """
-
     package_abbr = "utlatspackages"
 
     def initialize(self, maxats=1, perioddata=None, filename=None, pname=None):
-        new_package = ModflowUtlats(
-            self._cpparent,
-            maxats=maxats,
-            perioddata=perioddata,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+        new_package = ModflowUtlats(self._cpparent, maxats=maxats,
+                                    perioddata=perioddata, filename=filename,
+                                    pname=pname, child_builder_call=True)
         self.init_package(new_package, filename)
 
-    def append_package(
-        self, maxats=1, perioddata=None, filename=None, pname=None
-    ):
-        new_package = ModflowUtlats(
-            self._cpparent,
-            maxats=maxats,
-            perioddata=perioddata,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def append_package(self, maxats=1, perioddata=None, filename=None,
+                   pname=None):
+        new_package = ModflowUtlats(self._cpparent, maxats=maxats,
+                                    perioddata=perioddata, filename=filename,
+                                    pname=pname, child_builder_call=True)
         self._append_package(new_package, filename)
diff --git a/flopy/mf6/modflow/mfutlhpc.py b/flopy/mf6/modflow/mfutlhpc.py
index 0ef4f57a00..142bb0ad27 100644
--- a/flopy/mf6/modflow/mfutlhpc.py
+++ b/flopy/mf6/modflow/mfutlhpc.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -17,6 +17,9 @@ class ModflowUtlhpc(mfpackage.MFPackage):
     loading_package : bool
         Do not set this parameter. It is intended for debugging and internal
         processing purposes only.
+    print_table : boolean
+        * print_table (boolean) keyword to indicate that the partition table
+          will be printed to the listing file.
     dev_log_mpi : boolean
         * dev_log_mpi (boolean) keyword to enable (extremely verbose) logging
           of mpi traffic to file.
@@ -30,67 +33,37 @@ class ModflowUtlhpc(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    partitions = ListTemplateGenerator(("hpc", "partitions", "partitions"))
+    partitions = ListTemplateGenerator(('hpc', 'partitions',
+                                        'partitions'))
     package_abbr = "utlhpc"
     _package_type = "hpc"
     dfn_file_name = "utl-hpc.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name dev_log_mpi",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block partitions",
-            "name partitions",
-            "type recarray mname mrank",
-            "reader urword",
-            "optional",
-        ],
-        [
-            "block partitions",
-            "name mname",
-            "in_record true",
-            "type string",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block partitions",
-            "name mrank",
-            "in_record true",
-            "type integer",
-            "tagged false",
-            "reader urword",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name print_table", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name dev_log_mpi", "type keyword",
+            "reader urword", "optional true"],
+           ["block partitions", "name partitions",
+            "type recarray mname mrank", "reader urword", "optional true"],
+           ["block partitions", "name mname", "in_record true",
+            "type string", "tagged false", "reader urword"],
+           ["block partitions", "name mrank", "in_record true",
+            "type integer", "tagged false", "reader urword"]]
 
-    def __init__(
-        self,
-        parent_package,
-        loading_package=False,
-        dev_log_mpi=None,
-        partitions=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            parent_package, "hpc", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, parent_package, loading_package=False, print_table=None,
+                 dev_log_mpi=None, partitions=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(parent_package, "hpc", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
+        self.print_table = self.build_mfdata("print_table", print_table)
         self.dev_log_mpi = self.build_mfdata("dev_log_mpi", dev_log_mpi)
         self.partitions = self.build_mfdata("partitions", partitions)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfutllaktab.py b/flopy/mf6/modflow/mfutllaktab.py
index 129c60afdd..9bb63ceb90 100644
--- a/flopy/mf6/modflow/mfutllaktab.py
+++ b/flopy/mf6/modflow/mfutllaktab.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -42,95 +42,39 @@ class ModflowUtllaktab(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    table = ListTemplateGenerator(("laktab", "table", "table"))
+    table = ListTemplateGenerator(('laktab', 'table', 'table'))
     package_abbr = "utllaktab"
     _package_type = "laktab"
     dfn_file_name = "utl-laktab.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block dimensions",
-            "name nrow",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name ncol",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block table",
-            "name table",
-            "type recarray stage volume sarea barea",
-            "shape (nrow)",
-            "reader urword",
-        ],
-        [
-            "block table",
-            "name stage",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block table",
-            "name volume",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block table",
-            "name sarea",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block table",
-            "name barea",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+           ["header", 
+            "multi-package", ],
+           ["block dimensions", "name nrow", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name ncol", "type integer",
+            "reader urword", "optional false"],
+           ["block table", "name table",
+            "type recarray stage volume sarea barea", "shape (nrow)",
+            "reader urword"],
+           ["block table", "name stage", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block table", "name volume", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block table", "name sarea", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block table", "name barea", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        nrow=None,
-        ncol=None,
-        table=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "laktab", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, nrow=None, ncol=None,
+                 table=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "laktab", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.nrow = self.build_mfdata("nrow", nrow)
diff --git a/flopy/mf6/modflow/mfutlncf.py b/flopy/mf6/modflow/mfutlncf.py
new file mode 100644
index 0000000000..db3d402381
--- /dev/null
+++ b/flopy/mf6/modflow/mfutlncf.py
@@ -0,0 +1,181 @@
+# DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on December 20, 2024 02:43:08 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
+
+
+class ModflowUtlncf(mfpackage.MFPackage):
+    """
+    ModflowUtlncf defines a ncf package within a utl model.
+
+    Parameters
+    ----------
+    parent_package : MFPackage
+        Parent_package that this package is a part of. Package is automatically
+        added to parent_package when it is initialized.
+    loading_package : bool
+        Do not set this parameter. It is intended for debugging and internal
+        processing purposes only.
+    wkt : [string]
+        * wkt (string) is the CRS well-known text (WKT) string.
+    deflate : integer
+        * deflate (integer) is the variable deflate level (0=min, 9=max) in the
+          netcdf file. Defining this parameter activates per-variable
+          compression at the level specified.
+    shuffle : boolean
+        * shuffle (boolean) is the keyword used to turn on the netcdf variable
+          shuffle filter when the deflate option is also set. The shuffle
+          filter has the effect of storing the first byte of all of a
+          variable's values in a chunk contiguously, followed by all the second
+          bytes, etc. This can be an optimization for compression with certain
+          types of data.
+    chunk_time : integer
+        * chunk_time (integer) is the keyword used to provide a data chunk size
+          for the time dimension in a NETCDF_MESH2D or NETCDF_STRUCTURED output
+          file. Must be used in combination with the the chunk_face parameter
+          (NETCDF_MESH2D) or the chunk_z, chunk_y, and chunk_x parameter set
+          (NETCDF_STRUCTURED) to have an effect.
+    chunk_face : integer
+        * chunk_face (integer) is the keyword used to provide a data chunk size
+          for the face dimension in a NETCDF_MESH2D output file. Must be used
+          in combination with the the chunk_time parameter to have an effect.
+    chunk_z : integer
+        * chunk_z (integer) is the keyword used to provide a data chunk size
+          for the z dimension in a NETCDF_STRUCTURED output file. Must be used
+          in combination with the the chunk_time, chunk_x and chunk_y parameter
+          set to have an effect.
+    chunk_y : integer
+        * chunk_y (integer) is the keyword used to provide a data chunk size
+          for the y dimension in a NETCDF_STRUCTURED output file. Must be used
+          in combination with the the chunk_time, chunk_x and chunk_z parameter
+          set to have an effect.
+    chunk_x : integer
+        * chunk_x (integer) is the keyword used to provide a data chunk size
+          for the x dimension in a NETCDF_STRUCTURED output file. Must be used
+          in combination with the the chunk_time, chunk_y and chunk_z parameter
+          set to have an effect.
+    modflow6_attr_off : boolean
+        * modflow6_attr_off (boolean) is the keyword used to turn off internal
+          input tagging in the model netcdf file. Tagging adds internal modflow
+          6 attribute(s) to variables which facilitate identification.
+          Currently this applies to gridded arrays.
+    ncpl : integer
+        * ncpl (integer) is the number of cells in a projected plane layer.
+    latitude : [double]
+        * latitude (double) cell center latitude.
+    longitude : [double]
+        * longitude (double) cell center longitude.
+    filename : String
+        File name for this package.
+    pname : String
+        Package name for this package.
+    parent_file : MFPackage
+        Parent package file that references this package. Only needed for
+        utility packages (mfutl*). For example, mfutllaktab package must have 
+        a mfgwflak package parent_file.
+
+    """
+    wkt = ListTemplateGenerator(('ncf', 'options', 'wkt'))
+    latitude = ArrayTemplateGenerator(('ncf', 'griddata', 'latitude'))
+    longitude = ArrayTemplateGenerator(('ncf', 'griddata', 'longitude'))
+    package_abbr = "utlncf"
+    _package_type = "ncf"
+    dfn_file_name = "utl-ncf.dfn"
+
+    dfn = [
+           ["header", ],
+           ["block options", "name wkt", "type string", "shape lenbigline",
+            "reader urword", "optional true"],
+           ["block options", "name deflate", "type integer",
+            "reader urword", "optional true"],
+           ["block options", "name shuffle", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name chunk_time", "type integer",
+            "reader urword", "optional true"],
+           ["block options", "name chunk_face", "type integer",
+            "reader urword", "optional true"],
+           ["block options", "name chunk_z", "type integer",
+            "reader urword", "optional true"],
+           ["block options", "name chunk_y", "type integer",
+            "reader urword", "optional true"],
+           ["block options", "name chunk_x", "type integer",
+            "reader urword", "optional true"],
+           ["block options", "name modflow6_attr_off", "type keyword",
+            "reader urword", "optional true", "mf6internal attr_off"],
+           ["block dimensions", "name ncpl", "type integer",
+            "optional true", "reader urword"],
+           ["block griddata", "name latitude", "type double precision",
+            "shape (ncpl)", "optional true", "reader readarray"],
+           ["block griddata", "name longitude", "type double precision",
+            "shape (ncpl)", "optional true", "reader readarray"]]
+
+    def __init__(self, parent_package, loading_package=False, wkt=None,
+                 deflate=None, shuffle=None, chunk_time=None, chunk_face=None,
+                 chunk_z=None, chunk_y=None, chunk_x=None,
+                 modflow6_attr_off=None, ncpl=None, latitude=None,
+                 longitude=None, filename=None, pname=None, **kwargs):
+        super().__init__(parent_package, "ncf", filename, pname,
+                         loading_package, **kwargs)
+
+        # set up variables
+        self.wkt = self.build_mfdata("wkt", wkt)
+        self.deflate = self.build_mfdata("deflate", deflate)
+        self.shuffle = self.build_mfdata("shuffle", shuffle)
+        self.chunk_time = self.build_mfdata("chunk_time", chunk_time)
+        self.chunk_face = self.build_mfdata("chunk_face", chunk_face)
+        self.chunk_z = self.build_mfdata("chunk_z", chunk_z)
+        self.chunk_y = self.build_mfdata("chunk_y", chunk_y)
+        self.chunk_x = self.build_mfdata("chunk_x", chunk_x)
+        self.modflow6_attr_off = self.build_mfdata("modflow6_attr_off",
+                                                   modflow6_attr_off)
+        self.ncpl = self.build_mfdata("ncpl", ncpl)
+        self.latitude = self.build_mfdata("latitude", latitude)
+        self.longitude = self.build_mfdata("longitude", longitude)
+        self._init_complete = True
+
+
+class UtlncfPackages(mfpackage.MFChildPackages):
+    """
+    UtlncfPackages is a container class for the ModflowUtlncf class.
+
+    Methods
+    -------
+    initialize
+        Initializes a new ModflowUtlncf package removing any sibling child
+        packages attached to the same parent package. See ModflowUtlncf init
+        documentation for definition of parameters.
+    append_package
+        Adds a new ModflowUtlncf package to the container. See ModflowUtlncf
+        init documentation for definition of parameters.
+    """
+    package_abbr = "utlncfpackages"
+
+    def initialize(self, wkt=None, deflate=None, shuffle=None, chunk_time=None,
+                   chunk_face=None, chunk_z=None, chunk_y=None, chunk_x=None,
+                   modflow6_attr_off=None, ncpl=None, latitude=None,
+                   longitude=None, filename=None, pname=None):
+        new_package = ModflowUtlncf(self._cpparent, wkt=wkt, deflate=deflate,
+                                    shuffle=shuffle, chunk_time=chunk_time,
+                                    chunk_face=chunk_face, chunk_z=chunk_z,
+                                    chunk_y=chunk_y, chunk_x=chunk_x,
+                                    modflow6_attr_off=modflow6_attr_off,
+                                    ncpl=ncpl, latitude=latitude,
+                                    longitude=longitude, filename=filename,
+                                    pname=pname, child_builder_call=True)
+        self.init_package(new_package, filename)
+
+    def append_package(self, wkt=None, deflate=None, shuffle=None,
+                   chunk_time=None, chunk_face=None, chunk_z=None,
+                   chunk_y=None, chunk_x=None, modflow6_attr_off=None,
+                   ncpl=None, latitude=None, longitude=None, filename=None,
+                   pname=None):
+        new_package = ModflowUtlncf(self._cpparent, wkt=wkt, deflate=deflate,
+                                    shuffle=shuffle, chunk_time=chunk_time,
+                                    chunk_face=chunk_face, chunk_z=chunk_z,
+                                    chunk_y=chunk_y, chunk_x=chunk_x,
+                                    modflow6_attr_off=modflow6_attr_off,
+                                    ncpl=ncpl, latitude=latitude,
+                                    longitude=longitude, filename=filename,
+                                    pname=pname, child_builder_call=True)
+        self._append_package(new_package, filename)
diff --git a/flopy/mf6/modflow/mfutlobs.py b/flopy/mf6/modflow/mfutlobs.py
index 8464e6d898..86a6321688 100644
--- a/flopy/mf6/modflow/mfutlobs.py
+++ b/flopy/mf6/modflow/mfutlobs.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -67,143 +67,54 @@ class ModflowUtlobs(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    continuous = ListTemplateGenerator(("obs", "continuous", "continuous"))
+    continuous = ListTemplateGenerator(('obs', 'continuous',
+                                        'continuous'))
     package_abbr = "utlobs"
     _package_type = "obs"
     dfn_file_name = "utl-obs.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name digits",
-            "type integer",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block continuous",
-            "name output",
-            "type record fileout obs_output_file_name binary",
-            "shape",
-            "block_variable true",
-            "in_record false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block continuous",
-            "name fileout",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block continuous",
-            "name obs_output_file_name",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "shape",
-            "tagged false",
-            "reader urword",
-        ],
-        [
-            "block continuous",
-            "name binary",
-            "type keyword",
-            "in_record true",
-            "shape",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block continuous",
-            "name continuous",
-            "type recarray obsname obstype id id2",
-            "shape",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block continuous",
-            "name obsname",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block continuous",
-            "name obstype",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block continuous",
-            "name id",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block continuous",
-            "name id2",
-            "type string",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-            "numeric_index true",
-        ],
-    ]
+           ["header", 
+            "multi-package", ],
+           ["block options", "name digits", "type integer", "shape",
+            "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block continuous", "name output",
+            "type record fileout obs_output_file_name binary", "shape",
+            "block_variable true", "in_record false", "reader urword",
+            "optional false"],
+           ["block continuous", "name fileout", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block continuous", "name obs_output_file_name", "type string",
+            "preserve_case true", "in_record true", "shape", "tagged false",
+            "reader urword"],
+           ["block continuous", "name binary", "type keyword",
+            "in_record true", "shape", "reader urword", "optional true"],
+           ["block continuous", "name continuous",
+            "type recarray obsname obstype id id2", "shape", "reader urword",
+            "optional false"],
+           ["block continuous", "name obsname", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block continuous", "name obstype", "type string", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block continuous", "name id", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block continuous", "name id2", "type string", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "optional true", "numeric_index true"]]
 
-    def __init__(
-        self,
-        parent_model_or_package,
-        loading_package=False,
-        digits=None,
-        print_input=None,
-        continuous=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            parent_model_or_package,
-            "obs",
-            filename,
-            pname,
-            loading_package,
-            **kwargs,
-        )
+    def __init__(self, parent_model_or_package, loading_package=False,
+                 digits=None, print_input=None, continuous=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(parent_model_or_package, "obs", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.digits = self.build_mfdata("digits", digits)
@@ -223,24 +134,12 @@ class UtlobsPackages(mfpackage.MFChildPackages):
         packages attached to the same parent package. See ModflowUtlobs init
         documentation for definition of parameters.
     """
-
     package_abbr = "utlobspackages"
 
-    def initialize(
-        self,
-        digits=None,
-        print_input=None,
-        continuous=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowUtlobs(
-            self._cpparent,
-            digits=digits,
-            print_input=print_input,
-            continuous=continuous,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def initialize(self, digits=None, print_input=None, continuous=None,
+                   filename=None, pname=None):
+        new_package = ModflowUtlobs(self._cpparent, digits=digits,
+                                    print_input=print_input,
+                                    continuous=continuous, filename=filename,
+                                    pname=pname, child_builder_call=True)
         self.init_package(new_package, filename)
diff --git a/flopy/mf6/modflow/mfutlsfrtab.py b/flopy/mf6/modflow/mfutlsfrtab.py
index a3f768af14..24249f8b18 100644
--- a/flopy/mf6/modflow/mfutlsfrtab.py
+++ b/flopy/mf6/modflow/mfutlsfrtab.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -53,86 +53,37 @@ class ModflowUtlsfrtab(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    table = ListTemplateGenerator(("sfrtab", "table", "table"))
+    table = ListTemplateGenerator(('sfrtab', 'table', 'table'))
     package_abbr = "utlsfrtab"
     _package_type = "sfrtab"
     dfn_file_name = "utl-sfrtab.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block dimensions",
-            "name nrow",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block dimensions",
-            "name ncol",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block table",
-            "name table",
-            "type recarray xfraction height manfraction",
-            "shape (nrow)",
-            "reader urword",
-        ],
-        [
-            "block table",
-            "name xfraction",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block table",
-            "name height",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block table",
-            "name manfraction",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "optional true",
-        ],
-    ]
+           ["header", 
+            "multi-package", ],
+           ["block dimensions", "name nrow", "type integer",
+            "reader urword", "optional false"],
+           ["block dimensions", "name ncol", "type integer",
+            "reader urword", "optional false"],
+           ["block table", "name table",
+            "type recarray xfraction height manfraction", "shape (nrow)",
+            "reader urword"],
+           ["block table", "name xfraction", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block table", "name height", "type double precision", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block table", "name manfraction", "type double precision",
+            "shape", "tagged false", "in_record true", "reader urword",
+            "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        nrow=None,
-        ncol=None,
-        table=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "sfrtab", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, nrow=None, ncol=None,
+                 table=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "sfrtab", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.nrow = self.build_mfdata("nrow", nrow)
diff --git a/flopy/mf6/modflow/mfutlspc.py b/flopy/mf6/modflow/mfutlspc.py
index 326b51b105..b8e9d2937b 100644
--- a/flopy/mf6/modflow/mfutlspc.py
+++ b/flopy/mf6/modflow/mfutlspc.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -39,7 +39,7 @@ class ModflowUtlspc(mfpackage.MFPackage):
           when writing index variables.
         * spcsetting (keystring) line of information that is parsed into a
           keyword and values. Keyword values that can be used to start the
-          SPCSETTING string include: CONCENTRATION.
+          SPCSETTING string include: CONCENTRATION and TEMPERATURE.
             concentration : [double]
                 * concentration (double) is the boundary concentration. If the
                   Options block includes a TIMESERIESFILE entry (see the "Time-
@@ -47,156 +47,81 @@ class ModflowUtlspc(mfpackage.MFPackage):
                   series by entering the time-series name in place of a numeric
                   value. By default, the CONCENTRATION for each boundary
                   feature is zero.
+            temperature : [double]
+                * temperature (double) is the user-supplied boundary
+                  temperature. If the Options block includes a TIMESERIESFILE
+                  entry (see the "Time-Variable Input" section), values can be
+                  obtained from a time series by entering the time-series name
+                  in place of a numeric value. By default, the TEMPERATURE for
+                  each boundary feature is zero.
     filename : String
         File name for this package.
     pname : String
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    ts_filerecord = ListTemplateGenerator(("spc", "options", "ts_filerecord"))
-    perioddata = ListTemplateGenerator(("spc", "period", "perioddata"))
+    ts_filerecord = ListTemplateGenerator(('spc', 'options',
+                                           'ts_filerecord'))
+    perioddata = ListTemplateGenerator(('spc', 'period', 'perioddata'))
     package_abbr = "utlspc"
     _package_type = "spc"
     dfn_file_name = "utl-spc.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block dimensions",
-            "name maxbound",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name perioddata",
-            "type recarray bndno spcsetting",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name bndno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name spcsetting",
-            "type keystring concentration",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name concentration",
-            "type double precision",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-    ]
+           ["header", 
+            "multi-package", ],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block dimensions", "name maxbound", "type integer",
+            "reader urword", "optional false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name perioddata",
+            "type recarray bndno spcsetting", "shape", "reader urword"],
+           ["block period", "name bndno", "type integer", "shape",
+            "tagged false", "in_record true", "reader urword",
+            "numeric_index true"],
+           ["block period", "name spcsetting",
+            "type keystring concentration temperature", "shape",
+            "tagged false", "in_record true", "reader urword"],
+           ["block period", "name concentration", "type double precision",
+            "shape", "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name temperature", "type double precision",
+            "shape", "tagged true", "in_record true", "reader urword",
+            "time_series true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        print_input=None,
-        timeseries=None,
-        maxbound=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "spc", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, print_input=None,
+                 timeseries=None, maxbound=None, perioddata=None,
+                 filename=None, pname=None, **kwargs):
+        super().__init__(model, "spc", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.print_input = self.build_mfdata("print_input", print_input)
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
         self.maxbound = self.build_mfdata("maxbound", maxbound)
         self.perioddata = self.build_mfdata("perioddata", perioddata)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfutlspca.py b/flopy/mf6/modflow/mfutlspca.py
index e2457fe4d1..67b7bce940 100644
--- a/flopy/mf6/modflow/mfutlspca.py
+++ b/flopy/mf6/modflow/mfutlspca.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -39,132 +39,73 @@ class ModflowUtlspca(mfpackage.MFPackage):
           Recharge or Evapotranspiration stress package. The concentration
           array may be defined by a time-array series (see the "Using Time-
           Array Series in a Package" section).
+    temperature : [double]
+        * temperature (double) is the temperature of the associated Recharge or
+          Evapotranspiration stress package. The temperature array may be
+          defined by a time-array series (see the "Using Time-Array Series in a
+          Package" section).
     filename : String
         File name for this package.
     pname : String
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    tas_filerecord = ListTemplateGenerator(
-        ("spca", "options", "tas_filerecord")
-    )
-    concentration = ArrayTemplateGenerator(("spca", "period", "concentration"))
+    tas_filerecord = ListTemplateGenerator(('spca', 'options',
+                                            'tas_filerecord'))
+    concentration = ArrayTemplateGenerator(('spca', 'period',
+                                            'concentration'))
+    temperature = ArrayTemplateGenerator(('spca', 'period',
+                                          'temperature'))
     package_abbr = "utlspca"
     _package_type = "spca"
     dfn_file_name = "utl-spca.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name readasarrays",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional false",
-            "default_value True",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name tas_filerecord",
-            "type record tas6 filein tas6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package tas",
-            "construct_data tas_array",
-            "parameter_name timearrayseries",
-        ],
-        [
-            "block options",
-            "name tas6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name tas6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name concentration",
-            "type double precision",
-            "shape (ncol*nrow; ncpl)",
-            "reader readarray",
-            "default_value 0.",
-        ],
-    ]
+           ["header", 
+            "multi-package", ],
+           ["block options", "name readasarrays", "type keyword", "shape",
+            "reader urword", "optional false", "default_value True"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name tas_filerecord",
+            "type record tas6 filein tas6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package tas",
+            "construct_data tas_array", "parameter_name timearrayseries"],
+           ["block options", "name tas6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name tas6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name concentration", "type double precision",
+            "shape (ncol*nrow; ncpl)", "reader readarray", "optional true"],
+           ["block period", "name temperature", "type double precision",
+            "shape (ncol*nrow; ncpl)", "reader readarray", "optional true"]]
 
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        readasarrays=True,
-        print_input=None,
-        timearrayseries=None,
-        concentration=0.0,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "spca", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, model, loading_package=False, readasarrays=True,
+                 print_input=None, timearrayseries=None, concentration=None,
+                 temperature=None, filename=None, pname=None, **kwargs):
+        super().__init__(model, "spca", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.readasarrays = self.build_mfdata("readasarrays", readasarrays)
         self.print_input = self.build_mfdata("print_input", print_input)
-        self._tas_filerecord = self.build_mfdata("tas_filerecord", None)
-        self._tas_package = self.build_child_package(
-            "tas", timearrayseries, "tas_array", self._tas_filerecord
-        )
+        self._tas_filerecord = self.build_mfdata("tas_filerecord",
+                                                 None)
+        self._tas_package = self.build_child_package("tas", timearrayseries,
+                                                     "tas_array",
+                                                     self._tas_filerecord)
         self.concentration = self.build_mfdata("concentration", concentration)
+        self.temperature = self.build_mfdata("temperature", temperature)
         self._init_complete = True
diff --git a/flopy/mf6/modflow/mfutlspt.py b/flopy/mf6/modflow/mfutlspt.py
deleted file mode 100644
index 62fb9417f8..0000000000
--- a/flopy/mf6/modflow/mfutlspt.py
+++ /dev/null
@@ -1,202 +0,0 @@
-# DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
-# mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
-from .. import mfpackage
-from ..data.mfdatautil import ListTemplateGenerator
-
-
-class ModflowUtlspt(mfpackage.MFPackage):
-    """
-    ModflowUtlspt defines a spt package within a utl model.
-
-    Parameters
-    ----------
-    model : MFModel
-        Model that this package is a part of. Package is automatically
-        added to model when it is initialized.
-    loading_package : bool
-        Do not set this parameter. It is intended for debugging and internal
-        processing purposes only.
-    print_input : boolean
-        * print_input (boolean) keyword to indicate that the list of spt
-          information will be written to the listing file immediately after it
-          is read.
-    timeseries : {varname:data} or timeseries data
-        * Contains data for the ts package. Data can be stored in a dictionary
-          containing data for the ts package with variable names as keys and
-          package data as values. Data just for the timeseries variable is also
-          acceptable. See ts package documentation for more information.
-    maxbound : integer
-        * maxbound (integer) integer value specifying the maximum number of spt
-          cells that will be specified for use during any stress period.
-    perioddata : [bndno, sptsetting]
-        * bndno (integer) integer value that defines the boundary package
-          feature number associated with the specified PERIOD data on the line.
-          BNDNO must be greater than zero and less than or equal to MAXBOUND.
-          This argument is an index variable, which means that it should be
-          treated as zero-based when working with FloPy and Python. Flopy will
-          automatically subtract one when loading index variables and add one
-          when writing index variables.
-        * sptsetting (keystring) line of information that is parsed into a
-          keyword and values. Keyword values that can be used to start the
-          SPTSETTING string include: TEMPERATURE.
-            temperature : [double]
-                * temperature (double) is the boundary temperature. If the
-                  Options block includes a TIMESERIESFILE entry (see the "Time-
-                  Variable Input" section), values can be obtained from a time
-                  series by entering the time-series name in place of a numeric
-                  value. By default, the TEMPERATURE for each boundary feature
-                  is zero.
-    filename : String
-        File name for this package.
-    pname : String
-        Package name for this package.
-    parent_file : MFPackage
-        Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
-        a mfgwflak package parent_file.
-
-    """
-
-    ts_filerecord = ListTemplateGenerator(("spt", "options", "ts_filerecord"))
-    perioddata = ListTemplateGenerator(("spt", "period", "perioddata"))
-    package_abbr = "utlspt"
-    _package_type = "spt"
-    dfn_file_name = "utl-spt.dfn"
-
-    dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block dimensions",
-            "name maxbound",
-            "type integer",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name perioddata",
-            "type recarray bndno sptsetting",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name bndno",
-            "type integer",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-            "numeric_index true",
-        ],
-        [
-            "block period",
-            "name sptsetting",
-            "type keystring temperature",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name temperature",
-            "type double precision",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-    ]
-
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        print_input=None,
-        timeseries=None,
-        maxbound=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "spt", filename, pname, loading_package, **kwargs
-        )
-
-        # set up variables
-        self.print_input = self.build_mfdata("print_input", print_input)
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
-        self.maxbound = self.build_mfdata("maxbound", maxbound)
-        self.perioddata = self.build_mfdata("perioddata", perioddata)
-        self._init_complete = True
diff --git a/flopy/mf6/modflow/mfutlspta.py b/flopy/mf6/modflow/mfutlspta.py
deleted file mode 100644
index 08c43d2efe..0000000000
--- a/flopy/mf6/modflow/mfutlspta.py
+++ /dev/null
@@ -1,170 +0,0 @@
-# DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
-# mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
-from .. import mfpackage
-from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
-
-
-class ModflowUtlspta(mfpackage.MFPackage):
-    """
-    ModflowUtlspta defines a spta package within a utl model.
-
-    Parameters
-    ----------
-    model : MFModel
-        Model that this package is a part of. Package is automatically
-        added to model when it is initialized.
-    loading_package : bool
-        Do not set this parameter. It is intended for debugging and internal
-        processing purposes only.
-    readasarrays : boolean
-        * readasarrays (boolean) indicates that array-based input will be used
-          for the SPT Package. This keyword must be specified to use array-
-          based input. When READASARRAYS is specified, values must be provided
-          for every cell within a model layer, even those cells that have an
-          IDOMAIN value less than one. Values assigned to cells with IDOMAIN
-          values less than one are not used and have no effect on simulation
-          results.
-    print_input : boolean
-        * print_input (boolean) keyword to indicate that the list of spt
-          information will be written to the listing file immediately after it
-          is read.
-    timearrayseries : {varname:data} or tas_array data
-        * Contains data for the tas package. Data can be stored in a dictionary
-          containing data for the tas package with variable names as keys and
-          package data as values. Data just for the timearrayseries variable is
-          also acceptable. See tas package documentation for more information.
-    temperature : [double]
-        * temperature (double) is the temperature of the associated Recharge or
-          Evapotranspiration stress package. The temperature array may be
-          defined by a time-array series (see the "Using Time-Array Series in a
-          Package" section).
-    filename : String
-        File name for this package.
-    pname : String
-        Package name for this package.
-    parent_file : MFPackage
-        Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
-        a mfgwflak package parent_file.
-
-    """
-
-    tas_filerecord = ListTemplateGenerator(
-        ("spta", "options", "tas_filerecord")
-    )
-    temperature = ArrayTemplateGenerator(("spta", "period", "temperature"))
-    package_abbr = "utlspta"
-    _package_type = "spta"
-    dfn_file_name = "utl-spta.dfn"
-
-    dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block options",
-            "name readasarrays",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional false",
-            "default_value True",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name tas_filerecord",
-            "type record tas6 filein tas6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package tas",
-            "construct_data tas_array",
-            "parameter_name timearrayseries",
-        ],
-        [
-            "block options",
-            "name tas6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name tas6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name temperature",
-            "type double precision",
-            "shape (ncol*nrow; ncpl)",
-            "reader readarray",
-            "default_value 0.",
-        ],
-    ]
-
-    def __init__(
-        self,
-        model,
-        loading_package=False,
-        readasarrays=True,
-        print_input=None,
-        timearrayseries=None,
-        temperature=0.0,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            model, "spta", filename, pname, loading_package, **kwargs
-        )
-
-        # set up variables
-        self.readasarrays = self.build_mfdata("readasarrays", readasarrays)
-        self.print_input = self.build_mfdata("print_input", print_input)
-        self._tas_filerecord = self.build_mfdata("tas_filerecord", None)
-        self._tas_package = self.build_child_package(
-            "tas", timearrayseries, "tas_array", self._tas_filerecord
-        )
-        self.temperature = self.build_mfdata("temperature", temperature)
-        self._init_complete = True
diff --git a/flopy/mf6/modflow/mfutltas.py b/flopy/mf6/modflow/mfutltas.py
index b00d56dbc0..553ba2b17e 100644
--- a/flopy/mf6/modflow/mfutltas.py
+++ b/flopy/mf6/modflow/mfutltas.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
 
@@ -37,155 +37,68 @@ class ModflowUtltas(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    time_series_namerecord = ListTemplateGenerator(
-        ("tas", "attributes", "time_series_namerecord")
-    )
-    interpolation_methodrecord = ListTemplateGenerator(
-        ("tas", "attributes", "interpolation_methodrecord")
-    )
-    sfacrecord = ListTemplateGenerator(("tas", "attributes", "sfacrecord"))
-    tas_array = ArrayTemplateGenerator(("tas", "time", "tas_array"))
+    time_series_namerecord = ListTemplateGenerator(('tas', 'attributes',
+                                                    'time_series_namerecord'))
+    interpolation_methodrecord = ListTemplateGenerator((
+        'tas', 'attributes', 'interpolation_methodrecord'))
+    sfacrecord = ListTemplateGenerator(('tas', 'attributes',
+                                        'sfacrecord'))
+    tas_array = ArrayTemplateGenerator(('tas', 'time', 'tas_array'))
     package_abbr = "utltas"
     _package_type = "tas"
     dfn_file_name = "utl-tas.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block attributes",
-            "name time_series_namerecord",
-            "type record name time_series_name",
-            "shape",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block attributes",
-            "name name",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block attributes",
-            "name time_series_name",
-            "type string",
-            "shape any1d",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block attributes",
-            "name interpolation_methodrecord",
-            "type record method interpolation_method",
-            "shape",
-            "reader urword",
-            "tagged false",
-            "optional true",
-        ],
-        [
-            "block attributes",
-            "name method",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block attributes",
-            "name interpolation_method",
-            "type string",
-            "valid stepwise linear linearend",
-            "shape",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block attributes",
-            "name sfacrecord",
-            "type record sfac sfacval",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block attributes",
-            "name sfac",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block attributes",
-            "name sfacval",
-            "type double precision",
-            "shape time_series_name",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block time",
-            "name time_from_model_start",
-            "type double precision",
-            "block_variable True",
-            "in_record true",
-            "shape",
-            "tagged false",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block time",
-            "name tas_array",
-            "type double precision",
-            "tagged false",
-            "just_data true",
-            "shape (unknown)",
-            "reader readarray",
-            "optional false",
-            "repeating true",
-        ],
-    ]
+           ["header", 
+            "multi-package", ],
+           ["block attributes", "name time_series_namerecord",
+            "type record name time_series_name", "shape", "reader urword",
+            "tagged false", "optional false"],
+           ["block attributes", "name name", "type keyword", "shape",
+            "reader urword", "optional false", "in_record true"],
+           ["block attributes", "name time_series_name", "type string",
+            "shape any1d", "tagged false", "reader urword", "optional false",
+            "in_record true"],
+           ["block attributes", "name interpolation_methodrecord",
+            "type record method interpolation_method", "shape",
+            "reader urword", "tagged false", "optional true"],
+           ["block attributes", "name method", "type keyword", "shape",
+            "reader urword", "optional false", "in_record true"],
+           ["block attributes", "name interpolation_method", "type string",
+            "valid stepwise linear linearend", "shape", "tagged false",
+            "reader urword", "optional false", "in_record true"],
+           ["block attributes", "name sfacrecord",
+            "type record sfac sfacval", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block attributes", "name sfac", "type keyword", "shape",
+            "reader urword", "optional false", "in_record true"],
+           ["block attributes", "name sfacval", "type double precision",
+            "shape time_series_name", "tagged false", "reader urword",
+            "optional false", "in_record true"],
+           ["block time", "name time_from_model_start",
+            "type double precision", "block_variable True", "in_record true",
+            "shape", "tagged false", "valid", "reader urword",
+            "optional false"],
+           ["block time", "name tas_array", "type double precision",
+            "tagged false", "just_data true", "shape (unknown)",
+            "reader readarray", "optional false", "repeating true"]]
 
-    def __init__(
-        self,
-        parent_package,
-        loading_package=False,
-        time_series_namerecord=None,
-        interpolation_methodrecord=None,
-        sfacrecord=None,
-        tas_array=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            parent_package, "tas", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, parent_package, loading_package=False,
+                 time_series_namerecord=None, interpolation_methodrecord=None,
+                 sfacrecord=None, tas_array=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(parent_package, "tas", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.time_series_namerecord = self.build_mfdata(
-            "time_series_namerecord", time_series_namerecord
-        )
+            "time_series_namerecord", time_series_namerecord)
         self.interpolation_methodrecord = self.build_mfdata(
-            "interpolation_methodrecord", interpolation_methodrecord
-        )
+            "interpolation_methodrecord", interpolation_methodrecord)
         self.sfacrecord = self.build_mfdata("sfacrecord", sfacrecord)
         self.tas_array = self.build_mfdata("tas_array", tas_array)
         self._init_complete = True
@@ -205,47 +118,30 @@ class UtltasPackages(mfpackage.MFChildPackages):
         Adds a new ModflowUtltas package to the container. See ModflowUtltas
         init documentation for definition of parameters.
     """
-
     package_abbr = "utltaspackages"
 
-    def initialize(
-        self,
-        time_series_namerecord=None,
-        interpolation_methodrecord=None,
-        sfacrecord=None,
-        tas_array=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowUtltas(
-            self._cpparent,
-            time_series_namerecord=time_series_namerecord,
-            interpolation_methodrecord=interpolation_methodrecord,
-            sfacrecord=sfacrecord,
-            tas_array=tas_array,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def initialize(self, time_series_namerecord=None,
+                   interpolation_methodrecord=None, sfacrecord=None,
+                   tas_array=None, filename=None, pname=None):
+        new_package = ModflowUtltas(self._cpparent,
+                                    time_series_namerecord=
+                                    time_series_namerecord,
+                                    interpolation_methodrecord=
+                                    interpolation_methodrecord,
+                                    sfacrecord=sfacrecord, tas_array=tas_array,
+                                    filename=filename, pname=pname,
+                                    child_builder_call=True)
         self.init_package(new_package, filename)
 
-    def append_package(
-        self,
-        time_series_namerecord=None,
-        interpolation_methodrecord=None,
-        sfacrecord=None,
-        tas_array=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowUtltas(
-            self._cpparent,
-            time_series_namerecord=time_series_namerecord,
-            interpolation_methodrecord=interpolation_methodrecord,
-            sfacrecord=sfacrecord,
-            tas_array=tas_array,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def append_package(self, time_series_namerecord=None,
+                   interpolation_methodrecord=None, sfacrecord=None,
+                   tas_array=None, filename=None, pname=None):
+        new_package = ModflowUtltas(self._cpparent,
+                                    time_series_namerecord=
+                                    time_series_namerecord,
+                                    interpolation_methodrecord=
+                                    interpolation_methodrecord,
+                                    sfacrecord=sfacrecord, tas_array=tas_array,
+                                    filename=filename, pname=pname,
+                                    child_builder_call=True)
         self._append_package(new_package, filename)
diff --git a/flopy/mf6/modflow/mfutlts.py b/flopy/mf6/modflow/mfutlts.py
index 3113e423e1..0af01ad039 100644
--- a/flopy/mf6/modflow/mfutlts.py
+++ b/flopy/mf6/modflow/mfutlts.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -47,222 +47,95 @@ class ModflowUtlts(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    time_series_namerecord = ListTemplateGenerator(
-        ("ts", "attributes", "time_series_namerecord")
-    )
-    interpolation_methodrecord = ListTemplateGenerator(
-        ("ts", "attributes", "interpolation_methodrecord")
-    )
-    interpolation_methodrecord_single = ListTemplateGenerator(
-        ("ts", "attributes", "interpolation_methodrecord_single")
-    )
-    sfacrecord = ListTemplateGenerator(("ts", "attributes", "sfacrecord"))
-    sfacrecord_single = ListTemplateGenerator(
-        ("ts", "attributes", "sfacrecord_single")
-    )
-    timeseries = ListTemplateGenerator(("ts", "timeseries", "timeseries"))
+    time_series_namerecord = ListTemplateGenerator(('ts', 'attributes',
+                                                    'time_series_namerecord'))
+    interpolation_methodrecord = ListTemplateGenerator((
+        'ts', 'attributes', 'interpolation_methodrecord'))
+    interpolation_methodrecord_single = ListTemplateGenerator((
+        'ts', 'attributes', 'interpolation_methodrecord_single'))
+    sfacrecord = ListTemplateGenerator(('ts', 'attributes', 'sfacrecord'))
+    sfacrecord_single = ListTemplateGenerator(('ts', 'attributes',
+                                               'sfacrecord_single'))
+    timeseries = ListTemplateGenerator(('ts', 'timeseries', 'timeseries'))
     package_abbr = "utlts"
     _package_type = "ts"
     dfn_file_name = "utl-ts.dfn"
 
     dfn = [
-        [
-            "header",
-            "multi-package",
-        ],
-        [
-            "block attributes",
-            "name time_series_namerecord",
-            "type record names time_series_names",
-            "shape",
-            "reader urword",
-            "tagged false",
-            "optional false",
-        ],
-        [
-            "block attributes",
-            "name names",
-            "other_names name",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block attributes",
-            "name time_series_names",
-            "type string",
-            "shape any1d",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block attributes",
-            "name interpolation_methodrecord",
-            "type record methods interpolation_method",
-            "shape",
-            "reader urword",
-            "tagged false",
-            "optional true",
-        ],
-        [
-            "block attributes",
-            "name methods",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block attributes",
-            "name interpolation_method",
-            "type string",
-            "valid stepwise linear linearend",
-            "shape time_series_names",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block attributes",
-            "name interpolation_methodrecord_single",
-            "type record method interpolation_method_single",
-            "shape",
-            "reader urword",
-            "tagged false",
-            "optional true",
-        ],
-        [
-            "block attributes",
-            "name method",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block attributes",
-            "name interpolation_method_single",
-            "type string",
-            "valid stepwise linear linearend",
-            "shape",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block attributes",
-            "name sfacrecord",
-            "type record sfacs sfacval",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block attributes",
-            "name sfacs",
-            "type keyword",
-            "shape",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block attributes",
-            "name sfacval",
-            "type double precision",
-            "shape <time_series_name",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block attributes",
-            "name sfacrecord_single",
-            "type record sfac sfacval",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-        ],
-        [
-            "block attributes",
-            "name sfac",
-            "type keyword",
-            "shape",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block timeseries",
-            "name timeseries",
-            "type recarray ts_time ts_array",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block timeseries",
-            "name ts_time",
-            "type double precision",
-            "shape",
-            "tagged false",
-            "reader urword",
-            "optional false",
-            "repeating false",
-        ],
-        [
-            "block timeseries",
-            "name ts_array",
-            "type double precision",
-            "shape time_series_names",
-            "tagged false",
-            "reader urword",
-            "optional false",
-        ],
-    ]
+           ["header", 
+            "multi-package", ],
+           ["block attributes", "name time_series_namerecord",
+            "type record names time_series_names", "shape", "reader urword",
+            "tagged false", "optional false"],
+           ["block attributes", "name names", "other_names name",
+            "type keyword", "shape", "reader urword", "optional false",
+            "in_record true"],
+           ["block attributes", "name time_series_names", "type string",
+            "shape any1d", "tagged false", "reader urword", "optional false",
+            "in_record true"],
+           ["block attributes", "name interpolation_methodrecord",
+            "type record methods interpolation_method", "shape",
+            "reader urword", "tagged false", "optional true"],
+           ["block attributes", "name methods", "type keyword", "shape",
+            "reader urword", "optional false", "in_record true"],
+           ["block attributes", "name interpolation_method", "type string",
+            "valid stepwise linear linearend", "shape time_series_names",
+            "tagged false", "reader urword", "optional false",
+            "in_record true"],
+           ["block attributes", "name interpolation_methodrecord_single",
+            "type record method interpolation_method_single", "shape",
+            "reader urword", "tagged false", "optional true"],
+           ["block attributes", "name method", "type keyword", "shape",
+            "reader urword", "optional false"],
+           ["block attributes", "name interpolation_method_single",
+            "type string", "valid stepwise linear linearend", "shape",
+            "tagged false", "reader urword", "optional false"],
+           ["block attributes", "name sfacrecord",
+            "type record sfacs sfacval", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block attributes", "name sfacs", "type keyword", "shape",
+            "reader urword", "optional false", "in_record true"],
+           ["block attributes", "name sfacval", "type double precision",
+            "shape <time_series_name", "tagged false", "reader urword",
+            "optional false", "in_record true"],
+           ["block attributes", "name sfacrecord_single",
+            "type record sfac sfacval", "shape", "reader urword",
+            "tagged true", "optional true"],
+           ["block attributes", "name sfac", "type keyword", "shape",
+            "tagged false", "reader urword", "optional false"],
+           ["block timeseries", "name timeseries",
+            "type recarray ts_time ts_array", "shape", "reader urword",
+            "tagged true", "optional false"],
+           ["block timeseries", "name ts_time", "type double precision",
+            "shape", "tagged false", "reader urword", "optional false",
+            "repeating false", "in_record true"],
+           ["block timeseries", "name ts_array", "type double precision",
+            "shape time_series_names", "tagged false", "reader urword",
+            "optional false", "in_record true"]]
 
-    def __init__(
-        self,
-        parent_package,
-        loading_package=False,
-        time_series_namerecord=None,
-        interpolation_methodrecord=None,
-        interpolation_methodrecord_single=None,
-        sfacrecord=None,
-        sfacrecord_single=None,
-        timeseries=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            parent_package, "ts", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, parent_package, loading_package=False,
+                 time_series_namerecord=None, interpolation_methodrecord=None,
+                 interpolation_methodrecord_single=None, sfacrecord=None,
+                 sfacrecord_single=None, timeseries=None, filename=None,
+                 pname=None, **kwargs):
+        super().__init__(parent_package, "ts", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.time_series_namerecord = self.build_mfdata(
-            "time_series_namerecord", time_series_namerecord
-        )
+            "time_series_namerecord", time_series_namerecord)
         self.interpolation_methodrecord = self.build_mfdata(
-            "interpolation_methodrecord", interpolation_methodrecord
-        )
+            "interpolation_methodrecord", interpolation_methodrecord)
         self.interpolation_methodrecord_single = self.build_mfdata(
             "interpolation_methodrecord_single",
-            interpolation_methodrecord_single,
-        )
+            interpolation_methodrecord_single)
         self.sfacrecord = self.build_mfdata("sfacrecord", sfacrecord)
-        self.sfacrecord_single = self.build_mfdata(
-            "sfacrecord_single", sfacrecord_single
-        )
+        self.sfacrecord_single = self.build_mfdata("sfacrecord_single",
+                                                   sfacrecord_single)
         self.timeseries = self.build_mfdata("timeseries", timeseries)
         self._init_complete = True
 
@@ -281,55 +154,40 @@ class UtltsPackages(mfpackage.MFChildPackages):
         Adds a new ModflowUtlts package to the container. See ModflowUtlts
         init documentation for definition of parameters.
     """
-
     package_abbr = "utltspackages"
 
-    def initialize(
-        self,
-        time_series_namerecord=None,
-        interpolation_methodrecord=None,
-        interpolation_methodrecord_single=None,
-        sfacrecord=None,
-        sfacrecord_single=None,
-        timeseries=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowUtlts(
-            self._cpparent,
-            time_series_namerecord=time_series_namerecord,
-            interpolation_methodrecord=interpolation_methodrecord,
-            interpolation_methodrecord_single=interpolation_methodrecord_single,
-            sfacrecord=sfacrecord,
-            sfacrecord_single=sfacrecord_single,
-            timeseries=timeseries,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def initialize(self, time_series_namerecord=None,
+                   interpolation_methodrecord=None,
+                   interpolation_methodrecord_single=None, sfacrecord=None,
+                   sfacrecord_single=None, timeseries=None, filename=None,
+                   pname=None):
+        new_package = ModflowUtlts(self._cpparent,
+                                    time_series_namerecord=
+                                    time_series_namerecord,
+                                    interpolation_methodrecord=
+                                    interpolation_methodrecord,
+                                    interpolation_methodrecord_single=
+                                    interpolation_methodrecord_single,
+                                    sfacrecord=sfacrecord,
+                                    sfacrecord_single=sfacrecord_single,
+                                    timeseries=timeseries, filename=filename,
+                                    pname=pname, child_builder_call=True)
         self.init_package(new_package, filename)
 
-    def append_package(
-        self,
-        time_series_namerecord=None,
-        interpolation_methodrecord=None,
-        interpolation_methodrecord_single=None,
-        sfacrecord=None,
-        sfacrecord_single=None,
-        timeseries=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowUtlts(
-            self._cpparent,
-            time_series_namerecord=time_series_namerecord,
-            interpolation_methodrecord=interpolation_methodrecord,
-            interpolation_methodrecord_single=interpolation_methodrecord_single,
-            sfacrecord=sfacrecord,
-            sfacrecord_single=sfacrecord_single,
-            timeseries=timeseries,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def append_package(self, time_series_namerecord=None,
+                   interpolation_methodrecord=None,
+                   interpolation_methodrecord_single=None, sfacrecord=None,
+                   sfacrecord_single=None, timeseries=None, filename=None,
+                   pname=None):
+        new_package = ModflowUtlts(self._cpparent,
+                                    time_series_namerecord=
+                                    time_series_namerecord,
+                                    interpolation_methodrecord=
+                                    interpolation_methodrecord,
+                                    interpolation_methodrecord_single=
+                                    interpolation_methodrecord_single,
+                                    sfacrecord=sfacrecord,
+                                    sfacrecord_single=sfacrecord_single,
+                                    timeseries=timeseries, filename=filename,
+                                    pname=pname, child_builder_call=True)
         self._append_package(new_package, filename)
diff --git a/flopy/mf6/modflow/mfutltvk.py b/flopy/mf6/modflow/mfutltvk.py
index 1d77403516..b3e91aac6c 100644
--- a/flopy/mf6/modflow/mfutltvk.py
+++ b/flopy/mf6/modflow/mfutltvk.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -73,160 +73,67 @@ class ModflowUtltvk(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    ts_filerecord = ListTemplateGenerator(("tvk", "options", "ts_filerecord"))
-    perioddata = ListTemplateGenerator(("tvk", "period", "perioddata"))
+    ts_filerecord = ListTemplateGenerator(('tvk', 'options',
+                                           'ts_filerecord'))
+    perioddata = ListTemplateGenerator(('tvk', 'period', 'perioddata'))
     package_abbr = "utltvk"
     _package_type = "tvk"
     dfn_file_name = "utl-tvk.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name perioddata",
-            "type recarray cellid tvksetting",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name tvksetting",
-            "type keystring k k22 k33",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name k",
-            "type double precision",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name k22",
-            "type double precision",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name k33",
-            "type double precision",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name perioddata",
+            "type recarray cellid tvksetting", "shape", "reader urword"],
+           ["block period", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block period", "name tvksetting", "type keystring k k22 k33",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name k", "type double precision", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name k22", "type double precision", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name k33", "type double precision", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"]]
 
-    def __init__(
-        self,
-        parent_package,
-        loading_package=False,
-        print_input=None,
-        timeseries=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            parent_package, "tvk", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, parent_package, loading_package=False, print_input=None,
+                 timeseries=None, perioddata=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(parent_package, "tvk", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.print_input = self.build_mfdata("print_input", print_input)
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
         self.perioddata = self.build_mfdata("perioddata", perioddata)
         self._init_complete = True
 
@@ -245,43 +152,20 @@ class UtltvkPackages(mfpackage.MFChildPackages):
         Adds a new ModflowUtltvk package to the container. See ModflowUtltvk
         init documentation for definition of parameters.
     """
-
     package_abbr = "utltvkpackages"
 
-    def initialize(
-        self,
-        print_input=None,
-        timeseries=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowUtltvk(
-            self._cpparent,
-            print_input=print_input,
-            timeseries=timeseries,
-            perioddata=perioddata,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def initialize(self, print_input=None, timeseries=None, perioddata=None,
+                   filename=None, pname=None):
+        new_package = ModflowUtltvk(self._cpparent, print_input=print_input,
+                                    timeseries=timeseries,
+                                    perioddata=perioddata, filename=filename,
+                                    pname=pname, child_builder_call=True)
         self.init_package(new_package, filename)
 
-    def append_package(
-        self,
-        print_input=None,
-        timeseries=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowUtltvk(
-            self._cpparent,
-            print_input=print_input,
-            timeseries=timeseries,
-            perioddata=perioddata,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def append_package(self, print_input=None, timeseries=None,
+                   perioddata=None, filename=None, pname=None):
+        new_package = ModflowUtltvk(self._cpparent, print_input=print_input,
+                                    timeseries=timeseries,
+                                    perioddata=perioddata, filename=filename,
+                                    pname=pname, child_builder_call=True)
         self._append_package(new_package, filename)
diff --git a/flopy/mf6/modflow/mfutltvs.py b/flopy/mf6/modflow/mfutltvs.py
index d9fe1111cc..6e3235a6e7 100644
--- a/flopy/mf6/modflow/mfutltvs.py
+++ b/flopy/mf6/modflow/mfutltvs.py
@@ -1,6 +1,6 @@
 # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
 # mf6/utils/createpackages.py
-# FILE created on May 23, 2024 14:30:07 UTC
+# FILE created on December 20, 2024 02:43:08 UTC
 from .. import mfpackage
 from ..data.mfdatautil import ListTemplateGenerator
 
@@ -71,162 +71,70 @@ class ModflowUtltvs(mfpackage.MFPackage):
         Package name for this package.
     parent_file : MFPackage
         Parent package file that references this package. Only needed for
-        utility packages (mfutl*). For example, mfutllaktab package must have
+        utility packages (mfutl*). For example, mfutllaktab package must have 
         a mfgwflak package parent_file.
 
     """
-
-    ts_filerecord = ListTemplateGenerator(("tvs", "options", "ts_filerecord"))
-    perioddata = ListTemplateGenerator(("tvs", "period", "perioddata"))
+    ts_filerecord = ListTemplateGenerator(('tvs', 'options',
+                                           'ts_filerecord'))
+    perioddata = ListTemplateGenerator(('tvs', 'period', 'perioddata'))
     package_abbr = "utltvs"
     _package_type = "tvs"
     dfn_file_name = "utl-tvs.dfn"
 
     dfn = [
-        [
-            "header",
-        ],
-        [
-            "block options",
-            "name disable_storage_change_integration",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name print_input",
-            "type keyword",
-            "reader urword",
-            "optional true",
-        ],
-        [
-            "block options",
-            "name ts_filerecord",
-            "type record ts6 filein ts6_filename",
-            "shape",
-            "reader urword",
-            "tagged true",
-            "optional true",
-            "construct_package ts",
-            "construct_data timeseries",
-            "parameter_name timeseries",
-        ],
-        [
-            "block options",
-            "name ts6",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name filein",
-            "type keyword",
-            "shape",
-            "in_record true",
-            "reader urword",
-            "tagged true",
-            "optional false",
-        ],
-        [
-            "block options",
-            "name ts6_filename",
-            "type string",
-            "preserve_case true",
-            "in_record true",
-            "reader urword",
-            "optional false",
-            "tagged false",
-        ],
-        [
-            "block period",
-            "name iper",
-            "type integer",
-            "block_variable True",
-            "in_record true",
-            "tagged false",
-            "shape",
-            "valid",
-            "reader urword",
-            "optional false",
-        ],
-        [
-            "block period",
-            "name perioddata",
-            "type recarray cellid tvssetting",
-            "shape",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name cellid",
-            "type integer",
-            "shape (ncelldim)",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name tvssetting",
-            "type keystring ss sy",
-            "shape",
-            "tagged false",
-            "in_record true",
-            "reader urword",
-        ],
-        [
-            "block period",
-            "name ss",
-            "type double precision",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-        [
-            "block period",
-            "name sy",
-            "type double precision",
-            "shape",
-            "tagged true",
-            "in_record true",
-            "reader urword",
-            "time_series true",
-        ],
-    ]
+           ["header", ],
+           ["block options", "name disable_storage_change_integration",
+            "type keyword", "reader urword", "optional true"],
+           ["block options", "name print_input", "type keyword",
+            "reader urword", "optional true"],
+           ["block options", "name ts_filerecord",
+            "type record ts6 filein ts6_filename", "shape", "reader urword",
+            "tagged true", "optional true", "construct_package ts",
+            "construct_data timeseries", "parameter_name timeseries"],
+           ["block options", "name ts6", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name filein", "type keyword", "shape",
+            "in_record true", "reader urword", "tagged true",
+            "optional false"],
+           ["block options", "name ts6_filename", "type string",
+            "preserve_case true", "in_record true", "reader urword",
+            "optional false", "tagged false"],
+           ["block period", "name iper", "type integer",
+            "block_variable True", "in_record true", "tagged false", "shape",
+            "valid", "reader urword", "optional false"],
+           ["block period", "name perioddata",
+            "type recarray cellid tvssetting", "shape", "reader urword"],
+           ["block period", "name cellid", "type integer",
+            "shape (ncelldim)", "tagged false", "in_record true",
+            "reader urword"],
+           ["block period", "name tvssetting", "type keystring ss sy",
+            "shape", "tagged false", "in_record true", "reader urword"],
+           ["block period", "name ss", "type double precision", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"],
+           ["block period", "name sy", "type double precision", "shape",
+            "tagged true", "in_record true", "reader urword",
+            "time_series true"]]
 
-    def __init__(
-        self,
-        parent_package,
-        loading_package=False,
-        disable_storage_change_integration=None,
-        print_input=None,
-        timeseries=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-        **kwargs,
-    ):
-        super().__init__(
-            parent_package, "tvs", filename, pname, loading_package, **kwargs
-        )
+    def __init__(self, parent_package, loading_package=False,
+                 disable_storage_change_integration=None, print_input=None,
+                 timeseries=None, perioddata=None, filename=None, pname=None,
+                 **kwargs):
+        super().__init__(parent_package, "tvs", filename, pname,
+                         loading_package, **kwargs)
 
         # set up variables
         self.disable_storage_change_integration = self.build_mfdata(
             "disable_storage_change_integration",
-            disable_storage_change_integration,
-        )
+            disable_storage_change_integration)
         self.print_input = self.build_mfdata("print_input", print_input)
-        self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
-        self._ts_package = self.build_child_package(
-            "ts", timeseries, "timeseries", self._ts_filerecord
-        )
+        self._ts_filerecord = self.build_mfdata("ts_filerecord",
+                                                None)
+        self._ts_package = self.build_child_package("ts", timeseries,
+                                                    "timeseries",
+                                                    self._ts_filerecord)
         self.perioddata = self.build_mfdata("perioddata", perioddata)
         self._init_complete = True
 
@@ -245,47 +153,28 @@ class UtltvsPackages(mfpackage.MFChildPackages):
         Adds a new ModflowUtltvs package to the container. See ModflowUtltvs
         init documentation for definition of parameters.
     """
-
     package_abbr = "utltvspackages"
 
-    def initialize(
-        self,
-        disable_storage_change_integration=None,
-        print_input=None,
-        timeseries=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowUtltvs(
-            self._cpparent,
-            disable_storage_change_integration=disable_storage_change_integration,
-            print_input=print_input,
-            timeseries=timeseries,
-            perioddata=perioddata,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def initialize(self, disable_storage_change_integration=None,
+                   print_input=None, timeseries=None, perioddata=None,
+                   filename=None, pname=None):
+        new_package = ModflowUtltvs(self._cpparent,
+                                    disable_storage_change_integration=
+                                    disable_storage_change_integration,
+                                    print_input=print_input,
+                                    timeseries=timeseries,
+                                    perioddata=perioddata, filename=filename,
+                                    pname=pname, child_builder_call=True)
         self.init_package(new_package, filename)
 
-    def append_package(
-        self,
-        disable_storage_change_integration=None,
-        print_input=None,
-        timeseries=None,
-        perioddata=None,
-        filename=None,
-        pname=None,
-    ):
-        new_package = ModflowUtltvs(
-            self._cpparent,
-            disable_storage_change_integration=disable_storage_change_integration,
-            print_input=print_input,
-            timeseries=timeseries,
-            perioddata=perioddata,
-            filename=filename,
-            pname=pname,
-            child_builder_call=True,
-        )
+    def append_package(self, disable_storage_change_integration=None,
+                   print_input=None, timeseries=None, perioddata=None,
+                   filename=None, pname=None):
+        new_package = ModflowUtltvs(self._cpparent,
+                                    disable_storage_change_integration=
+                                    disable_storage_change_integration,
+                                    print_input=print_input,
+                                    timeseries=timeseries,
+                                    perioddata=perioddata, filename=filename,
+                                    pname=pname, child_builder_call=True)
         self._append_package(new_package, filename)
diff --git a/flopy/version.py b/flopy/version.py
index 8763a751ec..124a4191cf 100644
--- a/flopy/version.py
+++ b/flopy/version.py
@@ -1,4 +1,4 @@
 # flopy version file automatically created using
-# update_version.py on December 20, 2024 01:37:30
+# update_version.py on December 20, 2024 12:39:35
 
-__version__ = "3.9.0"
+__version__ = "3.9.1"
diff --git a/version.txt b/version.txt
index b72ad011fa..33f465d1ad 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-3.9.0
\ No newline at end of file
+3.9.1
\ No newline at end of file