51 USE run, only:
dt,
dt_prev,
run_type,
time,
tstop,
nstep,
nsteprst,
cn_on,
get_tunit,
steady_state 98 WRITE (*,
'(/A,G12.5, A,F9.3,1X,A)') &
99 ' Starting solids mass = ',
smass 106 WRITE (*,
'(/A,G12.5, A,G12.5, A,F9.3,1X,A)')&
107 ' Time = ',
time,
' Dt = ', 2.d0*
dt 109 WRITE (*,
'(/A,G12.5, A,G12.5, A,F9.3,1X,A)') &
110 ' Time = ',
time,
' Dt = ',
dt 129 lmsg =
'Run diverged/stalled' 147 USE discretelement
, only: discrete_element, des_continuum_hybrid
157 USE run, only:
auto_restart,
automatic_restart,
call_dqmom,
call_usr,
chk_batchq_end,
friction, ghd_2007,
granular_energy,
k_epsilon, kt_type_enum,
phip_out_iter,
energy_eq,
dt,
ier,
steady_state 214 IF(.NOT.(discrete_element .OR.
qmomk) .OR. &
215 des_continuum_hybrid)
THEN 259 IF(.NOT.(discrete_element .OR.
qmomk) .OR. &
260 des_continuum_hybrid)
THEN 303 IF(.NOT.discrete_element .OR. des_continuum_hybrid)
THEN 388 lmsg =
'Negative gas density detected' 389 ELSEIF(
ier == 101)
THEN 390 lmsg =
'Negative solids density detected' 392 lmsg =
'UCE in PHYSICAL_PROP' 398 ELSEIF(
ier < 120)
THEN 400 lmsg =
'Negative void fraction detected' 402 lmsg =
'UCE in CALC_VOL_FR' 408 ELSEIF(
ier < 130)
THEN 410 lmsg =
'Energy Equation diverged' 412 lmsg =
'UCE in SOLVE_ENERGY_EQ' 418 ELSEIF(
ier < 140)
THEN 420 lmsg =
'Species Equation diverged' 422 lmsg =
'UCE in SOLVE_SPECIES_EQ' 428 ELSEIF(
ier < 150)
THEN 430 lmsg =
'Granular Energy Eq diverged' 432 lmsg =
'UCE in SOLVE_GRANULAR_ENERGY' 438 lmsg =
'Run diverged/stalled with UCE' 485 5100
FORMAT(1x,
't=',f11.4,
' Dt=',g11.4,
' NIT>',i3,
' Sm= ',g12.5, &
509 CHARACTER(LEN=4) :: TUNIT
533 5200
FORMAT(1x,
't=',f11.4,
' Dt=',g11.4,
' NIT=',&
534 i3,
'MbErr%=', g11.4,
': ',a,
' :-(')
561 CHARACTER(LEN=4) :: TUNIT
585 DOUBLE PRECISION :: CPU_NOW
587 DOUBLE PRECISION :: HLOSS
589 DOUBLE PRECISION :: Vavg
594 DOUBLE PRECISION,
EXTERNAL :: VAVG_U_G, VAVG_V_G, VAVG_W_G, &
595 VAVG_U_S, VAVG_V_S, VAVG_W_S
597 CALL cpu_time (cpu_now)
601 cpu_now = cpu_now -
cpu0 616 5000
FORMAT(1x,
't=',f11.4,
' Dt=',g11.4,
' NIT=',i3,
' Sm=',g12.5, &
617 ' Hl=',g12.5,t84,
'CPU=',f8.0,
' s')
619 5001
FORMAT(1x,
't=',f11.4,
' Dt=',g11.4,
' NIT=',i3,
' Sm=',g12.5, &
620 t84,
'CPU=',f8.0,
' s')
626 5002
FORMAT(3x,
'MbError%(0,MMAX):', 5(1x,g11.4))
634 IF (cyclic_x .OR. cyclic_y .OR. cyclic_z)
THEN 665 5050
FORMAT(5x,
'Average ',a,g12.5)
666 5060
FORMAT(5x,
'Average ',a,i2,a,g12.5)
700 INTEGER,
INTENT(INOUT) :: NIT, MUSTIT
701 LOGICAL,
INTENT(IN) :: doit
705 INTEGER,
PARAMETER :: MAXOUTIT = 500
706 DOUBLE PRECISION,
PARAMETER :: omega = 0.9
707 DOUBLE PRECISION,
PARAMETER :: TOL = 1e-03
708 INTEGER,
SAVE :: OUTIT
709 LOGICAL,
SAVE :: firstPass = .true.
711 DOUBLE PRECISION,
SAVE :: mdot_n, mdot_nm1, delp_n, delp_nm1, err
712 DOUBLE PRECISION :: mdot_0, delp_xyz
717 DOUBLE PRECISION,
EXTERNAL :: VAVG_Flux_U_G, VAVG_Flux_V_G, &
737 IF(outit > maxoutit)
THEN 738 IF (
mype.EQ.
pe_io)
write(*,5400) maxoutit
747 mdot_n = vavg_flux_u_g()
749 mdot_n = vavg_flux_v_g()
751 mdot_n = vavg_flux_w_g()
755 IF (
mype.eq.
pe_io)
write(*,*) mdot_n, delp_n, &
756 ' NaN being caught in GoalSeekMassFlux ' 760 err = abs((mdot_n - mdot_0)/mdot_0)
769 if(.not.firstpass)
then 775 delp_xyz = delp_n - omega * (delp_n - delp_nm1) * &
776 ((mdot_n - mdot_0)/(mdot_nm1 - mdot_0)) / &
777 ((mdot_n - mdot_0)/(mdot_nm1 - mdot_0) -
one)
780 delp_xyz = delp_n*0.99
784 IF(
mype.eq.
pe_io)
Write(*,5500)
time, outit, delp_xyz, mdot_n
801 5400
FORMAT(/1
x,70(
'*')//
' From: GoalSeekMassFlux',/&
802 ' Message: Number of outer iterations exceeded ', i4,/1
x,70(
'*')/)
803 5500
Format(
' Time=', g12.5,
' MassFluxIterations=', i4,
' DelP=', &
804 g12.5,
' Gas Flux=', g12.5)
852 INTEGER,
PARAMETER :: STEPS_MIN = 5
854 INTEGER,
SAVE :: STEPS_TOT=0
856 INTEGER,
SAVE :: NIT_TOT=0
858 DOUBLE PRECISION,
SAVE :: NIToS=0.0
860 DOUBLE PRECISION :: NITOS_NEW
862 LOGICAL :: CN_ADJUST_DT
867 use_dt_prev = .false.
873 cn_adjust_dt = cn_on .AND. ((run_type==
'NEW' .AND. nstep>1) .OR. &
874 (run_type/=
'NEW' .AND. nstep >= (nsteprst+1)))
882 IF(cn_adjust_dt)
dt = 2.0d0*
dt 885 IF(steps_tot >= steps_min)
THEN 886 nitos_new = dble(nit_tot)/(steps_tot*
dt)
895 IF(persistent_mode)
dt = max(
dt, dt_min)
902 WRITE(
err_msg,
"('DT=',g11.4,3x,'NIT/s=',A)") &
903 dt, trim(
ival(nint(nitos)))
905 footer=.false., log=.false.)
908 steps_tot = steps_tot + 1
909 nit_tot = nit_tot +
nit 914 IF(cn_adjust_dt)
dt = 0.5d0*
dt 925 IF(cn_adjust_dt)
dt = 2.0d0*
dt 937 IF (dt_fac >=
one)
THEN 939 IF(persistent_mode)
THEN 943 'DT_FAC >= 1. Recovery not possible!' 945 header=.false., footer=.false.)
948 ELSEIF (
dt > dt_min)
THEN 950 WRITE(
err_msg,
"(3X,'Recovered: Dt=',G12.5,' :-)')")
dt 959 IF(cn_adjust_dt)
dt = 0.5d0*
dt 965 IF(persistent_mode)
dt = max(
dt, dt_min)
subroutine calc_k_cp(Kcp)
subroutine calc_resid_mb(INIT, ErrorPercent)
double precision time_nlog
subroutine calc_rrate(IER)
subroutine solve_vel_star(IER)
double precision, dimension(:), allocatable ep_g
subroutine update_dashboard(NIT, TLEFT, TUNIT)
subroutine k_epsilon_prop()
double precision, parameter one
integer, parameter unit_out
integer, parameter resid_p
subroutine solve_scalar_eq(IER)
subroutine solve_epp(NORMS, RESS, IER)
double precision cpu_nlog
subroutine solve_granular_energy(IER)
logical automatic_restart
subroutine adjust_eps_ghd
double precision, parameter undefined
subroutine get_hloss(HLOSS)
double precision, dimension(:), allocatable errorpercent
logical function adjustdt()
subroutine mfix_exit(myID, normal_termination)
subroutine physical_prop(IER, LEVEL)
subroutine calc_coeff(IER, pLevel)
double precision, parameter small_number
character(len=40) run_status
subroutine solve_pp_g(NORMG, RESG, IER)
character(len=16) run_type
subroutine dump_to_screen
subroutine calc_vol_fr(P_STAR, RO_G, ROP_G, EP_G, ROP_S, IER)
subroutine get_smass(SMASS)
subroutine check_convergence(NIT, errorpercent, MUSTIT)
subroutine solve_energy_eq(IER)
integer, parameter unit_log
subroutine calc_trd_and_tau()
subroutine display_resid(NIT)
double precision, dimension(:), allocatable p_star
logical function ier_manager()
subroutine set_ep_factors
integer, parameter undefined_i
character(len=line_length), dimension(line_count) err_msg
subroutine goalseekmassflux(NIT, MUSTIT, doit)
logical function mfix_isnan(x)
subroutine radial_vel_correction
subroutine calc_p_star(EP_G, P_STAR)
subroutine solve_species_eq(IER)
double precision, dimension(:,:), allocatable rop_s
double precision, dimension(:), allocatable k_cp
double precision, dimension(:,:), allocatable resid
subroutine solve_continuity(M, IER)
subroutine cg_set_outflow
double precision, dimension(:), allocatable ro_g
double precision, dimension(:), allocatable rop_g
subroutine get_tunit(TLEFT, TUNIT)
subroutine solve_k_epsilon_eq(IER)
double precision, dimension(:), allocatable x
double precision, parameter zero
subroutine flush_err_msg(DEBUG, HEADER, FOOTER, ABORT, LOG, CALL_TREE)