MODFLOW 6
version 6.9.0.dev0
USGS Modular Hydrologic Model
Main Page
Modules
Data Types
Files
File List
File Members
Loading...
Searching...
No Matches
FlowReductionInterface.f90
Go to the documentation of this file.
1
module
flowreductioninterfacemodule
2
use
kindmodule
,
only
: dp, i4b
3
4
implicit none
5
private
6
public
::
flowreductiontype
7
8
!> @brief Interface for supplying a flow-reduction factor.
9
!!
10
!! A stress package that reduces a withdrawal, such as the Well Package
11
!! with AUTO_FLOW_REDUCE, multiplies the requested rate by a factor that
12
!! falls from one to zero as the fluid runs out. On its own the package
13
!! judges that from the cell: the factor tapers over a length measured up
14
!! from the cell bottom, and only a convertible cell can run dry.
15
!!
16
!! A flow formulation may know better how much of the fluid being
17
!! withdrawn the cell holds: a sharp interface knows the elevation range
18
!! the fluid occupies, and an unsaturated-flow formulation knows its
19
!! saturation. Such a formulation implements this interface and returns the
20
!! factor itself, with its derivative, so the stress package applies it
21
!! without knowing which formulation provided it, or whether one did at all.
22
!<
23
type
,
abstract
::
flowreductiontype
24
contains
25
procedure
(
reduce_if
),
deferred
:: reduce
!< Factor for node n
26
end type
flowreductiontype
27
28
abstract
interface
29
!> @brief Flow-reduction factor for a node, and its derivative
30
!!
31
!! The taper length is what the stress package was asked to taper over,
32
!! resolved to a length: the per-boundary auxiliary value or the package
33
!! value, a fraction of the cell thickness already converted. An
34
!! implementation decides how much of its fluid the cell holds, tapers
35
!! the factor over that length from where the fluid runs out, and may
36
!! ignore the length if its fluid never runs out at a definite elevation.
37
!! The factor is one where nothing limits the withdrawal and zero where
38
!! there is nothing to withdraw; the derivative is with respect to the
39
!! head of the cell in this model.
40
!<
41
subroutine
reduce_if
(this, n, h, taper, f, dfdh)
42
! -- import
43
import
::
flowreductiontype
, dp, i4b
44
! -- dummy
45
class
(
flowreductiontype
),
intent(in)
:: this
!< flow reduction provider
46
integer(I4B)
,
intent(in)
:: n
!< reduced node number
47
real
(DP),
intent(in)
:: h
!< head in the cell
48
real
(DP),
intent(in)
:: taper
!< length to taper the factor over
49
real
(DP),
intent(out)
:: f
!< factor to apply to the requested rate
50
real
(DP),
intent(out)
:: dfdh
!< derivative of the factor with respect to head
51
end subroutine
reduce_if
52
end interface
53
54
end module
flowreductioninterfacemodule
flowreductioninterfacemodule::reduce_if
Flow-reduction factor for a node, and its derivative.
Definition
FlowReductionInterface.f90:41
flowreductioninterfacemodule
Definition
FlowReductionInterface.f90:1
kindmodule
This module defines variable data types.
Definition
kind.f90:8
flowreductioninterfacemodule::flowreductiontype
Interface for supplying a flow-reduction factor.
Definition
FlowReductionInterface.f90:23
src
Model
ModelUtilities
FlowReductionInterface.f90
Generated on
for MODFLOW 6 by
1.18.0