![]() |
MODFLOW 6
version 6.9.0.dev0
USGS Modular Hydrologic Model
|
Data Types | |
| type | gwfnpftype |
| type | defaultflowformulationtype |
| Default conductance flow formulation. More... | |
Functions/Subroutines | |
| subroutine, public | npf_cr (npfobj, name_model, input_mempath, inunit, iout) |
| Create a new NPF object. Pass a inunit value of 0 if npf data will initialized from memory. More... | |
| subroutine | npf_df (this, dis, xt3d, ingnc, invsc, npf_options) |
| Define the NPF package instance. More... | |
| subroutine | npf_ac (this, moffset, sparse) |
| Add connections for extended neighbors to the sparse matrix. More... | |
| subroutine | npf_mc (this, moffset, matrix_sln) |
| Map connections and construct iax, jax, and idxglox. More... | |
| subroutine | npf_ar (this, ic, vsc, ibound, hnew) |
| Allocate and read this NPF instance. More... | |
| subroutine | npf_rp (this) |
| Read and prepare method for package. More... | |
| subroutine | npf_ad (this, nodes, hold, hnew, irestore) |
| Advance. More... | |
| subroutine | npf_cf (this, kiter, nodes, hnew) |
| Calculate coefficients. More... | |
| subroutine | default_flow_cf (this, kiter) |
| Calculate coefficients for the default conductance formulation. More... | |
| subroutine | cf_default_flow (this, kiter, n) |
| Calculate coefficients using the. More... | |
| subroutine | npf_fc (this, kiter, matrix_sln, idxglo, rhs, hnew) |
| Formulate coefficients. More... | |
| subroutine | fc_default_flow (this, n, m, ipos, matrix_sln, rhs, idxglo, hnew) |
| Calculate and add coefficients using the. More... | |
| subroutine | default_flow_fc (this, kiter, matrix_sln, idxglo, rhs, hnew) |
| Fill coefficients for the default conductance formulation. More... | |
| subroutine | highest_cell_saturation (this, n, m, hn, hm, satn, satm) |
| Calculate dry cell saturation. More... | |
| subroutine | npf_fn (this, kiter, matrix_sln, idxglo, rhs, hnew) |
| Fill newton terms. More... | |
| subroutine | default_flow_fn (this, kiter, matrix_sln, idxglo, rhs, hnew) |
| Fill newton terms for the default conductance formulation. More... | |
| subroutine | fn_default_flow (this, n, m, ipos, matrix_sln, rhs, idxglo, hnew) |
| subroutine | npf_nur (this, neqmod, x, xtemp, dx, inewtonur, dxmax, locmax) |
| Under-relaxation. More... | |
| subroutine | npf_cq (this, hnew, flowja) |
| Calculate flowja. More... | |
| subroutine | default_flow_cq (this, hnew, flowja) |
| Calculate flows for the default conductance formulation. More... | |
| subroutine | cq_default_flow (this, n, m, ipos, flowja, hnew) |
| subroutine | sgwf_npf_thksat (this, n, hn, thksat) |
| Fractional cell saturation. More... | |
| subroutine | sgwf_npf_qcalc (this, n, m, hn, hm, icon, qnm) |
| Flow between two cells. More... | |
| subroutine | npf_save_model_flows (this, flowja, icbcfl, icbcun) |
| Record flowja and calculate specific discharge if requested. More... | |
| subroutine | npf_print_model_flows (this, ibudfl, flowja) |
| Print budget. More... | |
| subroutine | npf_da (this) |
| Deallocate variables. More... | |
| subroutine | allocate_scalars (this) |
| @ brief Allocate scalars More... | |
| subroutine | store_original_k_arrays (this, ncells, njas) |
| @ brief Store backup copy of hydraulic conductivity when the VSC package is activate More... | |
| subroutine | allocate_arrays (this, ncells, njas) |
| Allocate npf arrays. More... | |
| subroutine | log_options (this, found) |
| Log npf options sourced from the input mempath. More... | |
| subroutine | source_options (this) |
| Update simulation options from input mempath. More... | |
| subroutine | set_options (this, options) |
| Set options in the NPF object. More... | |
| subroutine | check_options (this) |
| Check for conflicting NPF options. More... | |
| subroutine | log_griddata (this, found) |
| Write dimensions to list file. More... | |
| subroutine | source_griddata (this) |
| Update simulation griddata from input mempath. More... | |
| subroutine | prepcheck (this) |
| Initialize and check NPF data. More... | |
| subroutine | preprocess_input (this) |
| preprocess the NPF input data More... | |
| subroutine | calc_condsat (this, node, upperOnly) |
| Calculate CONDSAT array entries for the given node. More... | |
| real(dp) function | calc_initial_sat (this, n) |
| Calculate initial saturation for the given node. More... | |
| subroutine | sgwf_npf_wetdry (this, kiter, hnew) |
| Perform wetting and drying. More... | |
| subroutine | rewet_check (this, kiter, node, hm, ibdm, ihc, hnew, irewet) |
| Determine if a cell should rewet. More... | |
| subroutine | sgwf_npf_wdmsg (this, icode, ncnvrt, nodcnvrt, acnvrt, ihdcnv, kiter, n) |
| Print wet/dry message. More... | |
| real(dp) function | hy_eff (this, n, m, ihc, ipos, vg) |
| Calculate the effective hydraulic conductivity for the n-m connection. More... | |
| subroutine | calc_spdis (this, flowja) |
| Calculate the 3 components of specific discharge at the cell center. More... | |
| subroutine | sav_spdis (this, ibinun) |
| Save specific discharge in binary format to ibinun. More... | |
| subroutine | sav_sat (this, ibinun) |
| Save saturation in binary format to ibinun. More... | |
| subroutine | increase_edge_count (this, nedges) |
| Reserve space for nedges cells that have an edge on them. More... | |
| integer(i4b) function | calc_max_conns (this) |
| Calculate the maximum number of connections for any cell. More... | |
| subroutine | set_edge_properties (this, nodedge, ihcedge, q, area, nx, ny, distance) |
| Provide the npf package with edge properties. More... | |
| subroutine | prepare_edge_lookup (this) |
| real(dp) function | calcsatthickness (this, n, m, ihc) |
| Calculate saturated thickness between cell n and m. More... | |
| subroutine | add_flow_formulation (this, npf_form, form_id) |
|
private |
| [in,out] | this | this NPF instance |
| npf_form | the extended flow calculator | |
| form_id | the id for the flow formulation |
Definition at line 3133 of file gwf-npf.f90.
| subroutine gwfnpfmodule::allocate_arrays | ( | class(gwfnpftype), target | this, |
| integer(i4b), intent(in) | ncells, | ||
| integer(i4b), intent(in) | njas | ||
| ) |
Definition at line 1437 of file gwf-npf.f90.
| subroutine gwfnpfmodule::allocate_scalars | ( | class(gwfnpftype) | this | ) |
Allocate and initialize scalars for the VSC package. The base model allocate scalars method is also called.
Definition at line 1318 of file gwf-npf.f90.

