File: /nfs/home/0/users/jenkins/mfix.git/model/get_bc_area.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 SUBROUTINE GET_BC_AREA
24
25
26
27
28
29
30 USE param
31 USE param1
32 USE geometry
33 USE bc
34 USE compar
35 IMPLICIT NONE
36
37
38
39
40
41
42
43
44
45
46
47 INTEGER :: BCV
48
49
50 INTEGER :: I, J, K
51
52
53
54 DO BCV = 1, DIMENSION_BC
55 IF (BC_DEFINED(BCV)) THEN
56 BC_AREA(BCV) = ZERO
57 IF (BC_PLANE(BCV) == 'W') THEN
58 I = BC_I_W(BCV)
59 DO K = BC_K_B(BCV), BC_K_T(BCV)
60 J = BC_J_S(BCV)
61 IF (BC_J_N(BCV) - BC_J_S(BCV) + 1 > 0) THEN
62 BC_AREA(BCV) = BC_AREA(BCV) + SUM(DY(BC_J_S(BCV):BC_J_N(BCV))*&
63 X_E(I-1)*DZ(K))
64 J = BC_J_N(BCV) + 1
65 ENDIF
66 END DO
67 ELSE IF (BC_PLANE(BCV) == 'E') THEN
68 I = BC_I_W(BCV)
69 DO K = BC_K_B(BCV), BC_K_T(BCV)
70 J = BC_J_S(BCV)
71 IF (BC_J_N(BCV) - BC_J_S(BCV) + 1 > 0) THEN
72 BC_AREA(BCV) = BC_AREA(BCV) + SUM(DY(BC_J_S(BCV):BC_J_N(BCV))*&
73 X_E(I)*DZ(K))
74 J = BC_J_N(BCV) + 1
75 ENDIF
76 END DO
77 ELSE IF (BC_PLANE(BCV)=='S' .OR. BC_PLANE(BCV)=='N') THEN
78 J = BC_J_S(BCV)
79 DO K = BC_K_B(BCV), BC_K_T(BCV)
80 I = BC_I_W(BCV)
81 IF (BC_I_E(BCV) - BC_I_W(BCV) + 1 > 0) THEN
82 BC_AREA(BCV) = BC_AREA(BCV) + SUM(DX(BC_I_W(BCV):BC_I_E(BCV))*&
83 X(BC_I_W(BCV):BC_I_E(BCV))*DZ(K))
84 I = BC_I_E(BCV) + 1
85 ENDIF
86 END DO
87 ELSE IF (BC_PLANE(BCV)=='B' .OR. BC_PLANE(BCV)=='T') THEN
88 K = BC_K_B(BCV)
89 DO J = BC_J_S(BCV), BC_J_N(BCV)
90 I = BC_I_W(BCV)
91 IF (BC_I_E(BCV) - BC_I_W(BCV) + 1 > 0) THEN
92 BC_AREA(BCV) = BC_AREA(BCV) + SUM(DX(BC_I_W(BCV):BC_I_E(BCV))*&
93 DY(J))
94 I = BC_I_E(BCV) + 1
95 ENDIF
96 END DO
97 ENDIF
98 ENDIF
99 END DO
100
101
102 RETURN
103 END SUBROUTINE GET_BC_AREA
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128 SUBROUTINE CG_GET_BC_AREA
129
130
131
132
133
134
135 USE param
136 USE param1
137 USE geometry
138 USE bc
139 USE compar
140
141 USE parallel
142 USE indices
143 USE compar
144 USE sendrecv
145 USE mpi_utility
146 USE cutcell
147 USE functions
148
149 IMPLICIT NONE
150
151
152
153
154
155
156
157
158
159
160
161 INTEGER :: BCV,BCID
162
163
164 INTEGER :: I, J, K , IJK, IJK2
165
166 CHARACTER(LEN=9) :: BCT
167
168
169 DO BCV = 1, DIMENSION_BC
170 IF (BC_DEFINED(BCV)) THEN
171
172 BC_AREA(BCV) = ZERO
173 BC_VOL(BCV) = ZERO
174
175 IF(BC_TYPE(BCV)(1:2)=='CG') THEN
176
177
178
179
180 DO IJK = IJKSTART3, IJKEND3
181 IF(CUT_CELL_AT(IJK)) THEN
182 BCID = BC_ID(IJK)
183 IF(BCID > 0 ) THEN
184 BCT = BC_TYPE(BCID)
185 IF(BCID==BCV) BC_AREA(BCV) = BC_AREA(BCV) + Area_CUT(IJK)
186 IF(BCID==BCV) BC_VOL(BCV) = BC_VOL(BCV) + VOL(IJK)
187 ENDIF
188 ENDIF
189 END DO
190
191
192 ELSE
193
194
195
196
197
198 DO K = BC_K_B(BCV), BC_K_T(BCV)
199 DO J = BC_J_S(BCV), BC_J_N(BCV)
200 DO I = BC_I_W(BCV), BC_I_E(BCV)
201
202 IF (.NOT.IS_ON_myPE_OWNS(I,J,K)) CYCLE
203 IF (DEAD_CELL_AT(I,J,K)) CYCLE
204
205 = FUNIJK(I,J,K)
206 SELECT CASE (TRIM(BC_PLANE(BCV)))
207 CASE ('W')
208 IJK2 = IM_OF(IJK)
209 BC_AREA(BCV) = BC_AREA(BCV) + AYZ(IJK2)
210 CASE ('E')
211 BC_AREA(BCV) = BC_AREA(BCV) + AYZ(IJK)
212 CASE ('S')
213 IJK2 = JM_OF(IJK)
214 BC_AREA(BCV) = BC_AREA(BCV) + AXZ(IJK2)
215 CASE ('N')
216 BC_AREA(BCV) = BC_AREA(BCV) + AXZ(IJK)
217 CASE ('B')
218 IJK2 = KM_OF(IJK)
219 BC_AREA(BCV) = BC_AREA(BCV) + AXY(IJK2)
220 CASE ('T')
221 BC_AREA(BCV) = BC_AREA(BCV) + AXY(IJK)
222 END SELECT
223 END DO
224 END DO
225 END DO
226
227
228 ENDIF
229
230
231 CALL GLOBAL_ALL_SUM(BC_AREA(BCV))
232 CALL GLOBAL_ALL_SUM(BC_VOL(BCV))
233
234
235 ENDIF
236 END DO
237
238
239 RETURN
240 END SUBROUTINE CG_GET_BC_AREA
241
242
243
244
245
246
247
248