76 INTEGER :: I, J, K, IJK
99 (ier, i, j, k,
mu_gt(ijk),
'/=',
zero,
'MU_GT')
106 (ier, i, j, k, k_g(ijk),
'/=',
zero,
'K_G')
110 (ier, i, j, k,
dif_g(ijk,n),
'/=',
zero,
'DIF_G',n)
116 (ier, i, j, k,
mu_s(ijk,m),
'/=',
zero,
'MU_S',m)
122 (ier, i, j, k, k_s(ijk,m),
'/=',
zero,
'K_S', m)
126 (ier, i,j,k,
dif_s(ijk,m,n),
'/=',
zero,
'DIF_S',m,n)
136 WRITE(
err_msg,
"('End of Report.')")
186 INTEGER :: I, J, K, IJK
195 report_species = .false.
197 DO k = kstart2, kend2
198 DO j = jstart2, jend2
199 DO i = istart2, iend2
202 IF (.NOT.wall_at(ijk))
THEN 206 (ier, i, j, k, mu_g(ijk),
'<',
zero,
'MU_G')
216 (ier, i, j, k, k_g(ijk),
'<',
zero,
'K_G')
219 (ier, i, j, k, c_pg(ijk),
'<=',
zero,
'C_PG')
222 (ier, i, j, k, t_g(ijk),
'<=',
tmin,
'T_G')
224 (ier, i, j, k, t_g(ijk),
'>=',
tmax,
'T_G')
229 (ier, i,j,k, dif_g(ijk,n),
'<',
zero,
'DIF_G',n)
231 (ier, i, j, k, x_g(ijk,n),
'<',
zero,
'X_G',n)
233 (ier, i, j, k, x_g(ijk,n),
'>',
one,
'X_G',n)
239 IF(abs(
one - sum(x_g(ijk,1:nmax(0)))) >
tol_com) &
240 report_species(0) = .true.
247 (ier,i,j,k,
r_gp(ijk,n),
'<',
zero,
'R_GP',n)
249 (ier,i,j,k,rox_gc(ijk,n),
'<',
zero,
'RoX_GC',n)
259 (ier, i, j, k,
mu_s(ijk,m),
'<',
zero,
'MU_S',m)
265 (ier, i, j, k, k_s(ijk,m),
'<',
zero,
'K_S',m)
269 (ier, i, j, k, c_ps(ijk,m),
'<=',
zero,
'C_PS',m)
273 (ier, i, j, k, t_s(ijk,m),
'<=',
tmin,
'T_S',m)
275 (ier, i, j, k, t_s(ijk,m),
'>=',
tmax,
'T_S',m)
281 (ier, i, j, k, dif_s(ijk,m,n),
'<',
zero,
'DIF_S',m,n)
287 IF(abs(
one-sum(x_s(ijk,m,1:nmax(m)))) >
tol_com) &
288 report_species(m) = .true.
293 (ier, i,j,k, x_s(ijk,m,n),
'<',
zero,
'X_S',m,n)
295 (ier, i,j,k, x_s(ijk,m,n),
'>',
one,
'X_S',m,n)
304 (ier,i,j,k,
r_sp(ijk,m,n),
'<',
zero,
'R_SP',m,n)
306 (ier,i,j,k,rox_sc(ijk,m,n),
'<',
zero,
'RoX_SC',m,n)
319 WRITE(
err_msg,
"('End of Report.')")
363 INTEGER :: I, J, K, IJK, L
373 DOUBLE PRECISION :: lSUM
381 4000
FORMAT(
'Time = ',g12.5,/
'Warning: The sum of mass fractions ', &
382 'is not equal to one.')
390 DO k = kstart2, kend2
391 DO j = jstart2, jend2
392 DO i = istart2, iend2
395 IF (.NOT.wall_at(ijk))
THEN 397 IF(species_eq(0))
THEN 398 lsum = sum(x_g(ijk,1:
nmax(0)))
399 IF (lsum < min_val(0))
THEN 403 IF (lsum > max_val(0))
THEN 408 count(0,1) = count(0,1) + 1
409 ELSE IF (lsum < 0.99)
THEN 410 count(0,2) = count(0,2) + 1
411 ELSE IF (lsum < 0.999)
THEN 412 count(0,3) = count(0,3) + 1
413 ELSE IF (lsum < 0.9999)
THEN 414 count(0,4) = count(0,4) + 1
415 ELSE IF (lsum < 1.0001)
THEN 416 count(0,5) = count(0,5) + 1
417 ELSE IF (lsum < 1.001)
THEN 418 count(0,6) = count(0,6) + 1
419 ELSE IF (lsum < 1.01)
THEN 420 count(0,7) = count(0,7) + 1
421 ELSE IF (lsum < 1.1)
THEN 422 count(0,8) = count(0,8) + 1
424 count(0,9) = count(0,9) + 1
431 IF(species_eq(m))
THEN 432 lsum = sum(x_s(ijk,m,1:
nmax(m)) )
433 IF(
rop_s(ijk,m) /= zero)
THEN 434 IF(lsum < min_val(m))
THEN 438 IF (lsum > max_val(m))
THEN 443 count(m,1) = count(m,1) + 1
444 ELSE IF (lsum < 0.99)
THEN 445 count(m,2) = count(m,2) + 1
446 ELSE IF (lsum < 0.999)
THEN 447 count(m,3) = count(m,3) + 1
448 ELSE IF (lsum < 0.9999)
THEN 449 count(m,4) = count(m,4) + 1
450 ELSE IF (lsum < 1.0001)
THEN 451 count(m,5) = count(m,5) + 1
452 ELSE IF (lsum < 1.001)
THEN 453 count(m,6) = count(m,6) + 1
454 ELSE IF (lsum < 1.01)
THEN 455 count(m,7) = count(m,7) + 1
456 ELSE IF (lsum < 1.1)
THEN 457 count(m,8) = count(m,8) + 1
459 count(m,9) = count(m,9) + 1
477 4100
FORMAT(//
'Statistics of sum of gas species mass fraction',/ &
478 1x,
'Minimum sum of X_g=',g12.5,/1x,
'Maximum sum of X_g=', &
479 g12.5,2/,3x,
'Sum of X_g',t20,
'No of Cells Distribution')
481 IF(report_species(0))
THEN 482 lsum = sum(count(0,:))
483 WRITE(
err_msg,4100) min_val(0), max_val(0)
485 WRITE(
err_msg,4999) (count(0,l),dble(count(0,l))/lsum,l=1,9)
490 4200
FORMAT(//
'Statistics of sum of solids phase ',i2,
' species ', &
491 'mass fractions',/1x,
'Minimum sum of X_s=',g12.5,/1x, &
492 'Maximum sum of X_s=',g12.5,2/,3x,
'Sum of ',a,t20,
'No of ', &
493 'Cells',2x,
'Distribution')
496 IF(report_species(m))
THEN 497 lsum = sum(count(m,:))
498 WRITE(
err_msg,4200) m, min_val(m), max_val(m), &
501 WRITE(
err_msg,4999) (count(m,l),dble(count(m,l))/lsum,l=1,9)
506 WRITE(
err_msg,
"(/'End of report.')")
510 1x,
'<0.9 ',t20,i9,t33,g12.5,/&
511 1x,
' 0.9 - 0.99 ',t20,i9,t33,g12.5,/&
512 1x,
' 0.99 - 0.999 ',t20,i9,t33,g12.5,/&
513 1x,
' 0.999 - 0.9999',t20,i9,t33,g12.5,/&
514 1x,
' 0.9999 - 1.0001',t20,i9,t33,g12.5,/&
515 1x,
' 1.0001 - 1.001 ',t20,i9,t33,g12.5,/&
516 1x,
' 1.001 - 1.01 ',t20,i9,t33,g12.5,/&
517 1x,
' 1.01 - 1.1 ',t20,i9,t33,g12.5,/&
518 1x,
'>1.1 ',t20,i9,t33,g12.5)
572 INTEGER :: I, J, K, IJK
575 DOUBLE PRECISION :: lSUM
590 DO k = kstart2, kend2
591 DO j = jstart2, jend2
592 DO i = istart2, iend2
595 IF (.NOT.wall_at(ijk))
THEN 604 IF(abs(lsum) > abs(max_val(1)))
THEN 610 count(1,2) = count(1,2) + 1
612 count(1,1) = count(1,1) + 1
626 lm = l + 1 + (m - 1)*m/2
629 lm = m + 1 + (l - 1)*l/2
635 IF(abs(lsum) > abs(max_val(l+2)))
THEN 642 count(l+2,2) = count(l+2,2) + 1
646 count(l+2,1) = count(l+2,1) + 1
658 IF(sum(count(:,2)) > 0)
THEN 665 IF(count(1,2) > 0)
THEN 666 WRITE(
err_msg, 5100) count(1,1), count(1,2), max_val(1)
671 IF(count(l+2,2) > 0)
THEN 672 WRITE(
err_msg, 5200) l, count(l+2,1), count(l+2,2),&
678 WRITE(
err_msg,
"(/'End of report.')")
685 5000
FORMAT(5
x,
'Time = ',g12.5,/&
686 'Message: One or more of the following errors detected:',/ &
687 ' 1. Discrepancies in the reaction rates.',/ &
688 ' 2. The rate of production of phases (SUM_R_g or SUM_R_s)',/&
689 ' and the interphase mass transfer rates (R_Phase) are',/ &
690 ' inconsistent (in subroutine RRATES).',/4
x,
'I',t14,
'J', &
691 t24,
'K',t34,
'M',t45,
'Value')
693 5100
FORMAT(//
'Sum of all the reaction rates is not zero!',/, &
694 'Number of cells with discrepancy < error tolerance = ',i5,/, &
695 'Number of cells with discrepancy > error tolerance = ',i5,/, &
696 'Maximum discrepancy = ',g12.5)
698 5200
FORMAT(//
'Mesage: Production of phase ',i2,
' not equal to ', &
699 'total mass transfer',/
'from other phases!',/ &
700 'Number of cells with discrepancy < error tolerance = ',i9,/ &
701 'Number of cells with discrepancy > error tolerance = ',i9,/ &
702 'Maximum discrepancy = ',g12.4)
714 SUBROUTINE report_error(pIER, pI, pJ, pK, VAL, RELATION, BND, &
717 INTEGER,
INTENT(INOUT) :: pIER
718 INTEGER,
INTENT(IN) :: pI, pJ, pK
719 DOUBLE PRECISION,
INTENT(IN) :: BND, VAL
720 CHARACTER(LEN=*),
INTENT(IN) :: RELATION
721 CHARACTER(LEN=*),
INTENT(IN) :: VAR
722 INTEGER,
INTENT(IN),
OPTIONAL :: LC1, LC2
723 CHARACTER(LEN=32) :: VAR_FULL
728 IF(
PRESENT(lc2))
THEN 729 var_full =
ivar(var,lc1,lc2)
730 ELSEIF(
PRESENT(lc1))
THEN 731 var_full =
ivar(var,lc1)
739 CASE(2000);
WRITE(
err_msg,2000)
740 CASE(3000);
WRITE(
err_msg,3000)
746 2000
FORMAT(
'Error 2000: Physical properties detected in flow cells.',&
747 2/3x,
'I',6x,
'J',6x,
'K',5x,
'Value',8x,a,2x,
'Bound',5x,
'Variable' 749 FORMAT(
'Error 3000: Unphysical field variables detected.',&
750 2/3x,
'I',6x,
'J',6x,
'K',5x,
'Value',8x,a,2x,
'Bound',5x,
'Variable' 752 WRITE(
err_msg,9000) pi, pj, pk, val, relation, bnd, trim(var_full)
755 9000
FORMAT(3(i6,1x),g12.4,1x,a,g12.4,1x,a)
double precision, dimension(:,:), allocatable c_ps
double precision, dimension(:,:), allocatable mu_s
double precision, parameter tmax
character(len=32) function ivar(VAR, i1, i2, i3)
double precision, dimension(:,:), allocatable dif_g
double precision, parameter one
double precision, dimension(:), allocatable mu_gt
subroutine check_rxn_mass_balance
logical, dimension(0:dim_m) species_eq
double precision, dimension(:), allocatable t_g
double precision, dimension(:), allocatable sum_r_g
double precision, dimension(:,:), allocatable sum_r_s
double precision, dimension(:,:,:), allocatable rox_sc
double precision, parameter undefined
double precision, parameter tmin
double precision, parameter tol_com
subroutine init_err_msg(CALLER)
logical, dimension(:,:,:), allocatable dead_cell_at
double precision, dimension(:,:,:), allocatable x_s
subroutine check_flow_cell_props
double precision, parameter small_number
double precision, dimension(:,:), allocatable t_s
double precision, dimension(:,:), allocatable x_g
double precision, dimension(:,:,:), allocatable r_sp
double precision, dimension(:,:,:), allocatable dif_s
subroutine report_species_stats
double precision, dimension(:,:), allocatable lambda_s
double precision, dimension(:,:), allocatable r_phase
double precision, dimension(:,:), allocatable rox_gc
subroutine check_physical_bounds
double precision, dimension(:), allocatable mw_mix_g
integer, dimension(0:dim_m) nmax
double precision, dimension(:), allocatable mu_g
double precision, dimension(:), allocatable lambda_gt
character(len=line_length), dimension(line_count) err_msg
double precision, dimension(:), allocatable k_g
double precision, dimension(:,:), allocatable rop_s
subroutine report_error(ABORT, pI, pJ, pK, VAR, LC1, LC2)
subroutine open_pe_log(IER)
double precision, dimension(:,:), allocatable k_s
double precision, dimension(:), allocatable x
double precision, parameter zero
subroutine flush_err_msg(DEBUG, HEADER, FOOTER, ABORT, LOG, CALL_TREE)
double precision, dimension(:,:), allocatable r_gp
double precision, dimension(:), allocatable c_pg