18 real(dp),
dimension(:),
pointer :: phi
36 interpolation_scheme%dis => dis
37 interpolation_scheme%fmi => fmi
49 real(DP),
intent(in),
dimension(:),
pointer :: phi
54 function compute(this, n, m, iposnm)
result(phi_face)
59 integer(I4B),
intent(in) :: n
60 integer(I4B),
intent(in) :: m
61 integer(I4B),
intent(in) :: iposnm
63 real(dp) :: lnm, lmn, omega
67 if (this%dis%con%ihc(this%dis%con%jas(iposnm)) == 0)
then
69 lnm =
dhalf * (this%dis%top(n) - this%dis%bot(n))
70 lmn =
dhalf * (this%dis%top(m) - this%dis%bot(m))
73 lnm = this%dis%con%cl1(this%dis%con%jas(iposnm))
74 lmn = this%dis%con%cl2(this%dis%con%jas(iposnm))
77 omega = lmn / (lnm + lmn)
80 phi_face%c_m =
done - omega
type(coefficientstype) function compute(this, n, m, iposnm)
subroutine set_field(this, phi)
Set the scalar field for which interpolation will be computed.
type(centraldifferenceschemetype) function constructor(dis, fmi)
This module contains simulation constants.
real(dp), parameter dhalf
real constant 1/2
real(dp), parameter done
real constant 1
This module defines variable data types.