26 INTEGER :: IJK, I, J, K, M, NN
30 CHARACTER(LEN=64) :: eMsg
34 DOUBLE PRECISION,
allocatable :: lData_dp(:)
35 DOUBLE PRECISION,
allocatable :: gData_dp(:)
37 LOGICAL,
parameter :: dbg_PS = .false.
72 emsg =
'';
write(emsg,
"('Invalid PS size: ', I4)")ps_size
77 allocate(ldata_dp( 0:
numpes-1)); ldata_dp =
zero 78 allocate(gdata_dp( 0:
numpes-1)); gdata_dp =
zero 90 if(is_on_mype_owns(i, j, k))
then 109 emsg =
'No PS_VOLUME == ZERO' 114 if(
allocated(ldata_dp))
deallocate(ldata_dp)
115 if(
allocated(gdata_dp))
deallocate(gdata_dp)
118 IF(dbg_ps)
CALL debug_ps(psv, ps_size)
126 write(*,
"('PointSource setup Error: ',A)") trim(emsg)
131 write(*,
"('PointSource setup Error: ',I3,2x,A)")
mype, trim(emsg)
155 DOUBLE PRECISION,
intent(out) :: CpxMFLOW
157 INTEGER,
intent(in) :: lM
158 INTEGER,
intent(in) :: lDIM_N
160 DOUBLE PRECISION,
intent(in) :: Cp0
161 DOUBLE PRECISION,
intent(in) :: PS_MFLOW
162 DOUBLE PRECISION,
intent(in) :: PS_T
163 DOUBLE PRECISION,
intent(in) :: PS_X(ldim_n)
165 DOUBLE PRECISION,
intent(in) :: lMW(ldim_n)
189 if(
units ==
'SI') cpxmflow = 4.183925d3*cpxmflow
190 cpxmflow = cpxmflow*ps_mflow
206 DOUBLE PRECISION,
intent(inout) :: VEL_MAG
207 DOUBLE PRECISION,
intent(inout) :: lU, lV, lW
210 vel_mag = lu**2 + lv**2
211 if(
do_k) vel_mag = vel_mag + lw**2
213 vel_mag = sqrt(vel_mag)
273 INTEGER,
intent(in) :: lPSV
275 INTEGER,
intent(in) :: lPS_SIZE
277 INTEGER :: IJK, I, J, K, M, NN
281 INTEGER,
allocatable :: lFlags_i(:,:)
282 INTEGER,
allocatable :: gFlags_i(:,:)
285 write(*,
"(3/,3x,'Debug Point Source Index: ',I3)") lpsv
286 write(*,
"(/3x,'Size: ',I4)") lps_size
289 allocate(lflags_i(lps_size,1:2) ); lflags_i = 0
290 allocate(gflags_i(lps_size,1:2) ); gflags_i = 0
299 if(is_on_mype_owns(i, j, k))
then 302 if(fluid_at(ijk))
then 303 lflags_i(lc1,1) =
mype 304 lflags_i(lc1,2) =
flag(ijk)
316 write(*,
"(/5x,'Location:')")
317 write(*,
"( 5x,'X:',2(2x,g12.5),' :: ',2(2x,I4))")&
319 write(*,
"( 5x,'Y:',2(2x,g12.5),' :: ',2(2x,I4))")&
321 if(
do_k)
write(*,
"( 5x,'Z:',2(2x,g12.5),' :: ',2(2x,I4))")&
324 write(*,
"(/5x,'Volume: ',g12.5)")
ps_volume(lpsv)
328 write(*,
"(//5x,'Point Source Gas Phase:')")
330 write(*,
"(7x,'Velocity Magnitude: ',g12.5)")
ps_vel_mag_g(lpsv
331 write(*,
"(7x,'Normal:')")
332 write(*,
"(9x,'x-Axis: ',g12.5)")
ps_u_g(lpsv)
333 write(*,
"(9x,'y-Axis: ',g12.5)")
ps_v_g(lpsv)
334 if(
do_k)
write(*,
"(9x,'z-Axis: ',g12.5)")
ps_w_g(lpsv)
336 write(*,
"(7x,'Temperature: ',g12.5)")
ps_t_g(lpsv)
338 write(*,
"(7x,'Species Composition:')")
340 write(*,
"(9x,A,': ',g12.5)") &
345 write(*,
"(//5x,'No gas phase point source.')")
351 write(*,
"(//5x,'Point Source Solids Phase ',I1,':')")m
353 write(*,
"(7x,'Velocity Magnitude: ',g12.5)")
ps_vel_mag_s 354 write(*,
"(7x,'Normal:')")
355 write(*,
"(9x,'x-Axis: ',g12.5)")
ps_u_s(lpsv,m)
356 write(*,
"(9x,'y-Axis: ',g12.5)")
ps_v_s(lpsv,m)
357 if(
do_k)
write(*,
"(9x,'z-Axis: ',g12.5)")
ps_w_s(lpsv,m)
359 write(*,
"(7x,'Temperature: ',g12.5)")
ps_t_s(lpsv,m)
361 write(*,
"(7x,'Species Composition:')")
363 write(*,
"(9x,A,': ',g12.5)") &
368 write(*,
"(//5x,'No solids phase ',I1,' point source.')") m
372 write(*,
"(//5x,'Point Source Cells:')")
373 write(*,
"(9x,'IJK',3(6x,A1),3x,'OWNS',3x,'FLAG')")
'I',
'J',
'K' 381 write(*,
"(4x,I8,5(3x,I4))") ijk, i, j, k, gflags_i(lc1,:)
388 if(
allocated(lflags_i))
deallocate(lflags_i)
389 if(
allocated(gflags_i))
deallocate(gflags_i)
integer, dimension(dimension_ps) ps_i_w
integer, parameter dim_n_g
double precision, dimension(dim_m) c_ps0
double precision, dimension(dimension_ps) ps_v_g
double precision, dimension(dimension_ps) ps_t_g
double precision, dimension(dimension_ps, dim_m) ps_v_s
double precision, dimension(dimension_ps) ps_vel_mag_g
logical, dimension(0:dim_m) species_eq
double precision, dimension(dimension_ps, dim_m) ps_vel_mag_s
integer, dimension(dimension_ps) ps_j_n
double precision, dimension(dimension_ps) ps_y_n
double precision, parameter undefined
double precision, dimension(dimension_ps) ps_cpxmflow_g
double precision, dimension(dimension_ps) ps_z_b
double precision, dimension(dimension_ps) ps_massflow_g
character(len=32), dimension(dim_n_g) species_alias_g
logical, dimension(dimension_ps) ps_defined
double precision, dimension(dim_n_g) mw_g
double precision, dimension(dimension_ps) ps_w_g
double precision, dimension(dimension_ps, dim_m) ps_t_s
double precision, dimension(dimension_ps) ps_x_e
subroutine calc_ps_vel_mag(VEL_MAG, lU, lV, lW)
double precision, dimension(dimension_ps) ps_x_w
double precision, dimension(dimension_ps) ps_volume
integer, dimension(dimension_ps) ps_k_b
double precision, dimension(dimension_ps, dim_m) ps_u_s
double precision, dimension(dimension_ps, dim_m) ps_cpxmflow_s
subroutine mfix_exit(myID, normal_termination)
logical, dimension(:,:,:), allocatable dead_cell_at
double precision, parameter small_number
pure double precision function calc_cpor(T, M, N)
subroutine read_database0()
double precision, dimension(dimension_ps) ps_y_s
integer, dimension(dimension_ps) ps_k_t
double precision, dimension(dimension_ps, dim_n_g) ps_x_g
integer, parameter dimension_ps
subroutine debug_ps(lPSV, lPS_SIZE)
integer, dimension(0:dim_m) nmax
double precision, dimension(dim_m, dim_n_s) mw_s
subroutine calc_ps_cpxmflow(CpxMFLOW, PS_MFLOW, PS_T, PS_X, lM, Cp0, lDIM_N, lMW)
double precision, dimension(dimension_ps, dim_m) ps_massflow_s
integer, parameter dim_n_s
double precision, dimension(dimension_ps) ps_z_t
double precision, dimension(dimension_ps, dim_m) ps_w_s
double precision, dimension(dimension_ps, dim_m, dim_n_s) ps_x_s
integer, dimension(:), allocatable flag
double precision, dimension(dimension_ps) ps_u_g
integer, dimension(dimension_ps) ps_j_s
character(len=32), dimension(dim_m, dim_n_s) species_alias_s
double precision, dimension(:), allocatable vol
integer, dimension(dimension_ps) ps_i_e
double precision, parameter gas_const_cal
double precision, parameter zero