File: N:\mfix\model\under_relax.f

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
335