File: /nfs/home/0/users/jenkins/mfix.git/model/des/calc_dtpic.f

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 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     ! Local variables
31     !-----------------------------------------------
32           INTEGER :: L, PC
33     
34     
35     ! MPPIC related quantities
36           DOUBLE PRECISION :: DTPIC_TMPX, DTPIC_TMPY, DTPIC_TMPZ
37     !-----------------------------------------------
38     ! Include statement functions
39     !-----------------------------------------------
40     
41           DTPIC_CFL = 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