MODFLOW 6  version 6.8.0.dev0
USGS Modular Hydrologic Model
freundlichisothermmodule::freundlichisothermtype Interface Reference

Freundlich isotherm implementation of IsothermType. More...

Inheritance diagram for freundlichisothermmodule::freundlichisothermtype:
Inheritance graph
Collaboration diagram for freundlichisothermmodule::freundlichisothermtype:
Collaboration graph

Private Member Functions

procedure derivative
 
type(freundlichisothermtype) function constructor (Kf, a)
 Constructor for Freundlich isotherm. More...
 

Private Attributes

real(dp), dimension(:), pointer kf => null()
 Freundlich constant. More...
 
real(dp), dimension(:), pointer a => null()
 Freundlich exponent. More...
 

Detailed Description

Sorbed concentration is cs = Kf*c^a.

However, this expression has a singularity at c = 0 when a < 1, leading to infinite derivative. To avoid this, the Freundlich isotherm is modified as follows.

Modified Sorbed concentration is cs = Kf*(c + eps)^a - Kf*eps^a where eps = (K/(a*Kf))^(1/(a-1)) and K is a large constant (default 10). This ensures that the derivative at c = 0 is below K.

Definition at line 23 of file FreundlichIsotherm.f90.

Member Function/Subroutine Documentation

◆ constructor()

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

Definition at line 39 of file FreundlichIsotherm.f90.

40  type(FreundlichIsothermType) :: isotherm
41  ! -- dummy
42  real(DP), pointer, dimension(:), intent(in) :: Kf
43  real(DP), pointer, dimension(:), intent(in) :: a
44  ! -- local
45  isotherm%Kf => kf
46  isotherm%a => a
47 

◆ derivative()

procedure freundlichisothermmodule::freundlichisothermtype::derivative
private

Definition at line 28 of file FreundlichIsotherm.f90.

Here is the call graph for this function:

Member Data Documentation

◆ a

real(dp), dimension(:), pointer freundlichisothermmodule::freundlichisothermtype::a => null()
private

Definition at line 25 of file FreundlichIsotherm.f90.

25  real(DP), pointer, dimension(:) :: a => null() !< Freundlich exponent

◆ kf

real(dp), dimension(:), pointer freundlichisothermmodule::freundlichisothermtype::kf => null()
private

Definition at line 24 of file FreundlichIsotherm.f90.

24  real(DP), pointer, dimension(:) :: Kf => null() !< Freundlich constant

The documentation for this interface was generated from the following file: