![]() |
MODFLOW 6
version 6.9.0.dev0
USGS Modular Hydrologic Model
|
Data Types | |
| type | mawtype |
Functions/Subroutines | |
| subroutine, public | maw_create (packobj, id, ibcnum, inunit, iout, namemodel, pakname) |
| Create a New Multi-Aquifer Well (MAW) Package. More... | |
| subroutine | maw_allocate_scalars (this) |
| Allocate scalar members. More... | |
| subroutine | maw_allocate_well_conn_arrays (this) |
| Allocate well arrays. More... | |
| subroutine | maw_allocate_arrays (this) |
| Allocate arrays. More... | |
| subroutine | maw_read_wells (this) |
| Read the packagedata for this package. More... | |
| subroutine | maw_read_well_connections (this) |
| Read the dimensions for this package. More... | |
| subroutine | maw_read_angledata (this) |
| Read the optional ANGLEDATA block for non-vertical (slanted) MAW well connections. More... | |
| pure real(dp) function, public | maw_screen_length (dz, radius, omega) |
| In-cell screen length of a non-vertical well connection. More... | |
| real(dp) function | maw_cell_extent (this, node, estimated) |
| Maximum horizontal extent of a cell. More... | |
| real(dp) function | maw_calc_lcorr (this, i, jpos) |
| Calculate the length correction factor for a multi-aquifer well connection. More... | |
| subroutine | maw_read_dimensions (this) |
| Read the dimensions for this package. More... | |
| subroutine | maw_read_initial_attr (this) |
| Read the initial parameters for this package. More... | |
| subroutine | maw_set_stressperiod (this, imaw, iheadlimit_warning) |
| Set a stress period attribute for mawweslls(imaw) using keywords. More... | |
| subroutine | maw_set_attribute_error (this, imaw, keyword, msg) |
| Issue a parameter error for mawweslls(imaw) More... | |
| subroutine | maw_check_attributes (this) |
| Issue parameter errors for mawwells(imaw) More... | |
| subroutine | maw_ac (this, moffset, sparse) |
| Add package connection to matrix. More... | |
| subroutine | maw_mc (this, moffset, matrix_sln) |
| Map package connection to matrix. More... | |
| subroutine | maw_read_options (this, option, found) |
| Set options specific to MawType. More... | |
| subroutine | maw_ar (this) |
| Allocate and Read. More... | |
| subroutine | maw_rp (this) |
| Read and Prepare. More... | |
| subroutine | maw_ad (this) |
| Add package connection to matrix. More... | |
| subroutine | maw_cf (this) |
| Formulate the HCOF and RHS terms. More... | |
| subroutine | maw_fc (this, rhs, ia, idxglo, matrix_sln) |
| Copy rhs and hcof into solution rhs and amat. More... | |
| subroutine | maw_fn (this, rhs, ia, idxglo, matrix_sln) |
| Fill newton terms. More... | |
| subroutine | maw_nur (this, neqpak, x, xtemp, dx, inewtonur, dxmax, locmax) |
| Apply Newton under-relaxation to the MAW Package well heads. More... | |
| pure real(dp) function, public | maw_damp_weight (dxprop, dxold, weight, damptheta, damptol, weightmin, recover) |
| Update the oscillation-damping weight for a single MAW well head. More... | |
| subroutine | maw_cc (this, innertot, kiter, iend, icnvgmod, cpak, ipak, dpak) |
| Extra convergence check for the MAW package. More... | |
| subroutine | maw_cq (this, x, flowja, iadv) |
| Calculate flows. More... | |
| subroutine | maw_ot_model_flows (this, icbcfl, ibudfl, icbcun, imap) |
| Write flows to binary file and/or print flows to budget. More... | |
| subroutine | maw_ot_package_flows (this, icbcfl, ibudfl) |
| Output MAW package flow terms. More... | |
| subroutine | maw_ot_dv (this, idvsave, idvprint) |
| Save maw-calculated values to binary file. More... | |
| subroutine | maw_ot_bdsummary (this, kstp, kper, iout, ibudfl) |
| Write MAW budget to listing file. More... | |
| subroutine | maw_da (this) |
| Deallocate memory. More... | |
| subroutine | define_listlabel (this) |
| Define the list heading that is written to iout when PRINT_INPUT option is used. More... | |
| subroutine | maw_set_pointers (this, neq, ibound, xnew, xold, flowja) |
| Set pointers to model arrays and variables so that a package has has access to these things. More... | |
| logical function | maw_obs_supported (this) |
| Return true because MAW package supports observations. More... | |
| subroutine | maw_df_obs (this) |
| Store observation type supported by MAW package. More... | |
| subroutine | maw_bd_obs (this) |
| Calculate observations this time step and call ObsTypeSaveOneSimval for each MawType observation. More... | |
| subroutine | maw_rp_obs (this) |
| Process each observation. More... | |
| subroutine | maw_process_obsid (obsrv, dis, inunitobs, iout) |
| This procedure is pointed to by ObsDataTypeProcesssIdPtr. It processes the ID string of an observation definition for MAW package observations. More... | |
| subroutine | maw_redflow_csv_init (this, fname) |
| Initialize the auto flow reduce csv output file. More... | |
| subroutine | maw_redflow_csv_write (this) |
| MAW reduced flows only when & where they occur. More... | |
| subroutine | maw_calculate_satcond (this, i, j, node) |
| Calculate the appropriate saturated conductance to use based on aquifer and multi-aquifer well characteristics. More... | |
| subroutine | maw_calculate_saturation (this, n, j, node, sat, hwell_in) |
| Calculate the saturation between the aquifer maw well_head. More... | |
| subroutine | maw_calculate_conn_terms (this, n, j, icflow, cmaw, cterm, term, flow, term2) |
| Calculate matrix terms for a multi-aquifer well connection. Terms for fc and fn methods are calculated based on whether term2 is passed Arguments are as follows: n : maw well number j : connection number for well n icflow : flag indicating that flow should be corrected cmaw : maw-gwf conducance cterm : correction term for flow to dry cell term : xxx flow : calculated flow for this connection, positive into well term2 : xxx. More... | |
| subroutine | maw_calculate_wellq (this, n, hmaw, q) |
| Calculate well pumping rate based on constraints. More... | |
| subroutine | maw_calculate_qpot (this, n, qnet) |
| Calculate groundwater inflow to a maw well. More... | |
| subroutine | maw_cfupdate (this) |
| Update MAW satcond and package rhs and hcof. More... | |
| subroutine | maw_setup_budobj (this) |
| Set up the budget object that stores all the maw flows The terms listed here must correspond in number and order to the ones listed in the maw_fill_budobj routine. More... | |
| subroutine | maw_fill_budobj (this) |
| Copy flow terms into thisbudobj. More... | |
| subroutine | maw_setup_tableobj (this) |
| Set up the table object that is used to write the maw head data. More... | |
| integer(i4b) function | get_jpos (this, n, j) |
| Get position of value in connection data. More... | |
| integer(i4b) function | get_gwfnode (this, n, j) |
| Get the gwfnode for connection. More... | |
| subroutine | maw_activate_density (this) |
| Activate density terms. More... | |
| subroutine | maw_activate_viscosity (this) |
| Activate viscosity terms. More... | |
| subroutine | maw_calculate_density_exchange (this, iconn, hmaw, hgwf, cond, bmaw, flow, hcofterm, rhsterm) |
| Calculate the groundwater-maw density exchange terms. More... | |
Variables | |
| character(len=lenftype) | ftype = 'MAW' |
| character(len=lenpackagename) | text = ' MAW' |
| subroutine mawmodule::define_listlabel | ( | class(mawtype), intent(inout) | this | ) |
Definition at line 3579 of file gwf-maw.f90.
|
private |
Definition at line 5257 of file gwf-maw.f90.
| integer(i4b) function mawmodule::get_jpos | ( | class(mawtype) | this, |
| integer(i4b), intent(in) | n, | ||
| integer(i4b), intent(in) | j | ||
| ) |
Definition at line 5242 of file gwf-maw.f90.
| subroutine mawmodule::maw_ac | ( | class(mawtype), intent(inout) | this, |
| integer(i4b), intent(in) | moffset, | ||
| type(sparsematrix), intent(inout) | sparse | ||
| ) |
Definition at line 2017 of file gwf-maw.f90.
|
private |
Definition at line 5274 of file gwf-maw.f90.
|
private |
Method to activate addition of viscosity terms for a MAW package reach.
| [in,out] | this | MawType object |
Definition at line 5298 of file gwf-maw.f90.
| subroutine mawmodule::maw_ad | ( | class(mawtype) | this | ) |
Definition at line 2545 of file gwf-maw.f90.
| subroutine mawmodule::maw_allocate_arrays | ( | class(mawtype), intent(inout) | this | ) |
Definition at line 555 of file gwf-maw.f90.
|
private |
Definition at line 285 of file gwf-maw.f90.
| subroutine mawmodule::maw_allocate_well_conn_arrays | ( | class(mawtype), intent(inout) | this | ) |
Definition at line 340 of file gwf-maw.f90.
| subroutine mawmodule::maw_ar | ( | class(mawtype), intent(inout) | this | ) |
Create new MAW package and point bndobj to the new package
Definition at line 2231 of file gwf-maw.f90.
|
private |
| real(dp) function mawmodule::maw_calc_lcorr | ( | class(mawtype), intent(inout) | this, |
| integer(i4b), intent(in) | i, | ||
| integer(i4b), intent(in) | jpos | ||
| ) |
The saturated conductance of a non-vertical (slanted) connection is scaled by the ratio of the in-cell screen length to the vertical screen thickness. The factor is 1.0 for vertical connections (angle = 0 and no connection length specified). The in-cell screen length is either specified directly (CONNLEN > 0) or derived from the screen elevations and the tilt angle, accounting for the vertical band occupied by the finite-radius borehole.
| [in] | i | well number |
| [in] | jpos | connection position |
Definition at line 1440 of file gwf-maw.f90.