| subroutine gwfnpfmodule::calc_condsat | ( | class(gwfnpftype) | this, |
| integer(i4b), intent(in) | node, | ||
| logical, intent(in) | upperOnly | ||
| ) |
Calculate saturated conductances for all connections of the given node, or optionally for the upper portion of the matrix only.
Definition at line 2277 of file gwf-npf.f90.

|
private |
Calculate saturation as a fraction of thickness for the given node, used for saturated conductance calculations: full thickness by default (1.0) or saturation based on initial conditions if the THICKSTRT option is used.
Definition at line 2373 of file gwf-npf.f90.
|
private |
Definition at line 3007 of file gwf-npf.f90.
|
private |
Definition at line 2686 of file gwf-npf.f90.

|
private |
| this | this NPF instance |
| n | node n |
| m | node m |
| ihc | 1 = horizontal connection, 0 for vertical |
Definition at line 3108 of file gwf-npf.f90.
|
private |
Definition at line 540 of file gwf-npf.f90.
|
private |
Definition at line 1698 of file gwf-npf.f90.

|
private |
Definition at line 1015 of file gwf-npf.f90.
|
private |
Runs over all cells and computes the saturated fraction for convertible cells, skipping cells claimed by an exclusive formulation.
| [in,out] | this | default formulation |
| [in] | kiter | outer iteration number |
Definition at line 523 of file gwf-npf.f90.
|
private |
Runs over all connections and stores the standard NPF face flows, skipping faces claimed by an exclusive formulation.
| [in,out] | this | default formulation |
| [in,out] | hnew | new head values |
| [in,out] | flowja | flow between cells |
Definition at line 993 of file gwf-npf.f90.
|
private |
Runs over all connections and fills the standard NPF conductance terms, skipping faces claimed by an exclusive formulation.
| [in,out] | this | default formulation |
| [in] | kiter | outer iteration number |
| [in,out] | matrix_sln | system matrix |
| [in] | idxglo | local to global connection map |
| [in,out] | rhs | right-hand side vector |
| [in,out] | hnew | new head values |
Definition at line 683 of file gwf-npf.f90.
|
private |
Runs over all connections and fills the standard NPF newton terms, skipping faces claimed by an exclusive formulation.
| [in,out] | this | default formulation |
| [in] | kiter | outer iteration number |
| [in,out] | matrix_sln | system matrix |
| [in] | idxglo | local to global connection map |
| [in,out] | rhs | right-hand side vector |
| [in,out] | hnew | new head values |
Definition at line 782 of file gwf-npf.f90.
|
private |
| this | this instance | |
| n | node number n | |
| m | node number m | |
| ipos | connection number | |
| matrix_sln | system matrix | |
| [in,out] | rhs | rhs vector |
| [in] | idxglo | lookup table from local ipos to global system |
| [in,out] | hnew | new head values |
Definition at line 589 of file gwf-npf.f90.

