MODFLOW 6  version 6.7.0.dev3
USGS Modular Hydrologic Model
celldefnmodule Module Reference

Data Types

type  celldefntype
 Base grid cell definition. More...
 

Enumerations

enum  
 Cell saturation status. More...
 

Functions/Subroutines

subroutine, public create_defn (cellDefn)
 Create a new cell definition object. More...
 
integer(i4b) function, public get_iatop (ncpl, icu)
 Get the index corresponding to top elevation of a cell in the grid. This is -1 if the cell is in the top layer and 1 otherwise. More...
 
logical(lgp) function get_ispv180 (this, m)
 Return 180-degree indicator for a vertex. More...
 
real(dp) function get_botflow (this)
 Return the bottom flow. More...
 
real(dp) function get_topflow (this)
 Return the top flow. More...
 
real(dp) function get_distflow (this)
 Return the distributed flow. More...
 
real(dp) function get_faceflow (this, m)
 Return a face flow. More...
 

Variables

@, public saturation_dry = 0
 
@, public saturation_watertable = 1
 
@, public saturation_saturated = 2
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
private

Status 0 indicates that the cell is dry. Status 1 indicates that the cell contains a water table. Since a water table might exist exactly at the top face, status 1 includes that case. Status 2 is reserved for a fully saturated cell with no water table.

Definition at line 18 of file CellDefn.f90.

Function/Subroutine Documentation

◆ create_defn()

subroutine, public celldefnmodule::create_defn ( type(celldefntype), pointer  cellDefn)

Definition at line 57 of file CellDefn.f90.

58  type(CellDefnType), pointer :: cellDefn
59  allocate (celldefn)
60  ! Initially, allocate arrays to size for structured grid tracking method.
61  ! They can be (lazily) expanded as necessary for the unstructured method.
62  allocate (celldefn%ispv180(5))
63  allocate (celldefn%facenbr(7))
64  allocate (celldefn%faceflow(7))
Here is the caller graph for this function:

◆ get_botflow()

real(dp) function celldefnmodule::get_botflow ( class(celldefntype), intent(inout)  this)
private

Definition at line 89 of file CellDefn.f90.

90  class(CellDefnType), intent(inout) :: this
91  real(DP) :: botflow
92  botflow = this%faceflow(this%npolyverts + 2)

◆ get_distflow()

real(dp) function celldefnmodule::get_distflow ( class(celldefntype), intent(inout)  this)
private

Definition at line 103 of file CellDefn.f90.

104  class(CellDefnType), intent(inout) :: this
105  real(DP) :: distflow
106  distflow = this%distflow

◆ get_faceflow()

real(dp) function celldefnmodule::get_faceflow ( class(celldefntype), intent(inout)  this,
integer(i4b)  m 
)
private

Definition at line 110 of file CellDefn.f90.

111  class(CellDefnType), intent(inout) :: this
112  integer(I4B) :: m
113  real(DP) :: faceflow
114  faceflow = this%faceflow(m)

◆ get_iatop()

integer(i4b) function, public celldefnmodule::get_iatop ( integer(i4b), intent(in)  ncpl,
integer(i4b), intent(in)  icu 
)

Definition at line 69 of file CellDefn.f90.

70  integer(I4B), intent(in) :: ncpl, icu
71  integer(I4B) :: iatop
72 
73  if (icu .le. ncpl) then
74  iatop = -1
75  else
76  iatop = 1
77  end if
Here is the caller graph for this function:

◆ get_ispv180()

logical(lgp) function celldefnmodule::get_ispv180 ( class(celldefntype), intent(inout)  this,
integer(i4b)  m 
)
private

Definition at line 81 of file CellDefn.f90.

82  class(CellDefnType), intent(inout) :: this
83  integer(I4B) :: m
84  logical(LGP) :: ispv180
85  ispv180 = this%ispv180(m)

◆ get_topflow()

real(dp) function celldefnmodule::get_topflow ( class(celldefntype), intent(inout)  this)
private

Definition at line 96 of file CellDefn.f90.

97  class(CellDefnType), intent(inout) :: this
98  real(DP) :: topflow
99  topflow = this%faceflow(this%npolyverts + 3)

Variable Documentation

◆ saturation_dry

@, public celldefnmodule::saturation_dry = 0

Definition at line 19 of file CellDefn.f90.

19  enumerator :: SATURATION_DRY = 0

◆ saturation_saturated

@, public celldefnmodule::saturation_saturated = 2

Definition at line 21 of file CellDefn.f90.

21  enumerator :: SATURATION_SATURATED = 2

◆ saturation_watertable

@, public celldefnmodule::saturation_watertable = 1

Definition at line 20 of file CellDefn.f90.

20  enumerator :: SATURATION_WATERTABLE = 1