25 SUBROUTINE source_phi(S_P, S_C, EP, PHI, M, A_M, B_M)
60 INTEGER,
INTENT(IN) :: M
69 INTEGER :: IJK, IMJK, IJMK, IJKM
74 IF (fluid_at(ijk))
THEN 91 IF (ep(west_of(ijk)) >
dil_ep_s .AND. &
92 .NOT.is_at_e(imjk)) a_m(ijk,
west,m) =
one 93 IF (ep(east_of(ijk)) >
dil_ep_s .AND. &
94 .NOT.is_at_e(ijk)) a_m(ijk,
east,m) =
one 95 IF (ep(south_of(ijk)) >
dil_ep_s .AND. &
96 .NOT.is_at_n(ijmk)) a_m(ijk,
south,m) =
one 97 IF (ep(north_of(ijk)) >
dil_ep_s .AND. &
98 .NOT.is_at_n(ijk)) a_m(ijk,
north,m) =
one 100 IF (ep(bottom_of(ijk)) >
dil_ep_s .AND. &
101 .NOT.is_at_t(ijkm)) a_m(ijk,
bottom,m) =
one 102 IF (ep(top_of(ijk)) >
dil_ep_s .AND. &
103 .NOT.is_at_t(ijk)) a_m(ijk,
top,m) =
one 106 IF((a_m(ijk,
west,m)+a_m(ijk,
east,m)+&
109 b_m(ijk,m) = -phi(ijk)
111 a_m(ijk,0,m) = -(a_m(ijk,
east,m) + a_m(ijk,
west,m) +&
120 a_m(ijk,0,m) = -(a_m(ijk,
east,m)+a_m(ijk,
west,m)+&
126 IF(b_m(ijk,m) < s_c(ijk) .OR. phi(ijk) ==
zero)
THEN 127 b_m(ijk,m) = -s_c(ijk)+b_m(ijk,m)
129 a_m(ijk,0,m) = a_m(ijk,0,m) - b_m(ijk,m)/phi(ijk)
130 b_m(ijk,m) = -s_c(ijk)
180 DOUBLE PRECISION,
INTENT(IN) :: PS_PHI(dimension_bc)
183 DOUBLE PRECISION,
INTENT(IN) :: PS_FLOW(dimension_bc)
185 INTEGER,
intent(in) :: M
198 INTEGER :: IJK, I, J, K
202 DOUBLE PRECISION pSource
206 psv_lp:
do psv = 1, dimension_ps
215 if(.NOT.is_on_mype_plus2layers(i,j,k)) cycle
219 if(.NOT.fluid_at(ijk)) cycle
221 if(a_m(ijk,0,m) == -
one .AND. b_m(ijk,m) == -phi(ijk))
then 222 b_m(ijk,m) = -ps_phi(psv)
228 a_m(ijk,0,m) = a_m(ijk,0,m) - psource
229 b_m(ijk,m) = b_m(ijk,m) - ps_phi(psv) * psource
integer, dimension(dimension_ps) ps_i_w
double precision, parameter one
integer, dimension(dimension_ps) ps_j_n
logical, dimension(dimension_ps) ps_defined
double precision, dimension(dimension_ps) ps_volume
integer, dimension(dimension_ps) ps_k_b
logical, dimension(:,:,:), allocatable dead_cell_at
double precision, parameter small_number
integer, dimension(dimension_ps) ps_k_t
double precision, parameter dil_ep_s
subroutine point_source_phi(PHI, PS_PHI, PS_FLOW, M, A_M, B_M)
subroutine source_phi(S_P, S_C, EP, PHI, M, A_M, B_M)
integer, dimension(dimension_ps) ps_j_s
double precision, dimension(:), allocatable vol
integer, dimension(dimension_ps) ps_i_e
double precision, parameter zero