File: /nfs/home/0/users/jenkins/mfix.git/model/check_data_20.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 SUBROUTINE CHECK_DATA_20
27
28
29
30
31 USE param
32 USE param1
33 USE toleranc
34 USE fldvar
35 USE run
36 USE geometry
37 USE constant
38 USE physprop
39 USE indices
40 USE funits
41 USE visc_g
42 USE rxns
43 USE scalars
44 USE compar
45 USE sendrecv
46 USE discretelement
47 USE mfix_pic
48 USE functions
49 IMPLICIT NONE
50
51
52
53
54 INTEGER :: I, J, K, IJK, IMJK, IPJK, IJMK, IJPK, IJKM, IJKP, &
55 IJKW, IJKE, IJKS, IJKN, IJKB, IJKT, &
56 IM, JM, KM
57
58 INTEGER :: M
59
60 INTEGER :: N
61
62 LOGICAL :: ABORT
63
64 LOGICAL :: NONZERO
65
66 DOUBLE PRECISION DIF
67
68
69 call send_recv(p_g,2)
70 call send_recv(ep_g,2)
71 call send_recv(w_s,2)
72 call send_recv(w_g,2)
73 call send_recv(u_s,2)
74 call send_recv(u_g,2)
75 call send_recv(v_s,2)
76 call send_recv(v_g,2)
77 call send_recv(ro_s,2)
78 call send_recv(rop_s,2)
79 call send_recv( P_STAR, 2 )
80 call send_recv( ROP_G, 2 )
81 IF(GRANULAR_ENERGY) call send_recv( THETA_m, 2 )
82 call send_recv( RO_G, 2 )
83 call send_recv( T_G, 2 )
84 call send_recv( T_S, 2 )
85 call send_recv( X_G, 2 )
86 call send_recv( X_S, 2 )
87
88 CALL START_LOG
89 ABORT = .FALSE.
90 NONZERO = .FALSE.
91
92
93
94
95 DO K = kstart2, kend2
96 DO J = jstart2, jend2
97 DO I = istart2, iend2
98 IJK = FUNIJK(I,J,K)
99 IF (.NOT.WALL_AT(IJK)) THEN
100 CALL SET_INDEX1 (IJK, I, J, K, IMJK, IPJK, IJMK, &
101 IJPK, IJKM, IJKP, IJKW, IJKE, IJKS, IJKN, IJKB, &
102 IJKT, IM, JM, KM)
103
104
105 IF (EP_G(IJK) == UNDEFINED) THEN
106 IF (.NOT.ABORT) THEN
107 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
108 ABORT = .TRUE.
109 ENDIF
110 IF(DMP_LOG)WRITE (UNIT_LOG, 1010) I, J, K, 'EP_g'
111 ENDIF
112 IF (P_G(IJK) == UNDEFINED) THEN
113 IF (.NOT.ABORT) THEN
114 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
115 ABORT = .TRUE.
116 ENDIF
117 IF(DMP_LOG)WRITE (UNIT_LOG, 1010) I, J, K, 'P_g'
118 ENDIF
119 IF (P_STAR(IJK) == UNDEFINED) THEN
120 IF (.NOT.ABORT) THEN
121 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
122 ABORT = .TRUE.
123 ENDIF
124 IF(DMP_LOG)WRITE (UNIT_LOG, 1010) I, J, K, 'P_star'
125 ENDIF
126 IF (RO_G(IJK) == UNDEFINED) THEN
127 IF (.NOT.ABORT) THEN
128 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
129 ABORT = .TRUE.
130 ENDIF
131 IF(DMP_LOG)WRITE (UNIT_LOG, 1010) I, J, K, 'RO_g'
132 ENDIF
133 IF (ROP_G(IJK) == UNDEFINED) THEN
134 IF (.NOT.ABORT) THEN
135 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
136 ABORT = .TRUE.
137 ENDIF
138 IF(DMP_LOG)WRITE (UNIT_LOG, 1010) I, J, K, 'ROP_g'
139 ENDIF
140 IF (T_G(IJK) == UNDEFINED) THEN
141 IF (ENERGY_EQ .OR. RO_G0==UNDEFINED .OR.&
142 MU_G0==UNDEFINED) THEN
143 IF (.NOT.ABORT) THEN
144 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
145 ABORT = .TRUE.
146 ENDIF
147 IF(DMP_LOG)WRITE (UNIT_LOG, 1010) I, J, K, 'T_g'
148 ENDIF
149 ENDIF
150 IF (U_G(IMJK) == UNDEFINED) THEN
151 IF (.NOT.ABORT) THEN
152 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
153 ABORT = .TRUE.
154 ENDIF
155 IF(DMP_LOG)WRITE (UNIT_LOG, 1010) I-1, J, K, 'U_g'
156 ENDIF
157 IF (U_G(IJK)==UNDEFINED .AND. I/=IMAX2) THEN
158 IF (.NOT.ABORT) THEN
159 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
160 ABORT = .TRUE.
161 ENDIF
162 IF(DMP_LOG)WRITE (UNIT_LOG, 1010) I, J, K, 'U_g'
163 ENDIF
164 IF (V_G(IJMK) == UNDEFINED) THEN
165 IF (.NOT.ABORT) THEN
166 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
167 ABORT = .TRUE.
168 ENDIF
169 IF(DMP_LOG)WRITE (UNIT_LOG, 1010) I, J-1, K, 'V_g'
170 ENDIF
171 IF (V_G(IJK)==UNDEFINED .AND. J/=JMAX2) THEN
172 IF (.NOT.ABORT) THEN
173 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
174 ABORT = .TRUE.
175 ENDIF
176 IF(DMP_LOG)WRITE (UNIT_LOG, 1010) I, J, K, 'V_g'
177 ENDIF
178
179 IF (W_G(IJKM) == UNDEFINED) THEN
180 IF (.NOT.ABORT) THEN
181 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
182 ABORT = .TRUE.
183 ENDIF
184 IF(DMP_LOG)WRITE (UNIT_LOG, 1010) I, J, K-1, 'W_g'
185 ENDIF
186 IF (W_G(IJK)==UNDEFINED .AND. K/=KMAX2) THEN
187 IF (.NOT.ABORT) THEN
188 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
189 ABORT = .TRUE.
190 ENDIF
191 IF(DMP_LOG)WRITE (UNIT_LOG, 1010) I, J, K, 'W_g'
192 ENDIF
193 IF (SPECIES_EQ(0) .OR. RO_G0==UNDEFINED .AND.&
194 MW_AVG==UNDEFINED) THEN
195 DO N = 1, NMAX(0)
196 IF (X_G(IJK,N) == UNDEFINED) THEN
197 IF (.NOT.ABORT) THEN
198 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
199 ABORT = .TRUE.
200 ENDIF
201 IF(DMP_LOG)WRITE (UNIT_LOG, 1012) &
202 I, J, K, N, 'X_g'
203 ENDIF
204 ENDDO
205 ENDIF
206
207 DO N = 1, NScalar
208 IF (Scalar(IJK,N) == UNDEFINED) THEN
209 IF (.NOT.ABORT) THEN
210 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
211 ABORT = .TRUE.
212 ENDIF
213 IF(DMP_LOG)WRITE (UNIT_LOG, 1012) &
214 I, J, K, N, 'Scalar'
215 ENDIF
216 ENDDO
217
218
219
220
221 IF (.NOT.DISCRETE_ELEMENT .OR. DES_CONTINUUM_HYBRID) THEN
222
223
224 DO M = 1, SMAX
225
226 IF (RO_S(IJK,M) == UNDEFINED) THEN
227 IF (.NOT.ABORT) THEN
228 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
229 ABORT = .TRUE.
230 ENDIF
231 IF(DMP_LOG)WRITE (UNIT_LOG, 1011) &
232 I, J, K, M, 'RO_s'
233 ENDIF
234 IF (ROP_S(IJK,M) == UNDEFINED) THEN
235 IF (.NOT.ABORT) THEN
236 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
237 ABORT = .TRUE.
238 ENDIF
239 IF(DMP_LOG)WRITE (UNIT_LOG, 1011) &
240 I, J, K, M, 'ROP_s'
241 ENDIF
242 IF (T_S(IJK,M) == UNDEFINED) THEN
243 IF (ENERGY_EQ) THEN
244 IF (.NOT.ABORT) THEN
245 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
246 ABORT = .TRUE.
247 ENDIF
248 IF(DMP_LOG)WRITE (UNIT_LOG, 1011) &
249 I, J, K, M, 'T_s'
250 ENDIF
251 ENDIF
252 IF (U_S(IMJK,M) == UNDEFINED) THEN
253 IF (.NOT.ABORT) THEN
254 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
255 ABORT = .TRUE.
256 ENDIF
257 IF(DMP_LOG)WRITE (UNIT_LOG, 1011) &
258 I-1, J, K, M, 'U_s'
259 ENDIF
260 IF (U_S(IJK,M)==UNDEFINED .AND. I/=IMAX2) THEN
261 IF (.NOT.ABORT) THEN
262 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
263 ABORT = .TRUE.
264 ENDIF
265 IF(DMP_LOG)WRITE (UNIT_LOG, 1011) &
266 I, J, K, M, 'U_s'
267 ENDIF
268 IF (V_S(IJMK,M) == UNDEFINED) THEN
269 IF (.NOT.ABORT) THEN
270 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
271 ABORT = .TRUE.
272 ENDIF
273 IF(DMP_LOG)WRITE (UNIT_LOG, 1011) &
274 I, J-1, K, M, 'V_s'
275 ENDIF
276 IF (V_S(IJK,M)==UNDEFINED .AND. J/=JMAX2) THEN
277 IF (.NOT.ABORT) THEN
278 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
279 ABORT = .TRUE.
280 ENDIF
281 IF(DMP_LOG)WRITE (UNIT_LOG, 1011) &
282 I, J, K, M, 'V_s'
283 ENDIF
284 IF (W_S(IJKM,M) == UNDEFINED) THEN
285 IF (.NOT.ABORT) THEN
286 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
287 ABORT = .TRUE.
288 ENDIF
289 IF(DMP_LOG)WRITE (UNIT_LOG, 1011) &
290 I, J, K - 1, M, 'W_s'
291 ENDIF
292 IF (W_S(IJK,M)==UNDEFINED .AND. K/=KMAX2) THEN
293 IF (.NOT.ABORT) THEN
294 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
295 ABORT = .TRUE.
296 ENDIF
297 IF(DMP_LOG)WRITE (UNIT_LOG, 1011) &
298 I, J, K, M, 'W_s'
299 ENDIF
300 IF (SPECIES_EQ(M)) THEN
301 DO N = 1, NMAX(M)
302 IF (X_S(IJK,M,N) == UNDEFINED) THEN
303 IF (.NOT.ABORT) THEN
304 IF(DMP_LOG)WRITE (UNIT_LOG, 1000)
305 ABORT = .TRUE.
306 ENDIF
307 IF(DMP_LOG)WRITE (UNIT_LOG, 1013) &
308 I, J, K, M, N, 'X_s'
309 ENDIF
310 ENDDO
311 ENDIF
312 ENDDO
313 ENDIF
314
315
316 ENDIF
317 ENDDO
318 ENDDO
319 ENDDO
320
321
322
323
324
325 IF (ABORT) THEN
326 IF(DMP_LOG)WRITE (UNIT_LOG, 1300)
327 CALL MFIX_EXIT(myPE)
328 ENDIF
329
330
331
332
333 DO K = kstart2, kend2
334 DO J = jstart2, jend2
335 DO I = istart2, iend2
336 IJK = FUNIJK(I,J,K)
337
338 IF (FLAG(IJK)==1 .OR. FLAG(IJK)==20) THEN
339
340
341 IF (L_SCALE(IJK) /= ZERO) NONZERO = .TRUE.
342
343
344
345
346 IF (.NOT.DISCRETE_ELEMENT) THEN
347 DIF = ONE - EP_G(IJK)
348 IF (SMAX > 0) THEN
349 DIF = DIF - SUM(ROP_S(IJK,:MMAX)/RO_S(IJK,:MMAX))
350 IF (ABS(DIF) > SMALL_NUMBER) THEN
351 IF (.NOT.ABORT) THEN
352 IF(DMP_LOG)WRITE (UNIT_LOG, 1050)
353 ABORT = .TRUE.
354 ENDIF
355 IF(DMP_LOG)WRITE (UNIT_LOG, 1100) &
356 I, J, K, (1.- dif)
357 ENDIF
358
359
360 IF (EP_G(IJK) < SMALL_NUMBER) THEN
361 IF (.NOT.ABORT) THEN
362 IF(DMP_LOG)WRITE (UNIT_LOG, 1070)
363 ABORT = .TRUE.
364 ENDIF
365 IF(DMP_LOG)WRITE (UNIT_LOG, 1150) I, J, K
366 ENDIF
367
368
369 IF (EP_G(IJK) > ONE) THEN
370 IF (.NOT.ABORT) THEN
371 IF(DMP_LOG)WRITE (UNIT_LOG, 1080)
372 ABORT = .TRUE.
373 ENDIF
374 IF(DMP_LOG)WRITE (UNIT_LOG, 1150) I, J, K
375 ENDIF
376 ENDIF
377
378 ELSE
379
380
381
382
383
384
385
386
387
388 IF (EP_G(IJK) < ZERO .OR. EP_G(IJK) > ONE) THEN
389 IF (.NOT.ABORT) THEN
390 IF(DMP_LOG)WRITE (UNIT_LOG, 1075)
391 ABORT = .TRUE.
392 ENDIF
393 IF(DMP_LOG)WRITE (UNIT_LOG, 1150) I, J, K
394 ENDIF
395 ENDIF
396
397 ENDIF
398 ENDDO
399 ENDDO
400 ENDDO
401
402
403
404
405 IF (ABORT) THEN
406 IF(DMP_LOG)WRITE (UNIT_LOG, 1300)
407 CALL MFIX_EXIT (myPE)
408 ENDIF
409
410
411 IF (NONZERO .AND. MU_GMAX==UNDEFINED) THEN
412 IF(DMP_LOG)WRITE (UNIT_LOG, 1350)
413 CALL MFIX_EXIT(myPE)
414 ENDIF
415
416
417 IF (K_Epsilon .AND. MU_GMAX==UNDEFINED) THEN
418 IF(DMP_LOG)WRITE (UNIT_LOG, 1360)
419 CALL MFIX_EXIT(myPE)
420 ENDIF
421
422 CALL END_LOG
423 RETURN
424
425 1000 FORMAT(/1X,70('*')//' From: CHECK_DATA_20',/&
426 ' Message: The following field variables are undefined')
427 1010 FORMAT(1X,'I = ',I4,' J = ',I4,' K = ',I4,5X,A)
428 1011 FORMAT(1X,'I = ',I4,' J = ',I4,' K = ',I4,' M = ',I4,5X,A)
429 1012 FORMAT(1X,'I = ',I4,' J = ',I4,' K = ',I4,' N = ',I4,5X,A)
430 1013 FORMAT(1X,'I = ',I4,' J = ',I4,' K = ',I4,' M = ',I4,' N = ',I4,5X,A)
431 1050 FORMAT(/1X,70('*')//' From: CHECK_DATA_20',/&
432 ' Message: The sum of volume fractions is not equal to 1',/&
433 ' in the following cells:',/4X,'I',T14,'J',T24,'K')
434 1070 FORMAT(/1X,70('*')//' From: CHECK_DATA_20',/&
435 ' Message: EP_g is less than SMALL_NUMBER ',/&
436 ' in the following cells:',/4X,'I',T14,'J',T24,'K')
437 1075 FORMAT(/1X,70('*')//' From: CHECK_DATA_20',/&
438 ' Message: EP_g is unphysical (>0 or <1) ',/&
439 ' in the following cells:',/4X,'I',T14,'J',T24,'K')
440 1080 FORMAT(/1X,70('*')//' From: CHECK_DATA_20',/&
441 ' Message: EP_g is greater than one ',/&
442 ' in the following cells:',/4X,'I',T14,'J',T24,'K')
443 1100 FORMAT(1X,I4,T11,I4,T21,I4,' Sum of EP = ', G12.5, '.NE. 1')
444 1150 FORMAT(1X,I4,T11,I4,T21,I4)
445 1300 FORMAT(/1X,70('*')/)
446 1350 FORMAT(/1X,70('*')//' From: CHECK_DATA_20',/&
447 ' Message: Turbulent length scale is nonzero. Specify MU_gmax.',/1X,70&
448 ('*')/)
449 1360 FORMAT(/1X,70('*')//' From: CHECK_DATA_20',/&
450 ' Message: K_Epsilon model is used. Specify MU_gmax in mfix.dat.',/1X,70&
451 ('*')/)
452 END SUBROUTINE CHECK_DATA_20
453
454
455