MODFLOW 6
version 6.5.0.dev2
MODFLOW 6 Code Documentation
|
– @ brief Mobile Storage and Transfer (MST) Module More...
Data Types | |
type | gwtmsttype |
@ brief Mobile storage and transfer More... | |
Functions/Subroutines | |
subroutine, public | mst_cr (mstobj, name_model, inunit, iout, fmi) |
@ brief Create a new package object More... | |
subroutine | mst_ar (this, dis, ibound) |
@ brief Allocate and read method for package More... | |
subroutine | mst_fc (this, nodes, cold, nja, matrix_sln, idxglo, cnew, rhs, kiter) |
@ brief Fill coefficient method for package More... | |
subroutine | mst_fc_sto (this, nodes, cold, nja, matrix_sln, idxglo, rhs) |
@ brief Fill storage coefficient method for package More... | |
subroutine | mst_fc_dcy (this, nodes, cold, cnew, nja, matrix_sln, idxglo, rhs, kiter) |
@ brief Fill decay coefficient method for package More... | |
subroutine | mst_fc_srb (this, nodes, cold, nja, matrix_sln, idxglo, rhs, cnew) |
@ brief Fill sorption coefficient method for package More... | |
subroutine | mst_srb_term (isrb, volfracm, rhobm, vcell, tled, cnew, cold, swnew, swold, const1, const2, rate, hcofval, rhsval) |
@ brief Calculate sorption terms More... | |
subroutine | mst_fc_dcy_srb (this, nodes, cold, nja, matrix_sln, idxglo, rhs, cnew, kiter) |
@ brief Fill sorption-decay coefficient method for package More... | |
subroutine | mst_cq (this, nodes, cnew, cold, flowja) |
@ brief Calculate flows for package More... | |
subroutine | mst_cq_sto (this, nodes, cnew, cold, flowja) |
@ brief Calculate storage terms for package More... | |
subroutine | mst_cq_dcy (this, nodes, cnew, cold, flowja) |
@ brief Calculate decay terms for package More... | |
subroutine | mst_cq_srb (this, nodes, cnew, cold, flowja) |
@ brief Calculate sorption terms for package More... | |
subroutine | mst_cq_dcy_srb (this, nodes, cnew, cold, flowja) |
@ brief Calculate decay-sorption terms for package More... | |
subroutine | mst_bd (this, isuppress_output, model_budget) |
@ brief Calculate budget terms for package More... | |
subroutine | mst_ot_flow (this, icbcfl, icbcun) |
@ brief Output flow terms for package More... | |
subroutine | mst_da (this) |
@ brief Deallocate More... | |
subroutine | allocate_scalars (this) |
@ brief Allocate scalar variables for package More... | |
subroutine | allocate_arrays (this, nodes) |
@ brief Allocate arrays for package More... | |
subroutine | read_options (this) |
@ brief Read options for package More... | |
subroutine | read_data (this) |
@ brief Read data for package More... | |
subroutine | addto_volfracim (this, volfracim) |
@ brief Add volfrac values to volfracim More... | |
real(dp) function | get_volfracm (this, node) |
@ brief Return mobile domain volume fraction More... | |
real(dp) function | get_freundlich_conc (conc, kf, a) |
@ brief Calculate sorption concentration using Freundlich More... | |
real(dp) function | get_langmuir_conc (conc, kl, sbar) |
@ brief Calculate sorption concentration using Langmuir More... | |
real(dp) function | get_freundlich_derivative (conc, kf, a) |
@ brief Calculate sorption derivative using Freundlich More... | |
real(dp) function | get_langmuir_derivative (conc, kl, sbar) |
@ brief Calculate sorption derivative using Langmuir More... | |
real(dp) function | get_zero_order_decay (decay_rate_usr, decay_rate_last, kiter, cold, cnew, delt) |
@ brief Calculate zero-order decay rate and constrain if necessary More... | |
Variables | |
integer(i4b), parameter | nbditems = 4 |
character(len=lenbudtxt), dimension(nbditems) | budtxt |
The GwtMstModule contains the GwtMstType, which is the derived type responsible for adding the effects of
subroutine gwtmstmodule::addto_volfracim | ( | class(gwtmsttype) | this, |
real(dp), dimension(:), intent(in) | volfracim | ||
) |
Method to add immobile domain volume fracions, which are stored as a cumulative value in volfracim.
this | GwtMstType object | |
[in] | volfracim | immobile domain volume fraction that contributes to total immobile volume fraction |
Definition at line 1419 of file gwt-mst.f90.
subroutine gwtmstmodule::allocate_arrays | ( | class(gwtmsttype) | this, |
integer(i4b), intent(in) | nodes | ||
) |
Method to allocate arrays for the package.
this | GwtMstType object | |
[in] | nodes | number of nodes |
Definition at line 1051 of file gwt-mst.f90.
subroutine gwtmstmodule::allocate_scalars | ( | class(gwtmsttype) | this | ) |
Method to allocate scalar variables for the package.
this | GwtMstType object |
Definition at line 1024 of file gwt-mst.f90.
real(dp) function gwtmstmodule::get_freundlich_conc | ( | real(dp), intent(in) | conc, |
real(dp), intent(in) | kf, | ||
real(dp), intent(in) | a | ||
) |
Function to calculate sorption concentration using Freundlich
[in] | conc | solute concentration |
[in] | kf | freundlich constant |
[in] | a | freundlich exponent |
Definition at line 1466 of file gwt-mst.f90.
real(dp) function gwtmstmodule::get_freundlich_derivative | ( | real(dp), intent(in) | conc, |
real(dp), intent(in) | kf, | ||
real(dp), intent(in) | a | ||
) |
Function to calculate sorption derivative using Freundlich
[in] | conc | solute concentration |
[in] | kf | freundlich constant |
[in] | a | freundlich exponent |
Definition at line 1508 of file gwt-mst.f90.
real(dp) function gwtmstmodule::get_langmuir_conc | ( | real(dp), intent(in) | conc, |
real(dp), intent(in) | kl, | ||
real(dp), intent(in) | sbar | ||
) |
Function to calculate sorption concentration using Langmuir
[in] | conc | solute concentration |
[in] | kl | langmuir constant |
[in] | sbar | langmuir sorption sites |
Definition at line 1487 of file gwt-mst.f90.
real(dp) function gwtmstmodule::get_langmuir_derivative | ( | real(dp), intent(in) | conc, |
real(dp), intent(in) | kl, | ||
real(dp), intent(in) | sbar | ||
) |
Function to calculate sorption derivative using Langmuir
[in] | conc | solute concentration |
[in] | kl | langmuir constant |
[in] | sbar | langmuir sorption sites |
Definition at line 1529 of file gwt-mst.f90.
real(dp) function gwtmstmodule::get_volfracm | ( | class(gwtmsttype) | this, |
integer(i4b), intent(in) | node | ||
) |
Calculate and return the volume fraction of the aquifer that is mobile
this | GwtMstType object | |
[in] | node | node number |
Definition at line 1447 of file gwt-mst.f90.
real(dp) function gwtmstmodule::get_zero_order_decay | ( | real(dp), intent(in) | decay_rate_usr, |
real(dp), intent(in) | decay_rate_last, | ||
integer(i4b), intent(in) | kiter, | ||
real(dp), intent(in) | cold, | ||
real(dp), intent(in) | cnew, | ||
real(dp), intent(in) | delt | ||
) |
Function to calculate the zero-order decay rate from the user specified decay rate. If the decay rate is positive, then the decay rate must be constrained so that more mass is not removed than is available. Without this constraint, negative concentrations could result from zero-order decay.
[in] | decay_rate_usr | user-entered decay rate |
[in] | decay_rate_last | decay rate used for last iteration |
[in] | kiter | Picard iteration counter |
[in] | cold | concentration at end of last time step |
[in] | cnew | concentration at end of this time step |
[in] | delt | length of time step |
Definition at line 1553 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_ar | ( | class(gwtmsttype), intent(inout) | this, |
class(disbasetype), intent(in), pointer | dis, | ||
integer(i4b), dimension(:), pointer, contiguous | ibound | ||
) |
Method to allocate and read static data for the package.
[in,out] | this | GwtMstType object |
[in] | dis | pointer to dis package |
ibound | pointer to GWT ibound array |
Definition at line 131 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_bd | ( | class(gwtmsttype) | this, |
integer(i4b), intent(in) | isuppress_output, | ||
type(budgettype), intent(inout) | model_budget | ||
) |
Method to calculate budget terms for the package.
this | GwtMstType object | |
[in] | isuppress_output | flag to suppress output |
[in,out] | model_budget | model budget object |
Definition at line 875 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_cq | ( | class(gwtmsttype) | this, |
integer(i4b), intent(in) | nodes, | ||
real(dp), dimension(nodes), intent(in) | cnew, | ||
real(dp), dimension(nodes), intent(in) | cold, | ||
real(dp), dimension(:), intent(inout), contiguous | flowja | ||
) |
Method to calculate flows for the package.
this | GwtMstType object | |
[in] | nodes | number of nodes |
[in] | cnew | concentration at end of this time step |
[in] | cold | concentration at end of last time step |
[in,out] | flowja | flow between two connected control volumes |
Definition at line 565 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_cq_dcy | ( | class(gwtmsttype) | this, |
integer(i4b), intent(in) | nodes, | ||
real(dp), dimension(nodes), intent(in) | cnew, | ||
real(dp), dimension(nodes), intent(in) | cold, | ||
real(dp), dimension(:), intent(inout), contiguous | flowja | ||
) |
Method to calculate decay terms for the package.
this | GwtMstType object | |
[in] | nodes | number of nodes |
[in] | cnew | concentration at end of this time step |
[in] | cold | concentration at end of last time step |
[in,out] | flowja | flow between two connected control volumes |
Definition at line 654 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_cq_dcy_srb | ( | class(gwtmsttype) | this, |
integer(i4b), intent(in) | nodes, | ||
real(dp), dimension(nodes), intent(in) | cnew, | ||
real(dp), dimension(nodes), intent(in) | cold, | ||
real(dp), dimension(:), intent(inout), contiguous | flowja | ||
) |
Method to calculate decay-sorption terms for the package.
this | GwtMstType object | |
[in] | nodes | number of nodes |
[in] | cnew | concentration at end of this time step |
[in] | cold | concentration at end of last time step |
[in,out] | flowja | flow between two connected control volumes |
Definition at line 772 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_cq_srb | ( | class(gwtmsttype) | this, |
integer(i4b), intent(in) | nodes, | ||
real(dp), dimension(nodes), intent(in) | cnew, | ||
real(dp), dimension(nodes), intent(in) | cold, | ||
real(dp), dimension(:), intent(inout), contiguous | flowja | ||
) |
Method to calculate sorption terms for the package.
this | GwtMstType object | |
[in] | nodes | number of nodes |
[in] | cnew | concentration at end of this time step |
[in] | cold | concentration at end of last time step |
[in,out] | flowja | flow between two connected control volumes |
Definition at line 712 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_cq_sto | ( | class(gwtmsttype) | this, |
integer(i4b), intent(in) | nodes, | ||
real(dp), dimension(nodes), intent(in) | cnew, | ||
real(dp), dimension(nodes), intent(in) | cold, | ||
real(dp), dimension(:), intent(inout), contiguous | flowja | ||
) |
Method to calculate storage terms for the package.
this | GwtMstType object | |
[in] | nodes | number of nodes |
[in] | cnew | concentration at end of this time step |
[in] | cold | concentration at end of last time step |
[in,out] | flowja | flow between two connected control volumes |
Definition at line 602 of file gwt-mst.f90.
subroutine, public gwtmstmodule::mst_cr | ( | type(gwtmsttype), pointer | mstobj, |
character(len=*), intent(in) | name_model, | ||
integer(i4b), intent(in) | inunit, | ||
integer(i4b), intent(in) | iout, | ||
type(tspfmitype), intent(in), target | fmi | ||
) |
Create a new MST object
mstobj | unallocated new mst object to create | |
[in] | name_model | name of the model |
[in] | inunit | unit number of WEL package input file |
[in] | iout | unit number of model listing file |
[in] | fmi | fmi package for this GWT model |
Definition at line 97 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_da | ( | class(gwtmsttype) | this | ) |
Method to deallocate memory for the package.
this | GwtMstType object |
Definition at line 982 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_fc | ( | class(gwtmsttype) | this, |
integer, intent(in) | nodes, | ||
real(dp), dimension(nodes), intent(in) | cold, | ||
integer(i4b), intent(in) | nja, | ||
class(matrixbasetype), pointer | matrix_sln, | ||
integer(i4b), dimension(nja), intent(in) | idxglo, | ||
real(dp), dimension(nodes), intent(in) | cnew, | ||
real(dp), dimension(nodes), intent(inout) | rhs, | ||
integer(i4b), intent(in) | kiter | ||
) |
Method to calculate and fill coefficients for the package.
this | GwtMstType object | |
[in] | nodes | number of nodes |
[in] | cold | concentration at end of last time step |
[in] | nja | number of GWT connections |
matrix_sln | solution matrix | |
[in] | idxglo | mapping vector for model (local) to solution (global) |
[in,out] | rhs | right-hand side vector for model |
[in] | cnew | concentration at end of this time step |
[in] | kiter | solution outer iteration number |
Definition at line 168 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_fc_dcy | ( | class(gwtmsttype) | this, |
integer, intent(in) | nodes, | ||
real(dp), dimension(nodes), intent(in) | cold, | ||
real(dp), dimension(nodes), intent(in) | cnew, | ||
integer(i4b), intent(in) | nja, | ||
class(matrixbasetype), pointer | matrix_sln, | ||
integer(i4b), dimension(nja), intent(in) | idxglo, | ||
real(dp), dimension(nodes), intent(inout) | rhs, | ||
integer(i4b), intent(in) | kiter | ||
) |
Method to calculate and fill decay coefficients for the package.
this | GwtMstType object | |
[in] | nodes | number of nodes |
[in] | cold | concentration at end of last time step |
[in] | cnew | concentration at end of this time step |
[in] | nja | number of GWT connections |
matrix_sln | solution coefficient matrix | |
[in] | idxglo | mapping vector for model (local) to solution (global) |
[in,out] | rhs | right-hand side vector for model |
[in] | kiter | solution outer iteration number |
Definition at line 262 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_fc_dcy_srb | ( | class(gwtmsttype) | this, |
integer, intent(in) | nodes, | ||
real(dp), dimension(nodes), intent(in) | cold, | ||
integer(i4b), intent(in) | nja, | ||
class(matrixbasetype), pointer | matrix_sln, | ||
integer(i4b), dimension(nja), intent(in) | idxglo, | ||
real(dp), dimension(nodes), intent(inout) | rhs, | ||
real(dp), dimension(nodes), intent(in) | cnew, | ||
integer(i4b), intent(in) | kiter | ||
) |
Method to calculate and fill sorption-decay coefficients for the package.
this | GwtMstType object | |
[in] | nodes | number of nodes |
[in] | cold | concentration at end of last time step |
[in] | nja | number of GWT connections |
matrix_sln | solution coefficient matrix | |
[in] | idxglo | mapping vector for model (local) to solution (global) |
[in,out] | rhs | right-hand side vector for model |
[in] | cnew | concentration at end of this time step |
[in] | kiter | solution outer iteration number |
Definition at line 460 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_fc_srb | ( | class(gwtmsttype) | this, |
integer, intent(in) | nodes, | ||
real(dp), dimension(nodes), intent(in) | cold, | ||
integer(i4b), intent(in) | nja, | ||
class(matrixbasetype), pointer | matrix_sln, | ||
integer(i4b), dimension(nja), intent(in) | idxglo, | ||
real(dp), dimension(nodes), intent(inout) | rhs, | ||
real(dp), dimension(nodes), intent(in) | cnew | ||
) |
Method to calculate and fill sorption coefficients for the package.
this | GwtMstType object | |
[in] | nodes | number of nodes |
[in] | cold | concentration at end of last time step |
[in] | nja | number of GWT connections |
matrix_sln | solution coefficient matrix | |
[in] | idxglo | mapping vector for model (local) to solution (global) |
[in,out] | rhs | right-hand side vector for model |
[in] | cnew | concentration at end of this time step |
Definition at line 323 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_fc_sto | ( | class(gwtmsttype) | this, |
integer, intent(in) | nodes, | ||
real(dp), dimension(nodes), intent(in) | cold, | ||
integer(i4b), intent(in) | nja, | ||
class(matrixbasetype), pointer | matrix_sln, | ||
integer(i4b), dimension(nja), intent(in) | idxglo, | ||
real(dp), dimension(nodes), intent(inout) | rhs | ||
) |
Method to calculate and fill storage coefficients for the package.
this | GwtMstType object | |
[in] | nodes | number of nodes |
[in] | cold | concentration at end of last time step |
[in] | nja | number of GWT connections |
matrix_sln | solution coefficient matrix | |
[in] | idxglo | mapping vector for model (local) to solution (global) |
[in,out] | rhs | right-hand side vector for model |
Definition at line 212 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_ot_flow | ( | class(gwtmsttype) | this, |
integer(i4b), intent(in) | icbcfl, | ||
integer(i4b), intent(in) | icbcun | ||
) |
Method to output terms for the package.
this | GwtMstType object | |
[in] | icbcfl | flag and unit number for cell-by-cell output |
[in] | icbcun | flag indication if cell-by-cell data should be saved |
Definition at line 922 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_srb_term | ( | integer(i4b), intent(in) | isrb, |
real(dp), intent(in) | volfracm, | ||
real(dp), intent(in) | rhobm, | ||
real(dp), intent(in) | vcell, | ||
real(dp), intent(in) | tled, | ||
real(dp), intent(in) | cnew, | ||
real(dp), intent(in) | cold, | ||
real(dp), intent(in) | swnew, | ||
real(dp), intent(in) | swold, | ||
real(dp), intent(in) | const1, | ||
real(dp), intent(in) | const2, | ||
real(dp), intent(out), optional | rate, | ||
real(dp), intent(out), optional | hcofval, | ||
real(dp), intent(out), optional | rhsval | ||
) |
Subroutine to calculate sorption terms
[in] | isrb | sorption flag 1, 2, 3 are linear, freundlich, and langmuir |
[in] | volfracm | volume fraction of mobile domain (fhat_m) |
[in] | rhobm | bulk density of mobile domain (rhob_m) |
[in] | vcell | volume of cell |
[in] | tled | one over time step length |
[in] | cnew | concentration at end of this time step |
[in] | cold | concentration at end of last time step |
[in] | swnew | cell saturation at end of this time step |
[in] | swold | cell saturation at end of last time step |
[in] | const1 | distribution coefficient or freundlich or langmuir constant |
[in] | const2 | zero, freundlich exponent, or langmuir sorption sites |
[out] | rate | calculated sorption rate |
[out] | hcofval | diagonal contribution to solution coefficient matrix |
[out] | rhsval | contribution to solution right-hand-side |
Definition at line 385 of file gwt-mst.f90.
subroutine gwtmstmodule::read_data | ( | class(gwtmsttype) | this | ) |
Method to read data for the package.
this | GwtMstType object |
Definition at line 1218 of file gwt-mst.f90.
subroutine gwtmstmodule::read_options | ( | class(gwtmsttype) | this | ) |
Method to read options for the package.
this | GwtMstType object |
Definition at line 1141 of file gwt-mst.f90.
character(len=lenbudtxt), dimension(nbditems) gwtmstmodule::budtxt |
Definition at line 27 of file gwt-mst.f90.
integer(i4b), parameter gwtmstmodule::nbditems = 4 |
Definition at line 26 of file gwt-mst.f90.