MFIX  2016-1
under_relax.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2 ! C
3 ! Module name: UNDER_RELAX_S(Var, A_m, B_m, M, UR, IER) C
4 ! Purpose: Underrelax scalar equations C
5 ! C
6 ! C
7 ! Author: M. Syamlal Date: 24-MAY-96 C
8 ! Reviewer: Date: C
9 ! C
10 ! C
11 ! Literature/Document References: C
12 ! C
13 ! Variables referenced: C
14 ! Variables modified: C
15 ! C
16 ! Local variables: C
17 ! C
18 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
19 !
20  SUBROUTINE under_relax_s(VAR, A_M, B_M, M, UR)
21 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98
22 !...Switches: -xf
23 !
24 !-----------------------------------------------
25 ! M o d u l e s
26 !-----------------------------------------------
27  USE param
28  USE param1
29  USE geometry
30  USE indices
31  USE compar
32  USE sendrecv
33  USE functions
34 
35  IMPLICIT NONE
36 !-----------------------------------------------
37 ! G l o b a l P a r a m e t e r s
38 !-----------------------------------------------
39 !-----------------------------------------------
40 ! D u m m y A r g u m e n t s
41 !-----------------------------------------------
42 !
43 ! phase index
44  INTEGER M
45 !
46 ! index
47  INTEGER IJK
48 !
49 ! Septadiagonal matrix A_m
50  DOUBLE PRECISION A_m(dimension_3, -3:3, 0:dimension_m)
51 !
52 ! Vector b_m
53  DOUBLE PRECISION B_m(dimension_3, 0:dimension_m)
54 !
55 ! Variable
56  DOUBLE PRECISION Var(dimension_3)
57 !
58 ! Under-relaxation factor
59  DOUBLE PRECISION UR
60 !
61 ! Functions of under-relaxation factor
62  DOUBLE PRECISION f1, f2
63 !
64 ! center coefficient
65  DOUBLE PRECISION ap
66 
67  f1 = one/ur
68  f2 = f1 - one
69 !
70 !!!$omp parallel do private(IJK,AP)
71  DO ijk = ijkstart3, ijkend3
72  IF (fluid_at(ijk)) THEN
73  ap = a_m(ijk,0,m)
74  IF (ap /= (-one)) THEN
75  a_m(ijk,0,m) = ap*f1
76  b_m(ijk,m) = b_m(ijk,m) + ap*var(ijk)*f2
77  ENDIF
78  ENDIF
79  END DO
80  RETURN
81  END SUBROUTINE under_relax_s
82 !
83 !
84 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
85 ! C
86 ! Module name: UNDER_RELAX_U(Var, A_m, B_m, M, UR, IER) C
87 ! Purpose: Underrelax u-momentum equations C
88 ! C
89 ! C
90 ! Author: M. Syamlal Date: 24-MAY-96 C
91 ! Reviewer: Date: C
92 ! C
93 ! C
94 ! Literature/Document References: C
95 ! C
96 ! Variables referenced: C
97 ! Variables modified: C
98 ! C
99 ! Local variables: C
100 ! C
101 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
102 !
103  SUBROUTINE under_relax_u(VAR, A_M, B_M, M, UR)
104 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98
105 !...Switches: -xf
106 !
107 !-----------------------------------------------
108 ! M o d u l e s
109 !-----------------------------------------------
110  USE param
111  USE param1
112  USE geometry
113  USE indices
114  USE compar
115  USE sendrecv
116  USE functions
117 
118  IMPLICIT NONE
119 !-----------------------------------------------
120 ! G l o b a l P a r a m e t e r s
121 !-----------------------------------------------
122 !-----------------------------------------------
123 ! D u m m y A r g u m e n t s
124 !-----------------------------------------------
125 !
126 ! phase index
127  INTEGER M
128 !
129 ! index
130  INTEGER IJK
131 !
132 ! Septadiagonal matrix A_m
133  DOUBLE PRECISION A_m(dimension_3, -3:3, 0:dimension_m)
134 !
135 ! Vector b_m
136  DOUBLE PRECISION B_m(dimension_3, 0:dimension_m)
137 !
138 ! Variable
139  DOUBLE PRECISION Var(dimension_3)
140 !
141 ! Under-relaxation factor
142  DOUBLE PRECISION UR
143 !
144 ! Functions of under-relaxation factor
145  DOUBLE PRECISION f1, f2
146 !
147 ! center coefficient
148  DOUBLE PRECISION ap
149 
150  f1 = one/ur
151  f2 = f1 - one
152 !
153 !!!$omp parallel do private(IJK,AP)
154  DO ijk = ijkstart3, ijkend3
155  IF (flow_at_e(ijk)) THEN
156  ap = a_m(ijk,0,m)
157  IF (ap /= (-one)) THEN
158  a_m(ijk,0,m) = ap*f1
159  b_m(ijk,m) = b_m(ijk,m) + ap*var(ijk)*f2
160  ENDIF
161  ENDIF
162  END DO
163  RETURN
164  END SUBROUTINE under_relax_u
165 !
166 !
167 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
168 ! C
169 ! Module name: UNDER_RELAX_V(Var, A_m, B_m, M, UR, IER) C
170 ! Purpose: Underrelax v-momentum equations C
171 ! C
172 ! C
173 ! Author: M. Syamlal Date: 24-MAY-96 C
174 ! Reviewer: Date: C
175 ! C
176 ! C
177 ! Literature/Document References: C
178 ! C
179 ! Variables referenced: C
180 ! Variables modified: C
181 ! C
182 ! Local variables: C
183 ! C
184 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
185 !
186  SUBROUTINE under_relax_v(VAR, A_M, B_M, M, UR)
187 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98
188 !...Switches: -xf
189 !
190 !-----------------------------------------------
191 ! M o d u l e s
192 !-----------------------------------------------
193  USE param
194  USE param1
195  USE geometry
196  USE indices
197  USE compar
198  USE sendrecv
199  USE functions
200 
201  IMPLICIT NONE
202 !-----------------------------------------------
203 ! G l o b a l P a r a m e t e r s
204 !-----------------------------------------------
205 !-----------------------------------------------
206 ! D u m m y A r g u m e n t s
207 !-----------------------------------------------
208 
209 ! phase index
210  INTEGER M
211 !
212 ! index
213  INTEGER IJK
214 !
215 ! Septadiagonal matrix A_m
216  DOUBLE PRECISION A_m(dimension_3, -3:3, 0:dimension_m)
217 !
218 ! Vector b_m
219  DOUBLE PRECISION B_m(dimension_3, 0:dimension_m)
220 !
221 ! Variable
222  DOUBLE PRECISION Var(dimension_3)
223 !
224 ! Under-relaxation factor
225  DOUBLE PRECISION UR
226 !
227 ! Functions of under-relaxation factor
228  DOUBLE PRECISION f1, f2
229 !
230 ! center coefficient
231  DOUBLE PRECISION ap
232 
233  f1 = one/ur
234  f2 = f1 - one
235 !
236 !!!$omp parallel do private(IJK,AP)
237  DO ijk = ijkstart3, ijkend3
238  IF (flow_at_n(ijk)) THEN
239  ap = a_m(ijk,0,m)
240  IF (ap /= (-one)) THEN
241  a_m(ijk,0,m) = ap*f1
242  b_m(ijk,m) = b_m(ijk,m) + ap*var(ijk)*f2
243  ENDIF
244  ENDIF
245  END DO
246  RETURN
247  END SUBROUTINE under_relax_v
248 !
249 !
250 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
251 ! C
252 ! Module name: UNDER_RELAX_W(Var, A_m, B_m, M, UR, IER) C
253 ! Purpose: Underrelax w-momentum equations C
254 ! C
255 ! C
256 ! Author: M. Syamlal Date: 24-MAY-96 C
257 ! Reviewer: Date: C
258 ! C
259 ! C
260 ! Literature/Document References: C
261 ! C
262 ! Variables referenced: C
263 ! Variables modified: C
264 ! C
265 ! Local variables: C
266 ! C
267 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
268 !
269  SUBROUTINE under_relax_w(VAR, A_M, B_M, M, UR)
270 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98
271 !...Switches: -xf
272 !
273 !-----------------------------------------------
274 ! M o d u l e s
275 !-----------------------------------------------
276  USE param
277  USE param1
278  USE geometry
279  USE indices
280  USE compar
281  USE sendrecv
282  USE functions
283 
284  IMPLICIT NONE
285 !-----------------------------------------------
286 ! G l o b a l P a r a m e t e r s
287 !-----------------------------------------------
288 !-----------------------------------------------
289 ! D u m m y A r g u m e n t s
290 !-----------------------------------------------
291 
292 ! phase index
293  INTEGER M
294 !
295 ! index
296  INTEGER IJK
297 !
298 ! Septadiagonal matrix A_m
299  DOUBLE PRECISION A_m(dimension_3, -3:3, 0:dimension_m)
300 !
301 ! Vector b_m
302  DOUBLE PRECISION B_m(dimension_3, 0:dimension_m)
303 !
304 ! Variable
305  DOUBLE PRECISION Var(dimension_3)
306 !
307 ! Under-relaxation factor
308  DOUBLE PRECISION UR
309 !
310 ! Functions of under-relaxation factor
311  DOUBLE PRECISION f1, f2
312 !
313 ! center coefficient
314  DOUBLE PRECISION ap
315 
316  f1 = one/ur
317  f2 = f1 - one
318 !
319 !!!$omp parallel do private(IJK,AP)
320  DO ijk = ijkstart3, ijkend3
321  IF (flow_at_t(ijk)) THEN
322  ap = a_m(ijk,0,m)
323  IF (ap /= (-one)) THEN
324  a_m(ijk,0,m) = ap*f1
325  b_m(ijk,m) = b_m(ijk,m) + ap*var(ijk)*f2
326  ENDIF
327  ENDIF
328  END DO
329  RETURN
330  END SUBROUTINE under_relax_w
331 
332 !// Comments on the modifications for DMP version implementation
333 !// 001 Include header file and common declarations for parallelization
334 !// 350 Changed do loop limits: 1,ijkmax2-> ijkstart3, ijkend3
integer ijkend3
Definition: compar_mod.f:80
double precision, parameter one
Definition: param1_mod.f:29
integer dimension_3
Definition: param_mod.f:11
subroutine under_relax_s(VAR, A_M, B_M, M, UR)
Definition: under_relax.f:21
subroutine under_relax_w(VAR, A_M, B_M, M, UR)
Definition: under_relax.f:270
Definition: param_mod.f:2
subroutine under_relax_v(VAR, A_M, B_M, M, UR)
Definition: under_relax.f:187
integer ijkstart3
Definition: compar_mod.f:80
subroutine under_relax_u(VAR, A_M, B_M, M, UR)
Definition: under_relax.f:104
integer dimension_m
Definition: param_mod.f:18