MFIX  2016-1
calc_dtpic.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
2 ! Module name: MAKE_ARRAYS_DES !
3 ! Author: Jay Boyalakuntla Date: 12-Jun-04 !
4 ! !
5 ! Purpose: DES - allocating DES arrays
6 ! !
7 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
8  SUBROUTINE calc_dtpic
9 
10  USE compar
11  USE cutcell
12  USE des_rxns
14  USE des_thermo
15  USE discretelement
16  USE functions
17  USE funits
18  USE geometry
19  USE param1
20  USE run
21  use desmpi
22  use error_manager
24  use mfix_pic, only: dtpic_max
25  use mpi_utility
26 
27  IMPLICIT NONE
28 !-----------------------------------------------
29 ! Local variables
30 !-----------------------------------------------
31  INTEGER :: L, PC
32 
33 
34 ! MPPIC related quantities
35  DOUBLE PRECISION :: DTPIC_TMPX, DTPIC_TMPY, DTPIC_TMPZ
36 !-----------------------------------------------
37 ! Include statement functions
38 !-----------------------------------------------
39 
40  dtpic_cfl = large_number
41 
42  pc = 1
43  DO l = 1, max_pip
44  IF(pc.GT.pip) EXIT
45  IF(is_nonexistent(l)) cycle
46  pc = pc+1
47  IF(is_ghost(l) .or. is_entering_ghost(l) .or. is_exiting_ghost(l)) cycle
48 
49  dtpic_tmpx = (cfl_pic*dx(pijk(l,1)))/&
50  (abs(des_vel_new(l,1))+small_number)
51  dtpic_tmpy = (cfl_pic*dy(pijk(l,2)))/&
52  (abs(des_vel_new(l,2))+small_number)
53  dtpic_tmpz = large_number
54  IF(do_k) dtpic_tmpz = (cfl_pic*dz(pijk(l,3)))/&
55  (abs(des_vel_new(l,3))+small_number)
56 
57  dtpic_cfl = min(dtpic_tmpx, dtpic_tmpy, dtpic_tmpz)
58  ENDDO
59 
60  CALL global_all_max(dtpic_cfl)
61 
62  dtpic_max = min(dtpic_cfl, dtpic_taup)
63  dtsolid = dtpic_max
64 
65  WRITE(err_msg,2000) dtpic_cfl, dtpic_taup, dtsolid
66  CALL flush_err_msg(header=.false., footer=.false.)
67 
68  2000 FORMAT('DTPIC BASED ON CFL AND TAUP:', 2x, 2(2x,g11.4), &
69  /'DTSOLID set to ', g11.4)
70 
71  RETURN
72  END SUBROUTINE calc_dtpic
double precision dtpic_cfl
Definition: mfix_pic_mod.f:70
double precision, dimension(0:dim_j) dy
Definition: geometry_mod.f:70
double precision cfl_pic
Definition: mfix_pic_mod.f:70
double precision, dimension(0:dim_k) dz
Definition: geometry_mod.f:72
double precision, parameter small_number
Definition: param1_mod.f:24
double precision, dimension(0:dim_i) dx
Definition: geometry_mod.f:68
Definition: run_mod.f:13
double precision, parameter large_number
Definition: param1_mod.f:23
subroutine calc_dtpic
Definition: calc_dtpic.f:9
double precision dtpic_taup
Definition: mfix_pic_mod.f:70
logical do_k
Definition: geometry_mod.f:30
character(len=line_length), dimension(line_count) err_msg
double precision dtpic_max
Definition: mfix_pic_mod.f:65
double precision, dimension(:), allocatable x
Definition: geometry_mod.f:129
subroutine flush_err_msg(DEBUG, HEADER, FOOTER, ABORT, LOG, CALL_TREE)