27 INTEGER,
INTENT(in) :: BCV
39 INTEGER :: J_FLUID, IJK_FLUID
40 INTEGER :: J_WALL, IJK_WALL
54 owner = merge(
mype, 0, is_on_mype_owns(i_w,j_s,k_b))
59 ijk = funijk(i_w, j_s, k_b)
60 ijpk = funijk(i_w, j_s+1, k_b)
62 IF (wall_icbc_flag(ijk) .AND.
icbc_flag(ijpk)(1:1)==
'.')
THEN 67 ELSE IF (wall_icbc_flag(ijpk) .AND.
icbc_flag(ijk)(1:1)==
'.')
THEN 83 CALL bcast(ijpk,owner)
84 CALL bcast(ijk, owner)
86 WRITE(
err_msg, 1100) bcv, j_s, j_n, i_w, k_b, &
91 1100
FORMAT(
'Error 1100: Cannot locate flow plane for boundary ', &
92 'condition ',i3,
'.',2/3x,
'J South = ',i6,
' J North = ',i6,/&
93 3x,
'I West = ',i6,
' K Bottom = ',i6,2/
' The following ', &
94 'should conttain a wall cell and fluid cell:',/3x,
'IJK ',i9, &
95 ' :: ',a3,/3x,
'IJPK ',i9,
' :: ',a3,2/
' Maybe no IC was ', &
96 'specified for the fluid cell.')
104 j_fluid = merge(j_wall-1, j_wall+1,
bc_plane(bcv)==
'S')
110 DO k = bc_k_b(bcv), bc_k_t(bcv)
111 DO i = bc_i_w(bcv), bc_i_e(bcv)
112 IF(.NOT.is_on_mype_plus2layers(i,j_fluid,k)) cycle
113 IF(.NOT.is_on_mype_plus2layers(i,j_wall, k)) cycle
117 ijk_wall = funijk(i,j_wall, k)
118 ijk_fluid = funijk(i,j_fluid,k)
120 IF(.NOT.(wall_icbc_flag(ijk_wall) .AND. &
121 icbc_flag(ijk_fluid)(1:1)==
'.')) error = .true.
140 1200
FORMAT(
'Error 1200: Illegal geometry for boundary condition:',i3)
142 DO k = bc_k_b(bcv), bc_k_t(bcv)
143 DO i = bc_i_w(bcv), bc_i_e(bcv)
145 IF(.NOT.is_on_mype_plus2layers(i,j_fluid,k)) cycle
146 IF(.NOT.is_on_mype_plus2layers(i,j_wall, k)) cycle
150 ijk_wall = funijk(i,j_wall ,k)
151 ijk_fluid = funijk(i,j_fluid,k)
153 IF(.NOT.(wall_icbc_flag(ijk_wall) .AND. &
157 i, j_wall, k, ijk_wall,
icbc_flag(ijk_wall), &
158 i, j_fluid, k, ijk_fluid,
icbc_flag(ijk_fluid)
162 1201
FORMAT(
' ',/14x,
'I',7x,
'J',7x,
'K',7x,
'IJK',4x,
'FLAG',/3x, &
163 'WALL ',3(2x,i6),2x,i9,3x,a,/3x,
'FLUID',3(2x,i6),2x,i9,3x,a)
168 WRITE(
err_msg,
"('Please correct the mfix.dat file.')")
integer, dimension(dimension_bc) bc_k_b
integer, dimension(dimension_bc) bc_i_w
integer, dimension(dimension_bc) bc_j_n
character(len=3), dimension(:), pointer icbc_flag
character, dimension(dimension_bc) bc_plane
subroutine init_err_msg(CALLER)
integer, dimension(dimension_bc) bc_k_t
logical, dimension(:,:,:), allocatable dead_cell_at
integer, dimension(dimension_bc) bc_j_s
character(len=line_length), dimension(line_count) err_msg
subroutine open_pe_log(IER)
integer, dimension(dimension_bc) bc_i_e
subroutine flush_err_msg(DEBUG, HEADER, FOOTER, ABORT, LOG, CALL_TREE)