MODFLOW 6
version 6.7.0.dev0
USGS Modular Hydrologic Model
|
Data Types | |
type | disbasetype |
Functions/Subroutines | |
subroutine | dis_df (this) |
Define the discretization. More... | |
subroutine | dis_ac (this, moffset, sparse) |
Add connections to sparse cell connectivity matrix. More... | |
subroutine | dis_mc (this, moffset, idxglo, matrix_sln) |
Map cell connections in the numerical solution coefficient matrix. More... | |
subroutine | dis_ar (this, icelltype) |
Allocate and setup variables, and write binary grid file. More... | |
subroutine | write_grb (this, icelltype) |
Write a binary grid file. More... | |
subroutine | dis_da (this) |
@brier Deallocate variables More... | |
subroutine | nodeu_to_string (this, nodeu, str) |
Convert a user nodenumber to a string (nodenumber), (k,j), or (k,i,j) More... | |
subroutine | nodeu_to_array (this, nodeu, arr) |
Convert a user nodenumber to an array (nodenumber), (k,j), or (k,i,j) More... | |
integer(i4b) function | get_nodeuser (this, noder) |
Convert a reduced nodenumber to a user node number. More... | |
integer(i4b) function | get_nodenumber_idx1 (this, nodeu, icheck) |
integer(i4b) function | get_nodenumber_idx2 (this, k, j, icheck) |
integer(i4b) function | get_nodenumber_idx3 (this, k, i, j, icheck) |
subroutine | connection_normal (this, noden, nodem, ihc, xcomp, ycomp, zcomp, ipos) |
Get normal vector components between the cell and a given neighbor. The normal points outward from the shared face between noden and nodem. More... | |
subroutine | connection_vector (this, noden, nodem, nozee, satn, satm, ihc, xcomp, ycomp, zcomp, conlen) |
Get unit vector components between the cell and a given neighbor. Saturation must be provided to compute cell center vertical coordinates. Also return the straight-line connection length. More... | |
subroutine, public | dis_transform_xy (x, y, xorigin, yorigin, angrot, xglo, yglo) |
Get global (x, y) coordinates from cell-local coordinates. More... | |
subroutine | get_dis_type (this, dis_type) |
Get the discretization type (DIS, DISV, or DISU) More... | |
integer(i4b) function | get_dis_enum (this) |
Get the discretization type enumeration. More... | |
subroutine | allocate_scalars (this, name_model, input_mempath) |
Allocate and initialize scalar variables. More... | |
subroutine | allocate_arrays (this) |
Allocate and initialize arrays. More... | |
integer(i4b) function | nodeu_from_string (this, lloc, istart, istop, in, iout, line, flag_string, allow_zero) |
Convert a string to a user nodenumber. More... | |
integer(i4b) function | nodeu_from_cellid (this, cellid, inunit, iout, flag_string, allow_zero) |
Convert a cellid string to a user nodenumber. More... | |
integer(i4b) function | noder_from_string (this, lloc, istart, istop, in, iout, line, flag_string) |
Convert a string to a reduced nodenumber. More... | |
integer(i4b) function | noder_from_cellid (this, cellid, inunit, iout, flag_string, allow_zero) |
Convert cellid string to reduced nodenumber. More... | |
logical function | supports_layers (this) |
Indicates whether the grid discretization supports layers. More... | |
integer(i4b) function | get_ncpl (this) |
Return number of cells per layer. This is nodes for a DISU grid, as there are no layers. More... | |
real(dp) function | get_cell_volume (this, n, x) |
Return volume of cell n based on x value passed. More... | |
subroutine | get_polyverts (this, ic, polyverts, closed) |
Get a 2D array of polygon vertices, listed in clockwise order beginning with the lower left corner. More... | |
subroutine | read_int_array (this, line, lloc, istart, istop, iout, in, iarray, aname) |
Read an integer array. More... | |
subroutine | read_dbl_array (this, line, lloc, istart, istop, iout, in, darray, aname) |
Read a double precision array. More... | |
subroutine | fill_int_array (this, ibuff1, ibuff2) |
Fill an integer array. More... | |
subroutine | fill_dbl_array (this, buff1, buff2) |
Fill a double precision array. More... | |
subroutine | read_list (this, line_reader, in, iout, iprpak, nlist, inamedbound, iauxmultcol, nodelist, rlist, auxvar, auxname, boundname, label, pkgname, tsManager, iscloc, indxconvertflux) |
Read a list using the list reader. More... | |
subroutine | read_layer_array (this, nodelist, darray, ncolbnd, maxbnd, icolbnd, aname, inunit, iout) |
Read a 2d double array into col icolbnd of darray. More... | |
subroutine | record_array (this, darray, iout, iprint, idataun, aname, cdatafmp, nvaluesp, nwidthp, editdesc, dinact) |
Record a double precision array. More... | |
subroutine | record_connection_array (this, flowja, ibinun, iout) |
Record a connection-based double precision array. More... | |
subroutine | noder_to_string (this, noder, str) |
Convert reduced node number to string (nodenumber), (k,j) or (k,i,j) More... | |
subroutine | noder_to_array (this, noder, arr) |
Convert reduced node number to array (nodenumber), (k,j) or (k,i,j) More... | |
subroutine | record_srcdst_list_header (this, text, textmodel, textpackage, dstmodel, dstpackage, naux, auxtxt, ibdchn, nlist, iout) |
Record list header for imeth=6. More... | |
subroutine | record_srcdst_list_entry (this, ibdchn, noder, noder2, q, naux, aux, olconv, olconv2) |
Record list header. More... | |
subroutine | nlarray_to_nodelist (this, darray, nodelist, maxbnd, nbound, aname) |
Convert an integer array to nodelist. More... | |
subroutine | highest_active (this, n, ibound) |
Find the first highest active cell beneath cell n. More... | |
real(dp) function | get_area (this, node) |
Return the cell area for the given node. More... | |
real(dp) function | get_area_factor (this, node, idx_conn) |
@ brief Calculate the area factor for the cell connection More... | |
subroutine | get_flow_width (this, n, m, idx_conn, width_n, width_m) |
@ brief Calculate the flow width between two cells More... | |
|
private |
Definition at line 445 of file DiscretizationBase.f90.
subroutine basedismodule::allocate_scalars | ( | class(disbasetype) | this, |
character(len=*), intent(in) | name_model, | ||
character(len=*), intent(in) | input_mempath | ||
) |
|
private |
[in] | noden | cell (reduced nn) |
[in] | nodem | neighbor (reduced nn) |
[in] | ihc | horizontal connection flag |
Definition at line 308 of file DiscretizationBase.f90.
|
private |
[in] | noden | cell (reduced nn) |
[in] | nodem | neighbor (reduced nn) |
[in] | ihc | horizontal connection flag |
Definition at line 326 of file DiscretizationBase.f90.
|
private |
Definition at line 128 of file DiscretizationBase.f90.
|
private |
Definition at line 169 of file DiscretizationBase.f90.
|
private |
Definition at line 200 of file DiscretizationBase.f90.
|
private |
subroutine basedismodule::dis_mc | ( | class(disbasetype) | this, |
integer(i4b), intent(in) | moffset, | ||
integer(i4b), dimension(:), intent(inout) | idxglo, | ||
class(matrixbasetype), pointer | matrix_sln | ||
) |
Definition at line 149 of file DiscretizationBase.f90.
subroutine, public basedismodule::dis_transform_xy | ( | real(dp), intent(in) | x, |
real(dp), intent(in) | y, | ||
real(dp), intent(in) | xorigin, | ||
real(dp), intent(in) | yorigin, | ||
real(dp), intent(in) | angrot, | ||
real(dp), intent(out) | xglo, | ||
real(dp), intent(out) | yglo | ||
) |
[in] | x | the cell-x coordinate to transform |
[in] | y | the cell-y coordinate to transform |
[in] | xorigin | the cell-y coordinate to transform |
[in] | yorigin | the cell-y coordinate to transform |
[in] | angrot | the cell-y coordinate to transform |
[out] | xglo | the global cell-x coordinate |
[out] | yglo | the global cell-y coordinate |
Definition at line 345 of file DiscretizationBase.f90.
|
private |
|
private |
|
private |
[in] | node | reduced node number |
Definition at line 1100 of file DiscretizationBase.f90.
|
private |
Function calculates the area factor for the cell connection. The sum of all area factors for all cell connections to overlying or underlying cells cells will be 1.
TODO: confirm that this works for cells that are only partially covered by overlying or underlying cells.
[in] | node | cell node number |
[in] | idx_conn | connection index |
Definition at line 1117 of file DiscretizationBase.f90.
|
private |
|
private |
|
private |
|
private |
This should only be called for connections with IHC > 0. Routine is needed, so it can be overridden by the linear network discretization, which allows for a separate flow
[in] | n | cell node number |
[in] | m | cell node number |
[in] | idx_conn | connection index |
[out] | width_n | flow width for cell n |
[out] | width_m | flow width for cell m |
Definition at line 1143 of file DiscretizationBase.f90.
|
private |
|
private |
Definition at line 273 of file DiscretizationBase.f90.
|
private |
Definition at line 284 of file DiscretizationBase.f90.
|
private |
Definition at line 295 of file DiscretizationBase.f90.
|
private |
Definition at line 261 of file DiscretizationBase.f90.
|
private |
[in] | ic | cell number (reduced) |
[out] | polyverts | polygon vertices (column-major indexing) |
[in] | closed | whether to close the polygon, duplicating a vertex |
Definition at line 664 of file DiscretizationBase.f90.
|
private |
Definition at line 1062 of file DiscretizationBase.f90.
|
private |
For DIS/DISV, the array is layer number, for DISU it's node number.
Definition at line 1049 of file DiscretizationBase.f90.
|
private |
If flag_string argument is present and true, the first token in string is allowed to be a string (e.g. boundary name). In this case, if a string is encountered, return value as -2. If allow_zero argument is present and true, if all indices equal zero, the result can be zero. If allow_zero is false, a zero in any index is an error.
Definition at line 576 of file DiscretizationBase.f90.
|
private |
If the model is unstructured; just read user nodenumber. If flag_string argument is present and true, the first token in string is allowed to be a string (e.g. boundary name). In this case, if a string is encountered, return value as -2.
Definition at line 528 of file DiscretizationBase.f90.
|
private |
Definition at line 970 of file DiscretizationBase.f90.
|
private |
Definition at line 957 of file DiscretizationBase.f90.
|
private |
If flag_string is present and true, the first token may be non-numeric (e.g. boundary name). In this case, return -2.
If allow_zero is present and true, and all indices are zero, the result can be zero. If allow_zero is false, a zero in any index is an error.
Definition at line 505 of file DiscretizationBase.f90.
|
private |
If DIS or DISV, read indices. If DISU, read user node number directly. If flag_string is present and true, the first token may be non-numeric (e.g. boundary name). In this case, return -2.
Definition at line 478 of file DiscretizationBase.f90.
|
private |
subroutine basedismodule::nodeu_to_string | ( | class(disbasetype) | this, |
integer(i4b), intent(in) | nodeu, | ||
character(len=*), intent(inout) | str | ||
) |
|
private |
Definition at line 693 of file DiscretizationBase.f90.
|
private |
Definition at line 675 of file DiscretizationBase.f90.
subroutine basedismodule::read_layer_array | ( | class(disbasetype) | this, |
integer(i4b), dimension(maxbnd) | nodelist, | ||
real(dp), dimension(ncolbnd, maxbnd), intent(inout) | darray, | ||
integer(i4b), intent(in) | ncolbnd, | ||
integer(i4b), intent(in) | maxbnd, | ||
integer(i4b), intent(in) | icolbnd, | ||
character(len=*), intent(in) | aname, | ||
integer(i4b), intent(in) | inunit, | ||
integer(i4b), intent(in) | iout | ||
) |
For cells that are outside of the active domain, do not copy the array value into darray.
Definition at line 899 of file DiscretizationBase.f90.
|
private |
Convert user node numbers to reduced numbers. Terminate if any nodenumbers are within an inactive domain. Set up time series and multiply by iauxmultcol if it exists. Write the list to iout if iprpak is set.
Definition at line 751 of file DiscretizationBase.f90.
|
private |
The array is written to a formatted or unformatted external file depending on the arguments.
[in,out] | darray | double precision array to record |
[in] | iout | ascii output unit number |
[in] | iprint | whether to print the array |
[in] | idataun | binary output unit number |
[in] | aname | text descriptor |
[in] | cdatafmp | write format |
[in] | nvaluesp | values per line |
[in] | nwidthp | number width |
[in] | editdesc | format type (I, G, F, S, E) |
[in] | dinact | double precision value for cells excluded from model domain |
Definition at line 920 of file DiscretizationBase.f90.
|
private |
|
private |
Definition at line 1003 of file DiscretizationBase.f90.
|
private |
|
private |
|
private |