File: N:\mfix\model\check_data\check_geometry_prereqs.f
1
2
3
4
5
6
7
8
9
10 SUBROUTINE CHECK_GEOMETRY_PREREQS
11
12
13
14
15
16
17 use geometry, only: IMAX, NO_I, XMIN
18 use geometry, only: JMAX, NO_J
19 use geometry, only: KMAX, NO_K, DZ, ZLENGTH
20
21
22
23
24 use geometry, only: COORDINATES, CYLINDRICAL
25 use geometry, only: CYCLIC_X, CYCLIC_X_PD
26
27
28
29
30 use param1, only: ONE, ZERO, UNDEFINED_I, UNDEFINED
31
32
33
34 use error_manager
35
36 use toleranc
37
38 implicit none
39
40
41 CALL INIT_ERR_MSG("CHECK_GEOMETRY_PREREQS")
42
43
44 IF(IMAX == UNDEFINED_I .OR. JMAX == UNDEFINED_I .OR. &
45 (.NOT.NO_K .AND. KMAX == UNDEFINED_I) ) THEN
46 WRITE(ERR_MSG,1000)
47 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
48 ENDIF
49
50 1000 FORMAT('Error 1000: IMAX or JMAX or KMAX not specified in ', &
51 'mfix.dat')
52
53
54
55 IF(NO_I) THEN
56 WRITE(ERR_MSG, 1100) 'I','I','east and west'
57 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
58 ENDIF
59
60 IF(NO_J) THEN
61 WRITE(ERR_MSG, 1100) 'J','J','north and south'
62 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
63 ENDIF
64
65 1100 FORMAT('Error 1100: Illegal geometry: NO_',A1,' is disabled. ', &
66 'The same functionality',/'is achieved with one cell (',A1, &
67 'MAX=1) and making the ',A,' walls',/'free-slip. Please ', &
68 'correct the mfix.dat file.')
69
70 IF (XMIN < ZERO) THEN
71 WRITE(ERR_MSG, 1101) 'XMIN'
72 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
73 ENDIF
74
75 1101 FORMAT('Error 1101: Illegal geometry: ',A,' cannot be less ', &
76 'than zero.',/'Please correct the mfix.dat file.')
77
78
79 SELECT CASE(trim(COORDINATES))
80 CASE ('CYLINDRICAL')
81 CYLINDRICAL = .TRUE.
82 IF(CYCLIC_X .OR. CYCLIC_X_PD) THEN
83 WRITE(ERR_MSG, 1102)
84 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
85 ENDIF
86
87 1102 FORMAT('Error 1102: X-axis cannot be CYCLIC in cylindrical ', &
88 'coordinates',/'Please correct the mfix.dat file.')
89
90 CASE ('CARTESIAN')
91 CYLINDRICAL = .FALSE.
92
93 CASE DEFAULT
94 WRITE(ERR_MSG, 1103)
95 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
96
97 1103 FORMAT('Error 1103: Unknown COORDINATES specified. Please ', &
98 'correct the ',/'mfix.dat file.')
99
100 END SELECT
101
102
103 IF(NO_K) THEN
104 IF(KMAX == UNDEFINED_I) THEN
105 KMAX = 1
106 ELSEIF(KMAX /= 1) THEN
107 WRITE(ERR_MSG, 1110) 'KMAX','NO_K'
108 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
109 ENDIF
110
111 1110 FORMAT('Error 1110: Illegal geometry: ',A,' must remain ', &
112 'UNDEFINED_I or 1 when',/A,' is TRUE. Please correct the ', &
113 'mfix.dat file.')
114
115 IF(DZ(1)==UNDEFINED) THEN
116 IF(ZLENGTH==UNDEFINED) THEN
117 IF(CYLINDRICAL) THEN
118 DZ(1) = 8.*ATAN(ONE)
119 ZLENGTH = 8.*ATAN(ONE)
120 ELSE
121 DZ(1) = ONE
122 ZLENGTH = ONE
123 ENDIF
124 ELSE
125 DZ(1) = ZLENGTH
126 ENDIF
127 ELSE
128 IF(ZLENGTH==UNDEFINED) THEN
129 ZLENGTH = DZ(1)
130 ELSE
131 IF(.NOT.COMPARE(ZLENGTH,DZ(1)))THEN
132 WRITE(ERR_MSG, 1111) 'DZ(1) and ZLENGTH'
133 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
134 ENDIF
135
136 1111 FORMAT('Error 1111: Illegal geometry: ',A,' are not equal.',/ &
137 'Please correct the mfix.dat file.')
138
139 ENDIF
140 ENDIF
141 ENDIF
142
143 CALL FINL_ERR_MSG
144
145 RETURN
146
147
148
149 END SUBROUTINE CHECK_GEOMETRY_PREREQS
150