File: RELATIVE:/../../../mfix.git/model/des/comp_mean_fields1.f
1
2
3
4 SUBROUTINE COMP_MEAN_FIELDS1
5
6
7
8
9 USE param
10 USE param1
11 USE fldvar
12 USE geometry
13 USE indices
14 USE compar
15 USE parallel
16 USE sendrecv
17 USE discretelement
18 use desgrid
19 use desmpi
20 USE mfix_pic
21 USE functions
22 use particle_filter, only: FILTER_WEIGHT
23 use particle_filter, only: FILTER_CELL
24 IMPLICIT NONE
25
26
27
28
29 INTEGER NP, LC, M
30
31 INTEGER IJK
32
33 DOUBLE PRECISION :: SOLVOLINC(DIMENSION_3,DES_MMAX)
34
35 DOUBLE PRECISION :: OoSOLVOL
36
37 DOUBLE PRECISION :: VOL_WT, VOLxWEIGHT
38
39 INTEGER :: LP_BND
40
41
42
43
44
45 (:,:) = ZERO
46
47 IF(MPPIC) THEN
48 DES_U_s(:,:) = ZERO
49 DES_V_s(:,:) = ZERO
50 DES_W_s(:,:) = ZERO
51 ENDIF
52
53
54 = merge(27,9,DO_K)
55
56
57
58
59
60
61
62
63 do NP=1,MAX_PIP
64 IF(.NOT.IS_NORMAL(NP) .and. .NOT.IS_GHOST(NP)) CYCLE
65
66 VOL_WT = PVOL(NP)
67 IF(MPPIC) VOL_WT = VOL_WT*DES_STAT_WT(NP)
68
69 = PIJK(NP,5)
70
71 DO LC=1,LP_BND
72 IJK = FILTER_CELL(LC,NP)
73
74 = VOL_WT*FILTER_WEIGHT(LC,NP)
75
76
77 (IJK,M) = SOLVOLINC(IJK,M) + VOLxWEIGHT
78 IF(MPPIC) THEN
79
80
81 (IJK,M) = DES_U_S(IJK,M) + &
82 DES_VEL_NEW(1,NP)*VOLxWEIGHT
83
84 (IJK,M) = DES_V_S(IJK,M) + &
85 DES_VEL_NEW(2,NP)*VOLxWEIGHT
86 IF(DO_K) THEN
87
88 (IJK,M) = DES_W_S(IJK,M) + &
89 DES_VEL_NEW(3,NP)*VOLxWEIGHT
90 ENDIF
91 ENDIF
92 ENDDO
93 ENDDO
94
95
96
97
98
99
100
101
102 DO IJK = IJKSTART3, IJKEND3
103 IF(.NOT.FLUID_AT(IJK)) CYCLE
104
105
106 DO M = 1, DES_MMAX
107 IF(SOLVOLINC(IJK,M).GT.ZERO) THEN
108 OoSOLVOL = ONE/SOLVOLINC(IJK,M)
109 DES_U_s(IJK,M) = DES_U_s(IJK,M)*OoSOLVOL
110 DES_V_s(IJK,M) = DES_V_s(IJK,M)*OoSOLVOL
111 IF(DO_K) DES_W_s(IJK,M) = DES_W_s(IJK,M)*OoSOLVOL
112 ENDIF
113
114
115
116 (IJK,M) = DES_RO_S(M)*SOLVOLINC(IJK,M)/VOL(IJK)
117
118 ENDDO
119
120 ENDDO
121
122
123
124
125 calL SEND_RECV(DES_ROP_S,2)
126
127 end SUBROUTINE COMP_MEAN_FIELDS1
128