File: /nfs/home/0/users/jenkins/mfix.git/model/cartesian_grid/set_Odxyz.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SUBROUTINE SET_ODXYZ_U_CUT_CELL
16
17 USE param
18 USE param1
19 USE parallel
20 USE constant
21 USE run
22 USE toleranc
23 USE geometry
24 USE indices
25 USE compar
26 USE mpi_utility
27 USE sendrecv
28 USE quadric
29 USE cutcell
30 USE vtk
31 USE functions
32
33 IMPLICIT NONE
34 INTEGER :: IJK,I,J,K
35 INTEGER :: IP,JP,KP
36 INTEGER :: IJK1,IJK2
37
38 IF(MyPE == PE_IO) THEN
39 IF(NO_K) THEN
40 WRITE(*,10)'COMPUTING 1/DX, 1/DY FOR U-MOMENTUM CELLS...'
41 ELSE
42 WRITE(*,10)'COMPUTING 1/DX, 1/DY, 1/DZ FOR U-MOMENTUM CELLS...'
43 ENDIF
44 ENDIF
45 10 FORMAT(1X,A)
46
47 DO IJK = IJKSTART3, IJKEND3
48
49 I = I_OF(IJK)
50 J = J_OF(IJK)
51 K = K_OF(IJK)
52
53
54
55
56
57 IF(I == ISTART3) THEN
58 IJK2 = FUNIJK(ISTART1,J,K)
59 IJK1 = FUNIJK(ISTART1-1,J,K)
60 ELSEIF(I == IEND3) THEN
61 IJK2 = FUNIJK(IEND3,J,K)
62 IJK1 = FUNIJK(IEND3-1,J,K)
63 ELSE
64 IP = I + 1
65 IJK2 = FUNIJK(IP,J,K)
66 IJK1 = IJK
67 ENDIF
68
69 IF(X_U(IJK2)/=X_U(IJK1)) THEN
70 ONEoDX_E_U(IJK) = ONE / (X_U(IJK2)-X_U(IJK1))
71 ELSE
72 ONEoDX_E_U(IJK) = ZERO
73 ENDIF
74
75
76
77
78
79 IF(J == JSTART3) THEN
80 IJK2 = FUNIJK(I,JSTART1,K)
81 IJK1 = FUNIJK(I,JSTART1-1,K)
82 ELSEIF(J == JEND3) THEN
83 IJK2 = FUNIJK(I,JEND3,K)
84 IJK1 = FUNIJK(I,JEND3-1,K)
85 ELSE
86 JP = J + 1
87 IJK2 = FUNIJK(I,JP,K)
88 IJK1 = IJK
89 ENDIF
90
91 IF(Y_U(IJK2)/=Y_U(IJK1)) THEN
92 ONEoDY_N_U(IJK) = ONE / (Y_U(IJK2)-Y_U(IJK1))
93 ELSE
94 ONEoDY_N_U(IJK) = ZERO
95 ENDIF
96
97
98
99
100
101 IF(DO_K) THEN
102 IF(K == KSTART3) THEN
103 IJK2 = FUNIJK(I,J,KSTART1)
104 IJK1 = FUNIJK(I,J,KSTART1-1)
105 ELSEIF(K == KEND3) THEN
106 IJK2 = FUNIJK(I,J,KEND3)
107 IJK1 = FUNIJK(I,J,KEND3-1)
108 ELSE
109 KP = K + 1
110 IJK2 = FUNIJK(I,J,KP)
111 IJK1 = IJK
112 ENDIF
113
114 IF(Z_U(IJK2)/=Z_U(IJK1)) THEN
115 ONEoDZ_T_U(IJK) = ONE / (Z_U(IJK2)-Z_U(IJK1))
116 ELSE
117 ONEoDZ_T_U(IJK) = ZERO
118 ENDIF
119
120 ELSE
121 ONEoDZ_T_U = ONE / ZLENGTH
122 ENDIF
123
124 END DO
125
126
127 RETURN
128
129
130 END SUBROUTINE SET_ODXYZ_U_CUT_CELL
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146 SUBROUTINE SET_ODXYZ_V_CUT_CELL
147
148 USE param
149 USE param1
150 USE parallel
151 USE constant
152 USE run
153 USE toleranc
154 USE geometry
155 USE indices
156 USE compar
157 USE mpi_utility
158 USE sendrecv
159 USE quadric
160 USE cutcell
161 USE vtk
162 USE functions
163
164 IMPLICIT NONE
165 INTEGER :: IJK,I,J,K
166 INTEGER :: IP,JP,KP,IPJK,IJPK,IJKP
167 INTEGER :: IJK1,IJK2
168
169 IF(MyPE == PE_IO) THEN
170 IF(NO_K) THEN
171 WRITE(*,10)'COMPUTING 1/DX, 1/DY FOR V-MOMENTUM CELLS...'
172 ELSE
173 WRITE(*,10)'COMPUTING 1/DX, 1/DY, 1/DZ FOR V-MOMENTUM CELLS...'
174 ENDIF
175 ENDIF
176 10 FORMAT(1X,A)
177
178 DO IJK = IJKSTART3, IJKEND3
179
180 I = I_OF(IJK)
181 J = J_OF(IJK)
182 K = K_OF(IJK)
183
184
185
186
187
188 IF(I == ISTART3) THEN
189 IJK2 = FUNIJK(ISTART1,J,K)
190 IJK1 = FUNIJK(ISTART1-1,J,K)
191 ELSEIF(I == IEND3) THEN
192 IJK2 = FUNIJK(IEND3,J,K)
193 IJK1 = FUNIJK(IEND3-1,J,K)
194 ELSE
195 IP = I + 1
196 IJK2 = FUNIJK(IP,J,K)
197 IJK1 = IJK
198 ENDIF
199
200 IF(X_V(IJK2)/=X_V(IJK1)) THEN
201 ONEoDX_E_V(IJK) = ONE / (X_V(IJK2)-X_V(IJK1))
202 ELSE
203 ONEoDX_E_V(IJK) = ZERO
204 ENDIF
205
206
207
208
209
210 IF(J == JSTART3) THEN
211 IJK2 = FUNIJK(I,JSTART1,K)
212 IJK1 = FUNIJK(I,JSTART1-1,K)
213 ELSEIF(J == JEND3) THEN
214 IJK2 = FUNIJK(I,JEND3,K)
215 IJK1 = FUNIJK(I,JEND3-1,K)
216 ELSE
217 JP = J + 1
218 IJK2 = FUNIJK(I,JP,K)
219 IJK1 = IJK
220 ENDIF
221
222 IF(Y_V(IJK2)/=Y_V(IJK1)) THEN
223 ONEoDY_N_V(IJK) = ONE / (Y_V(IJK2)-Y_V(IJK1))
224 ELSE
225 ONEoDY_N_V(IJK) = ZERO
226 ENDIF
227
228
229
230
231
232 IF(DO_K) THEN
233 IF(K == KSTART3) THEN
234 IJK2 = FUNIJK(I,J,KSTART1)
235 IJK1 = FUNIJK(I,J,KSTART1-1)
236 ELSEIF(K == KEND3) THEN
237 IJK2 = FUNIJK(I,J,KEND3)
238 IJK1 = FUNIJK(I,J,KEND3-1)
239 ELSE
240 KP = K + 1
241 IJK2 = FUNIJK(I,J,KP)
242 IJK1 = IJK
243 ENDIF
244
245 IF(Z_V(IJK2)/=Z_V(IJK1)) THEN
246 ONEoDZ_T_V(IJK) = ONE / (Z_V(IJK2)-Z_V(IJK1))
247 ELSE
248 ONEoDZ_T_V(IJK) = ZERO
249 ENDIF
250
251 ELSE
252
253 ONEoDZ_T_V = ONE / ZLENGTH
254
255 ENDIF
256
257 END DO
258
259
260
261 RETURN
262
263
264 END SUBROUTINE SET_ODXYZ_V_CUT_CELL
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281 SUBROUTINE SET_ODXYZ_W_CUT_CELL
282
283 USE param
284 USE param1
285 USE parallel
286 USE constant
287 USE run
288 USE toleranc
289 USE geometry
290 USE indices
291 USE compar
292 USE mpi_utility
293 USE sendrecv
294 USE quadric
295 USE cutcell
296 USE vtk
297 USE functions
298
299 IMPLICIT NONE
300 INTEGER :: IJK,I,J,K
301 INTEGER :: IP,JP,KP
302 INTEGER :: IJK1,IJK2
303
304 IF(MyPE == PE_IO) THEN
305 WRITE(*,10)'COMPUTING 1/DX, 1/DY, 1/DZ FOR W-MOMENTUM CELLS...'
306 ENDIF
307 10 FORMAT(1X,A)
308
309 DO IJK = IJKSTART3, IJKEND3
310
311 I = I_OF(IJK)
312 J = J_OF(IJK)
313 K = K_OF(IJK)
314
315
316
317
318
319 IF(I == ISTART3) THEN
320 IJK2 = FUNIJK(ISTART1,J,K)
321 IJK1 = FUNIJK(ISTART1-1,J,K)
322 ELSEIF(I == IEND3) THEN
323 IJK2 = FUNIJK(IEND3,J,K)
324 IJK1 = FUNIJK(IEND3-1,J,K)
325 ELSE
326 IP = I + 1
327 IJK2 = FUNIJK(IP,J,K)
328 IJK1 =IJK
329 ENDIF
330
331 IF(X_W(IJK2)/=X_W(IJK1)) THEN
332 ONEoDX_E_W(IJK) = ONE / (X_W(IJK2)-X_W(IJK1))
333 ELSE
334 ONEoDX_E_W(IJK) = ZERO
335 ENDIF
336
337
338
339
340 IF(J == JSTART3) THEN
341 IJK2 = FUNIJK(I,JSTART1,K)
342 IJK1 = FUNIJK(I,JSTART1-1,K)
343 ELSEIF(J == JEND3) THEN
344 IJK2 = FUNIJK(I,JEND3,K)
345 IJK1 = FUNIJK(I,JEND3-1,K)
346 ELSE
347 JP = J + 1
348 IJK2 = FUNIJK(I,JP,K)
349 IJK1 = IJK
350 ENDIF
351
352 IF(Y_W(IJK2)/=Y_W(IJK1)) THEN
353 ONEoDY_N_W(IJK) = ONE / (Y_W(IJK2)-Y_W(IJK1))
354 ELSE
355 ONEoDY_N_W(IJK) = ZERO
356 ENDIF
357
358
359
360
361
362
363 IF(K == KSTART3) THEN
364 IJK2 = FUNIJK(I,J,KSTART1)
365 IJK1 = FUNIJK(I,J,KSTART1-1)
366 ELSEIF(K == KEND3) THEN
367 IJK2 = FUNIJK(I,J,KEND3)
368 IJK1 = FUNIJK(I,J,KEND3-1)
369 ELSE
370 KP = K + 1
371 IJK2 = FUNIJK(I,J,KP)
372 IJK1 = IJK
373 ENDIF
374
375 IF(Z_W(IJK2)/=Z_W(IJK1)) THEN
376 ONEoDZ_T_W(IJK) = ONE / (Z_W(IJK2)-Z_W(IJK1))
377 ELSE
378 ONEoDZ_T_W(IJK) = ZERO
379 ENDIF
380
381 END DO
382
383
384
385 RETURN
386
387
388 END SUBROUTINE SET_ODXYZ_W_CUT_CELL
389