|
private |
| subroutine mawmodule::maw_calculate_density_exchange | ( | class(mawtype), intent(inout) | this, |
| integer(i4b), intent(in) | iconn, | ||
| real(dp), intent(in) | hmaw, | ||
| real(dp), intent(in) | hgwf, | ||
| real(dp), intent(in) | cond, | ||
| real(dp), intent(in) | bmaw, | ||
| real(dp), intent(inout) | flow, | ||
| real(dp), intent(inout) | hcofterm, | ||
| real(dp), intent(inout) | rhsterm | ||
| ) |
Arguments are as follows: iconn : maw-gwf connection number hmaw : maw head hgwf : gwf head cond : conductance bmaw : bottom elevation of this connection flow : calculated flow, updated here with density terms, + into maw hcofterm : head coefficient term rhsterm : right-hand-side value, updated here with density terms
Member variable used here denseterms : shape (3, MAXBOUND), filled by buoyancy package col 1 is relative density of maw (densemaw / denseref) col 2 is relative density of gwf cell (densegwf / denseref) col 3 is elevation of gwf cell
Upon return, amat and rhs for maw row should be updated as: amat(idiag) = amat(idiag) - hcofterm rhs(n) = rhs(n) + rhsterm
Definition at line 5342 of file gwf-maw.f90.
|
private |
Definition at line 4642 of file gwf-maw.f90.

