File: N:\mfix\model\get_data.f
1
2
3
4
5
6
7
8
9
10 MODULE read_input
11
12 CONTAINS
13
14 SUBROUTINE GET_DATA
15
16
17
18
19 USE check_data_cg, only: adjust_ijk_size, check_data_cartesian
20 USE cut_cell_preproc, only: cut_cell_preprocessing
21 USE compar
22 USE constant, only: L_SCALE0
23 USE cutcell
24 USE dashboard
25 USE des_allocate
26 USE des_rxns
27 USE des_thermo
28 USE desgrid, only: DESGRID_INIT
29 USE discretelement
30 USE error_manager
31 USE funits
32 USE gridmap
33 USE iterate, only: max_nit
34 USE leqsol
35 USE mfix_pic
36 USE mpi_init_des, only: DESMPI_INIT
37 USE parallel
38 USE param
39 USE param1
40 USE qmom_kinetic_equation
41 USE run
42 USE stl_preproc_des, only: DES_STL_PREPROCESSING
43 USE visc_g, only: L_SCALE
44
45 IMPLICIT NONE
46
47
48
49
50 LOGICAL, PARAMETER :: SHIFT = .TRUE.
51
52
53 CALL INIT_NAMELIST
54
55 CALL READ_NAMELIST(0,"mfix.dat")
56
57
58
59
60 CALL INIT_ERROR_MANAGER
61
62
63
64 CALL WRITE_HEADER
65
66
67 CALL OPEN_FILES(RUN_NAME, RUN_TYPE, N_SPX)
68
69
70
71 CALL CHECK_GEOMETRY_PREREQS
72 CALL CHECK_DMP_PREREQS
73
74
75 CALL SET_MAX2
76
77
78 CALL SET_CONSTANTS
79
80
81 CALL ADJUST_IJK_SIZE
82
83
84 CALL GRIDMAP_INIT
85
86
87 CALL CHECK_SOLIDS_MODEL_PREREQS
88
89 CALL CHECK_RUN_CONTROL
90 CALL CHECK_NUMERICS
91 CALL CHECK_OUTPUT_CONTROL
92
93 CALL CHECK_GAS_PHASE
94 CALL CHECK_SOLIDS_PHASES
95 CALL SET_PARAMETERS
96
97
98 CALL CHECK_GEOMETRY(SHIFT)
99 IF(DISCRETE_ELEMENT) CALL CHECK_GEOMETRY_DES
100
101
102 CALL SET_GEOMETRY
103 IF(DISCRETE_ELEMENT) CALL SET_GEOMETRY_DES
104
105 CALL CHECK_INITIAL_CONDITIONS
106 CALL CHECK_BOUNDARY_CONDITIONS
107 CALL CHECK_INTERNAL_SURFACES
108 CALL CHECK_POINT_SOURCES
109
110 CALL CHECK_CHEMICAL_RXNS
111 CALL CHECK_ODEPACK_STIFF_CHEM
112
113
114
115
116
117
118
119 CALL SET_ICBC_FLAG
120
121
122 CALL GET_BC_AREA
123
124
125 CALL SET_BC_FLOW
126
127
128 CALL SET_FLAGS
129
130 CALL SET_INCREMENTS
131 CALL SET_INCREMENTS3
132
133
134 CALL CHECK_DATA_CARTESIAN
135 IF(CARTESIAN_GRID) THEN
136 CALL CUT_CELL_PREPROCESSING
137 ELSE
138 CALL ALLOCATE_DUMMY_CUT_CELL_ARRAYS
139 ENDIF
140
141 IF(DISCRETE_ELEMENT) THEN
142 CALL DESGRID_INIT
143 CALL DESMPI_INIT
144 CALL DES_STL_PREPROCESSING
145 ENDIF
146
147
148
149
150 CALL ALLOCATE_ARRAYS
151 IF(DISCRETE_ELEMENT) CALL DES_ALLOCATE_ARRAYS
152 IF(QMOMK) CALL QMOMK_ALLOCATE_ARRAYS
153
154
155 CALL INIT_FVARS
156 IF(DISCRETE_ELEMENT) CALL DES_INIT_ARRAYS
157
158
159
160
161 (:) = L_SCALE0
162
163
164
165
166 = TIME
167 SMMIN = LARGE_NUMBER
168 SMMAX = -LARGE_NUMBER
169
170 DTMIN = LARGE_NUMBER
171 DTMAX = -LARGE_NUMBER
172
173 NIT_MIN = MAX_NIT
174 NIT_MAX = 0
175
176 N_DASHBOARD = 0
177
178
179 RETURN
180
181 END SUBROUTINE GET_DATA
182
183
184
185
186
187
188
189
190
191 SUBROUTINE SET_CONSTANTS
192
193
194
195 USE param1, only: zero, one, undefined
196 USE constant, only: gas_const
197 USE constant, only: gravity, gravity_x, gravity_y, gravity_z
198 USE constant, only: to_SI
199 USE constant, only: k_scale
200 USE run, only: LAM_HYS, UNITS
201 USE error_manager, only: err_msg, init_err_msg, finl_err_msg
202 USE error_manager, only: flush_err_msg
203
204 IMPLICIT NONE
205
206
207
208
209
210 = .08D0
211
212
213 IF (UNITS == 'SI') THEN
214 IF (GRAVITY == UNDEFINED) GRAVITY = 9.80665D0
215 = 8314.56D0
216 = 0.1D0
217 IF (LAM_HYS == UNDEFINED) LAM_HYS = 0.000001d0
218 ELSEIF (UNITS == 'CGS') THEN
219 IF (GRAVITY == UNDEFINED) GRAVITY = 980.665D0
220 = 8314.56D4
221 = ONE
222 IF (LAM_HYS == UNDEFINED) LAM_HYS = 0.0001d0
223 ELSE
224
225 CALL INIT_ERR_MSG("SET_CONSTANTS")
226 WRITE(ERR_MSG,1005) UNITS
227 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
228 CALL FINL_ERR_MSG
229 1005 FORMAT('Error 1005: Unknown UNITS = ',A,/ &
230 'Please correct the mfix.dat file.')
231 ENDIF
232
233
234
235
236
237
238 IF(GRAVITY_X==ZERO.AND.GRAVITY_Y==ZERO.AND.GRAVITY_Z==ZERO) THEN
239 GRAVITY_X = ZERO
240 GRAVITY_Y = - GRAVITY
241 GRAVITY_Z = ZERO
242 ENDIF
243
244 RETURN
245 END SUBROUTINE SET_CONSTANTS
246 END MODULE read_input
247