MODFLOW 6
version 6.5.0.dev2
MODFLOW 6 Code Documentation
|
Stream Network Flow (SWF) Module. More...
Data Types | |
type | swfmodeltype |
Functions/Subroutines | |
subroutine, public | swf_cr (filename, id, modelname) |
Create a new stream network flow model object. More... | |
subroutine | allocate_scalars (this, modelname) |
Allocate memory for scalar members. More... | |
subroutine | allocate_arrays (this) |
Allocate memory for scalar members. More... | |
subroutine | swf_df (this) |
Define packages of the model. More... | |
subroutine | swf_ac (this, sparse) |
Add the internal connections of this model to the sparse matrix. More... | |
subroutine | swf_mc (this, matrix_sln) |
Map the positions of this models connections in the numerical solution coefficient matrix. More... | |
subroutine | swf_ar (this) |
SWF Allocate and Read. More... | |
subroutine | swf_rp (this) |
Stream Network Flow Model Read and Prepare. More... | |
subroutine | swf_ad (this) |
Stream Network Flow Model Time Step Advance. More... | |
subroutine | swf_cf (this, kiter) |
Calculate coefficients. More... | |
subroutine | swf_fc (this, kiter, matrix_sln, inwtflag) |
Fill coefficients. More... | |
subroutine | swf_nur (this, neqmod, x, xtemp, dx, inewtonur, dxmax, locmax) |
under-relaxation More... | |
subroutine | swf_cq (this, icnvg, isuppress_output) |
Calculate flow. More... | |
subroutine | swf_bd (this, icnvg, isuppress_output) |
Model Budget. More... | |
subroutine | swf_ot (this) |
Stream Network Flow Model Output. More... | |
subroutine | swf_ot_obs (this) |
subroutine | swf_ot_flow (this, icbcfl, ibudfl, icbcun) |
subroutine | swf_ot_dv (this, idvsave, idvprint, ipflag) |
subroutine | swf_ot_bdsummary (this, ibudfl, ipflag) |
subroutine | swf_da (this) |
Deallocate. More... | |
subroutine | swf_bdentry (this, budterm, budtxt, rowlabel) |
Surface Flow Model Budget Entry. More... | |
subroutine | package_create (this, filtyp, ipakid, ipaknum, pakname, mempath, inunit, iout) |
Create boundary condition packages for this model. More... | |
subroutine | ftype_check (this, indis) |
Check to make sure required input files have been specified. More... | |
subroutine | create_bndpkgs (this, bndpkgs, pkgtypes, pkgnames, mempaths, inunits) |
Source package info and begin to process. More... | |
subroutine | create_packages (this) |
Source package info and begin to process. More... | |
subroutine | log_namfile_options (this, found) |
Write model namfile options to list file. More... | |
subroutine | steady_period_check (this) |
Check for steady state period. More... | |
integer(i4b) function | swf_get_iasym (this) |
return 1 if any package causes the matrix to be asymmetric. Otherwise return 0. More... | |
Variables | |
integer(i4b), parameter, public | swf_nbasepkg = 9 |
SWF base package array descriptors. More... | |
character(len=lenpackagetype), dimension(swf_nbasepkg), public | swf_basepkg = ['DISV1D6', 'DIS2D6 ', 'DISV2D6', 'DFW6 ', 'CXS6 ', 'OC6 ', 'IC6 ', 'OBS6 ', 'STO6 '] |
integer(i4b), parameter, public | swf_nmultipkg = 50 |
SWF multi package array descriptors. More... | |
character(len=lenpackagetype), dimension(swf_nmultipkg), public | swf_multipkg |
integer(i4b), parameter | niunit_swf = SWF_NBASEPKG + SWF_NMULTIPKG |
This module contains the SWF Model
Status and remaining tasks ONGOING – Implement SWF infrastructure DONE – Implement Explicit Model Solution (EMS6) to handle explicit models DONE – Implement DISV1D Package DONE – Implement FLW Package to handle lateral and point inflows DONE – Transfer results into the flowja vector DONE – Implement strategy for storing outflow terms and getting them into budget DONE – Implement SWF and FLW advance routines to handle transient problems DONE – Implement storage terms and getting them into budget DONE – Observations DONE – Initial conditions? DONE – Rework the Iterative Model Solution (IMS6) to handle both implicit and explicit models DONE – Implement output control DONE – Add outflow as a dependent variable that can be written and printed (qoutflow) DONE – Revaluate explicit model solution and consider implementing ExplicitModelType? DONE – Add test of the binary outflow DONE – Rename Stream Network Flow (SWF) to Surface Water Flow (SWF) Model DONE – Rename segment to reach Look into mass conservative MC method (https://hess.copernicus.org/articles/11/1645/2007/hess-11-1645-2007.pdf) Implement IDOMAIN support Use dag_module to calculate iseg_order (if iseg_order not specified by user) We may need subcells and subtiming to improve accuracy Add support for nonlinear Muskingum Cunge Deal with the timestep and subtiming issues Flopy support for DISV1D and DISV1D binary grid file Flopy support for .output() method for SWF Mover support? SWF-SWF Exchange SWF-SWF Exchange in parallel Create QGW package for leakage into or out of groundwater
|
private |
subroutine swfmodule::allocate_scalars | ( | class(swfmodeltype) | this, |
character(len=*), intent(in) | modelname | ||
) |
|
private |
Definition at line 1080 of file swf.f90.
subroutine swfmodule::create_packages | ( | class(swfmodeltype) | this | ) |
Definition at line 1137 of file swf.f90.
subroutine swfmodule::ftype_check | ( | class(swfmodeltype) | this, |
integer(i4b), intent(in) | indis | ||
) |
subroutine swfmodule::log_namfile_options | ( | class(swfmodeltype) | this, |
type(swfnamparamfoundtype), intent(in) | found | ||
) |
Definition at line 1255 of file swf.f90.
subroutine swfmodule::package_create | ( | class(swfmodeltype) | this, |
character(len=*), intent(in) | filtyp, | ||
integer(i4b), intent(in) | ipakid, | ||
integer(i4b), intent(in) | ipaknum, | ||
character(len=*), intent(in) | pakname, | ||
character(len=*), intent(in) | mempath, | ||
integer(i4b), intent(in) | inunit, | ||
integer(i4b), intent(in) | iout | ||
) |
Definition at line 981 of file swf.f90.
subroutine swfmodule::steady_period_check | ( | class(swfmodeltype) | this | ) |
Write warning message if steady state period and adaptive time stepping is active for the period
Definition at line 1287 of file swf.f90.
|
private |
Definition at line 321 of file swf.f90.
subroutine swfmodule::swf_ad | ( | class(swfmodeltype) | this | ) |
(1) calls package advance subroutines
Definition at line 458 of file swf.f90.
|
private |
|
private |
subroutine swfmodule::swf_bdentry | ( | class(swfmodeltype) | this, |
real(dp), dimension(:, :), intent(in) | budterm, | ||
character(len=lenbudtxt), dimension(:), intent(in) | budtxt, | ||
character(len=*), intent(in) | rowlabel | ||
) |
This subroutine adds a budget entry to the flow budget. It was added as a method for the swf model object so that the exchange object could add its contributions.
(1) adds the entry to the budget object
Definition at line 963 of file swf.f90.
subroutine swfmodule::swf_cf | ( | class(swfmodeltype) | this, |
integer(i4b), intent(in) | kiter | ||
) |
subroutine swfmodule::swf_cq | ( | class(swfmodeltype) | this, |
integer(i4b), intent(in) | icnvg, | ||
integer(i4b), intent(in) | isuppress_output | ||
) |
subroutine, public swfmodule::swf_cr | ( | character(len=*), intent(in) | filename, |
integer(i4b), intent(in) | id, | ||
character(len=*), intent(in) | modelname | ||
) |
(1) creates model object and add to modellist (2) assign values
[in] | filename | input file |
[in] | id | consecutive model number listed in mfsim.nam |
[in] | modelname | name of the model |
Definition at line 144 of file swf.f90.
subroutine swfmodule::swf_da | ( | class(swfmodeltype) | this | ) |
Definition at line 898 of file swf.f90.
|
private |
|
private |
integer(i4b) function swfmodule::swf_get_iasym | ( | class(swfmodeltype) | this | ) |
subroutine swfmodule::swf_mc | ( | class(swfmodeltype) | this, |
class(matrixbasetype), pointer | matrix_sln | ||
) |
|
private |
subroutine swfmodule::swf_ot | ( | class(swfmodeltype) | this | ) |
Definition at line 720 of file swf.f90.
|
private |
Definition at line 865 of file swf.f90.
|
private |
|
private |
subroutine swfmodule::swf_ot_obs | ( | class(swfmodeltype) | this | ) |
|
private |
(1) calls package read and prepare routines
Definition at line 423 of file swf.f90.
|
private |
character(len=lenpackagetype), dimension(swf_nbasepkg), public swfmodule::swf_basepkg = ['DISV1D6', 'DIS2D6 ', 'DISV2D6', 'DFW6 ', 'CXS6 ', 'OC6 ', 'IC6 ', 'OBS6 ', 'STO6 '] |
character(len=lenpackagetype), dimension(swf_nmultipkg), public swfmodule::swf_multipkg |
integer(i4b), parameter, public swfmodule::swf_nbasepkg = 9 |