![]() |
MODFLOW 6
version 6.7.0.dev3
USGS Modular Hydrologic Model
|
– @ brief Mobile Storage and Transfer (MST) Module More...
Data Types | |
| type | gwtmsttype |
| @ brief Mobile storage and transfer More... | |
Enumerations | |
| enum | { decay_off = 0 , decay_first_order = 1 , decay_zero_order = 2 } |
| Enumerator that defines the decay options. More... | |
Functions/Subroutines | |
| subroutine, public | mst_cr (mstobj, name_model, input_mempath, 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_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 | source_options (this) |
| @ brief Source options for package More... | |
| subroutine | log_options (this, found, sorbate_fname) |
| Log user options to list file. More... | |
| subroutine | source_data (this) |
| @ brief Source data for package More... | |
| subroutine | log_data (this, found) |
| Log user data to list file. 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_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
| anonymous enum |
| Enumerator | |
|---|---|
| decay_off | Decay (or production) of mass inactive (default) |
| decay_first_order | First-order decay. |
| decay_zero_order | Zeroth-order decay. |
Definition at line 37 of file gwt-mst.f90.
| 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 1408 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 1015 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 991 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 1431 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 1449 of file gwt-mst.f90.

| subroutine gwtmstmodule::log_data | ( | class(gwtmsttype) | this, |
| type(gwtmstparamfoundtype), intent(in) | found | ||
| ) |
Definition at line 1376 of file gwt-mst.f90.
| subroutine gwtmstmodule::log_options | ( | class(gwtmsttype) | this, |
| type(gwtmstparamfoundtype), intent(in) | found, | ||
| character(len=*), intent(in) | sorbate_fname | ||
| ) |
Definition at line 1157 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 142 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 811 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 790 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 485 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 569 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 695 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 625 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 521 of file gwt-mst.f90.
| subroutine, public gwtmstmodule::mst_cr | ( | type(gwtmsttype), pointer | mstobj, |
| character(len=*), intent(in) | name_model, | ||
| character(len=*), intent(in) | input_mempath, | ||
| 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] | input_mempath | memory path of input |
| [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 114 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 945 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 178 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 263 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 391 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 217 of file gwt-mst.f90.
| subroutine gwtmstmodule::mst_ot_dv | ( | class(gwtmsttype) | this, |
| integer(i4b), intent(in) | idvsave | ||
| ) |
Definition at line 907 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 854 of file gwt-mst.f90.
| subroutine gwtmstmodule::source_data | ( | class(gwtmsttype) | this | ) |
Method to source data for the package.
Definition at line 1211 of file gwt-mst.f90.

| subroutine gwtmstmodule::source_options | ( | class(gwtmsttype) | this | ) |
Method to source options for the package.
Definition at line 1104 of file gwt-mst.f90.

| character(len=lenbudtxt), dimension(nbditems) gwtmstmodule::budtxt |
Definition at line 31 of file gwt-mst.f90.
| integer(i4b), parameter gwtmstmodule::nbditems = 4 |
Definition at line 30 of file gwt-mst.f90.