Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(idm): integrate GWT MST and IST packages #2225

Draft
wants to merge 2 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 50 additions & 6 deletions doc/mf6io/mf6ivar/dfn/gwt-ist.dfn
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# --------------------- gwt ist options ---------------------
# flopy multi-package

block options
name save_flows
Expand All @@ -17,6 +18,7 @@ tagged true
optional true
longname
description
mf6internal budget_rec

block options
name budget
Expand Down Expand Up @@ -61,6 +63,7 @@ tagged true
optional true
longname
description
mf6internal budgetcsv_rec

block options
name budgetcsv
Expand Down Expand Up @@ -99,6 +102,7 @@ name first_order_decay
type keyword
reader urword
optional true
mf6internal ord1_decay
longname activate first-order decay
description is a text keyword to indicate that first-order decay will occur. Use of this keyword requires that DECAY and DECAY\_SORBED (if sorption is active) are specified in the GRIDDATA block.

Expand All @@ -112,7 +116,7 @@ description is a text keyword to indicate that zero-order decay will occur. Use

block options
name cim_filerecord
type record cim fileout cimfile
type record cim6 fileout cimfile
shape
reader urword
tagged true
Expand All @@ -121,15 +125,26 @@ longname
description

block options
name cim
name cim6
type keyword
shape
in_record true
reader urword
tagged true
optional false
longname cim6 keyword
description keyword to specify that record corresponds to an immobile concentration output file specification.

block options
name cim6f
type keyword
shape
in_record true
reader urword
tagged true
optional false
longname cim keyword
description keyword to specify that record corresponds to immobile concentration.
longname cim6 format keyword
description keyword to specify that record corresponds to an immobile concentration output file format specification.

block options
name cimfile
Expand All @@ -145,7 +160,7 @@ description name of the output file to write immobile concentrations. This file

block options
name cimprintrecord
type record cim print_format formatrecord
type record cim6f print_format formatrecord
shape
reader urword
optional true
Expand All @@ -155,7 +170,7 @@ description
block options
name print_format
type keyword
shape
shape (:)
in_record true
reader urword
tagged true
Expand Down Expand Up @@ -227,6 +242,7 @@ tagged true
optional true
longname
description
mf6internal sorbate_rec

block options
name sorbate
Expand All @@ -251,6 +267,25 @@ 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.

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 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 ist griddata ---------------------

block griddata
Expand All @@ -259,6 +294,7 @@ type double precision
shape (nodes)
reader readarray
layered true
netcdf true
longname porosity of the immobile domain
description porosity of the immobile domain specified as the immobile domain pore volume per immobile domain volume.

Expand All @@ -268,6 +304,7 @@ type double precision
shape (nodes)
reader readarray
layered true
netcdf true
longname volume fraction of this immobile domain
description fraction of the cell volume that consists of this immobile domain. The sum of all immobile domain volume fractions must be less than one.

Expand All @@ -277,6 +314,7 @@ type double precision
shape (nodes)
reader readarray
layered true
netcdf true
longname mass transfer rate coefficient between the mobile and immobile domains
description mass transfer rate coefficient between the mobile and immobile domains, in dimensions of per time.

Expand All @@ -287,6 +325,7 @@ shape (nodes)
reader readarray
optional true
layered true
netcdf true
longname initial concentration of the immobile domain
description initial concentration of the immobile domain in mass per length cubed. If CIM is not specified, then it is assumed to be zero.

Expand All @@ -296,6 +335,7 @@ type double precision
shape (nodes)
reader readarray
layered true
netcdf true
optional true
longname first rate coefficient
description is the rate coefficient for first or zero-order decay for the aqueous phase of the immobile domain. A negative value indicates solute production. The dimensions of decay for first-order decay is one over time. The dimensions of decay for zero-order decay is mass per length cubed per time. Decay will have no effect on simulation results unless either first- or zero-order decay is specified in the options block.
Expand All @@ -307,6 +347,7 @@ shape (nodes)
reader readarray
optional true
layered true
netcdf true
longname second rate coefficient
description is the rate coefficient for first or zero-order decay for the sorbed phase of the immobile domain. A negative value indicates solute production. The dimensions of decay\_sorbed for first-order decay is one over time. The dimensions of decay\_sorbed for zero-order decay is mass of solute per mass of aquifer per time. If decay\_sorbed is not specified and both decay and sorption are active, then the program will terminate with an error. decay\_sorbed will have no effect on simulation results unless the SORPTION keyword and either first- or zero-order decay are specified in the options block.

Expand All @@ -317,6 +358,7 @@ shape (nodes)
reader readarray
optional true
layered true
netcdf true
longname bulk density
description is the bulk density of this immobile domain in mass per length cubed. Bulk density is defined as the immobile domain solid mass per volume of the immobile domain. bulk\_density is not required unless the SORPTION keyword is specified in the options block. If the SORPTION keyword is not specified in the options block, bulk\_density will have no effect on simulation results.

Expand All @@ -327,6 +369,7 @@ shape (nodes)
reader readarray
optional true
layered true
netcdf 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.

