20 use discretelement
, only: des_continuum_coupled
26 use functions, only: is_on_mype_plus2layers
51 use usr_src, only: gas_energy, solids_energy
57 INTEGER,
INTENT(INOUT) :: IER
68 DOUBLE PRECISION :: apo
70 INTEGER :: IJK, I, J, K
78 INTEGER :: Err_l(0:
numpes-1)
79 INTEGER :: Err_g(0:
numpes-1)
95 DOUBLE PRECISION,
DIMENSION(:,:),
ALLOCATABLE :: VXGAMA
121 IF (is_on_mype_plus2layers(
ip1(i),j,k))
THEN 123 cpxflux_e(ijk) =
half * (c_pg(ijk) + c_pg(ip_of(ijk))) * flux_ge
125 cpxflux_e(ijk) =
half * (c_pg(ijk) + c_pg(ip_of(ijk))) * flux_gse
129 IF (is_on_mype_plus2layers(i,
jp1(j),k))
THEN 131 cpxflux_n(ijk) =
half * (c_pg(ijk) + c_pg(jp_of(ijk))) * flux_gn
133 cpxflux_n(ijk) =
half * (c_pg(ijk) + c_pg(jp_of(ijk))) * flux_gsn
137 IF (is_on_mype_plus2layers(i,j,
kp1(k)))
THEN 139 cpxflux_t(ijk) =
half * (c_pg(ijk) + c_pg(kp_of(ijk))) *
flux_gt 141 cpxflux_t(ijk) =
half * (c_pg(ijk) + c_pg(kp_of(ijk))) *
flux_gst 145 IF (fluid_at(ijk))
THEN 146 apo = rop_go(ijk)*c_pg(ijk)*
vol(ijk)*
odt 147 s_p(ijk) = apo +
s_rpg(ijk)*
vol(ijk)
161 cpxflux_e, cpxflux_n, cpxflux_t, 0,
a_m,
b_m)
164 CALL bc_phi (t_g, bc_t_g, bc_tw_g, bc_hw_t_g, bc_c_t_g, 0,
a_m,
b_m 171 ps_cpxmflow_g, 0,
a_m,
b_m)
173 IF (call_usr_source(6))
CALL calc_usr_source(gas_energy, &
184 IF (is_on_mype_plus2layers(
ip1(i),j,k))
THEN 192 IF (is_on_mype_plus2layers(i,
jp1(j),k))
THEN 200 IF (is_on_mype_plus2layers(i,j,
kp1(k)))
THEN 208 IF (fluid_at(ijk))
THEN 210 s_p(ijk) = apo + s_rps(ijk,m)*
vol(ijk)
211 s_c(ijk) = apo*
t_so(ijk,m) - hor_s(ijk,m)*
vol(ijk) + &
212 s_rcs(ijk,m)*
vol(ijk)
213 vxgama(ijk,m) = gama_gs(ijk,m)*
vol(ijk)
214 eps(ijk) =
ep_s(ijk,m)
227 u_s(1,m),
v_s(1,m),
w_s(1,m), cpxflux_e, cpxflux_n, &
242 IF (call_usr_source(6))
CALL calc_usr_source(solids_energy, &
282 IF(ier == -2) err_l(
mype) = 120
286 IF(.NOT.wall_at(ijk))&
287 t_g(ijk) = min(
tmax, max(
tmin, t_g(ijk)))
298 IF(ier == -2) err_l(
mype) = 121
302 IF(.NOT.wall_at(ijk))&
integer, dimension(:), allocatable ip1
double precision, dimension(:,:,:), allocatable a_m
integer, parameter resid_t
double precision, dimension(:), allocatable flux_ge
double precision, dimension(:,:), allocatable gama_gs
double precision, dimension(:,:), allocatable v_s
double precision, dimension(:,:), allocatable c_ps
double precision, dimension(dim_eqs) ur_fac
integer, dimension(:), allocatable i_of
double precision, dimension(dimension_ps) ps_t_g
double precision, parameter tmax
double precision, dimension(:), allocatable ep_g
double precision, dimension(:), allocatable flux_gst
double precision, dimension(dimension_bc) bc_t_g
double precision, dimension(:,:), allocatable flux_st
subroutine calc_usr_source(lEQ_NO, A_M, B_M, lB_MMAX, lM, lN)
subroutine init_ab_m(A_M, B_M, IJKMAX2A, M)
double precision, dimension(dimension_bc) bc_hw_t_g
double precision, dimension(:,:), allocatable w_s
double precision, dimension(:,:), allocatable den_resid
double precision, dimension(:), allocatable t_g
double precision, dimension(dimension_bc, dim_m) bc_tw_s
double precision, dimension(:), allocatable flux_ssn
subroutine under_relax_s(VAR, A_M, B_M, M, UR)
subroutine calc_resid_s(VAR, A_M, B_M, M, NUM, DEN, RESID, MAX_RESID, IJK_RESID, TOL)
double precision, dimension(:,:), allocatable num_resid
double precision function s_rpg(IJK)
character(len=4), dimension(dim_eqs) leq_sweep
double precision, dimension(dimension_ps) ps_cpxmflow_g
double precision, dimension(:,:), allocatable t_so
double precision, dimension(:), allocatable t_go
double precision, parameter tmin
double precision, dimension(:,:), allocatable u_s
double precision, dimension(dimension_ps, dim_m) ps_t_s
double precision, dimension(:), allocatable mms_t_g_src
integer, dimension(:), allocatable k_of
double precision, dimension(:), allocatable flux_gse
double precision, dimension(dimension_ps, dim_m) ps_cpxmflow_s
double precision, dimension(:,:), allocatable max_resid
double precision function s_rps(IJK, M)
integer, dimension(dim_eqs) leq_it
double precision function s_rcg(IJK)
integer, dimension(:), allocatable j_of
double precision, dimension(dimension_bc, dim_m) bc_t_s
double precision, dimension(:), allocatable flux_gn
double precision, dimension(:,:), allocatable t_s
integer, dimension(:), allocatable jp1
double precision, dimension(dimension_bc) bc_tw_g
double precision, dimension(:), allocatable mms_t_s_src
subroutine bc_phi(VAR, BC_PHIF, BC_PHIW, BC_HW_PHI, BC_C_PHI, M, A_M, B_M)
double precision, dimension(:), allocatable v_g
subroutine solve_energy_eq(IER)
subroutine adjust_leq(RESID, LEQ_ITL, LEQ_METHODL, LEQI, LEQM)
integer, dimension(:), allocatable kp1
double precision, dimension(:), allocatable w_g
double precision, dimension(dim_eqs) leq_tol
double precision, parameter half
double precision, dimension(:,:), allocatable rop_so
double precision, dimension(:), allocatable flux_gt
double precision, dimension(dimension_bc) bc_c_t_g
integer, dimension(:,:), allocatable ijk_resid
double precision, dimension(:), allocatable rop_go
subroutine conv_dif_phi(PHI, DIF, DISC, UF, VF, WF, Flux_E, Flux_N, Flux_T, M, A_M, B_M)
double precision, dimension(dimension_bc, dim_m) bc_c_t_s
subroutine point_source_phi(PHI, PS_PHI, PS_FLOW, M, A_M, B_M)
double precision, dimension(:), allocatable u_g
double precision function ep_s(IJK, xxM)
double precision, dimension(:), allocatable k_g
integer, dimension(dim_eqs) discretize
integer, dimension(dim_eqs) leq_method
double precision, dimension(:,:), allocatable flux_se
double precision, dimension(:), allocatable flux_gsn
double precision function s_rcs(IJK, M)
subroutine source_phi(S_P, S_C, EP, PHI, M, A_M, B_M)
logical, dimension(dim_eqs) call_usr_source
double precision, dimension(:,:), allocatable resid
double precision, dimension(:,:), allocatable b_m
subroutine des_2fluid_conv(S_P, S_C)
double precision, dimension(:), allocatable vol
double precision, dimension(:,:), allocatable k_s
double precision, dimension(dimension_bc, dim_m) bc_hw_t_s
double precision, dimension(:,:), allocatable flux_sn
subroutine partial_elim_s(VAR_G, VAR_S, VXF, A_M, B_M)
double precision, parameter zero
double precision, dimension(:), allocatable flux_sst
double precision, dimension(:), allocatable c_pg
double precision, dimension(:), allocatable hor_g
double precision, dimension(:,:), allocatable hor_s
double precision, dimension(:), allocatable flux_sse
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