![]() |
MODFLOW 6
version 6.8.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... | |
| 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 3473 of file gwf-maw.f90.
|
private |
Definition at line 5151 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 5136 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 1911 of file gwf-maw.f90.
|
private |
Definition at line 5168 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 5192 of file gwf-maw.f90.
| subroutine mawmodule::maw_ad | ( | class(mawtype) | this | ) |
Definition at line 2439 of file gwf-maw.f90.
| subroutine mawmodule::maw_allocate_arrays | ( | class(mawtype), intent(inout) | this | ) |
Definition at line 553 of file gwf-maw.f90.
|
private |
Definition at line 283 of file gwf-maw.f90.
| subroutine mawmodule::maw_allocate_well_conn_arrays | ( | class(mawtype), intent(inout) | this | ) |
Definition at line 338 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 2125 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 1334 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 5236 of file gwf-maw.f90.
|
private |
Definition at line 4536 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 2981 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 2513 of file gwf-maw.f90.
| subroutine mawmodule::maw_cfupdate | ( | class(mawtype) | this | ) |
Definition at line 4622 of file gwf-maw.f90.
| subroutine mawmodule::maw_check_attributes | ( | class(mawtype), intent(inout) | this | ) |
Definition at line 1840 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 3103 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 246 of file gwf-maw.f90.


| subroutine mawmodule::maw_da | ( | class(mawtype) | this | ) |
Definition at line 3348 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 2950 of file gwf-maw.f90.

|
private |
Overrides BndTypebnd_df_obs
Definition at line 3547 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 4881 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 1941 of file gwf-maw.f90.
|
private |
Two corrections are applied to each well head, in order:
Definition at line 2866 of file gwf-maw.f90.

| logical function mawmodule::maw_obs_supported | ( | class(mawtype) | this | ) |
Overrides BndTypebnd_obs_supported()
Definition at line 3537 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 3333 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 3278 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 3238 of file gwf-maw.f90.
|
private |
Definition at line 3252 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 3876 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 1083 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 2001 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 566 of file gwf-maw.f90.

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

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

|
private |
Only done the first stress period since boundaries are fixed for the simulation
Definition at line 3748 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 3497 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 4679 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 5092 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.