File: RELATIVE:/../../../mfix.git/model/check_data/check_bc_geometry.f
1
2
3
4
5
6
7
8
9
10 SUBROUTINE CHECK_BC_GEOMETRY
11
12
13
14
15 use bc, only: BC_DEFINED
16
17 use bc, only: BC_TYPE
18
19 use bc, only: BC_X_e, BC_X_w, BC_I_e, BC_I_w
20 use bc, only: BC_Y_n, BC_Y_s, BC_J_n, BC_J_s
21 use bc, only: BC_Z_t, BC_Z_b, BC_K_t, BC_K_b
22
23 use geometry, only: NO_I, XLENGTH
24 use geometry, only: NO_J, YLENGTH
25 use geometry, only: NO_K, ZLENGTH
26
27 use run, only: REINITIALIZING
28
29
30
31
32 use param, only: DIMENSION_BC
33
34 use param1, only: ZERO, UNDEFINED, UNDEFINED_I, UNDEFINED_C
35
36
37
38 use error_manager
39
40
41 IMPLICIT NONE
42
43
44
45
46
47 INTEGER :: BCV, I
48
49 LOGICAL :: RECOGNIZED_BC_TYPE
50
51 INTEGER, PARAMETER :: DIM_BCTYPE = 21
52
53 CHARACTER(LEN=16), DIMENSION(1:DIM_BCTYPE) ::VALID_BC_TYPE = (/&
54 'MASS_INFLOW ', 'MI ',&
55 'MASS_OUTFLOW ', 'MO ',&
56 'P_INFLOW ', 'PI ',&
57 'P_OUTFLOW ', 'PO ',&
58 'FREE_SLIP_WALL ', 'FSW ',&
59 'NO_SLIP_WALL ', 'NSW ',&
60 'PAR_SLIP_WALL ', 'PSW ',&
61 'OUTFLOW ', 'OF ',&
62 'CG_NSW ', 'CG_FSW ',&
63 'CG_PSW ', 'CG_MI ',&
64 'CG_PO '/)
65
66
67
68 IF(REINITIALIZING) RETURN
69
70 CALL INIT_ERR_MSG("CHECK_BC_GEOMETRY")
71
72 L50: DO BCV = 1, DIMENSION_BC
73
74 BC_DEFINED(BCV) = .FALSE.
75 IF(BC_X_W(BCV) /= UNDEFINED) BC_DEFINED(BCV) = .TRUE.
76 IF(BC_X_E(BCV) /= UNDEFINED) BC_DEFINED(BCV) = .TRUE.
77 IF(BC_Y_S(BCV) /= UNDEFINED) BC_DEFINED(BCV) = .TRUE.
78 IF(BC_Y_N(BCV) /= UNDEFINED) BC_DEFINED(BCV) = .TRUE.
79 IF(BC_Z_B(BCV) /= UNDEFINED) BC_DEFINED(BCV) = .TRUE.
80 IF(BC_Z_T(BCV) /= UNDEFINED) BC_DEFINED(BCV) = .TRUE.
81 IF(BC_I_W(BCV) /= UNDEFINED_I) BC_DEFINED(BCV) = .TRUE.
82 IF(BC_I_E(BCV) /= UNDEFINED_I) BC_DEFINED(BCV) = .TRUE.
83 IF(BC_J_S(BCV) /= UNDEFINED_I) BC_DEFINED(BCV) = .TRUE.
84 IF(BC_J_N(BCV) /= UNDEFINED_I) BC_DEFINED(BCV) = .TRUE.
85 IF(BC_K_B(BCV) /= UNDEFINED_I) BC_DEFINED(BCV) = .TRUE.
86 IF(BC_K_T(BCV) /= UNDEFINED_I) BC_DEFINED(BCV) = .TRUE.
87 IF(BC_TYPE(BCV) == 'CG_NSW') BC_DEFINED(BCV) = .TRUE.
88 IF(BC_TYPE(BCV) == 'CG_FSW') BC_DEFINED(BCV) = .TRUE.
89 IF(BC_TYPE(BCV) == 'CG_PSW') BC_DEFINED(BCV) = .TRUE.
90 IF(BC_TYPE(BCV) == 'CG_MI') BC_DEFINED(BCV) = .TRUE.
91 IF(BC_TYPE(BCV) == 'CG_PO') BC_DEFINED(BCV) = .TRUE.
92
93 IF (BC_TYPE(BCV) == 'DUMMY') BC_DEFINED(BCV) = .FALSE.
94
95 IF(BC_TYPE(BCV)/=UNDEFINED_C .AND. BC_TYPE(BCV)/='DUMMY')THEN
96
97 RECOGNIZED_BC_TYPE = .FALSE.
98 DO I = 1, DIM_BCTYPE
99 VALID_BC_TYPE(I) = TRIM(VALID_BC_TYPE(I))
100 IF(VALID_BC_TYPE(I) == BC_TYPE(BCV)) THEN
101 RECOGNIZED_BC_TYPE = .TRUE.
102 EXIT
103 ENDIF
104 ENDDO
105
106 IF(.NOT.RECOGNIZED_BC_TYPE) THEN
107 WRITE(ERR_MSG, 1100) trim(iVar('BC_TYPE',BCV)), &
108 trim(BC_TYPE(BCV)), VALID_BC_TYPE
109 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
110 ENDIF
111 ENDIF
112
113 IF(.NOT.BC_DEFINED(BCV)) CYCLE
114 IF(BC_TYPE(BCV)(1:2) == 'CG') CYCLE
115
116 IF(BC_X_W(BCV)==UNDEFINED .AND. BC_I_W(BCV)==UNDEFINED_I) THEN
117 IF(NO_I) THEN
118 BC_X_W(BCV) = ZERO
119 ELSE
120 WRITE(ERR_MSG,1101) BCV, 'BC_X_w and BC_I_w'
121 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
122 ENDIF
123 ENDIF
124
125 IF(BC_X_E(BCV)==UNDEFINED .AND. BC_I_E(BCV)==UNDEFINED_I) THEN
126 IF(NO_I) THEN
127 BC_X_E(BCV) = XLENGTH
128 ELSE
129 WRITE(ERR_MSG, 1101) BCV, 'BC_X_e and BC_I_e'
130 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
131 ENDIF
132 ENDIF
133
134 IF(BC_Y_S(BCV)==UNDEFINED .AND. BC_J_S(BCV)==UNDEFINED_I) THEN
135 IF(NO_J) THEN
136 BC_Y_S(BCV) = ZERO
137 ELSE
138 WRITE(ERR_MSG, 1101) BCV, 'BC_Y_s and BC_J_s'
139 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
140 ENDIF
141 ENDIF
142
143 IF(BC_Y_N(BCV)==UNDEFINED .AND. BC_J_N(BCV)==UNDEFINED_I) THEN
144 IF(NO_J) THEN
145 BC_Y_N(BCV) = YLENGTH
146 ELSE
147 WRITE(ERR_MSG, 1101) BCV, 'BC_Y_n and BC_J_n'
148 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
149 ENDIF
150 ENDIF
151
152 IF(BC_Z_B(BCV)==UNDEFINED .AND. BC_K_B(BCV)==UNDEFINED_I) THEN
153 IF(NO_K) THEN
154 BC_Z_B(BCV) = ZERO
155 ELSE
156 WRITE(ERR_MSG, 1101) BCV, 'BC_Z_b and BC_K_b'
157 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
158 ENDIF
159 ENDIF
160
161 IF(BC_Z_T(BCV)==UNDEFINED .AND. BC_K_T(BCV)==UNDEFINED_I) THEN
162 IF(NO_K) THEN
163 BC_Z_T(BCV) = ZLENGTH
164 ELSE
165 WRITE(ERR_MSG, 1101) BCV, 'BC_Z_t and BC_K_t'
166 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
167 ENDIF
168 ENDIF
169
170 1101 FORMAT('Error 1101: Boundary condition ',I3,' is ill-defined.',/ &
171 A,' are not specified.',/'Please correct the mfix.dat file.')
172
173
174 DO I = 1, DIM_BCTYPE
175 VALID_BC_TYPE(I) = TRIM(VALID_BC_TYPE(I))
176 IF(VALID_BC_TYPE(I) == BC_TYPE(BCV)) THEN
177 IF(MOD(I,2) == 0) BC_TYPE(BCV) = VALID_BC_TYPE(I-1)
178 CYCLE L50
179 ENDIF
180 ENDDO
181
182 WRITE(ERR_MSG, 1100) trim(iVar('BC_TYPE',BCV)), &
183 trim(BC_TYPE(BCV)), VALID_BC_TYPE
184 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
185
186 ENDDO L50
187
188 CALL FINL_ERR_MSG
189
190 RETURN
191
192
193 1100 FORMAT('Error 1100: Illegal entry: ',A,' = ',A,/'Valid entries:',&
194 ' ',10(/5X,A,2x,A),/5X,A)
195
196 END SUBROUTINE CHECK_BC_GEOMETRY
197
198
199
200
201
202
203
204
205
206
207
208 SUBROUTINE CHECK_BC_GEOMETRY_WALL(BCV)
209
210
211
212
213 use bc, only: BC_X_w, BC_X_e, BC_I_w, BC_I_e
214 use bc, only: BC_Y_s, BC_Y_n, BC_J_s, BC_J_n
215 use bc, only: BC_Z_b, BC_Z_t, BC_K_b, BC_K_t
216
217 use geometry, only: NO_I, XLENGTH, DX, IMAX, IMAX2, XMIN
218 use geometry, only: NO_J, YLENGTH, DY, JMAX, JMAX2
219 use geometry, only: NO_K, ZLENGTH, DZ, KMAX, KMAX2
220
221 use run, only: REINITIALIZING
222
223 use toleranc, only: COMPARE
224
225
226
227 use param1, only: ZERO, UNDEFINED_I, UNDEFINED
228
229
230
231 use error_manager
232
233
234 IMPLICIT NONE
235
236
237
238
239
240 INTEGER, INTENT(in) :: BCV
241
242
243
244
245 INTEGER :: I_w , I_e , J_s , J_n , K_b , K_t
246
247 INTEGER :: IER
248
249
250
251
252 IF(REINITIALIZING) RETURN
253
254 CALL INIT_ERR_MSG("CHECK_BC_GEOMETRY_WALL")
255
256 IF(BC_X_W(BCV)/=UNDEFINED .AND. BC_X_E(BCV)/=UNDEFINED) THEN
257
258
259 IF (NO_I) THEN
260 I_W = 1
261 I_E = 1
262 ELSE
263 CALL CALC_CELL (XMIN, BC_X_W(BCV), DX, IMAX, I_W)
264 I_W = I_W + 1
265 CALL CALC_CELL (XMIN, BC_X_E(BCV), DX, IMAX, I_E)
266
267 IF(BC_X_W(BCV) == BC_X_E(BCV)) THEN
268 IF(COMPARE(BC_X_W(BCV),XMIN)) THEN
269 I_W = 1
270 I_E = 1
271 ELSEIF(COMPARE(BC_X_W(BCV),XMIN+XLENGTH)) THEN
272 I_W = IMAX2
273 I_E = IMAX2
274 ENDIF
275 ENDIF
276 ENDIF
277
278
279
280 IF(BC_I_W(BCV)/=UNDEFINED_I .OR. BC_I_E(BCV)/=UNDEFINED_I) THEN
281 CALL LOCATION_CHECK (BC_I_W(BCV), I_W, BCV, 'BC - west')
282 CALL LOCATION_CHECK (BC_I_E(BCV), I_E, BCV, 'BC - east')
283 ELSE
284 BC_I_W(BCV) = I_W
285 BC_I_E(BCV) = I_E
286 ENDIF
287 ENDIF
288
289
290 IF(BC_Y_S(BCV)/=UNDEFINED .AND. BC_Y_N(BCV)/=UNDEFINED) THEN
291
292 IF(NO_J) THEN
293 J_S = 1
294 J_N = 1
295 ELSE
296 CALL CALC_CELL (ZERO, BC_Y_S(BCV), DY, JMAX, J_S)
297 J_S = J_S + 1
298 CALL CALC_CELL (ZERO, BC_Y_N(BCV), DY, JMAX, J_N)
299
300 IF(BC_Y_S(BCV) == BC_Y_N(BCV)) THEN
301 IF(COMPARE(BC_Y_S(BCV),ZERO)) THEN
302 J_S = 1
303 J_N = 1
304 ELSE IF (COMPARE(BC_Y_S(BCV),YLENGTH)) THEN
305 J_S = JMAX2
306 J_N = JMAX2
307 ENDIF
308 ENDIF
309 ENDIF
310
311
312 IF(BC_J_S(BCV)/=UNDEFINED_I .OR. BC_J_N(BCV)/=UNDEFINED_I) THEN
313 CALL LOCATION_CHECK (BC_J_S(BCV), J_S, BCV, 'BC - south')
314 CALL LOCATION_CHECK (BC_J_N(BCV), J_N, BCV, 'BC - north')
315 ELSE
316 BC_J_S(BCV) = J_S
317 BC_J_N(BCV) = J_N
318 ENDIF
319 ENDIF
320
321 IF(BC_Z_B(BCV)/=UNDEFINED .AND. BC_Z_T(BCV)/=UNDEFINED) THEN
322
323 IF(NO_K)THEN
324 K_B = 1
325 K_T = 1
326 ELSE
327 CALL CALC_CELL (ZERO, BC_Z_B(BCV), DZ, KMAX, K_B)
328 K_B = K_B + 1
329 CALL CALC_CELL (ZERO, BC_Z_T(BCV), DZ, KMAX, K_T)
330
331 IF(BC_Z_B(BCV) == BC_Z_T(BCV)) THEN
332 IF(COMPARE(BC_Z_B(BCV),ZERO)) THEN
333 K_B = 1
334 K_T = 1
335 ELSEIF(COMPARE(BC_Z_B(BCV),ZLENGTH)) THEN
336 K_B = KMAX2
337 K_T = KMAX2
338 ENDIF
339 ENDIF
340 ENDIF
341
342
343 IF(BC_K_B(BCV)/=UNDEFINED_I .OR.BC_K_T(BCV)/=UNDEFINED_I) THEN
344 CALL LOCATION_CHECK (BC_K_B(BCV), K_B, BCV, 'BC - bottom')
345 CALL LOCATION_CHECK (BC_K_T(BCV), K_T, BCV, 'BC - top')
346 ELSE
347 BC_K_B(BCV) = K_B
348 BC_K_T(BCV) = K_T
349 ENDIF
350 ENDIF
351
352
353
354 = 0
355 IF (BC_K_B(BCV)<1 .OR. BC_K_B(BCV)>KMAX2) IER = 1
356 IF (BC_J_S(BCV)<1 .OR. BC_J_S(BCV)>JMAX2) IER = 1
357 IF (BC_I_W(BCV)<1 .OR. BC_I_W(BCV)>IMAX2) IER = 1
358 IF (BC_K_T(BCV)<1 .OR. BC_K_T(BCV)>KMAX2) IER = 1
359 IF (BC_J_N(BCV)<1 .OR. BC_J_N(BCV)>JMAX2) IER = 1
360 IF (BC_I_E(BCV)<1 .OR. BC_I_E(BCV)>IMAX2) IER = 1
361 IF (BC_K_B(BCV) > BC_K_T(BCV)) IER = 1
362 IF (BC_J_S(BCV) > BC_J_N(BCV)) IER = 1
363 IF (BC_I_W(BCV) > BC_I_E(BCV)) IER = 1
364
365 IF(IER /= 0)THEN
366 WRITE(ERR_MSG,1100) BCV, &
367 'X', BC_X_W(BCV), BC_X_E(BCV),'I',BC_I_W(BCV),BC_I_E(BCV), &
368 'Y', BC_Y_S(BCV), BC_Y_N(BCV),'J',BC_J_S(BCV),BC_J_N(BCV), &
369 'Z', BC_Z_B(BCV), BC_Z_T(BCV),'K',BC_K_B(BCV),BC_K_T(BCV)
370 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
371 ENDIF
372
373 1100 FORMAT('Error 1100: Invalid location specified for BC ',I3,'.', &
374 3(/3x,A1,': ',g12.5,',',g12.5,8x,A1,': ',I8,',',I8),/ &
375 'Please correct the mfix.dat file.')
376
377 CALL FINL_ERR_MSG
378
379 RETURN
380
381 END SUBROUTINE CHECK_BC_GEOMETRY_WALL
382
383
384
385
386
387
388
389
390
391
392
393
394 SUBROUTINE CHECK_BC_GEOMETRY_FLOW(BCV)
395
396
397
398
399 use bc, only: BC_X_w, BC_X_e, BC_I_w, BC_I_e
400 use bc, only: BC_Y_s, BC_Y_n, BC_J_s, BC_J_n
401 use bc, only: BC_Z_b, BC_Z_t, BC_K_b, BC_K_t
402
403 use geometry, only: NO_I, DX, IMAX, IMAX2, XMIN
404 use geometry, only: NO_J, DY, JMAX, JMAX2
405 use geometry, only: NO_K, DZ, KMAX, KMAX2
406
407 use run, only: REINITIALIZING
408
409
410
411 use param1, only: ZERO, UNDEFINED_I, UNDEFINED
412
413
414
415 use error_manager
416
417 IMPLICIT NONE
418
419
420
421
422
423 INTEGER, INTENT(in) :: BCV
424
425
426
427
428 INTEGER :: I_w, I_e, J_s, J_n, K_b, K_t
429
430 INTEGER :: IER
431
432
433
434
435
436 LOGICAL :: X_CONSTANT, Y_CONSTANT, Z_CONSTANT
437
438
439
440 IF(REINITIALIZING) RETURN
441
442 CALL INIT_ERR_MSG("CHECK_BC_GEOMETRY_FLOW")
443
444 X_CONSTANT = .TRUE.
445 Y_CONSTANT = .TRUE.
446 Z_CONSTANT = .TRUE.
447
448 IF (BC_X_W(BCV)/=UNDEFINED .AND. BC_X_E(BCV)/=UNDEFINED) THEN
449 CALL CALC_CELL (XMIN, BC_X_W(BCV), DX, IMAX, I_W)
450 CALL CALC_CELL (XMIN, BC_X_E(BCV), DX, IMAX, I_E)
451 IF (BC_X_W(BCV) /= BC_X_E(BCV)) THEN
452 X_CONSTANT = .FALSE.
453 I_W = I_W + 1
454 IF(BC_I_W(BCV)/=UNDEFINED_I.OR.BC_I_E(BCV)/=UNDEFINED_I)THEN
455 CALL LOCATION_CHECK (BC_I_W(BCV), I_W, BCV, 'BC - west')
456 CALL LOCATION_CHECK (BC_I_E(BCV), I_E, BCV, 'BC - east')
457 ENDIF
458 ENDIF
459 BC_I_W(BCV) = I_W
460 BC_I_E(BCV) = I_E
461 ELSE
462 IF(BC_I_W(BCV) /= UNDEFINED_I) &
463 CALL CALC_LOC (XMIN,DX,BC_I_W(BCV),BC_X_W(BCV))
464 IF(BC_I_E(BCV) /= UNDEFINED_I) &
465 CALL CALC_LOC (XMIN,DX,BC_I_E(BCV),BC_X_E(BCV))
466 IF(BC_X_W(BCV) /= BC_X_E(BCV)) X_CONSTANT = .FALSE.
467 ENDIF
468
469
470 IF(NO_I) THEN
471 BC_I_W(BCV) = 1
472 BC_I_E(BCV) = 1
473 ENDIF
474
475 IF (BC_Y_S(BCV)/=UNDEFINED .AND. BC_Y_N(BCV)/=UNDEFINED) THEN
476 CALL CALC_CELL (ZERO, BC_Y_S(BCV), DY, JMAX, J_S)
477 CALL CALC_CELL (ZERO, BC_Y_N(BCV), DY, JMAX, J_N)
478 IF(BC_Y_S(BCV) /= BC_Y_N(BCV)) THEN
479 Y_CONSTANT = .FALSE.
480 J_S = J_S + 1
481 IF(BC_J_S(BCV)/=UNDEFINED_I.OR.BC_J_N(BCV)/=UNDEFINED_I)THEN
482 CALL LOCATION_CHECK (BC_J_S(BCV), J_S, BCV, 'BC - south')
483 CALL LOCATION_CHECK (BC_J_N(BCV), J_N, BCV, 'BC - north')
484 ENDIF
485 ENDIF
486 BC_J_S(BCV) = J_S
487 BC_J_N(BCV) = J_N
488 ELSE
489 IF(BC_J_S(BCV) /= UNDEFINED_I) &
490 CALL CALC_LOC (ZERO,DY,BC_J_S(BCV),BC_Y_S(BCV))
491 IF(BC_J_N(BCV) /= UNDEFINED_I) &
492 CALL CALC_LOC (ZERO,DY,BC_J_N(BCV),BC_Y_N(BCV))
493 IF (BC_Y_S(BCV) /= BC_Y_N(BCV)) Y_CONSTANT = .FALSE.
494 ENDIF
495
496
497 IF(NO_J) THEN
498 BC_J_S(BCV) = 1
499 BC_J_N(BCV) = 1
500 ENDIF
501
502 IF(BC_Z_B(BCV)/=UNDEFINED .AND. BC_Z_T(BCV)/=UNDEFINED) THEN
503 CALL CALC_CELL (ZERO, BC_Z_B(BCV), DZ, KMAX, K_B)
504 CALL CALC_CELL (ZERO, BC_Z_T(BCV), DZ, KMAX, K_T)
505 IF(BC_Z_B(BCV) /= BC_Z_T(BCV)) THEN
506 Z_CONSTANT = .FALSE.
507 K_B = K_B + 1
508 IF(BC_K_B(BCV)/=UNDEFINED_I.OR.BC_K_T(BCV)/=UNDEFINED_I)THEN
509 CALL LOCATION_CHECK (BC_K_B(BCV), K_B, BCV, 'BC - bottom')
510 CALL LOCATION_CHECK (BC_K_T(BCV), K_T, BCV, 'BC - top')
511 ENDIF
512 ENDIF
513 BC_K_B(BCV) = K_B
514 BC_K_T(BCV) = K_T
515 ELSE
516 IF(BC_K_B(BCV) /= UNDEFINED_I) &
517 CALL CALC_LOC (ZERO,DZ,BC_K_B(BCV),BC_Z_B(BCV))
518 IF(BC_K_T(BCV) /= UNDEFINED_I) &
519 CALL CALC_LOC (ZERO,DZ,BC_K_T(BCV),BC_Z_T(BCV))
520 IF(BC_Z_B(BCV) /= BC_Z_T(BCV)) Z_CONSTANT = .FALSE.
521 ENDIF
522
523
524 IF(NO_K) THEN
525 BC_K_B(BCV) = 1
526 BC_K_T(BCV) = 1
527 ENDIF
528
529
530
531 IF(BC_X_W(BCV)/=UNDEFINED .AND. BC_Y_S(BCV)/=UNDEFINED .AND. &
532 BC_Z_B(BCV)/=UNDEFINED) CALL CHECK_PLANE (X_CONSTANT, &
533 Y_CONSTANT, Z_CONSTANT, BCV, 'BC')
534
535
536
537 = 0
538 IF(BC_I_W(BCV)<1 .OR. BC_I_W(BCV)>IMAX2) IER = 1
539 IF(BC_I_E(BCV)<1 .OR. BC_I_E(BCV)>IMAX2) IER = 1
540 IF(BC_J_S(BCV)<1 .OR. BC_J_S(BCV)>JMAX2) IER = 1
541 IF(BC_J_N(BCV)<1 .OR. BC_J_N(BCV)>JMAX2) IER = 1
542 IF(BC_K_B(BCV)<1 .OR. BC_K_B(BCV)>KMAX2) IER = 1
543 IF(BC_K_T(BCV)<1 .OR. BC_K_T(BCV)>KMAX2) IER = 1
544 IF(BC_K_B(BCV) > BC_K_T(BCV)) IER = 1
545 IF(BC_J_S(BCV) > BC_J_N(BCV)) IER = 1
546 IF(BC_I_W(BCV) > BC_I_E(BCV)) IER = 1
547
548 IF(IER /= 0)THEN
549 WRITE(ERR_MSG,1100) BCV, &
550 'X', BC_X_W(BCV), BC_X_E(BCV),'I',BC_I_W(BCV),BC_I_E(BCV), &
551 'Y', BC_Y_S(BCV), BC_Y_N(BCV),'J',BC_J_S(BCV),BC_J_N(BCV), &
552 'Z', BC_Z_B(BCV), BC_Z_T(BCV),'K',BC_K_B(BCV),BC_K_T(BCV)
553 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
554 ENDIF
555
556 1100 FORMAT('Error 1100: Invalid location specified for BC ',I3,'.', &
557 3(/3x,A1,': ',g12.5,',',g12.5,8x,A1,': ',I8,',',I8),/ &
558 'Please correct the mfix.dat file.')
559
560 CALL FINL_ERR_MSG
561
562 RETURN
563
564 END SUBROUTINE CHECK_BC_GEOMETRY_FLOW
565