Expand All @@ -336,6 +379,7 @@ type double precision
shape (nodes)
reader readarray
layered true
netcdf 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.
27 changes: 27 additions & 0 deletions doc/mf6io/mf6ivar/dfn/gwt-mst.dfn
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ name first_order_decay
type keyword
reader urword
optional true
mf6internal ord1_decay
longname activate first-order decay
description is a text keyword to indicate that first-order decay will occur. Use of this keyword requires that DECAY and DECAY\_SORBED (if sorption is active) are specified in the GRIDDATA block.

Expand Down Expand Up @@ -42,6 +43,7 @@ tagged true
optional true
longname
description
mf6internal sorbate_rec

block options
name sorbate
Expand Down Expand Up @@ -77,6 +79,25 @@ 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.

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 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 mst griddata ---------------------

block griddata
Expand All @@ -85,6 +106,7 @@ type double precision
shape (nodes)
reader readarray
layered true
netcdf true
longname porosity
description is the mobile domain porosity, defined as the mobile domain pore volume per mobile domain volume. Additional information on porosity within the context of mobile and immobile domain transport simulations is included in the MODFLOW 6 Supplemental Technical Information document.

Expand All @@ -94,6 +116,7 @@ type double precision
shape (nodes)
reader readarray
layered true
netcdf true
optional true
longname aqueous phase decay rate coefficient
description is the rate coefficient for first or zero-order decay for the aqueous phase of the mobile domain. A negative value indicates solute production. The dimensions of decay for first-order decay is one over time. The dimensions of decay for zero-order decay is mass per length cubed per time. decay will have no effect on simulation results unless either first- or zero-order decay is specified in the options block.
Expand All @@ -105,6 +128,7 @@ shape (nodes)
reader readarray
optional true
layered true
netcdf true
longname sorbed phase decay rate coefficient
description is the rate coefficient for first or zero-order decay for the sorbed phase of the mobile domain. A negative value indicates solute production. The dimensions of decay\_sorbed for first-order decay is one over time. The dimensions of decay\_sorbed for zero-order decay is mass of solute per mass of aquifer per time. If decay\_sorbed is not specified and both decay and sorption are active, then the program will terminate with an error. decay\_sorbed will have no effect on simulation results unless the SORPTION keyword and either first- or zero-order decay are specified in the options block.

Expand All @@ -115,6 +139,7 @@ shape (nodes)
reader readarray
optional true
layered true
netcdf true
longname bulk density
description is the bulk density of the aquifer in mass per length cubed. bulk\_density is not required unless the SORPTION keyword is specified. Bulk density is defined as the mobile domain solid mass per mobile domain volume. Additional information on bulk density is included in the MODFLOW 6 Supplemental Technical Information document.

Expand All @@ -124,6 +149,7 @@ type double precision
shape (nodes)
reader readarray
layered true
netcdf 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. 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.
Expand All @@ -134,6 +160,7 @@ type double precision
shape (nodes)
reader readarray
layered true
netcdf 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. If the SORPTION keyword is not specified in the options block, sp2 will have no effect on simulation results.
Expand Down
4 changes: 3 additions & 1 deletion make/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,8 @@ $(OBJDIR)/olf-dfwidm.o \
$(OBJDIR)/olf-chdidm.o \
$(OBJDIR)/olf-cdbidm.o \
$(OBJDIR)/gwt-namidm.o \
$(OBJDIR)/gwt-mstidm.o \
$(OBJDIR)/gwt-istidm.o \
$(OBJDIR)/gwt-icidm.o \
$(OBJDIR)/gwt-dspidm.o \
$(OBJDIR)/gwt-disvidm.o \
Expand Down Expand Up @@ -287,7 +289,6 @@ $(OBJDIR)/SfrCrossSectionUtils.o \
$(OBJDIR)/TernarySolveTrack.o \
$(OBJDIR)/SubcellTri.o \
$(OBJDIR)/Method.o \
$(OBJDIR)/MethodCell.o \
$(OBJDIR)/SubcellRect.o \
$(OBJDIR)/VirtualBase.o \
$(OBJDIR)/STLVecInt.o \
Expand Down Expand Up @@ -318,6 +319,7 @@ $(OBJDIR)/gwf-drn.o \
$(OBJDIR)/IndexMap.o \
$(OBJDIR)/ArrayReaderBase.o \
$(OBJDIR)/MethodSubcellPool.o \
$(OBJDIR)/MethodCell.o \
$(OBJDIR)/CellPoly.o \
$(OBJDIR)/CellRectQuad.o \
$(OBJDIR)/CellRect.o \
Expand Down
2 changes: 2 additions & 0 deletions msvs/mf6core.vfproj
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,8 @@
<File RelativePath="..\src\Idm\gwt-disvidm.f90"/>
<File RelativePath="..\src\Idm\gwt-dspidm.f90"/>
<File RelativePath="..\src\Idm\gwt-icidm.f90"/>
<File RelativePath="..\src\Idm\gwt-istidm.f90"/>
<File RelativePath="..\src\Idm\gwt-mstidm.f90"/>
<File RelativePath="..\src\Idm\gwt-namidm.f90"/>
<File RelativePath="..\src\Idm\olf-cdbidm.f90"/>
<File RelativePath="..\src\Idm\olf-chdidm.f90"/>
Expand Down
Loading
Loading