File: /nfs/home/0/users/jenkins/mfix.git/model/correct_0.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 SUBROUTINE CORRECT_0(IER)
18
19
20
21
22 USE param
23 USE param1
24 USE fldvar
25 USE pgcor
26 USE ur_facs
27 IMPLICIT NONE
28
29
30
31 INTEGER, INTENT(INOUT) :: IER
32
33
34 CALL CORRECT_0G (PP_G, UR_FAC(1), D_E, D_N, D_T, P_G, &
35 U_G, V_G, W_G)
36
37
38 RETURN
39 END SUBROUTINE CORRECT_0
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 SUBROUTINE CORRECT_0G(PP_G,UR_FAC,D_E,D_N,D_T,P_G,U_G,V_G,W_G)
62
63
64
65
66 USE param
67 USE param1
68 USE geometry
69 USE indices
70 USE physprop
71 USE compar
72 USE cutcell
73 USE quadric
74 USE functions
75 IMPLICIT NONE
76
77
78
79
80 DOUBLE PRECISION, INTENT(IN) :: Pp_g(DIMENSION_3)
81
82 DOUBLE PRECISION, INTENT(IN) :: UR_fac
83
84 DOUBLE PRECISION, INTENT(IN) :: d_e(DIMENSION_3, 0:DIMENSION_M)
85
86 DOUBLE PRECISION, INTENT(IN) :: d_n(DIMENSION_3, 0:DIMENSION_M)
87
88 DOUBLE PRECISION, INTENT(IN) :: d_t(DIMENSION_3, 0:DIMENSION_M)
89
90 DOUBLE PRECISION, INTENT(INOUT) :: P_g(DIMENSION_3)
91
92 DOUBLE PRECISION, INTENT(INOUT) :: U_g(DIMENSION_3), &
93 V_g(DIMENSION_3),&
94 W_g(DIMENSION_3)
95
96
97
98
99 INTEGER :: IJK, IJKE, IJKN, IJKT
100
101
102
103
104
105
106 DO IJK = ijkstart3, ijkend3
107
108 IF (FLUIDORP_FLOW_AT(IJK)) THEN
109
110 P_G(IJK) = P_G(IJK) + UR_FAC*PP_G(IJK)
111
112 IJKE = EAST_OF(IJK)
113 IJKN = NORTH_OF(IJK)
114 IF(.NOT.CARTESIAN_GRID) THEN
115 U_G(IJK) = U_G(IJK) - D_E(IJK,0)*(PP_G(IJKE)-PP_G(IJK))
116 V_G(IJK) = V_G(IJK) - D_N(IJK,0)*(PP_G(IJKN)-PP_G(IJK))
117 IF (DO_K) THEN
118 IJKT = TOP_OF(IJK)
119 W_G(IJK) = W_G(IJK) - D_T(IJK,0)*(PP_G(IJKT)-PP_G(IJK))
120 ENDIF
121 ELSE
122 U_G(IJK) = U_G(IJK) - D_E(IJK,0)*&
123 (PP_G(IJKE)*A_UPG_E(IJK) - PP_G(IJK)*A_UPG_W(IJK))
124 V_G(IJK) = V_G(IJK) - D_N(IJK,0)*&
125 (PP_G(IJKN)*A_VPG_N(IJK) - PP_G(IJK)*A_VPG_S(IJK))
126 IF (DO_K) THEN
127 IJKT = TOP_OF(IJK)
128 W_G(IJK) = W_G(IJK) - D_T(IJK,0)*&
129 (PP_G(IJKT)*A_WPG_T(IJK) - PP_G(IJK)*A_WPG_B(IJK))
130 ENDIF
131 ENDIF
132 ENDIF
133 ENDDO
134
135 RETURN
136 END SUBROUTINE CORRECT_0G
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158 SUBROUTINE CORRECT_0S(PP_G, D_E, D_N, D_T, U_S, V_S, W_S)
159
160
161
162
163 USE param
164 USE param1
165 USE geometry
166 USE indices
167 USE physprop
168 USE compar
169 USE cutcell
170 USE quadric
171 USE functions
172 IMPLICIT NONE
173
174
175
176
177 DOUBLE PRECISION, INTENT(IN) :: Pp_g(DIMENSION_3)
178
179 DOUBLE PRECISION, INTENT(IN) :: d_e(DIMENSION_3, 0:DIMENSION_M)
180
181 DOUBLE PRECISION, INTENT(IN) :: d_n(DIMENSION_3, 0:DIMENSION_M)
182
183 DOUBLE PRECISION, INTENT(IN) :: d_t(DIMENSION_3, 0:DIMENSION_M)
184
185 DOUBLE PRECISION, INTENT(INOUT) :: U_s(DIMENSION_3, DIMENSION_M),&
186 V_s(DIMENSION_3, DIMENSION_M),&
187 W_s(DIMENSION_3, DIMENSION_M)
188
189
190
191
192 INTEGER :: M
193
194 INTEGER :: IJK, IJKE, IJKN, IJKT
195
196
197
198
199 DO M = 1, MMAX
200
201 DO IJK = ijkstart3, ijkend3
202 IF (FLUIDORP_FLOW_AT(IJK)) THEN
203
204 IJKE = EAST_OF(IJK)
205 IJKN = NORTH_OF(IJK)
206 IF(.NOT.CARTESIAN_GRID) THEN
207 U_S(IJK,M) = U_S(IJK,M) - D_E(IJK,M)*&
208 (PP_G(IJKE)-PP_G(IJK))
209 V_S(IJK,M) = V_S(IJK,M) - D_N(IJK,M)*&
210 (PP_G(IJKN)-PP_G(IJK))
211 IF (DO_K) THEN
212 IJKT = TOP_OF(IJK)
213 W_S(IJK,M) = W_S(IJK,M) - D_T(IJK,M)*&
214 (PP_G(IJKT)-PP_G(IJK))
215 ENDIF
216 ELSE
217 U_S(IJK,M) = U_S(IJK,M) - D_E(IJK,M)*&
218 (PP_G(IJKE)*A_UPG_E(IJK) - PP_G(IJK)*A_UPG_W(IJK))
219 V_S(IJK,M) = V_S(IJK,M) - D_N(IJK,M)*&
220 (PP_G(IJKN)*A_VPG_N(IJK) - PP_G(IJK)*A_VPG_S(IJK))
221 IF (DO_K) THEN
222 IJKT = TOP_OF(IJK)
223 W_S(IJK,M) = W_S(IJK,M) - D_T(IJK,M)*&
224 (PP_G(IJKT)*A_WPG_T(IJK) - PP_G(IJK)*A_WPG_B(IJK))
225 ENDIF
226 ENDIF
227
228 ENDIF
229 ENDDO
230 ENDDO
231 RETURN
232 END SUBROUTINE CORRECT_0S
233
234
235