File: /nfs/home/0/users/jenkins/mfix.git/model/des/calc_dtpic.f
1
2
3
4
5
6
7
8 SUBROUTINE CALC_DTPIC
9
10 USE param1
11 USE funits
12 USE run
13 USE compar
14 USE discretelement
15 USE cutcell
16 use desmpi
17 use mpi_utility
18 USE geometry
19 USE des_rxns
20 USE des_thermo
21 USE des_stl_functions
22
23 use mfix_pic, only: CFL_PIC, DTPIC_CFL, DTPIC_TAUP
24 use mfix_pic, only: DTPIC_MAX
25
26 use error_manager
27
28 IMPLICIT NONE
29
30
31
32 INTEGER :: L, PC
33
34
35
36 DOUBLE PRECISION :: DTPIC_TMPX, DTPIC_TMPY, DTPIC_TMPZ
37
38
39
40
41 = LARGE_NUMBER
42
43 PC = 1
44 DO L = 1, MAX_PIP
45 IF(PC.GT.PIP) EXIT
46 IF(.NOT.PEA(L,1)) CYCLE
47 PC = PC+1
48 IF(PEA(L,4)) CYCLE
49
50 DTPIC_TMPX = (CFL_PIC*DX(PIJK(L,1)))/&
51 (ABS(DES_VEL_NEW(1,L))+SMALL_NUMBER)
52 DTPIC_TMPY = (CFL_PIC*DY(PIJK(L,2)))/&
53 (ABS(DES_VEL_NEW(2,L))+SMALL_NUMBER)
54 DTPIC_TMPZ = LARGE_NUMBER
55 IF(DO_K) DTPIC_TMPZ = (CFL_PIC*DZ(PIJK(L,3)))/&
56 (ABS(DES_VEL_NEW(3,L))+SMALL_NUMBER)
57
58 DTPIC_CFL = MIN(DTPIC_TMPX, DTPIC_TMPY, DTPIC_TMPZ)
59 ENDDO
60
61 CALL global_all_max(DTPIC_CFL)
62
63 DTPIC_MAX = MIN(DTPIC_CFL, DTPIC_TAUP)
64 DTSOLID = DTPIC_MAX
65
66 WRITE(ERR_MSG,2000) dtpic_cfl, dtpic_taup, DTSOLID
67 CALL FLUSH_ERR_MSG(HEADER=.FALSE., FOOTER=.FALSE.)
68
69 2000 FORMAT('DTPIC BASED ON CFL AND TAUP:', 2x, 2(2x,g11.4), &
70 /'DTSOLID set to ', g11.4)
71
72 RETURN
73 END SUBROUTINE CALC_DTPIC
74