|
private |
Definition at line 811 of file gwf-npf.f90.

|
private |
Calculate the saturation based on the maximum cell bottom for two connected cells
Definition at line 718 of file gwf-npf.f90.

| real(dp) function gwfnpfmodule::hy_eff | ( | class(gwfnpftype) | this, |
| integer(i4b), intent(in) | n, | ||
| integer(i4b), intent(in) | m, | ||
| integer(i4b), intent(in) | ihc, | ||
| integer(i4b), intent(in), optional | ipos, | ||
| real(dp), dimension(3), intent(in), optional | vg | ||
| ) |
n is primary node node number m is connected node (not used if vg is provided) ihc is horizontal indicator (0 vertical, 1 horizontal, 2 vertically staggered) ipos_opt is position of connection in ja array vg is the global unit vector that expresses the direction from which to calculate an effective hydraulic conductivity.
Definition at line 2607 of file gwf-npf.f90.

|
private |
This must be called before the npfallocate_arrays routine, which is called from npfar.
Definition at line 2997 of file gwf-npf.f90.
| subroutine gwfnpfmodule::log_griddata | ( | class(gwfnpftype) | this, |
| type(gwfnpfparamfoundtype), intent(in) | found | ||
| ) |
Definition at line 1769 of file gwf-npf.f90.
|
private |
Definition at line 1515 of file gwf-npf.f90.
| subroutine gwfnpfmodule::npf_ac | ( | class(gwfnpftype) | this, |
| integer(i4b), intent(in) | moffset, | ||
| type(sparsematrix), intent(inout) | sparse | ||
| ) |
Definition at line 288 of file gwf-npf.f90.
|
private |
Sets hold (head old) to bot whenever a wettable cell is dry
Definition at line 430 of file gwf-npf.f90.
|
private |
Allocate remaining package arrays, preprocess the input data and call *_ar on xt3d, when active.
| this | instance of the NPF package | |
| [in] | ic | initial conditions |
| [in] | vsc | viscosity package |
| [in,out] | ibound | model ibound array |
| [in,out] | hnew | pointer to model head array |
Definition at line 316 of file gwf-npf.f90.

| subroutine gwfnpfmodule::npf_cf | ( | class(gwfnpftype) | this, |
| integer(i4b) | kiter, | ||
| integer(i4b), intent(in) | nodes, | ||
| real(dp), dimension(nodes), intent(inout) | hnew | ||
| ) |
Definition at line 494 of file gwf-npf.f90.
|
private |
Definition at line 964 of file gwf-npf.f90.
| subroutine, public gwfnpfmodule::npf_cr | ( | type(gwfnpftype), pointer | npfobj, |
| character(len=*), intent(in) | name_model, | ||
| character(len=*), intent(in) | input_mempath, | ||
| integer(i4b), intent(in) | inunit, | ||
| integer(i4b), intent(in) | iout | ||
| ) |
Definition at line 188 of file gwf-npf.f90.

| subroutine gwfnpfmodule::npf_da | ( | class(gwfnpftype) | this | ) |
Definition at line 1210 of file gwf-npf.f90.

