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