27 use usr_src, only: pressure_correction
35 DOUBLE PRECISION,
PARAMETER :: DEN = 1.0d1
44 DOUBLE PRECISION,
INTENT(IN) :: NORMg
46 DOUBLE PRECISION,
INTENT(OUT) :: RESg
48 INTEGER,
INTENT(INOUT) :: IER
55 DOUBLE PRECISION :: NORMGloc
87 IF(call_usr_source(1))
CALL calc_usr_source(pressure_correction,&
88 a_m,
b_m, lb_mmax=b_mmax, lm=0)
96 IF(normg ==
zero)
THEN 102 normgloc = resid(
resid_p,0)/den
149 use functions, only: is_on_mype_plus2layers
169 INTEGER :: IJK, I, J, K
173 DOUBLE PRECISION pSource
176 ps_lp:
do psv = 1, dimension_ps
178 if(.NOT.ps_defined(psv)) cycle ps_lp
181 do k = ps_k_b(psv), ps_k_t(psv)
182 do j = ps_j_s(psv), ps_j_n(psv)
185 if(.NOT.is_on_mype_plus2layers(i,j,k)) cycle
189 if(fluid_at(ijk))
then 190 psource = ps_massflow_g(psv) * (
vol(ijk)/ps_volume(psv))
192 b_m(ijk,0) = b_m(ijk,0) - psource
193 b_mmax(ijk,0) = max(abs(b_mmax(ijk,0)), abs(b_m(ijk,0)))
double precision, dimension(:,:,:), allocatable a_m
integer, dimension(dimension_ps) ps_i_w
logical, dimension(0:dim_m) momentum_y_eq
subroutine calc_usr_source(lEQ_NO, A_M, B_M, lB_MMAX, lM, lN)
double precision, parameter one
integer, parameter resid_p
subroutine init_ab_m(A_M, B_M, IJKMAX2A, M)
logical, dimension(0:dim_m) momentum_x_eq
double precision, dimension(:,:), allocatable den_resid
integer, dimension(dimension_ps) ps_j_n
double precision, dimension(:,:), allocatable num_resid
character(len=4), dimension(dim_eqs) leq_sweep
double precision, parameter undefined
double precision, dimension(dimension_ps) ps_massflow_g
logical, dimension(dimension_ps) ps_defined
double precision, dimension(:), allocatable pp_g
double precision, dimension(dimension_ps) ps_volume
subroutine source_pp_g(A_M, B_M, B_MMAX)
integer, dimension(dimension_ps) ps_k_b
double precision, dimension(:,:), allocatable max_resid
integer, dimension(dim_eqs) leq_it
logical, dimension(:,:,:), allocatable dead_cell_at
subroutine conv_pp_g(A_M, B_M)
double precision, parameter small_number
subroutine solve_pp_g(NORMG, RESG, IER)
subroutine calc_resid_pp(B_M, NORM, NUM, DEN, RESID, MAX_RESID, IJK_RESID)
integer, dimension(dimension_ps) ps_k_t
double precision, dimension(dim_eqs) leq_tol
integer, dimension(:,:), allocatable ijk_resid
integer, dimension(dim_eqs) leq_method
logical, dimension(dim_eqs) call_usr_source
double precision, dimension(:,:), allocatable resid
double precision, dimension(:,:), allocatable 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
subroutine point_source_pp_g(B_M, B_mmax)
subroutine solve_lin_eq(VNAME, Vno, VAR, A_M, B_M, M, ITMAX, METHOD, SWEEP, TOL1, PC, IER)
character(len=4), dimension(dim_eqs) leq_pc