MODFLOW 6
version 6.6.0.dev0
USGS Modular Hydrologic Model
|
– @ brief Energy Storage and Transfer (EST) Module More...
Data Types | |
type | gweesttype |
@ brief Energy storage and transfer More... | |
Functions/Subroutines | |
subroutine, public | est_cr (estobj, name_model, inunit, iout, fmi, eqnsclfac, gwecommon) |
@ brief Create a new EST package object More... | |
subroutine | est_ar (this, dis, ibound) |
@ brief Allocate and read method for package More... | |
subroutine | est_fc (this, nodes, cold, nja, matrix_sln, idxglo, cnew, rhs, kiter) |
@ brief Fill coefficient method for package More... | |
subroutine | est_fc_sto (this, nodes, cold, nja, matrix_sln, idxglo, rhs) |
@ brief Fill storage coefficient method for package More... | |
subroutine | est_fc_dcy (this, nodes, cold, cnew, nja, matrix_sln, idxglo, rhs, kiter) |
@ brief Fill decay coefficient method for package More... | |
subroutine | est_cq (this, nodes, cnew, cold, flowja) |
@ brief Calculate flows for package More... | |
subroutine | est_cq_sto (this, nodes, cnew, cold, flowja) |
@ brief Calculate storage terms for package More... | |
subroutine | est_cq_dcy (this, nodes, cnew, cold, flowja) |
@ brief Calculate decay terms for package More... | |
subroutine | est_bd (this, isuppress_output, model_budget) |
@ brief Calculate budget terms for package More... | |
subroutine | est_ot_flow (this, icbcfl, icbcun) |
@ brief Output flow terms for package More... | |
subroutine | est_da (this) |
Deallocate memory. 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... | |
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 = 2 |
character(len=lenbudtxt), dimension(nbditems) | budtxt |
The GweEstModule contains the GweEstType, which is related to GwtEstModule; however, there are some important differences owing to the fact that a sorbed phase is not considered. Instead, a single temperature is simulated for each grid cell and is representative of both the aqueous and solid phases (i.e., instantaneous thermal equilibrium is assumed). Also, "thermal bleeding" is accommodated, where conductive processes can transport into, through, or out of dry cells that are part of the active domain.
subroutine gweestmodule::allocate_arrays | ( | class(gweesttype) | this, |
integer(i4b), intent(in) | nodes | ||
) |
Method to allocate arrays for the package.
this | GweEstType object | |
[in] | nodes | number of nodes |
Definition at line 557 of file gwe-est.f90.
subroutine gweestmodule::allocate_scalars | ( | class(gweesttype) | this | ) |
Method to allocate scalar variables for the package.
this | GweEstType object |
Definition at line 530 of file gwe-est.f90.
subroutine gweestmodule::est_ar | ( | class(gweesttype), 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 | GweEstType object |
[in] | dis | pointer to dis package |
ibound | pointer to GWE ibound array |
Definition at line 120 of file gwe-est.f90.
subroutine gweestmodule::est_bd | ( | class(gweesttype) | this, |
integer(i4b), intent(in) | isuppress_output, | ||
type(budgettype), intent(inout) | model_budget | ||
) |
Method to calculate budget terms for the package.
this | GweEstType object | |
[in] | isuppress_output | flag to suppress output |
[in,out] | model_budget | model budget object |
Definition at line 424 of file gwe-est.f90.
subroutine gweestmodule::est_cq | ( | class(gweesttype) | 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 | GweEstType object | |
[in] | nodes | number of nodes |
[in] | cnew | temperature at end of this time step |
[in] | cold | temperature at end of last time step |
[in,out] | flowja | flow between two connected control volumes |
Definition at line 294 of file gwe-est.f90.
subroutine gweestmodule::est_cq_dcy | ( | class(gweesttype) | 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 | GweEstType object | |
[in] | nodes | number of nodes |
[in] | cnew | temperature at end of this time step |
[in] | cold | temperature at end of last time step |
[in,out] | flowja | flow between two connected control volumes |
Definition at line 369 of file gwe-est.f90.
subroutine gweestmodule::est_cq_sto | ( | class(gweesttype) | 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 | GweEstType object | |
[in] | nodes | number of nodes |
[in] | cnew | temperature at end of this time step |
[in] | cold | temperature at end of last time step |
[in,out] | flowja | flow between two connected control volumes |
Definition at line 317 of file gwe-est.f90.
subroutine, public gweestmodule::est_cr | ( | type(gweesttype), pointer | estobj, |
character(len=*), intent(in) | name_model, | ||
integer(i4b), intent(in) | inunit, | ||
integer(i4b), intent(in) | iout, | ||
type(tspfmitype), intent(in), target | fmi, | ||
real(dp), intent(in), pointer | eqnsclfac, | ||
type(gweinputdatatype), intent(in), target | gwecommon | ||
) |
Create a new EST package
estobj | unallocated new est 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 GWE model |
[in] | eqnsclfac | governing equation scale factor |
[in] | gwecommon | shared data container for use by multiple GWE packages |
Definition at line 86 of file gwe-est.f90.
subroutine gweestmodule::est_da | ( | class(gweesttype) | this | ) |
Method to deallocate memory for the package.
this | GweEstType object |
Definition at line 497 of file gwe-est.f90.
subroutine gweestmodule::est_fc | ( | class(gweesttype) | 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 | GweEstType object | |
[in] | nodes | number of nodes |
[in] | cold | temperature at end of last time step |
[in] | nja | number of GWE 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 | temperature at end of this time step |
[in] | kiter | solution outer iteration number |
Definition at line 157 of file gwe-est.f90.
subroutine gweestmodule::est_fc_dcy | ( | class(gweesttype) | 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 | GweEstType object | |
[in] | nodes | number of nodes |
[in] | cold | temperature at end of last time step |
[in] | cnew | temperature at end of this time step |
[in] | nja | number of GWE 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 234 of file gwe-est.f90.
subroutine gweestmodule::est_fc_sto | ( | class(gweesttype) | 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 | GweEstType object | |
[in] | nodes | number of nodes |
[in] | cold | temperature at end of last time step |
[in] | nja | number of GWE 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 186 of file gwe-est.f90.
subroutine gweestmodule::est_ot_flow | ( | class(gweesttype) | this, |
integer(i4b), intent(in) | icbcfl, | ||
integer(i4b), intent(in) | icbcun | ||
) |
Method to output terms for the package.
this | GweEstType 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 453 of file gwe-est.f90.
real(dp) function gweestmodule::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 energy is not removed than is available. Without this constraint, negative temperatures could result from zero-order decay (no freezing).
[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 | temperature at end of last time step |
[in] | cnew | temperature at end of this time step |
[in] | delt | length of time step |
Definition at line 802 of file gwe-est.f90.
subroutine gweestmodule::read_data | ( | class(gweesttype) | this | ) |
Method to read data for the package.
this | GweEstType object |
Definition at line 685 of file gwe-est.f90.
subroutine gweestmodule::read_options | ( | class(gweesttype) | this | ) |
Method to read options for the package.
this | GweEstType object |
Definition at line 603 of file gwe-est.f90.
character(len=lenbudtxt), dimension(nbditems) gweestmodule::budtxt |
Definition at line 31 of file gwe-est.f90.
integer(i4b), parameter gweestmodule::nbditems = 2 |
Definition at line 30 of file gwe-est.f90.