| subroutine mawmodule::maw_calculate_satcond | ( | class(mawtype), intent(inout) | this, |
| integer(i4b), intent(in) | i, | ||
| integer(i4b), intent(in) | j, | ||
| integer(i4b), intent(in) | node | ||
| ) |
|
private |
|
private |
|
private |
This does two things:
Definition at line 3087 of file gwf-maw.f90.

|
private |
The extent is the largest distance between two cell vertices where they are defined, and is estimated as the diagonal of a square with the same area where they are not.
| [in] | node | reduced node number of the connected cell |
| [out] | estimated | extent is estimated from the cell area |
Definition at line 1399 of file gwf-maw.f90.

| subroutine mawmodule::maw_cf | ( | class(mawtype) | this | ) |
Skip if no multi-aquifer wells, otherwise, calculate hcof and rhs
Definition at line 2619 of file gwf-maw.f90.
| subroutine mawmodule::maw_cfupdate | ( | class(mawtype) | this | ) |
Definition at line 4728 of file gwf-maw.f90.
| subroutine mawmodule::maw_check_attributes | ( | class(mawtype), intent(inout) | this | ) |
Definition at line 1946 of file gwf-maw.f90.

| subroutine mawmodule::maw_cq | ( | class(mawtype), intent(inout) | this, |
| real(dp), dimension(:), intent(in) | x, | ||
| real(dp), dimension(:), intent(inout), contiguous | flowja, | ||
| integer(i4b), intent(in), optional | iadv | ||
| ) |
Definition at line 3209 of file gwf-maw.f90.