| subroutine gwfnpfmodule::npf_df | ( | class(gwfnpftype) | this, |
| class(disbasetype), intent(inout), pointer | dis, | ||
| type(xt3dtype), pointer | xt3d, | ||
| integer(i4b), intent(in) | ingnc, | ||
| integer(i4b), intent(in) | invsc, | ||
| type(gwfnpfoptionstype), intent(in), optional | npf_options | ||
| ) |
This is a hybrid routine: it either reads the options for this package from the input file, or the optional argument
| npf_options | should be passed. A consistency check is performed, and finally xt3d_df is called, when enabled. | |
| this | instance of the NPF package | |
| [in,out] | dis | the pointer to the discretization |
| xt3d | the pointer to the XT3D 'package' | |
| [in] | ingnc | ghostnodes enabled? (>0 means yes) |
| [in] | invsc | viscosity enabled? (>0 means yes) |
| [in] | npf_options | the optional options, for when not constructing from file |
Definition at line 235 of file gwf-npf.f90.

|
private |
| this | this instance | |
| kiter | outer iteration number | |
| matrix_sln | the system to be formulated | |
| [in] | idxglo | lookup table from local to global connection number |
| [in,out] | rhs | the righthandside vector |
| [in,out] | hnew | the new head values |
Definition at line 561 of file gwf-npf.f90.
|
private |
Definition at line 747 of file gwf-npf.f90.
| subroutine gwfnpfmodule::npf_mc | ( | class(gwfnpftype) | this, |
| integer(i4b), intent(in) | moffset, | ||
| class(matrixbasetype), pointer | matrix_sln | ||
| ) |
Definition at line 302 of file gwf-npf.f90.
|
private |
Under-relaxation of Groundwater Flow Model Heads for current outer iteration using the cell bottoms at the bottom of the model
Definition at line 920 of file gwf-npf.f90.
|
private |
Definition at line 1171 of file gwf-npf.f90.
| subroutine gwfnpfmodule::npf_rp | ( | class(gwfnpftype) | this | ) |
Read and prepare NPF stress period data.
Definition at line 415 of file gwf-npf.f90.
|
private |
Definition at line 1134 of file gwf-npf.f90.
|
private |
Definition at line 3063 of file gwf-npf.f90.
| subroutine gwfnpfmodule::prepcheck | ( | class(gwfnpftype) | this | ) |
| subroutine gwfnpfmodule::preprocess_input | ( | class(gwfnpftype) | this | ) |
This routine consists of the following steps:
| this | the instance of the NPF package |
Definition at line 2075 of file gwf-npf.f90.

| subroutine gwfnpfmodule::rewet_check | ( | class(gwfnpftype) | this, |
| integer(i4b), intent(in) | kiter, | ||
| integer(i4b), intent(in) | node, | ||
| real(dp), intent(in) | hm, | ||
| integer(i4b), intent(in) | ibdm, | ||
| integer(i4b), intent(in) | ihc, | ||
| real(dp), dimension(:), intent(inout) | hnew, | ||
| integer(i4b), intent(out) | irewet | ||
| ) |
This method can be called from any external object that has a head that can be used to rewet the GWF cell node. The ihc value is used to determine if it is a vertical or horizontal connection, which can operate differently depending on user settings.
Definition at line 2494 of file gwf-npf.f90.
|
private |
Definition at line 2965 of file gwf-npf.f90.
| subroutine gwfnpfmodule::sav_spdis | ( | class(gwfnpftype) | this, |
| integer(i4b), intent(in) | ibinun | ||
| ) |
Definition at line 2937 of file gwf-npf.f90.
|
private |
Definition at line 3034 of file gwf-npf.f90.
| subroutine gwfnpfmodule::set_options | ( | class(gwfnpftype) | this, |
| type(gwfnpfoptionstype), intent(in) | options | ||
| ) |
Definition at line 1680 of file gwf-npf.f90.
|
private |
|
private |
|
private |
Definition at line 2554 of file gwf-npf.f90.
|
private |
| subroutine gwfnpfmodule::source_griddata | ( | class(gwfnpftype) | this | ) |
Definition at line 1819 of file gwf-npf.f90.

| subroutine gwfnpfmodule::source_options | ( | class(gwfnpftype) | this | ) |
Definition at line 1589 of file gwf-npf.f90.

| subroutine gwfnpfmodule::store_original_k_arrays | ( | class(gwfnpftype) | this, |
| integer(i4b), intent(in) | ncells, | ||
| integer(i4b), intent(in) | njas | ||
| ) |
The K arrays (K11, etc.) get multiplied by the viscosity ratio so that subsequent uses of K already take into account the effect of viscosity. Thus the original user-specified K array values are lost unless they are backed up in k11input, for example. In a new stress period/time step, the values in k11input are multiplied by the viscosity ratio, not k11 since it contains viscosity-adjusted hydraulic conductivity values.
Definition at line 1417 of file gwf-npf.f90.