File: N:\mfix\model\des\calc_drag_des.f

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
2     !                                                                      !
3     !  Subroutine: CALC_DRAG_DES                                           !
4     !                                                                      !
5     !  Purpose: This subroutine is called from DES routines. It calls      !
6     !  functions that calcultate the drag force acting on particles. No    !
7     !  field variables are updated.                                        !
8     !                                                                      !
9     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
10           SUBROUTINE CALC_DRAG_DES
11     
12     ! Modules
13     !---------------------------------------------------------------------//
14           use discretelement, only: DES_CONTINUUM_COUPLED
15           use discretelement, only: DES_CONTINUUM_HYBRID
16           use discretelement, only: DES_EXPLICITLY_COUPLED
17           use discretelement, only: DRAG_FC, FC, MAX_PIP
18           use functions, only: IS_NORMAL
19           use particle_filter, only: DES_INTERP_SCHEME_ENUM
20           use particle_filter, only: DES_INTERP_GARG
21           IMPLICIT NONE
22     
23     ! Local variables
24     !---------------------------------------------------------------------//
25           INTEGER :: II
26     !......................................................................!
27     
28     ! Apply the drag force calculated by the gas phase.
29           IF(DES_EXPLICITLY_COUPLED) THEN
30     
31              IF(DES_CONTINUUM_COUPLED) THEN
32     !$omp parallel do default(none) private(II) &
33     !$omp shared(FC, DRAG_FC, MAX_PIP)
34                 DO II = 1, MAX_PIP
35                    IF(IS_NORMAL(II)) &
36                       FC(II,:) = FC(II,:) + DRAG_FC(II,:)
37                 ENDDO
38     !$omp end parallel do
39              ENDIF
40     
41     
42           ELSE
43     
44     ! Calculate gas-solids drag force on particle
45              IF(DES_CONTINUUM_COUPLED) THEN
46                 SELECT CASE(DES_INTERP_SCHEME_ENUM)
47                 CASE(DES_INTERP_GARG) ; CALL DRAG_GS_DES0
48                 CASE DEFAULT; CALL DRAG_GS_DES1
49                 END SELECT
50              ENDIF
51     
52     ! Calculate solids-solids drag force on particle.
53              IF(DES_CONTINUUM_HYBRID) THEN
54                 SELECT CASE(DES_INTERP_SCHEME_ENUM)
55                 CASE DEFAULT; CALL DRAG_SS_DEM_NONINTERP
56                 END SELECT
57              ENDIF
58           ENDIF
59     
60           RETURN
61           END SUBROUTINE CALC_DRAG_DES
62