| subroutine, public mawmodule::maw_create | ( | class(bndtype), pointer | packobj, |
| integer(i4b), intent(in) | id, | ||
| integer(i4b), intent(in) | ibcnum, | ||
| integer(i4b), intent(in) | inunit, | ||
| integer(i4b), intent(in) | iout, | ||
| character(len=*), intent(in) | namemodel, | ||
| character(len=*), intent(in) | pakname | ||
| ) |
After creating the package object point bndobj to the new package
Definition at line 248 of file gwf-maw.f90.


| subroutine mawmodule::maw_da | ( | class(mawtype) | this | ) |
Definition at line 3454 of file gwf-maw.f90.
| pure real(dp) function, public mawmodule::maw_damp_weight | ( | real(dp), intent(in) | dxprop, |
| real(dp), intent(in) | dxold, | ||
| real(dp), intent(in) | weight, | ||
| real(dp), intent(in) | damptheta, | ||
| real(dp), intent(in) | damptol, | ||
| real(dp), intent(in) | weightmin, | ||
| real(dp), intent(in) | recover | ||
| ) |
This is the decision used by maw_nur. The weight is cut back (multiplied by damptheta, but never below weightmin) only when the proposed head change reversed direction and is not already getting smaller (its size is at least damptol times the previous change). Otherwise the weight grows back toward one by recover. It is a pure function so the logic can be unit tested.
Definition at line 3056 of file gwf-maw.f90.

|
private |
Overrides BndTypebnd_df_obs
Definition at line 3653 of file gwf-maw.f90.

|
private |
| subroutine mawmodule::maw_fill_budobj | ( | class(mawtype) | this | ) |
terms include a combination of the following: gwf rate [flowing_well] [storage] constant_flow [frommvr tomvr tomvrcf [tomvrfw]] [aux]
Definition at line 4987 of file gwf-maw.f90.
| subroutine mawmodule::maw_fn | ( | class(mawtype) | this, |
| real(dp), dimension(:), intent(inout) | rhs, | ||
| integer(i4b), dimension(:), intent(in) | ia, | ||
| integer(i4b), dimension(:), intent(in) | idxglo, | ||
| class(matrixbasetype), pointer | matrix_sln | ||
| ) |
| subroutine mawmodule::maw_mc | ( | class(mawtype), intent(inout) | this, |
| integer(i4b), intent(in) | moffset, | ||
| class(matrixbasetype), pointer | matrix_sln | ||
| ) |
Definition at line 2047 of file gwf-maw.f90.
|
private |
Two corrections are applied to each well head, in order:
Definition at line 2972 of file gwf-maw.f90.

| logical function mawmodule::maw_obs_supported | ( | class(mawtype) | this | ) |
Overrides BndTypebnd_obs_supported()
Definition at line 3643 of file gwf-maw.f90.
| subroutine mawmodule::maw_ot_bdsummary | ( | class(mawtype) | this, |
| integer(i4b), intent(in) | kstp, | ||
| integer(i4b), intent(in) | kper, | ||
| integer(i4b), intent(in) | iout, | ||
| integer(i4b), intent(in) | ibudfl | ||
| ) |
| this | MawType object | |
| [in] | kstp | time step number |
| [in] | kper | period number |
| [in] | iout | flag and unit number for the model listing file |
| [in] | ibudfl | flag indicating budget should be written |
Definition at line 3439 of file gwf-maw.f90.
| subroutine mawmodule::maw_ot_dv | ( | class(mawtype) | this, |
| integer(i4b), intent(in) | idvsave, | ||
| integer(i4b), intent(in) | idvprint | ||
| ) |
Definition at line 3384 of file gwf-maw.f90.

