11 SUBROUTINE bc_phi(VAR, BC_PHIF, BC_PHIW, BC_HW_PHI, &
12 bc_c_phi, m, a_m, b_m)
47 INTEGER,
INTENT(IN) :: M
58 INTEGER :: I, J, K, I1, I2, J1, J2, K1, K2, IJK, &
74 IF (.NOT.is_on_mype_plus2layers(i1,j1,k1)) cycle
76 ijk = funijk(i1,j1,k1)
78 IF (default_wall_at(ijk))
THEN 100 IF (.NOT.is_on_mype_plus2layers(i1,j1,k1)) cycle
102 ijk = funijk(i1,j1,k1)
103 IF (default_wall_at(ijk))
THEN 125 IF (.NOT.is_on_mype_plus2layers(i1,j1,k1)) cycle
127 ijk = funijk(i1,j1,k1)
128 IF (default_wall_at(ijk))
THEN 149 IF (.NOT.is_on_mype_plus2layers(i1,j1,k1)) cycle
151 ijk = funijk(i1,j1,k1)
152 IF (default_wall_at(ijk))
THEN 173 IF (.NOT.is_on_mype_plus2layers(i1,j1,k1)) cycle
175 ijk = funijk(i1,j1,k1)
176 IF (default_wall_at(ijk))
THEN 197 IF (.NOT.is_on_mype_plus2layers(i1,j1,k1)) cycle
199 ijk = funijk(i1,j1,k1)
200 IF (default_wall_at(ijk))
THEN 239 IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
254 b_m(ijk,m) = var(ijk)
257 IF (fluid_at(east_of(ijk)))
THEN 262 b_m(ijk,m) = -bc_phiw(l)
266 a_m(ijk,0,m) = -(
half*bc_hw_phi(l)+
odx_e(i
271 ELSEIF (fluid_at(west_of(ijk)))
THEN 275 b_m(ijk,m) = -bc_phiw(l)
282 ELSEIF (fluid_at(north_of(ijk)))
THEN 286 b_m(ijk,m) = -bc_phiw(l)
288 a_m(ijk,0,m) = -(
half*bc_hw_phi(l)+
ody_n(j
293 ELSEIF (fluid_at(south_of(ijk)))
THEN 297 b_m(ijk,m) = -bc_phiw(l)
304 ELSEIF (fluid_at(top_of(ijk)))
THEN 308 b_m(ijk,m) = -bc_phiw(l)
315 ELSEIF (fluid_at(bottom_of(ijk)))
THEN 319 b_m(ijk,m) = -bc_phiw(l)
323 a_m(ijk,0,m) = -(
half*bc_hw_phi(l)+&
325 b_m(ijk,m) = -(bc_hw_phi(l)*bc_phiw(l)+&
358 IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
412 IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
424 b_m(ijk,m) = -var(ijk)
439 CALL bc_phi_cg(var, bc_phif, bc_phiw, bc_hw_phi, &
440 bc_c_phi, m, a_m, b_m)
455 SUBROUTINE bc_phi_cg(VAR, BC_PHIF, BC_PHIW, BC_HW_PHI, &
456 bc_c_phi, m, a_m, b_m)
486 DOUBLE PRECISION,
INTENT(IN) :: BC_phif(
dimension_bc), &
491 INTEGER,
INTENT(IN) :: M
500 INTEGER :: I, J, K, IJK, IM, JM, KM
507 LOGICAL :: ALONG_GLOBAL_GHOST_LAYER
518 IF(
do_k) along_global_ghost_layer = along_global_ghost_layer.OR.
529 b_m(ijk,m) = -var(ijk)
533 IF(
blocked_cell_at(ijk).OR.along_global_ghost_layer.AND.(.NOT.flow_at
THEN 539 bcv =
bc_id(ip_of(ijk))
546 IF (bct==cg_nsw.OR.bct==cg_fsw.OR.bct==cg_psw)
THEN 551 b_m(ijk,m) = -bc_phiw(l)
553 a_m(ijk,0,m) = -(
half*bc_hw_phi(l)+
odx_e(i))
555 b_m(ijk,m) = -(bc_hw_phi(l)*bc_phiw(l)+bc_c_phi(l))
560 bcv =
bc_id(im_of(ijk))
567 IF (bct==cg_nsw.OR.bct==cg_fsw.OR.bct==cg_psw)
THEN 572 b_m(ijk,m) = -bc_phiw(l)
575 a_m(ijk,0,m) = -(
half*bc_hw_phi(l)+
odx_e(im))
576 b_m(ijk,m) = -(bc_hw_phi(l)*bc_phiw(l)+bc_c_phi(l))
581 bcv =
bc_id(jp_of(ijk))
588 IF (bct==cg_nsw.OR.bct==cg_fsw.OR.bct==cg_psw)
THEN 593 b_m(ijk,m) = -bc_phiw(l)
595 a_m(ijk,0,m) = -(
half*bc_hw_phi(l)+
ody_n(j))
597 b_m(ijk,m) = -(bc_hw_phi(l)*bc_phiw(l)+bc_c_phi(l))
602 bcv =
bc_id(jm_of(ijk))
609 IF (bct==cg_nsw.OR.bct==cg_fsw.OR.bct==cg_psw)
THEN 614 b_m(ijk,m) = -bc_phiw(l)
617 a_m(ijk,0,m) = -(
half*bc_hw_phi(l)+
ody_n(jm))
618 b_m(ijk,m) = -(bc_hw_phi(l)*bc_phiw(l)+bc_c_phi(l))
623 bcv =
bc_id(kp_of(ijk))
630 IF (bct==cg_nsw.OR.bct==cg_fsw.OR.bct==cg_psw)
THEN 635 b_m(ijk,m) = -bc_phiw(l)
639 b_m(ijk,m) = -(bc_hw_phi(l)*bc_phiw(l)+bc_c_phi(l))
644 bcv =
bc_id(km_of(ijk))
651 IF (bct==cg_nsw.OR.bct==cg_fsw.OR.bct==cg_psw)
THEN 656 b_m(ijk,m) = -bc_phiw(l)
676 IF (bct==cg_mi.OR.bct==cg_po)
THEN 685 b_m(ijk,m) = -bc_phif(l)
integer, dimension(dimension_bc) bc_k_b
integer, dimension(:), allocatable i_of
double precision, parameter one
integer, dimension(dimension_bc) bc_i_w
integer, dimension(dimension_bc) bc_j_n
integer, dimension(:), allocatable im1
integer, dimension(10) cg_safe_mode
integer, parameter dimension_bc
integer, dimension(dimension_bc) bc_type_enum
double precision, parameter undefined
character, dimension(dimension_bc) bc_plane
integer, dimension(:), allocatable k_of
double precision, dimension(:), allocatable ody_n
integer, dimension(dimension_bc) bc_k_t
logical, dimension(:,:,:), allocatable dead_cell_at
integer, dimension(:), allocatable j_of
double precision, dimension(:), allocatable odx_e
integer, dimension(:), allocatable jm1
integer, dimension(dimension_bc) bc_j_s
double precision, dimension(:), allocatable ox
subroutine bc_phi(VAR, BC_PHIF, BC_PHIW, BC_HW_PHI, BC_C_PHI, M, A_M, B_M)
logical, dimension(dimension_bc) bc_defined
double precision, parameter half
logical, dimension(:), allocatable cut_cell_at
integer, dimension(:), allocatable km1
integer, dimension(:), allocatable bc_id
subroutine bc_phi_cg(VAR, BC_PHIF, BC_PHIW, BC_HW_PHI, BC_C_PHI, M, A_M, B_M)
logical, dimension(:), allocatable blocked_cell_at
double precision, dimension(:), allocatable odz_t
integer, dimension(dimension_bc) bc_i_e
double precision, parameter zero