![]() |
MODFLOW 6
version 6.7.0.dev1
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... | |
logical(lgp) function | is_3d (this) |
@Brief return true if grid is three dimensional More... | |
logical(lgp) function | is_2d (this) |
@Brief return true if grid is two dimensional More... | |
logical(lgp) function | is_1d (this) |
@Brief return true if grid is one dimensional More... | |
|
private |
Definition at line 451 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 314 of file DiscretizationBase.f90.
|
private |
[in] | noden | cell (reduced nn) |
[in] | nodem | neighbor (reduced nn) |
[in] | ihc | horizontal connection flag |
Definition at line 332 of file DiscretizationBase.f90.
|
private |
Definition at line 134 of file DiscretizationBase.f90.
|
private |
Definition at line 175 of file DiscretizationBase.f90.
|
private |
Definition at line 206 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 155 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 351 of file DiscretizationBase.f90.
|
private |
|
private |
|
private |
[in] | node | reduced node number |
Definition at line 1106 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 1123 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 1149 of file DiscretizationBase.f90.
|
private |
|
private |
Definition at line 279 of file DiscretizationBase.f90.
|
private |
Definition at line 290 of file DiscretizationBase.f90.
|
private |
Definition at line 301 of file DiscretizationBase.f90.
|
private |
Definition at line 267 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 670 of file DiscretizationBase.f90.
|
private |
Definition at line 1068 of file DiscretizationBase.f90.
|
private |
Definition at line 1194 of file DiscretizationBase.f90.
|
private |
Definition at line 1181 of file DiscretizationBase.f90.
|
private |
Definition at line 1168 of file DiscretizationBase.f90.
|
private |
For DIS/DISV, the array is layer number, for DISU it's node number.
Definition at line 1055 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 582 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 534 of file DiscretizationBase.f90.
|
private |
Definition at line 976 of file DiscretizationBase.f90.
|
private |
Definition at line 963 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 511 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 484 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 699 of file DiscretizationBase.f90.
|
private |
Definition at line 681 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 905 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 757 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 926 of file DiscretizationBase.f90.
|
private |
|
private |
Definition at line 1009 of file DiscretizationBase.f90.
|
private |
|
private |
|
private |