| subroutine mawmodule::maw_ot_model_flows | ( | class(mawtype) | this, |
| integer(i4b), intent(in) | icbcfl, | ||
| integer(i4b), intent(in) | ibudfl, | ||
| integer(i4b), intent(in) | icbcun, | ||
| integer(i4b), dimension(:), intent(in), optional | imap | ||
| ) |
Definition at line 3344 of file gwf-maw.f90.
|
private |
Definition at line 3358 of file gwf-maw.f90.
| subroutine mawmodule::maw_process_obsid | ( | type(observetype), intent(inout) | obsrv, |
| class(disbasetype), intent(in) | dis, | ||
| integer(i4b), intent(in) | inunitobs, | ||
| integer(i4b), intent(in) | iout | ||
| ) |
Definition at line 3982 of file gwf-maw.f90.


| subroutine mawmodule::maw_read_angledata | ( | class(mawtype), intent(inout) | this | ) |
Each row identifies a non-vertical multi-aquifer well connection and the tilt angle (deviation from vertical, in degrees) used to calculate the in-cell screen length. An optional connection length can be specified to set the in-cell screen length directly; the connection length is required for horizontal connections (angle close to 90 degrees). Connections that are not listed in the ANGLEDATA block are assumed to be vertical.
Definition at line 1085 of file gwf-maw.f90.

| subroutine mawmodule::maw_read_dimensions | ( | class(mawtype), intent(inout) | this | ) |
| subroutine mawmodule::maw_read_initial_attr | ( | class(mawtype), intent(inout) | this | ) |
| subroutine mawmodule::maw_read_options | ( | class(mawtype), intent(inout) | this, |
| character(len=*), intent(inout) | option, | ||
| logical, intent(inout) | found | ||
| ) |
Overrides BndTypebnd_options
Definition at line 2107 of file gwf-maw.f90.

| subroutine mawmodule::maw_read_well_connections | ( | class(mawtype), intent(inout) | this | ) |
| subroutine mawmodule::maw_read_wells | ( | class(mawtype), intent(inout) | this | ) |
Definition at line 568 of file gwf-maw.f90.

|
private |
| [in,out] | this | MawType object |
Definition at line 4034 of file gwf-maw.f90.

|
private |
| [in,out] | this | MawType object |
Definition at line 4054 of file gwf-maw.f90.
|
private |
Read itmp and new boundaries if itmp > 0
Definition at line 2261 of file gwf-maw.f90.

|
private |
Only done the first stress period since boundaries are fixed for the simulation
Definition at line 3854 of file gwf-maw.f90.

| pure real(dp) function, public mawmodule::maw_screen_length | ( | real(dp), intent(in) | dz, |
| real(dp), intent(in) | radius, | ||
| real(dp), intent(in) | omega | ||
| ) |
The length is derived from the vertical screen extent, the well radius, and the tilt angle, and grows without bound as the connection approaches horizontal.
| [in] | dz | vertical screen extent |
| [in] | radius | well radius |
| [in] | omega | tilt angle from vertical, in radians |
Definition at line 1382 of file gwf-maw.f90.

| subroutine mawmodule::maw_set_attribute_error | ( | class(mawtype), intent(inout) | this, |
| integer(i4b), intent(in) | imaw, | ||
| character(len=*), intent(in) | keyword, | ||
| character(len=*), intent(in) | msg | ||
| ) |
|
private |
Definition at line 3603 of file gwf-maw.f90.
| subroutine mawmodule::maw_set_stressperiod | ( | class(mawtype), intent(inout) | this, |
| integer(i4b), intent(in) | imaw, | ||
| integer(i4b), intent(inout) | iheadlimit_warning | ||
| ) |
|
private |
Definition at line 4785 of file gwf-maw.f90.

|
private |
The terms listed here must correspond in number and order to the ones written to the head table in the maw_ot method.
Definition at line 5198 of file gwf-maw.f90.

| character(len=lenftype) mawmodule::ftype = 'MAW' |
Definition at line 40 of file gwf-maw.f90.
| character(len=lenpackagename) mawmodule::text = ' MAW' |
Definition at line 41 of file gwf-maw.f90.