File: RELATIVE:/../../../mfix.git/model/reinitialize.f
1
2
3
4
5
6
7
8
9
10 SUBROUTINE REINITIALIZE
11
12 use run, only: REINITIALIZING
13
14 use error_manager
15
16 IMPLICIT NONE
17
18 INTEGER :: IER
19
20 IER = 0
21 REINITIALIZING = .TRUE.
22
23
24 CALL REINIT_RXN_DATA
25
26
27 CALL READ_NAMELIST(2)
28
29 CALL REINITIALIZE0(IER)
30
31 REINITIALIZING = .FALSE.
32
33 IF(IER /=0) THEN
34 WRITE(ERR_MSG, 2000)
35 ELSE
36 WRITE(ERR_MSG, 2100)
37 ENDIF
38
39 2000 FORMAT(2/70('*'),/'Reinitialization failed!',/'Correct all ', &
40 'reported errors and reinitialize again.',/70('*'))
41
42 2100 FORMAT(2/,70('*'),/'Successfully reinitialized!'/70('*'))
43 CALL FLUSH_ERR_MSG(HEADER=.FALSE., FOOTER=.FALSE.)
44
45 RETURN
46 END SUBROUTINE REINITIALIZE
47
48
49
50
51
52
53
54
55
56
57 SUBROUTINE REINITIALIZE0(pIER)
58
59 USE cutcell, only: CARTESIAN_GRID
60 use coeff, only: INIT_COEFF
61
62 use error_manager
63
64 IMPLICIT NONE
65
66 INTEGER, INTENT(OUT) :: pIER
67 INTEGER :: IER
68
69
70 = 1
71
72 CALL CHECK_RUN_CONTROL()
73 IF(REINIT_ERROR()) RETURN
74
75 CALL CHECK_NUMERICS()
76 IF(REINIT_ERROR()) RETURN
77
78 CALL CHECK_OUTPUT_CONTROL()
79 IF(REINIT_ERROR()) RETURN
80
81 CALL CHECK_GAS_PHASE
82 IF(REINIT_ERROR()) RETURN
83
84 CALL CHECK_SOLIDS_PHASES
85 IF(REINIT_ERROR()) RETURN
86
87 CALL CHECK_INITIAL_CONDITIONS
88 IF(REINIT_ERROR()) RETURN
89 CALL CHECK_BOUNDARY_CONDITIONS
90 IF(REINIT_ERROR()) RETURN
91 CALL CHECK_INTERNAL_SURFACES
92 IF(REINIT_ERROR()) RETURN
93 CALL CHECK_POINT_SOURCES
94
95 CALL CHECK_CHEMICAL_RXNS
96 IF(REINIT_ERROR()) RETURN
97 CALL CHECK_ODEPACK_STIFF_CHEM
98 IF(REINIT_ERROR()) RETURN
99
100
101 CALL SET_BC_FLOW
102 IF(REINIT_ERROR()) RETURN
103
104
105
106
107
108
109
110 CALL SET_CONSTPROP
111 IF(REINIT_ERROR()) RETURN
112
113
114 CALL SET_IC
115 IF(REINIT_ERROR()) RETURN
116
117
118 CALL SET_PS
119 IF(REINIT_ERROR()) RETURN
120
121
122 CALL ZERO_NORM_VEL
123 IF(REINIT_ERROR()) RETURN
124 CALL SET_BC0
125 IF(REINIT_ERROR()) RETURN
126 IF(CARTESIAN_GRID) CALL CG_SET_BC0
127 IF(REINIT_ERROR()) RETURN
128
129
130 CALL SET_MW_MIX_G
131 IF(REINIT_ERROR()) RETURN
132
133
134 CALL SET_RO_G
135 IF(REINIT_ERROR()) RETURN
136 CALL SET_RO_S
137 IF(REINIT_ERROR()) RETURN
138
139
140 CALL SET_BC1
141 IF(REINIT_ERROR()) RETURN
142
143
144 IF(.NOT.CARTESIAN_GRID) CALL CHECK_DATA_20
145 IF(REINIT_ERROR()) RETURN
146
147
148 CALL PARSE_RESID_STRING ()
149 IF(REINIT_ERROR()) RETURN
150
151 CALL RRATES_INIT(IER)
152 IF(REINIT_ERROR()) RETURN
153
154
155 CALL INIT_COEFF(IER)
156 IF(REINIT_ERROR()) RETURN
157
158
159 CALL CHECK_DATA_30()
160 IF(REINIT_ERROR()) RETURN
161
162 CALL WRITE_RES0()
163 CALL WRITE_OUT0()
164
165
166 = 0
167
168 RETURN
169 END SUBROUTINE REINITIALIZE0
170
171
172
173
174
175
176
177
178
179
180
181 SUBROUTINE REINIT_RXN_DATA
182
183 use parse, only: RXN_NAME, DES_RXN_NAME
184 use parse, only: RXN_CHEM_EQ, DES_RXN_CHEM_EQ
185 use parse, only: usrDH, DES_usrDH
186 use parse, only: usrfDH, DES_usrfDH
187
188 use rxns, only: NO_OF_RXNS
189 use rxns, only: REACTION
190 use des_rxns, only: NO_OF_DES_RXNS
191 use des_rxns, only: DES_REACTION
192
193 use error_manager
194
195 IMPLICIT NONE
196
197 INTEGER :: LC
198
199
200 IF(allocated( RXN_NAME )) deallocate(RXN_NAME)
201
202 IF(allocated( RXN_CHEM_EQ )) deallocate(RXN_CHEM_EQ)
203
204 IF(allocated( usrDH ))deallocate(usrDH)
205
206 IF(allocated( usrfDH )) deallocate(usrfDH)
207
208
209 IF(allocated(Reaction)) THEN
210 DO LC=1,NO_OF_RXNS
211 IF(allocated(Reaction(LC)%HoR)) &
212 deallocate(Reaction(LC)%HoR)
213 IF(allocated(Reaction(LC)%rPhase)) &
214 deallocate(Reaction(LC)%rPhase)
215 IF(allocated(Reaction(LC)%Species)) &
216 deallocate(Reaction(LC)%Species)
217 ENDDO
218 deallocate(Reaction)
219 ENDIF
220 NO_OF_RXNS = 0
221
222
223 IF(allocated( DES_RXN_NAME )) deallocate(DES_RXN_NAME)
224
225 IF(allocated( DES_RXN_CHEM_EQ )) deallocate(DES_RXN_CHEM_EQ)
226
227 IF(allocated( DES_usrDH )) deallocate( DES_usrDH)
228
229 IF(Allocated( DES_usrfDH )) deallocate( DES_usrfDH)
230
231 IF(allocated(DES_Reaction)) THEN
232 DO LC=1,NO_OF_DES_RXNS
233 IF(allocated(DES_Reaction(LC)%HoR)) &
234 deallocate(DES_Reaction(LC)%HoR)
235 IF(allocated(DES_Reaction(LC)%rPhase)) &
236 deallocate(DES_Reaction(LC)%rPhase)
237 IF(allocated(DES_Reaction(LC)%Species)) &
238 deallocate(DES_Reaction(LC)%Species)
239 ENDDO
240 deallocate(DES_Reaction)
241 ENDIF
242 NO_OF_DES_RXNS = 0
243
244
245 RETURN
246 END SUBROUTINE REINIT_RXN_DATA
247