114 use functions, only: is_on_mype_plus2layers, bound_funijk
121 INTEGER,
INTENT(IN) :: BCV
126 INTEGER :: I, J, K, IJK, M
129 DO k = bc_k_b(bcv), bc_k_t(bcv)
130 DO j = bc_j_s(bcv), bc_j_n(bcv)
131 DO i = bc_i_w(bcv), bc_i_e(bcv)
133 IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
135 ijk = bound_funijk(i,j,k)
224 use functions, only: is_on_mype_plus2layers, bound_funijk
231 INTEGER,
INTENT(IN) :: BCV
236 INTEGER :: I, J, K, IJK, M
238 DOUBLE PRECISION :: nM, nTOT
242 DO k = bc_k_b(bcv), bc_k_t(bcv)
243 DO j = bc_j_s(bcv), bc_j_n(bcv)
244 DO i = bc_i_w(bcv), bc_i_e(bcv)
245 IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
247 ijk = bound_funijk(i,j,k)
251 IF (bc_ep_g(bcv) /=
undefined) ep_g(ijk) = bc_ep_g(bcv)
253 t_g(ijk)= merge(bc_t_g(bcv),
tmin,&
258 x_g(ijk,:
nmax(0)) = bc_x_g(bcv,:
nmax(0))
273 rop_s(ijk,m) = bc_rop_s(bcv,m)
275 t_s(ijk,m)=bc_t_s(bcv,m)
277 theta_m(ijk,m) = bc_theta_m(bcv,m)
281 x_s(ijk,m,:
nmax(m)) = bc_x_s(bcv,m,:
nmax(m))
285 IF(kt_type_enum == ghd_2007)
THEN 291 rop_s(ijk,
mmax) = rop_s(ijk,
mmax) + &
293 nm = bc_rop_s(bcv,m)*6d0 / &
297 theta_m(ijk,
mmax) = theta_m(ijk,
mmax) + &
302 theta_m(ijk,
mmax) = theta_m(ijk,
mmax) / ntot
308 ep_g(ijk) = mms_ep_g(ijk)
309 t_g(ijk) = mms_t_g(ijk)
380 use functions, only: is_on_mype_plus2layers, bound_funijk
387 INTEGER,
INTENT(IN) :: BCV
392 INTEGER :: I, J, K, IJK, M
396 DOUBLE PRECISION :: nM, nTOT
398 DOUBLE PRECISION :: lvel_s
401 DO k = bc_k_b(bcv), bc_k_t(bcv)
402 DO j = bc_j_s(bcv), bc_j_n(bcv)
403 DO i = bc_i_w(bcv), bc_i_e(bcv)
404 IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
406 ijk = bound_funijk(i,j,k)
410 ep_g(ijk) = bc_ep_g(bcv)
411 t_g(ijk) = bc_t_g(bcv)
414 x_g(ijk,:
nmax(0)) = bc_x_g(bcv,:
nmax(0))
425 rop_s(ijk,m) = bc_rop_s(bcv,m)
426 t_s(ijk,m) = bc_t_s(bcv,m)
427 theta_m(ijk,m) = bc_theta_m(bcv,m)
429 x_s(ijk,m,:
nmax(m)) = bc_x_s(bcv,m,:
nmax(m))
432 u_g(ijk) = bc_u_g(bcv)
433 v_g(ijk) = bc_v_g(bcv)
434 w_g(ijk) = bc_w_g(bcv)
444 SELECT CASE (trim(bc_plane(bcv)))
446 fijk = bound_funijk(
im1(i),j,k)
447 u_g(fijk) = bc_u_g(bcv)
450 fijk = bound_funijk(i,
jm1(j),k)
451 v_g(fijk) = bc_v_g(bcv)
454 fijk = bound_funijk(i,j,
km1(k))
455 w_g(fijk) = bc_w_g(bcv)
460 IF(kt_type_enum == ghd_2007)
THEN 469 rop_s(ijk,
mmax) = rop_s(ijk,
mmax) + &
471 nm = bc_rop_s(bcv,m)*6d0/ &
474 theta_m(ijk,
mmax) = theta_m(ijk,
mmax) + &
477 bc_rop_s(bcv,m)*bc_u_s(bcv,m)
479 bc_rop_s(bcv,m)*bc_v_s(bcv,m)
481 bc_rop_s(bcv,m)*bc_w_s(bcv,m)
483 SELECT CASE (trim(bc_plane(bcv)))
485 lvel_s = lvel_s + bc_rop_s(bcv,m)*bc_u_s(bcv,m)
487 lvel_s = lvel_s + bc_rop_s(bcv,m)*bc_v_s(bcv,m)
489 lvel_s = lvel_s + bc_rop_s(bcv,m)*bc_w_s(bcv,m)
493 theta_m(ijk,
mmax) = theta_m(ijk,
mmax) / ntot
497 lvel_s = lvel_s/rop_s(ijk,
mmax)
499 SELECT CASE (trim(bc_plane(bcv)))
501 fijk = bound_funijk(
im1(i),j,k)
502 u_s(fijk,
mmax) = lvel_s
504 fijk = bound_funijk(i,
jm1(j),k)
505 v_s(fijk,
mmax) = lvel_s
507 fijk = bound_funijk(i,j,
km1(k))
508 w_s(fijk,
mmax) = lvel_s
516 ep_g(ijk) = mms_ep_g(ijk)
517 t_g(ijk) = mms_t_g(ijk)
525 u_g(ijk) = mms_u_g(ijk)
526 v_g(ijk) = mms_v_g(ijk)
527 w_g(ijk) = mms_w_g(ijk)
529 u_s(ijk,:
smax) = mms_u_s(ijk)
530 v_s(ijk,:
smax) = mms_v_s(ijk)
531 w_s(ijk,:
smax) = mms_w_s(ijk)
535 SELECT CASE (trim(bc_plane(bcv)))
537 fijk = bound_funijk(
im1(i),j,k)
538 u_g(fijk) = mms_u_g(fijk)
539 IF(
smax>0) u_s(fijk,:
smax) = mms_u_s(fijk)
541 fijk = bound_funijk(i,
jm1(j),k)
542 v_g(fijk) = mms_v_g(fijk)
543 IF(
smax>0) v_s(fijk,:
smax) = mms_v_s(fijk)
545 fijk = bound_funijk(i,j,
km1(k))
546 w_g(fijk) = mms_w_g(fijk)
547 IF(
smax>0) w_s(fijk,:
smax) = mms_w_s(fijk)
580 INTEGER,
INTENT(IN) :: BCV
585 bc_time(bcv) =
time + bc_dt_0(bcv)
586 bc_jet_g(bcv) = bc_jet_g0(bcv)
588 SELECT CASE (trim(bc_plane(bcv)))
590 bc_u_g(bcv) = bc_jet_g(bcv)
592 bc_v_g(bcv) = bc_jet_g(bcv)
594 bc_w_g(bcv) = bc_jet_g(bcv)
627 INTEGER,
INTENT(IN) :: BCV
632 bc_time(bcv) =
time + bc_dt_0(bcv)
634 bc_mout_g(bcv) =
zero 687 use functions, only: is_on_mype_plus2layers, bound_funijk
694 INTEGER,
INTENT(IN) :: BCV
699 INTEGER :: IJK, I, J, K
706 DO k = bc_k_b(bcv), bc_k_t(bcv)
707 DO j = bc_j_s(bcv), bc_j_n(bcv)
709 IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
711 ijk = bound_funijk(i,j,k)
713 SELECT CASE (trim(bc_plane(bcv)))
715 fijk = bound_funijk(
im1(i),j,k)
717 fijk = bound_funijk(
ip1(i),j,k)
719 fijk = bound_funijk(i,
jm1(j),k)
721 fijk = bound_funijk(i,
jp1(j),k)
723 fijk = bound_funijk(i,j,
km1(k))
725 fijk = bound_funijk(i,j,
kp1(k))
730 x_g(ijk,:
nmax(0)) = x_g(fijk,:
nmax(0))
744 t_s(ijk,m) = t_s(fijk,m)
745 theta_m(ijk,m) = theta_m(fijk,m)
747 x_s(ijk,m,:
nmax(m)) = x_s(fijk,m,:
nmax(m))
750 IF(kt_type_enum == ghd_2007) &
751 theta_m(ijk,mmax) = theta_m(fijk,mmax)
798 CHARACTER(len=7) :: Map
799 CHARACTER(len=128) :: lMsg
805 LOGICAL,
parameter :: setDBG = .false.
818 IF(
ro_g0 == undefined)
THEN 819 IF(dflag)
write(*,
"(3x,A)") &
820 'Compressible: IJK_P_g remaining undefined.' 822 ELSEIF(
ro_g0 == 0.0d0)
THEN 823 IF(dflag)
write(*,
"(3x,A)") &
824 'No gas phase: IJK_P_g remaining undefined.' 833 IF(dflag)
write(*,
"(3x,A)") &
834 'Outflow PC defined: IJK_P_g remaining undefined.' 846 IF(cyclic_y .OR. cyclic_y_pd .OR. cyclic_y_mf)
THEN 851 l1 = imin1; u1 = imax1
854 ELSEIF(cyclic_x .OR. cyclic_x_pd .OR. cyclic_x_mf)
THEN 859 l1 = jmin1; u1 = jmax1
862 ELSEIF(cyclic_z .OR. cyclic_z_pd .OR. cyclic_z_mf)
THEN 866 l2 = imin1; u2 = imax1
867 l1 = jmin1; u1 = jmax1
877 l2 = imin1; u2 = imax1
878 l1 = jmin1; u1 = jmax1
879 lmsg=
'Center of domain' 884 write(*,
"(3/,3x,'Map: ',A)") map
885 write(*,
"(/5x,'l3:',2x,I4)") l3
886 write(*,
"( 5x,'l2:',2(2x,I4))") l2, u2
887 write(*,
"( 5x,'l1:',2(2x,I4))") l1, u1
888 write(*,
"( 5x,'Msg: ',A)") trim(lmsg)
899 CASE ( 1001);
WRITE(unit_log, 1001);
WRITE(*,1001)
900 CASE ( 2000);
WRITE(unit_log, 2000);
WRITE(*,2000)
901 CASE ( 2001);
WRITE(unit_log, 2001);
WRITE(*,2001)
902 CASE ( 2002);
WRITE(unit_log, 2002);
WRITE(*,2002)
904 WRITE(unit_log, 1000) ierr
908 WRITE(unit_log, 9000) map(1:1), l3, map(2:2), &
909 l2, u2, map(3:3), l1, u1
910 WRITE(*, 9000) map(1:1), l3, map(2:2), &
911 l2, u2, map(3:3), l1, u1
914 WRITE(unit_log, 9999)
922 1000
FORMAT(//1x,70(
'*')/
' From: SET_IJK_Pg',/, &
923 ' Error 1000: Unknown error reported. x', i4.4)
925 1001
FORMAT(//1x,70(
'*')/
' From: SET_IJK_Pg',/, &
926 ' Error 1001: Invalid mapping function.')
928 2000
FORMAT(//1x,70(
'*')/
' From: SET_IJK_Pg > IJK_Pg_SEARCH',/, &
929 ' Error 2000: Unknown error reported from IJK_Pg_SEARCH.')
931 2001
FORMAT(//1x,70(
'*')/
' From: SET_IJK_Pg > IJK_Pg_SEARCH',/, &
932 ' Error 2001: Unable to locate fluid cell in search region.')
934 2002
FORMAT(//1x,70(
'*')/
' From: SET_IJK_Pg > IJK_Pg_SEARCH',/, &
935 ' Error 2002: Unable to locate fluid cell owner.')
937 9000
FORMAT(/
' Search plane information:',/,3x,a1,
': ',i8, &
938 2(/3x,a1,
': ',i8,
' x ',i8))
940 9999
FORMAT(/
' Fatal Error --> Invoking MFIX_EXIT',/1x,70(
'*'),2/)
966 INTEGER,
INTENT(IN) :: ll3
967 INTEGER,
INTENT(IN) :: ll2, lu2
968 INTEGER,
INTENT(IN) :: ll1, lu1
969 LOGICAL,
INTENT(IN) :: ldFlag
970 INTEGER,
INTENT(OUT) :: iErr
971 CHARACTER(len=*),
INTENT(IN) :: lMAP
975 INTEGER :: lc2, lS2, lE2
976 INTEGER :: lc1, lS1, lE1
977 INTEGER :: I, J, K, IJK
979 INTEGER :: IJK_Pg_Owner, proc
980 INTEGER :: gIJK(0:numpes-1)
981 INTEGER :: I_J_K_Pg(3)
984 CHARACTER(len=32) :: cInt
995 ls1 = ll1 + (lu1-ll1)/2 + 1; le1 = ls1
996 ls2 = ll2 + (lu2-ll2)/2 + 1; le2 = ls2
1009 write(*,
"(/5x,'Pass: ',I4)") lpcnt
1010 write(*,
"( 5x,'lp2 bounds:',2(2x,I4))")ls2, le2
1011 write(*,
"( 5x,'lp1 bounds:',2(2x,I4))")ls1, le1
1014 lp2:
do lc2 = ls2, le2
1015 lp1:
do lc1 = ls1, le1
1029 if(.NOT.is_on_mype_owns(i,j,k)) cycle
1033 if(fluid_at(ijk))
then 1044 proc_lp:
do proc=0, numpes-1
1045 if(gijk(proc) /= 0)
then 1056 if(ls1 > ll1 .OR. le1 < lu1 .OR. &
1057 ls2 > ll2 .OR. le2 < lu2)
then 1059 ls1 = max((ls1-1), ll1)
1060 le1 = min((le1+1), lu1)
1062 ls2 = max((ls2-1), ll2)
1063 le2 = min((le2+1), lu2)
1086 if(mype == ijk_pg_owner)
then 1091 CALL bcast(i_j_k_pg, ijk_pg_owner)
1100 write(*,
"(/3x,'IJK_P_g successfully identified!')")
1101 cint=
'';
write(cint,*) ijk_pg_owner
1102 write(*,
"( 5x,'Owner Rank: ',A)")trim(adjustl(cint))
1103 cint=
'';
write(cint,*)
ijk_p_g 1104 write(*,
"(5x, 'IJK: ',A)", advance=
'no') trim(adjustl(cint))
1105 write(*,
"(' :: ')", advance=
'no')
1106 cint=
'';
write(cint,*) i
1107 write(*,
"('(',A)",advance=
'no') trim(adjustl(cint))
1108 cint=
'';
write(cint,*) j
1109 write(*,
"(',',A)",advance=
'no') trim(adjustl(cint))
1110 cint=
'';
write(cint,*) k
1111 write(*,
"(',',A,')',2/)") trim(adjustl(cint))
1120 IF(is_on_mype_plus2layers(i,j,k))
THEN integer, dimension(:), allocatable ip1
double precision, dimension(:), allocatable mms_v_g
integer, dimension(dimension_bc) bc_k_b
double precision, dimension(dimension_bc) bc_mout_g
double precision, dimension(dimension_bc) bc_time
double precision, dimension(:,:), allocatable v_s
double precision, dimension(:), allocatable mms_u_g
double precision, dimension(dimension_bc, dim_scalar) bc_scalarw
double precision, dimension(dimension_bc) bc_dt_0
integer, dimension(:), allocatable i_of
double precision, dimension(:), allocatable mms_v_s
subroutine set_bc0_outflow(BCV)
double precision, dimension(:), allocatable mms_t_g
double precision, dimension(dimension_bc, dim_m) bc_mout_s
double precision, dimension(:), allocatable ep_g
double precision, dimension(dimension_bc) bc_t_g
double precision, dimension(:), allocatable k_turb_g
integer, dimension(dimension_bc) bc_i_w
double precision, dimension(:,:), allocatable w_s
integer, dimension(dimension_bc) bc_j_n
double precision, dimension(dimension_bc, dim_m) bc_w_s
integer, dimension(:), allocatable im1
double precision, dimension(dimension_bc, dim_m, dim_n_s) bc_x_s
double precision, dimension(:), allocatable t_g
double precision, dimension(dimension_bc, dim_m) bc_tw_s
subroutine set_bc0_init_bcscalars(BCV)
double precision function scale_pressure(XXX)
subroutine set_bc0_walls(BCV)
double precision, dimension(:,:), allocatable scalar
double precision, dimension(dimension_bc) bc_jet_g0
double precision, dimension(:), allocatable p_g
integer, parameter dimension_bc
integer, dimension(dimension_bc) bc_type_enum
double precision, parameter undefined
double precision, dimension(dimension_bc) bc_v_g
double precision, parameter tmin
double precision, dimension(:,:), allocatable u_s
subroutine set_bc0_init_bcdt_calcs(BCV)
character, dimension(dimension_bc) bc_plane
integer, dimension(:), allocatable k_of
double precision, dimension(dimension_bc, dim_m) bc_thetaw_m
subroutine set_bc0_inflow(BCV)
double precision, dimension(:,:), allocatable d_p
subroutine mfix_exit(myID, normal_termination)
integer, dimension(dimension_bc) bc_k_t
logical, dimension(:,:,:), allocatable dead_cell_at
double precision, dimension(:,:,:), allocatable x_s
integer, dimension(:), allocatable j_of
integer, dimension(:), allocatable jm1
double precision, dimension(dimension_bc, dim_m) bc_t_s
double precision, dimension(dimension_bc, dim_m) bc_vout_s
double precision, dimension(:), allocatable mms_t_s
double precision, dimension(:,:), allocatable t_s
double precision, dimension(:,:), allocatable x_g
integer, dimension(dimension_bc) bc_j_s
integer, dimension(:), allocatable jp1
double precision, dimension(dimension_bc) bc_tw_g
double precision, dimension(:), allocatable mms_u_s
double precision, dimension(dimension_bc, dim_scalar) bc_scalar
double precision, dimension(dimension_bc, dim_m, dim_n_s) bc_xw_s
double precision, dimension(:,:), allocatable theta_m
subroutine set_bc0_init_jet(BCV)
double precision, dimension(:), allocatable v_g
logical, dimension(dimension_bc) bc_defined
double precision, dimension(dimension_bc) bc_p_g
subroutine ijk_pg_search(ll3, ll2, lu2, ll1, lu1, lMAP, ldFlag, iErr)
integer, dimension(:), allocatable kp1
double precision, dimension(:), allocatable w_g
double precision, dimension(:), allocatable mms_ep_g
double precision, dimension(dimension_bc, dim_n_g) bc_xw_g
double precision, dimension(:,:), allocatable ro_s
double precision, dimension(:), allocatable mms_w_s
double precision, dimension(dimension_bc, dim_m) bc_v_s
integer, dimension(dimension_bc) bc_out_n
integer, dimension(0:dim_m) nmax
integer, dimension(:), allocatable km1
double precision, dimension(:), allocatable p_star
double precision, dimension(dimension_bc) bc_u_g
double precision, dimension(:), allocatable mms_theta_m
integer, parameter undefined_i
double precision, dimension(dimension_bc, dim_m) bc_u_s
double precision, dimension(dimension_bc) bc_e_turb_g
double precision, dimension(:), allocatable u_g
subroutine calculate_mms_source
double precision, dimension(dimension_bc, dim_m) bc_theta_m
double precision, dimension(dimension_bc, dim_n_g) bc_x_g
double precision, dimension(dimension_bc) bc_ep_g
double precision, dimension(dimension_bc) bc_k_turb_g
double precision, dimension(:), allocatable mms_rop_s
double precision, dimension(dimension_bc) bc_vout_g
double precision, dimension(:,:), allocatable rop_s
double precision, parameter pi
double precision, dimension(:), allocatable mms_p_g
double precision, dimension(:), allocatable e_turb_g
double precision, dimension(dimension_bc) bc_jet_g
double precision, dimension(dimension_bc) bc_w_g
double precision, dimension(:), allocatable mms_w_g
integer, dimension(dimension_bc) bc_i_e
double precision, parameter zero
double precision, dimension(dimension_bc, dim_m) bc_rop_s