24 real(dp),
pointer,
dimension(:) :: kf => null()
25 real(dp),
pointer,
dimension(:) :: a => null()
42 real(dp),
pointer,
dimension(:),
intent(in) :: kf
43 real(dp),
pointer,
dimension(:),
intent(in) :: a
52 function value(this, c, n)
result(val)
57 real(dp),
dimension(:),
intent(in) :: c
58 integer(I4B),
intent(in) :: n
59 real(dp),
parameter :: k = 10.0_dp
62 eps = (k / (this%a(n) * this%Kf(n)))**(1.0_dp / (this%a(n) - 1.0_dp))
64 if (c(n) >
dzero)
then
65 val = this%Kf(n) * (c(n) + eps)**this%a(n) - this%Kf(n) * eps**this%a(n)
78 real(dp),
dimension(:),
intent(in) :: c
79 integer(I4B),
intent(in) :: n
80 real(dp),
parameter :: k = 10.0_dp
83 eps = (k / (this%a(n) * this%Kf(n)))**(1.0_dp / (this%a(n) - 1.0_dp))
85 if (c(n) >
dzero)
then
86 derv = this%a(n) * this%Kf(n) * ((c(n) + eps)**(this%a(n) - 1.0_dp))
This module contains simulation constants.
real(dp), parameter dzero
real constant zero
real(dp) function value(this, c, n)
Evaluate the isotherm at a given node.
real(dp) function derivative(this, c, n)
Evaluate derivative of the isotherm at a given node.
type(freundlichisothermtype) function constructor(Kf, a)
Constructor for Freundlich isotherm.
This module defines variable data types.
Freundlich isotherm implementation of IsothermType.