MODFLOW 6
version 6.7.0.dev0
USGS Modular Hydrologic Model
|
This module contains the CSUB package methods. More...
Data Types | |
type | gwfcsubtype |
Functions/Subroutines | |
subroutine, public | csub_cr (csubobj, name_model, istounit, stoPckName, inunit, iout) |
@ brief Create a new package object More... | |
subroutine | csub_ar (this, dis, ibound) |
@ brief Allocate and read method for package More... | |
subroutine | read_options (this) |
@ brief Read options for package More... | |
subroutine | csub_read_dimensions (this) |
@ brief Read dimensions for package More... | |
subroutine | csub_allocate_scalars (this) |
@ brief Allocate scalars More... | |
subroutine | csub_allocate_arrays (this) |
@ brief Allocate package arrays More... | |
subroutine | csub_read_packagedata (this) |
@ brief Read packagedata for package More... | |
subroutine | csub_fp (this) |
@ brief Final processing for package More... | |
subroutine | csub_da (this) |
@ brief Deallocate package memory More... | |
subroutine | csub_rp (this) |
@ brief Read and prepare stress period data for package More... | |
subroutine | csub_ad (this, nodes, hnew) |
@ brief Advance the package More... | |
subroutine | csub_fc (this, kiter, hold, hnew, matrix_sln, idxglo, rhs) |
@ brief Fill A and r for the package More... | |
subroutine | csub_fn (this, kiter, hold, hnew, matrix_sln, idxglo, rhs) |
@ brief Fill Newton-Raphson terms in A and r for the package More... | |
subroutine | csub_initialize_tables (this) |
@ brief Initialize optional tables More... | |
subroutine | csub_cc (this, innertot, kiter, iend, icnvgmod, nodes, hnew, hold, cpak, ipak, dpak) |
@ brief Final convergence check More... | |
subroutine | csub_cq (this, nodes, hnew, hold, isuppress_output, flowja) |
@ brief Calculate flows for package More... | |
subroutine | csub_bd (this, isuppress_output, model_budget) |
@ brief Model budget calculation for package More... | |
subroutine | csub_save_model_flows (this, icbcfl, icbcun) |
@ brief Save model flows for package More... | |
subroutine | csub_ot_dv (this, idvfl, idvprint) |
@ brief Save and print dependent values for package More... | |
subroutine | csub_cg_calc_stress (this, nodes, hnew) |
@ brief Calculate the stress for model cells More... | |
subroutine | csub_cg_chk_stress (this) |
@ brief Check effective stress values More... | |
subroutine | csub_nodelay_update (this, i) |
@ brief Update no-delay material properties More... | |
subroutine | csub_nodelay_fc (this, ib, hcell, hcellold, rho1, rho2, rhs, argtled) |
@ brief Calculate no-delay interbed storage coefficients More... | |
subroutine | csub_nodelay_calc_comp (this, ib, hcell, hcellold, comp, rho1, rho2) |
@ brief Calculate no-delay interbed compaction More... | |
subroutine | csub_set_initial_state (this, nodes, hnew) |
@ brief Set initial states for the package More... | |
subroutine | csub_cg_fc (this, node, tled, area, hcell, hcellold, hcof, rhs) |
@ brief Formulate the coefficients for coarse-grained materials More... | |
subroutine | csub_cg_fn (this, node, tled, area, hcell, hcof, rhs) |
@ brief Formulate coarse-grained Newton-Raphson terms More... | |
subroutine | csub_interbed_fc (this, ib, node, area, hcell, hcellold, hcof, rhs) |
@ brief Formulate the coefficients for a interbed More... | |
subroutine | csub_interbed_fn (this, ib, node, hcell, hcellold, hcof, rhs) |
@ brief Formulate the coefficients for a interbed More... | |
subroutine | csub_cg_calc_sske (this, n, sske, hcell) |
@ brief Calculate Sske for a cell More... | |
subroutine | csub_cg_calc_comp (this, node, hcell, hcellold, comp) |
@ brief Calculate coarse-grained compaction in a cell More... | |
subroutine | csub_cg_update (this, node) |
@ brief Update coarse-grained material properties More... | |
subroutine | csub_cg_wcomp_fc (this, node, tled, area, hcell, hcellold, hcof, rhs) |
@ brief Formulate coarse-grained water compressibility coefficients More... | |
subroutine | csub_cg_wcomp_fn (this, node, tled, area, hcell, hcellold, hcof, rhs) |
@ brief Formulate coarse-grained water compressibility coefficients More... | |
subroutine | csub_nodelay_wcomp_fc (this, ib, node, tled, area, hcell, hcellold, hcof, rhs) |
@ brief Formulate no-delay interbed water compressibility coefficients More... | |
subroutine | csub_nodelay_wcomp_fn (this, ib, node, tled, area, hcell, hcellold, hcof, rhs) |
@ brief Formulate no-delay interbed water compressibility coefficients More... | |
real(dp) function | csub_calc_void_ratio (this, theta) |
Calculate the void ratio. More... | |
real(dp) function | csub_calc_theta (this, void_ratio) |
Calculate the porosity. More... | |
real(dp) function | csub_calc_interbed_thickness (this, ib) |
Calculate the interbed thickness. More... | |
real(dp) function | csub_calc_znode (this, top, bottom, zbar) |
Calculate the cell node. More... | |
real(dp) function | csub_calc_adjes (this, node, es0, z0, z) |
Calculate the effective stress at elevation z. More... | |
subroutine | csub_delay_head_check (this, ib) |
Check delay interbed head. More... | |
subroutine | csub_calc_sat (this, node, hcell, hcellold, snnew, snold) |
Calculate cell saturation. More... | |
real(dp) function | csub_calc_sat_derivative (this, node, hcell) |
Calculate the saturation derivative. More... | |
subroutine | csub_calc_sfacts (this, node, bot, znode, theta, es, es0, fact) |
Calculate specific storage coefficient factor. More... | |
subroutine | csub_adj_matprop (this, comp, thick, theta) |
Calculate new material properties. More... | |
subroutine | csub_delay_sln (this, ib, hcell, update) |
Solve delay interbed continuity equation. More... | |
subroutine | csub_delay_init_zcell (this, ib) |
Calculate delay interbed znode and z relative to interbed center. More... | |
subroutine | csub_delay_calc_stress (this, ib, hcell) |
Calculate delay interbed stress values. More... | |
subroutine | csub_delay_calc_ssksske (this, ib, n, hcell, ssk, sske) |
Calculate delay interbed cell storage coefficients. More... | |
subroutine | csub_delay_assemble (this, ib, hcell) |
Assemble delay interbed coefficients. More... | |
subroutine | csub_delay_assemble_fc (this, ib, n, hcell, aii, au, al, r) |
Assemble delay interbed standard formulation coefficients. More... | |
subroutine | csub_delay_assemble_fn (this, ib, n, hcell, aii, au, al, r) |
Assemble delay interbed Newton-Raphson formulation coefficients. More... | |
subroutine | csub_delay_calc_sat (this, node, idelay, n, hcell, hcellold, snnew, snold) |
Calculate delay interbed saturation. More... | |
real(dp) function | csub_delay_calc_sat_derivative (this, node, idelay, n, hcell) |
Calculate the delay interbed cell saturation derivative. More... | |
subroutine | csub_delay_calc_dstor (this, ib, hcell, stoe, stoi) |
Calculate delay interbed storage change. More... | |
subroutine | csub_delay_calc_wcomp (this, ib, dwc) |
Calculate delay interbed water compressibility. More... | |
subroutine | csub_delay_calc_comp (this, ib, hcell, hcellold, comp, compi, compe) |
Calculate delay interbed compaction. More... | |
subroutine | csub_delay_update (this, ib) |
Update delay interbed material properties. More... | |
subroutine | csub_delay_fc (this, ib, hcof, rhs) |
Calculate delay interbed contribution to the cell. More... | |
real(dp) function | csub_calc_delay_flow (this, ib, n, hcell) |
Calculate the flow from delay interbed top or bottom. More... | |
logical function | csub_obs_supported (this) |
Determine if observations are supported. More... | |
subroutine | csub_df_obs (this) |
Define the observation types available in the package. More... | |
subroutine | csub_bd_obs (this) |
Set the observations for this time step. More... | |
subroutine | csub_rp_obs (this) |
Read and prepare the observations. More... | |
subroutine | csub_process_obsid (obsrv, dis, inunitobs, iout) |
Process the observation IDs for the package. More... | |
subroutine | define_listlabel (this) |
@ brief Define the list label for the package More... | |
Variables | |
character(len=lenbudtxt), dimension(4) | budtxt = [' CSUB-CGELASTIC', ' CSUB-ELASTIC', ' CSUB-INELASTIC', ' CSUB-WATERCOMP'] |
character(len=lenbudtxt), dimension(6) | comptxt = ['CSUB-COMPACTION', ' CSUB-INELASTIC', ' CSUB-ELASTIC', ' CSUB-INTERBED', ' CSUB-COARSE', ' CSUB-ZDISPLACE'] |
real(dp), parameter | dlog10es = 0.4342942_DP |
derivative of the log of effective stress More... | |
This module contains the methods used to add the effects of elastic skeletal storage, compaction, and subsidence on the groundwater flow equation. The contribution of elastic skelatal, inelastic and elastic interbed storage and water compressibility can be represented.
subroutine gwfcsubmodule::csub_ad | ( | class(gwfcsubtype) | this, |
integer(i4b), intent(in) | nodes, | ||
real(dp), dimension(nodes), intent(in) | hnew | ||
) |
Advance data in the CSUB package. The method sets data for the previous time step to the current value for the data (e.g., HOLD = HNEW). The method also calls the method to initialize the initial stress conditions if this is the first transient stress period.
[in] | nodes | number of active model nodes |
[in] | hnew | current head |
Definition at line 2644 of file gwf-csub.f90.
|
private |
Method to calculate the current thickness and porosity.
[in,out] | thick | initial and current thickness |
[in,out] | theta | initial and current porosity |
[in] | comp | compaction |
[in,out] | thick | thickness |
[in,out] | theta | porosity |
Definition at line 5619 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_allocate_arrays | ( | class(gwfcsubtype), intent(inout) | this | ) |
Allocate and initialize CSUB package arrays.
Definition at line 1221 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_allocate_scalars | ( | class(gwfcsubtype), intent(inout) | this | ) |
Allocate and initialize scalars for the CSUB package. The base model allocate scalars method is also called.
Definition at line 1108 of file gwf-csub.f90.
|
private |
Method to allocate and read static data for the CSUB package.
[in] | dis | model discretization |
ibound | model ibound array |
Definition at line 360 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_bd | ( | class(gwfcsubtype) | this, |
integer(i4b), intent(in) | isuppress_output, | ||
type(budgettype), intent(inout) | model_budget | ||
) |
Budget calculation for the CSUB package components. Components include coarse-grained storage, delay and no-delay interbeds, and water compressibility.
[in,out] | model_budget | model budget object |
[in,out] | model_budget | model budget object |
Definition at line 3522 of file gwf-csub.f90.
|
private |
Method to set the CSUB package observations for this time step.
Definition at line 6942 of file gwf-csub.f90.
|
private |
Function to calculate the effective stress at specified elevation z using the provided effective stress (es0) calculated at elevation z0 (which is <= z)
[in] | node | cell node number |
[in] | es0 | effective stress at elevation z0 |
[in] | z0 | elevation effective stress is calculate at |
[in] | z | elevation to calculate effective stress at |
Definition at line 5446 of file gwf-csub.f90.
|
private |
Function to calculate the flow from across the top or bottom of a delay interbed.
[in] | ib | interbed number |
[in] | n | delay interbed cell |
[in] | hcell | current head in cell |
Definition at line 6716 of file gwf-csub.f90.
|
private |
Function to calculate the interbed thickness.
[in] | ib | interbed number |
Definition at line 5393 of file gwf-csub.f90.
|
private |
Method to calculate the cell saturation for the current and previous time step.
[in,out] | snnew | current saturation |
[in,out] | snold | previous saturation |
[in] | node | cell node number |
[in] | hcell | current head |
[in] | hcellold | previous head |
[in,out] | snnew | current saturation |
[in,out] | snold | previous saturation |
Definition at line 5517 of file gwf-csub.f90.
|
private |
Function to calculate the derivative of the saturation with respect to the current head.
[in] | node | cell node number |
[in] | hcell | current head |
Definition at line 5551 of file gwf-csub.f90.
|
private |
Method to calculate the factor that is used to calculate skeletal specific storage coefficients. Can be used for coarse-grained materials and interbeds.
[in,out] | fact | skeletal storage coefficient factor |
[in] | node | cell node number |
[in] | theta | porosity |
[in] | es | current effective stress |
[in] | es0 | previous effective stress |
[in,out] | fact | skeletal storage coefficient factor (1/((1+void_ratio)*bar(es))) |
Definition at line 5579 of file gwf-csub.f90.
|
private |
Function to calculate the porosity from the void ratio.
Definition at line 5376 of file gwf-csub.f90.
|
private |
Function to calculate the void ratio from the porosity.
[in] | theta | porosity |
Definition at line 5360 of file gwf-csub.f90.
|
private |
Function to calculate elevation of the node between the specified corrected elevation zbar and the bottom elevation. If zbar is greater than the top elevation, the node elevation is halfway between the top and bottom elevations. The corrected elevation (zbar) is always greater than or equal to bottom.
[in] | top | top of cell |
[in] | bottom | bottom of cell |
[in] | zbar | corrected elevation |
Definition at line 5419 of file gwf-csub.f90.
|
private |
Final convergence check for the CSUB package. The final convergence check is only required when the simulation includes delay interbeds. The final convergence check compares the sum of water contributed by storage and water compressibility in the delay bed to the fluid exchange between the delay interbed and the gwf cell.
[in,out] | cpak | string location of the maximum change in csub package |
[in,out] | ipak | node with the maximum change in csub package |
[in,out] | dpak | maximum change in csub package |
[in] | innertot | total number of inner iterations |
[in] | kiter | outer iteration number |
[in] | iend | flag indicating if it is the last iteration |
[in] | icnvgmod | flag indicating if the solution is considered converged |
[in] | nodes | number of active nodes |
[in] | hnew | current gwf head |
[in] | hold | gwf for previous time step |
[in,out] | cpak | string location of the maximum change in csub package |
[in,out] | ipak | node with the maximum change in csub package |
[in,out] | dpak | maximum change in csub package |
Definition at line 3037 of file gwf-csub.f90.
|
private |
Method calculates coarse-grained compaction in a cell.
[in,out] | comp | coarse-grained compaction |
[in] | node | cell node number |
[in] | hcell | current head in cell |
[in] | hcellold | previous head in cell |
[in,out] | comp | coarse-grained compaction |
Definition at line 5064 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_cg_calc_sske | ( | class(gwfcsubtype), intent(inout) | this, |
integer(i4b), intent(in) | n, | ||
real(dp), intent(inout) | sske, | ||
real(dp), intent(in) | hcell | ||
) |
Method calculates Sske for coarse-grained materials in a cell.
[in,out] | sske | coarse-grained Sske |
[in] | n | cell node number |
[in,out] | sske | coarse grained Sske |
[in] | hcell | current head in cell |
Definition at line 5008 of file gwf-csub.f90.
|
private |
Method calculates the geostatic stress, pressure head, and effective stress at the bottom of each cell. The method also applies the overlying geostatic stress (sig0) not represented in the model.
[in] | nodes | number of active model nodes |
[in] | hnew | current head |
Definition at line 3918 of file gwf-csub.f90.
|
private |
Method checks calculated effective stress values to ensure that effective stress values are positive. An error condition and message are issued if calculated effective stress values are less than a small positive value (DEM6).
Definition at line 4051 of file gwf-csub.f90.
|
private |
Method formulates the coefficient matrix and right-hand side terms for coarse grained materials in a cell.
[in,out] | hcof | coarse-grained A matrix entry |
[in,out] | rhs | coarse-grained right-hand side entry |
[in] | node | cell node number |
[in] | tled | recripicol of the time step length |
[in] | area | horizontal cell area |
[in] | hcell | current head |
[in] | hcellold | previous head |
[in,out] | hcof | coarse-grained A matrix entry |
[in,out] | rhs | coarse-grained right-hand side entry |
Definition at line 4694 of file gwf-csub.f90.
|
private |
Method formulates the coefficient matrix and right-hand side terms for coarse grained materials in a cell when using the Newton-Raphson formulation.
[in,out] | hcof | coarse-grained A matrix entry |
[in,out] | rhs | coarse-grained right-hand side entry |
[in] | node | node number |
[in] | tled | reciprocal of the time step length |
[in] | area | horizontal cell area |
[in] | hcell | current head in cell |
[in,out] | hcof | coarse-grained A matrix entry |
[in,out] | rhs | coarse-grained right-hand side entry |
Definition at line 4760 of file gwf-csub.f90.
|
private |
Method updates coarse-grained material properties in a cell.
[in] | node | cell node number |
Definition at line 5093 of file gwf-csub.f90.
|
private |
Method formulates the standard formulation coefficient matrix and right-hand side terms for water compressibility in coarse-grained sediments.
[in,out] | hcof | coarse-grained A matrix entry |
[in,out] | rhs | coarse-grained right-hand side entry |
[in] | node | cell node number |
[in] | tled | reciprocal of the time step length |
[in] | area | horizontal cell area |
[in] | hcell | current head in cell |
[in] | hcellold | previous head in cell |
[in,out] | hcof | coarse-grained A matrix entry |
[in,out] | rhs | coarse-grained right-hand side entry |
Definition at line 5137 of file gwf-csub.f90.
|
private |
Method formulates the Newton-Raphson formulation coefficient matrix and right-hand side terms for water compressibility in coarse-grained sediments.
[in,out] | hcof | coarse-grained A matrix entry |
[in,out] | rhs | coarse-grained right-hand side entry |
[in] | node | cell node number |
[in] | tled | reciprocal of the time step length |
[in] | area | horizontal cell area |
[in] | hcell | current head in cell |
[in] | hcellold | previous head in cell |
[in,out] | hcof | coarse-grained A matrix entry |
[in,out] | rhs | coarse-grained right-hand side entry |
Definition at line 5192 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_cq | ( | class(gwfcsubtype) | this, |
integer(i4b), intent(in) | nodes, | ||
real(dp), dimension(nodes), intent(in) | hnew, | ||
real(dp), dimension(nodes), intent(in) | hold, | ||
integer(i4b), intent(in) | isuppress_output, | ||
real(dp), dimension(:), intent(inout), contiguous | flowja | ||
) |
Flow calculation for the CSUB package components. Components include coarse-grained storage, delay and no-delay interbeds, and water compressibility.
[in,out] | model_budget | model budget object |
[in] | nodes | number of active model nodes |
[in] | hnew | current head |
[in] | hold | head for the previous time step |
[in] | isuppress_output | flag indicating if budget output should be suppressed |
Definition at line 3223 of file gwf-csub.f90.
subroutine, public gwfcsubmodule::csub_cr | ( | type(gwfcsubtype), pointer | csubobj, |
character(len=*), intent(in) | name_model, | ||
integer(i4b), intent(in) | istounit, | ||
character(len=*), intent(in) | stoPckName, | ||
integer(i4b), intent(in) | inunit, | ||
integer(i4b), intent(in) | iout | ||
) |
Create a new CSUB object
csubobj | pointer to default package type | |
[in] | name_model | model name |
[in] | inunit | unit number of csub input file |
[in] | istounit | unit number of storage package |
[in] | stopckname | name of the storage package |
[in] | iout | unit number of lst output file |
Definition at line 324 of file gwf-csub.f90.
|
private |
|
private |
Method to assemble matrix and right-hand side coefficients for a delay interbed. The method calls the appropriate standard or Newton-Raphson assembly routines and fills all of the entries for a delay interbed.
[in] | ib | interbed number |
[in] | hcell | current head in a cell |
Definition at line 5981 of file gwf-csub.f90.
|
private |
Method to assemble standard formulation matrix and right-hand side coefficients for a delay interbed.
[in] | ib | interbed number |
[in] | n | delay interbed cell number |
[in] | hcell | current head in a cell |
[in,out] | aii | diagonal in the A matrix |
[in,out] | au | upper term in the A matrix |
[in,out] | al | lower term in the A matrix |
[in,out] | r | right-hand side term |
Definition at line 6017 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_delay_assemble_fn | ( | class(gwfcsubtype), intent(inout) | this, |
integer(i4b), intent(in) | ib, | ||
integer(i4b), intent(in) | n, | ||
real(dp), intent(in) | hcell, | ||
real(dp), intent(inout) | aii, | ||
real(dp), intent(inout) | au, | ||
real(dp), intent(inout) | al, | ||
real(dp), intent(inout) | r | ||
) |
Method to assemble Newton-Raphson formulation matrix and right-hand side coefficients for a delay interbed.
[in] | ib | interbed number |
[in] | n | delay interbed cell number |
[in] | hcell | current head in a cell |
[in,out] | aii | diagonal in the A matrix |
[in,out] | au | upper term in the A matrix |
[in,out] | al | lower term in the A matrix |
[in,out] | r | right-hand side term |
Definition at line 6148 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_delay_calc_comp | ( | class(gwfcsubtype), intent(inout) | this, |
integer(i4b), intent(in) | ib, | ||
real(dp), intent(in) | hcell, | ||
real(dp), intent(in) | hcellold, | ||
real(dp), intent(inout) | comp, | ||
real(dp), intent(inout) | compi, | ||
real(dp), intent(inout) | compe | ||
) |
Method to calculate the compaction in a delay interbed.
[in,out] | comp | compaction in delay interbed |
[in,out] | compi | inelastic compaction in delay interbed |
[in,out] | compe | elastic compaction in delay interbed |
[in] | ib | interbed number |
[in] | hcell | current head in cell |
[in] | hcellold | previous head in cell |
[in,out] | comp | compaction in delay interbed |
[in,out] | compi | inelastic compaction in delay interbed |
[in,out] | compe | elastic compaction in delay interbed |
Definition at line 6523 of file gwf-csub.f90.
|
private |
Method to calculate the storage change in a delay interbed.
[in,out] | stoe | current elastic storage change in delay interbed |
[in,out] | stoi | current inelastic storage changes in delay interbed |
[in] | ib | interbed number |
[in] | hcell | current head in cell |
[in,out] | stoe | elastic storage change |
[in,out] | stoi | inelastic storage change |
Definition at line 6385 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_delay_calc_sat | ( | class(gwfcsubtype), intent(inout) | this, |
integer(i4b), intent(in) | node, | ||
integer(i4b), intent(in) | idelay, | ||
integer(i4b), intent(in) | n, | ||
real(dp), intent(in) | hcell, | ||
real(dp), intent(in) | hcellold, | ||
real(dp), intent(inout) | snnew, | ||
real(dp), intent(inout) | snold | ||
) |
Method to calculate the saturation in a delay interbed cell.
[in,out] | snnew | current saturation in delay interbed cell n |
[in,out] | snold | previous saturation in delay interbed cell n |
[in] | node | cell node number |
[in] | idelay | delay interbed number |
[in] | n | delay interbed cell number |
[in] | hcell | current head in delay interbed cell n |
[in] | hcellold | previous head in delay interbed cell n |
[in,out] | snnew | current saturation in delay interbed cell n |
[in,out] | snold | previous saturation in delay interbed cell n |
Definition at line 6314 of file gwf-csub.f90.
|
private |
Function to calculate the derivative of the saturation with respect to the current head in delay interbed cell n.
[in] | node | cell node number |
[in] | idelay | delay interbed number |
[in] | n | delay interbed cell number |
[in] | hcell | current head in delay interbed cell n |
Definition at line 6353 of file gwf-csub.f90.
|
private |
Method to calculate the ssk and sske value for a node in a delay interbed cell.
[in,out] | ssk | skeletal specific storage value dependent on the preconsolidation stress |
[in,out] | sske | elastic skeletal specific storage value |
[in] | ib | interbed number |
[in] | n | delay interbed cell number |
[in] | hcell | current head in a cell |
[in,out] | ssk | delay interbed skeletal specific storage |
[in,out] | sske | delay interbed elastic skeletal specific storage |
Definition at line 5879 of file gwf-csub.f90.
|
private |
Method to calculate the geostatic and effective stress in delay interbed cells using the passed the current head value in a cell.
[in] | ib | interbed number |
[in] | hcell | current head in a cell |
Definition at line 5799 of file gwf-csub.f90.
|
private |
Method to calculate the change in water compressibility in a delay interbed.
[in,out] | dwc | current water compressibility change in delay interbed |
[in] | ib | interbed number |
[in,out] | dwc | water compressibility change |
Definition at line 6470 of file gwf-csub.f90.
|
private |
Method to calculate the coefficients to calculate the delay interbed contribution to a cell. The product of hcof* h - rhs equals the delay contribution to the cell
[in,out] | hcof | coefficient dependent on current head |
[in,out] | rhs | right-hand side contributions |
[in] | ib | interbed number |
[in,out] | hcof | head dependent coefficient |
[in,out] | rhs | right-hand side |
Definition at line 6683 of file gwf-csub.f90.
|
private |
Method to determine if the delay interbed head in any delay cell in a non-convertible gwf cell is less than the top of each delay interbed cell.
[in] | ib | interbed number |
Definition at line 5467 of file gwf-csub.f90.
|
private |
Method to calculate the initial center of each delay interbed cell, assuming the delay bed head is equal to the top of the delay interbed. The method also calculates the distance of the center of each delay bed cell from the center of the delay interbed (z_offset) that is used to calculate average skeletal specific storage values for a delay interbed centered on the center of the saturated thickness for a cell.
[in] | ib | interbed number |
Definition at line 5742 of file gwf-csub.f90.
|
private |
Method to calculate solve the delay interbed continuity equation for a delay interbed. The method encapsulates the non-linear loop and calls the linear solution.
[in] | ib | interbed number |
[in] | hcell | current head in a cell |
[in] | update | optional logical variable indicating if the maximum head change variable in a delay bed should be updated |
Definition at line 5649 of file gwf-csub.f90.
|
private |
Method to update the thickness and porosity of each delay interbed cell.
[in] | ib | interbed number |
Definition at line 6603 of file gwf-csub.f90.
|
private |
Method to define the observation types available in the CSUB package.
Definition at line 6755 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_fc | ( | class(gwfcsubtype) | this, |
integer(i4b), intent(in) | kiter, | ||
real(dp), dimension(:), intent(in) | hold, | ||
real(dp), dimension(:), intent(in) | hnew, | ||
class(matrixbasetype), pointer | matrix_sln, | ||
integer(i4b), dimension(:), intent(in) | idxglo, | ||
real(dp), dimension(:), intent(inout) | rhs | ||
) |
Fill the coefficient matrix and right-hand side with the CSUB package terms.
[in] | kiter | outer iteration numbed |
[in] | hold | previous heads |
[in] | hnew | current heads |
matrix_sln | A matrix | |
[in] | idxglo | global index model to solution |
[in,out] | rhs | right-hand side |
Definition at line 2761 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_fn | ( | class(gwfcsubtype) | this, |
integer(i4b), intent(in) | kiter, | ||
real(dp), dimension(:), intent(in) | hold, | ||
real(dp), dimension(:), intent(in) | hnew, | ||
class(matrixbasetype), pointer | matrix_sln, | ||
integer(i4b), dimension(:), intent(in) | idxglo, | ||
real(dp), dimension(:), intent(inout) | rhs | ||
) |
Fill the coefficient matrix and right-hand side with CSUB package with Newton-Raphson terms.
[in,out] | amat | A matrix |
[in,out] | rhs | right-hand side |
[in] | kiter | outer iteration number |
[in] | hold | previous heads |
[in] | hnew | current heads |
matrix_sln | A matrix | |
[in] | idxglo | global index model to solution |
[in,out] | rhs | right-hand side |
Definition at line 2878 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_fp | ( | class(gwfcsubtype) | this | ) |
Final processing for the CSUB package. This method generates the final strain tables that are output so that the user can evaluate if calculated strain rates in coarse-grained sediments and interbeds exceed 1 percent.
Definition at line 1852 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_initialize_tables | ( | class(gwfcsubtype) | this | ) |
Subroutine to initialize optional tables. Tables include: o delay interbeds convergence tables
Definition at line 2976 of file gwf-csub.f90.
|
private |
Method formulates the coefficient matrix and right-hand side terms for a interbed in a cell.
[in,out] | hcof | interbed A matrix entry |
[in,out] | rhs | interbed right-hand side entry |
[in] | ib | interbed number |
[in] | node | cell node number |
[in] | area | horizontal cell area |
[in] | hcell | current head in cell |
[in] | hcellold | previous head in cell |
[in,out] | hcof | interbed A matrix entry |
[in,out] | rhs | interbed right-hand side |
Definition at line 4832 of file gwf-csub.f90.
|
private |
Method formulates the Newton-Raphson formulation coefficient matrix and right-hand side terms for a interbed in a cell.
[in,out] | hcof | interbed A matrix entry |
[in,out] | rhs | interbed right-hand side entry |
[in] | ib | interbed number |
[in] | node | cell node number |
[in] | hcell | current head in a cell |
[in] | hcellold | previous head in a cell |
[in,out] | hcof | interbed A matrix entry |
[in,out] | rhs | interbed right-hand side entry |
Definition at line 4918 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_nodelay_calc_comp | ( | class(gwfcsubtype) | this, |
integer(i4b), intent(in) | ib, | ||
real(dp), intent(in) | hcell, | ||
real(dp), intent(in) | hcellold, | ||
real(dp), intent(inout) | comp, | ||
real(dp), intent(inout) | rho1, | ||
real(dp), intent(inout) | rho2 | ||
) |
Method calculates the compaction for a no-delay interbed. The method also calculates the storage coefficients for the no-delay interbed.
[in,out] | comp | no-delay compaction |
[in,out] | rho1 | no-delay storage value using Sske |
[in,out] | rho2 | no-delay storage value using Ssk |
[in] | ib | interbed number |
[in] | hcell | current head for the cell |
[in] | hcellold | previous head for the cell |
[in,out] | comp | no-delay interbed compaction |
[in,out] | rho1 | current storage coefficient based on Sske |
[in,out] | rho2 | current storage coefficient based on Ssk |
Definition at line 4264 of file gwf-csub.f90.
|
private |
Method calculates the skeletal storage coefficients for a no-delay interbed. The method also calculates the contribution of the no-delay interbed to the right-hand side of the groundwater flow equation for the cell.
[in,out] | rho1 | no-delay storage value using Sske |
[in,out] | rho2 | no-delay storage value using Ssk |
[in,out] | rhs | no-delay right-hand side contribution |
[in] | ib | interbed number |
[in] | hcell | current head in the cell |
[in] | hcellold | previous head in the cell |
[in,out] | rho1 | current storage coefficient value using Sske |
[in,out] | rho2 | current storage coefficient value based on Ssk |
[in,out] | rhs | no-delay interbed contribution to the right-hand side |
[in] | argtled | optional reciprocal of the time step length |
Definition at line 4156 of file gwf-csub.f90.
|
private |
Method updates no-delay material properties based on the current compaction value.
Definition at line 4112 of file gwf-csub.f90.
|
private |
Method formulates the standard formulation coefficient matrix and right-hand side terms for water compressibility in no-delay interbeds.
[in,out] | hcof | no-delay A matrix entry |
[in,out] | rhs | no-delay right-hand side entry |
[in] | ib | interbed number |
[in] | node | cell node number |
[in] | tled | reciprocal of time step length |
[in] | area | horizontal cell area |
[in] | hcell | current head in cell |
[in] | hcellold | previous head in cell |
[in,out] | hcof | no-delay A matrix entry |
[in,out] | rhs | no-delay right-hand side entry |
Definition at line 5254 of file gwf-csub.f90.
|
private |
Method formulates the Newton-Raphson formulation coefficient matrix and right-hand side terms for water compressibility in no-delay interbeds.
[in,out] | hcof | no-delay A matrix entry |
[in,out] | rhs | no-delay right-hand side entry |
[in] | ib | interbed number |
[in] | node | cell node number |
[in] | tled | reciprocal of time step length |
[in] | area | horizontal cell area |
[in] | hcell | current head in cell |
[in] | hcellold | previous head in cell |
[in,out] | hcof | no-delay A matrix entry |
[in,out] | rhs | no-delay right-hand side entry |
Definition at line 5304 of file gwf-csub.f90.
|
private |
Function to determine if observations are supported by the CSUB package. Observations are supported by the CSUB package.
Definition at line 6742 of file gwf-csub.f90.
|
private |
Method saves cell-by-cell compaction and z-displacement terms. The method also calls the method to process observation output.
[in] | idvfl | flag to save dependent variable data |
[in] | idvprint | flag to print dependent variable data |
Definition at line 3653 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_process_obsid | ( | type(observetype), intent(inout) | obsrv, |
class(disbasetype), intent(in) | dis, | ||
integer(i4b), intent(in) | inunitobs, | ||
integer(i4b), intent(in) | iout | ||
) |
Method to process the observation IDs for the CSUB package. This procedure is pointed to by ObsDataTypeProcesssIdPtr. It processes the ID string of an observation definition for csub-package observations.
[in,out] | obsrv | observation type |
[in] | dis | pointer to the model discretization |
[in] | inunitobs | unit number of the observation file |
[in] | iout | unit number to the model listing file |
Definition at line 7331 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_read_dimensions | ( | class(gwfcsubtype), intent(inout) | this | ) |
Read the number of interbeds and maximum number of cells with a specified overlying geostatic stress.
Definition at line 1039 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_read_packagedata | ( | class(gwfcsubtype), intent(inout) | this | ) |
Read delay and no-delay interbed input data for the CSUB package. Method also validates interbed input data.
Definition at line 1397 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_rp | ( | class(gwfcsubtype), intent(inout) | this | ) |
Method reads and prepares stress period data for the CSUB package. The overlying geostatic stress (sig0) is the only stress period data read by the CSUB package.
Definition at line 2483 of file gwf-csub.f90.
|
private |
Method to read and prepare the observations for the CSUB package.
Definition at line 7160 of file gwf-csub.f90.
subroutine gwfcsubmodule::csub_save_model_flows | ( | class(gwfcsubtype) | this, |
integer(i4b), intent(in) | icbcfl, | ||
integer(i4b), intent(in) | icbcun | ||
) |
Save cell-by-cell budget terms for the CSUB package.
[in] | icbcfl | flag to output budget data |
[in] | icbcun | unit number for cell-by-cell file |
Definition at line 3562 of file gwf-csub.f90.
|
private |
Method sets the initial states for coarse-grained materials and fine- grained sediments in the interbeds.
[in] | nodes | number of active model nodes |
[in] | hnew | current heads |
Definition at line 4305 of file gwf-csub.f90.
|
private |
Method defined the list label for the CSUB package. The list label is the heading that is written to iout when PRINT_INPUT option is used.
Definition at line 7410 of file gwf-csub.f90.
subroutine gwfcsubmodule::read_options | ( | class(gwfcsubtype), intent(inout) | this | ) |
Read options block for CSUB package.
Definition at line 600 of file gwf-csub.f90.
|
private |
Definition at line 55 of file gwf-csub.f90.
|
private |
Definition at line 60 of file gwf-csub.f90.
|
private |
Definition at line 70 of file gwf-csub.f90.