File: RELATIVE:/../../../mfix.git/model/geometry_mod.f
1
2
3
4
5
6
7
8
9
10
11 MODULE geometry
12
13 Use param, only: DIM_I, DIM_J, DIM_K
14
15
16
17 CHARACTER(LEN=16) COORDINATES
18
19
20 LOGICAL :: NO_I
21
22 LOGICAL :: DO_I
23
24 LOGICAL :: NO_J
25
26 LOGICAL :: DO_J
27
28 LOGICAL :: NO_K
29
30 LOGICAL :: DO_K
31
32
33 DOUBLE PRECISION :: XLENGTH
34
35 DOUBLE PRECISION :: YLENGTH
36
37 DOUBLE PRECISION :: ZLENGTH
38
39
40 INTEGER :: IMIN1
41
42 INTEGER :: JMIN1
43
44 INTEGER :: KMIN1
45
46
47 INTEGER :: IMAX
48
49 INTEGER :: JMAX
50
51 INTEGER :: KMAX
52
53
54 INTEGER :: IMAX1
55
56 INTEGER :: JMAX1
57
58 INTEGER :: KMAX1
59
60
61 INTEGER :: IMAX2
62
63 INTEGER :: JMAX2
64
65 INTEGER :: KMAX2
66
67
68 DOUBLE PRECISION :: DX (0:DIM_I)
69
70 DOUBLE PRECISION :: DY (0:DIM_J)
71
72 DOUBLE PRECISION :: DZ (0:DIM_K)
73
74
75 DOUBLE PRECISION :: XMIN
76
77
78 INTEGER :: IJMAX2
79
80 INTEGER :: IJKMAX2
81
82 INTEGER :: IJKMAX3
83
84 INTEGER :: IJKMIN1
85
86 INTEGER :: IJKMAX1
87
88
89 INTEGER :: IMIN2, JMIN2, KMIN2
90 INTEGER :: IMIN3, JMIN3, KMIN3
91 INTEGER :: IMAX3, JMAX3, KMAX3
92
93
94 INTEGER :: IMIN4, JMIN4, KMIN4
95 INTEGER :: IMAX4, JMAX4, KMAX4
96 INTEGER :: IJKMAX4, IJKMIN4
97
98
99 INTEGER, DIMENSION(:), ALLOCATABLE :: FLAG
100
101 INTEGER, DIMENSION(:), ALLOCATABLE :: FLAG3
102
103 INTEGER, DIMENSION(:), ALLOCATABLE :: FLAG_E
104
105 INTEGER, DIMENSION(:), ALLOCATABLE :: FLAG_N
106
107 INTEGER, DIMENSION(:), ALLOCATABLE :: FLAG_T
108
109
110
111 character(LEN=3), dimension(:), pointer :: icbc_flag
112
113
114 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: oDX
115
116 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: oDY
117
118 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: oDZ
119
120
121 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: oDX_E
122
123 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: oDY_N
124
125 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: oDZ_T
126
127
128
129 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: X
130
131 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: Z
132
133
134 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: X_E
135
136 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: Z_T
137
138
139
140 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: oX
141
142
143 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: oX_E
144
145
146
147 LOGICAL :: CYCLIC
148
149 LOGICAL :: CYCLIC_X
150
151 LOGICAL :: CYCLIC_Y
152
153 LOGICAL :: CYCLIC_Z
154
155 LOGICAL :: CYCLIC_X_PD
156
157 LOGICAL :: CYCLIC_Y_PD
158
159 LOGICAL :: CYCLIC_Z_PD
160
161 LOGICAL :: CYCLIC_X_MF
162
163 LOGICAL :: CYCLIC_Y_MF
164
165 LOGICAL :: CYCLIC_Z_MF
166
167
168 LOGICAL :: CYLINDRICAL
169
170
171
172
173 logical :: CYLINDRICAL_2D
174
175
176 integer :: I_CYL_NUM
177
178
179 integer :: I_CYL_TRANSITION
180
181 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: cyl_X
182
183 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: cyl_X_E
184
185
186
187 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: FX
188
189 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: FX_bar
190
191 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: FX_E
192
193 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: FX_E_bar
194
195
196 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: FY_N
197
198 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: FY_N_bar
199
200
201 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: FZ_T
202
203 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: FZ_T_bar
204
205
206 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: AYZ
207
208 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: AXZ
209
210 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: AXY
211
212 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: VOL
213
214
215 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: VOL_SURR
216
217
218 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: AYZ_U
219
220 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: AXZ_U
221
222 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: AXY_U
223
224 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: VOL_U
225
226
227 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: AYZ_V
228
229 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: AXZ_V
230
231 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: AXY_V
232
233 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: VOL_V
234
235
236 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: AYZ_W
237
238 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: AXZ_W
239
240 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: AXY_W
241
242 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: VOL_W
243
244
245
246 LOGICAL :: USE_CORECELL_LOOP
247
248 INTEGER :: CORE_ISTART, CORE_IEND
249 INTEGER :: CORE_JSTART, CORE_JEND
250 INTEGER :: CORE_KSTART, CORE_KEND
251
252 END MODULE geometry
253