MODFLOW 6
version 6.7.0.dev0
USGS Modular Hydrologic Model
|
– @ 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_calc_csrb (this, cnew) |
@ brief Calculate sorbed concentration 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_ot_dv (this, idvsave) |
Save sorbate concentration array to binary file. 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_freundlich_kd (conc, kf, a) |
@ brief Get effective Freundlich distribution coefficient More... | |
real(dp) function | get_langmuir_kd (conc, kl, sbar) |
@ brief Get effective Langmuir distribution coefficient 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 1468 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 1077 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 1051 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 1509 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 1549 of file gwt-mst.f90.
real(dp) function gwtmstmodule::get_freundlich_kd | ( | real(dp), intent(in) | conc, |
real(dp), intent(in) | kf, | ||
real(dp), intent(in) | a | ||
) |
[in] | conc | solute concentration |
[in] | kf | freundlich constant |
[in] | a | freundlich exponent |
Definition at line 1586 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 1529 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 1569 of file gwt-mst.f90.
real(dp) function gwtmstmodule::get_langmuir_kd | ( | real(dp), intent(in) | conc, |
real(dp), intent(in) | kl, | ||
real(dp), intent(in) | sbar | ||
) |
[in] | conc | solute concentration |
[in] | kl | langmuir constant |
[in] | sbar | langmuir sorption sites |
Definition at line 1603 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 1493 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 1626 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 133 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_bd | ( | class(gwtmsttype) | this, |
integer(i4b), intent(in) | isuppress_output, | ||
type(budgettype), intent(inout) | model_budget | ||
) |
this | GwtMstType object | |
[in] | isuppress_output | flag to suppress output |
[in,out] | model_budget | model budget object |
Definition at line 874 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_calc_csrb | ( | class(gwtmsttype) | this, |
real(dp), dimension(:), intent(in) | cnew | ||
) |
this | GwtMstType object | |
[in] | cnew | concentration at end of this time step |
Definition at line 845 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 548 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 636 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 748 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 691 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 587 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 102 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 1010 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 167 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 255 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 446 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 313 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 208 of file gwt-mst.f90.
subroutine gwtmstmodule::mst_ot_dv | ( | class(gwtmsttype) | this, |
integer(i4b), intent(in) | idvsave | ||
) |
Definition at line 971 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 918 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 372 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 1270 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 1167 of file gwt-mst.f90.
character(len=lenbudtxt), dimension(nbditems) gwtmstmodule::budtxt |
Definition at line 28 of file gwt-mst.f90.
integer(i4b), parameter gwtmstmodule::nbditems = 4 |
Definition at line 27 of file gwt-mst.f90.