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

Data Types

interface  freundlichisothermtype
 Freundlich isotherm implementation of IsothermType. More...
 

Functions/Subroutines

type(freundlichisothermtype) function constructor (Kf, a)
 Constructor for Freundlich isotherm. More...
 
real(dp) function value (this, c, n)
 Evaluate the isotherm at a given node. More...
 
real(dp) function derivative (this, c, n)
 Evaluate derivative of the isotherm at a given node. More...
 

Function/Subroutine Documentation

◆ constructor()

type(freundlichisothermtype) function freundlichisothermmodule::constructor ( real(dp), dimension(:), intent(in), pointer  Kf,
real(dp), dimension(:), intent(in), pointer  a 
)
private

Definition at line 30 of file FreundlichIsotherm.f90.

31  type(FreundlichIsothermType) :: isotherm
32  ! -- dummy
33  real(DP), pointer, dimension(:), intent(in) :: Kf
34  real(DP), pointer, dimension(:), intent(in) :: a
35  ! -- local
36  isotherm%Kf => kf
37  isotherm%a => a
38 
Here is the caller graph for this function:

◆ derivative()

real(dp) function freundlichisothermmodule::derivative ( class(freundlichisothermtype), intent(in)  this,
real(dp), dimension(:), intent(in)  c,
integer(i4b), intent(in)  n 
)
private
Returns
derivative d(value)/dc evaluated at c
Parameters
[in]cconcentration array
[in]nnode index

Definition at line 60 of file FreundlichIsotherm.f90.

61  ! -- return
62  real(DP) :: derv !< derivative d(value)/dc evaluated at c
63  ! -- dummy
64  class(FreundlichIsothermType), intent(in) :: this
65  real(DP), dimension(:), intent(in) :: c !< concentration array
66  integer(I4B), intent(in) :: n !< node index
67 
68  if (c(n) > 0.0_dp) then
69  derv = this%a(n) * this%Kf(n) * c(n)**(this%a(n) - 1.0_dp)
70  else
71  derv = 0.0_dp
72  end if

◆ value()

real(dp) function freundlichisothermmodule::value ( class(freundlichisothermtype), intent(in)  this,
real(dp), dimension(:), intent(in)  c,
integer(i4b), intent(in)  n 
)
private
Returns
isotherm value
Parameters
[in]cconcentration array
[in]nnode index

Definition at line 43 of file FreundlichIsotherm.f90.

44  ! -- return
45  real(DP) :: val !< isotherm value
46  ! -- dummy
47  class(FreundlichIsothermType), intent(in) :: this
48  real(DP), dimension(:), intent(in) :: c !< concentration array
49  integer(I4B), intent(in) :: n !< node index
50 
51  if (c(n) > 0.0_dp) then
52  val = this%Kf(n) * c(n)**this%a(n)
53  else
54  val = 0.0_dp
55  end if