57
58
59
61
62
63
64#include "implicit_f.inc"
65
66
67
68#include "mvsiz_p.inc"
69
70
71
72#include "param_c.inc"
73
74
75
76 INTEGER, INTENT(IN) :: MTN
77 INTEGER, INTENT(IN) :: NEL
79 . pm(npropm,*), rho(*),vol(*),
80 . x1(*),x2(*),x3(*),x4(*),
81 . y1(*),y2(*),y3(*),y4(*),
82 . z1(*),z2(*),z3(*),z4(*),
83 . vx1(*),vx2(*),vx3(*),vx4(*),
84 . vy1(*),vy2(*),vy3(*),vy4(*),
85 . vz1(*),vz2(*),vz3(*),vz4(*),
86 . f11(*),f21(*),f31(*),f12(*),f22(*),f32(*),
87 . f13(*),f23(*),f33(*),f14(*),f24(*),f34(*),
88 . px1(*),px2(*),px3(*),px4(*),
89 . py1(*),py2(*),py3(*),py4(*),
90 . pz1(*),pz2(*),pz3(*),pz4(*),
91 . dxx(*),dxy(*),dxz(*),
92 . dyx(*),dyy(*),dyz(*),
93 . dzx(*),dzy(*),dzz(*),
94 . vdx1(*),vdx2(*),vdx3(*),vdx4(*),
95 . vdy1(*),vdy2(*),vdy3(*),vdy4(*),
96 . vdz1(*),vdz2(*),vdz3(*),vdz4(*),
97 . vdx(*),vdy(*),vdz(*),
98 . deltax(*),vis(*),
99 . rx(*) , ry(*) , rz(*) ,
100 . sx(*) , sy(*) , sz(*) ,
101 . tx(*) , ty(*) , tz(*)
102 INTEGER MAT(*)
103
104
105
107 . f1(mvsiz),f2(mvsiz),f3(mvsiz),
108 . a1(mvsiz),a2(mvsiz),a3(mvsiz),a4(mvsiz),gam(mvsiz),
109 . r(mvsiz,3),s(mvsiz,3),t(mvsiz,3),fac
110 INTEGER I
111
112
113
114 IF(mtn==11)RETURN
115
116
117
118
119
120
121 IF(
ale%UPWIND%UPWM<2 .OR.mtn==11)
THEN
122 IF(mtn==11.AND.
ale%UPWIND%UPWM>1)
THEN
123
124 DO i=1,nel
125 r(i,1)=rx(i)
126 r(i,2)=ry(i)
127 r(i,3)=rz(i)
128 s(i,1)=sx(i)
129 s(i,2)=sy(i)
130 s(i,3)=sz(i)
131 t(i,1)=tx(i)
132 t(i,2)=ty(i)
133 t(i,3)=tz(i)
134 ENDDO
136 1 rho, vis, vdx, vdy,
137 2 vdz, r, s, t,
138 3 gam, nel)
139 DO i=1,nel
140 fac=gam(i)
141 a1(i) = fac*(px1(i)*vdx(i)+py1(i)*vdy(i)+pz1(i)*vdz(i))
142 a2(i) = fac*(px2(i)*vdx(i)+py2(i)*vdy(i)+pz2(i)*vdz(i))
143 a3(i) = fac*(px3(i)*vdx(i)+py3(i)*vdy(i)+pz3(i)*vdz(i))
144 a4(i) = fac*(px4(i)*vdx(i)+py4(i)*vdy(i)+pz4(i)*vdz(i))
145 ENDDO
146
147 else
148
149 IF(
ale%UPWIND%UPWM==zero)
THEN
150 DO i=1,nel
151 gam(i)= pm(15,mat(i))
152 ENDDO
153 ELSE
154 DO i=1,nel
155 gam(i)=
ale%UPWIND%CUPWM
156 ENDDO
157 ENDIF
158 DO i=1,nel
159 a1(i) = px1(i)*vdx(i)+py1(i)*vdy(i)+pz1(i)*vdz(i)
160 a2(i) = px2(i)*vdx(i)+py2(i)*vdy(i)+pz2(i)*vdz(i)
161 a3(i) = px3(i)*vdx(i)+py3(i)*vdy(i)+pz3(i)*vdz(i)
162 a4(i) = px4(i)*vdx(i)+py4(i)*vdy(i)+pz4(i)*vdz(i)
163 a1(i) = sign(gam(i),a1(i))
164 a2(i) = sign(gam(i),a2(i))
165 a3(i) = sign(gam(i),a3(i))
166 a4(i) = sign(gam(i),a4(i))
167 ENDDO
168
169 ENDIF
170
171 DO i=1,nel
172 fac = fourth*rho(i)*vol(i)
173 f1(i) = (vdx(i)*dxx(i)+vdy(i)*dxy(i)+vdz(i)*dxz(i))*fac
174 f2(i) = (vdx(i)*dyx(i)+vdy(i)*dyy(i)+vdz(i)*dyz(i))*fac
175 f3(i) = (vdx(i)*dzx(i)+vdy(i)*dzy(i)+vdz(i)*dzz(i))*fac
176 ENDDO
177
178 DO i=1,nel
179 f11(i) = f11(i) - (one+a1(i))*f1(i)
180 f12(i) = f12(i) - (one+a2(i))*f1(i)
181 f13(i) = f13(i) - (one+a3(i))*f1(i)
182 f14(i) = f14(i) - (one+a4(i))*f1(i)
183
184 f21(i) = f21(i) - (one+a1(i))*f2(i)
185 f22(i) = f22(i) - (one+a3(i))*f2(i)
186 f23(i) = f23(i) - (one+a3(i))*f2(i)
187 f24(i) = f24(i) - (one+a4(i))*f2(i)
188
189 f31(i) = f31(i) - (one+a1(i))*f3(i)
190 f32(i) = f32(i) - (one+a3(i))*f3(i)
191 f33(i) = f33(i) - (one+a3(i))*f3(i)
192 f34(i) = f34(i) - (one+a4(i))*f3(i)
193 ENDDO
194
195 ELSE
196
197
198
199
200
201 DO i=1,nel
202 r(i,1)=rx(i)-sx(i)
203 r(i,2)=ry(i)-sy(i)
204 r(i,3)=rz(i)-sz(i)
205 s(i,1)=rx(i)-tx(i)
206 s(i,2)=ry(i)-ty(i)
207 s(i,3)=rz(i)-tz(i)
208 t(i,1)=rx(i)
209 t(i,2)=ry(i)
210 t(i,3)=rz(i)
211 ENDDO
212
213
214
215
216
217
218
219
220
221
223 1 rho, vol, vis, r,
224 2 s, t, deltax, vdx,
225 3 vdy, vdz, dxx, dxy,
226 4 dxz, dyx, dyy, dyz,
227 5 dzx, dzy, dzz, px1,
228 6 py1, pz1, vdx1, vdy1,
229 7 vdz1, f11, f21, f31,
230 8 nel)
231
232 DO i=1,nel
233 r(i,1)=sx(i)-tx(i)
234 r(i,2)=sy(i)-ty(i)
235 r(i,3)=sz(i)-tz(i)
236 s(i,1)=sx(i)
237 s(i,2)=sy(i)
238 s(i,3)=sz(i)
239 t(i,1)=sx(i)-rx(i)
240 t(i,2)=sy(i)-ry(i)
241 t(i,3)=sz(i)-rz(i)
242 ENDDO
243
244
245
246
247
248
249
250
251
252
254 1 rho, vol, vis, r,
255 2 s, t, deltax, vdx,
256 3 vdy, vdz, dxx, dxy,
257 4 dxz, dyx, dyy, dyz,
258 5 dzx, dzy, dzz, px2,
259 6 py2, pz2, vdx2, vdy2,
260 7 vdz2, f12, f22, f32,
261 8 nel)
262
263 DO i=1,nel
264 r(i,1)=tx(i)
265 r(i,2)=ty(i)
266 r(i,3)=tz(i)
267 s(i,1)=tx(i)-rx(i)
268 s(i,2)=ty(i)-ry(i)
269 s(i,3)=tz(i)-rz(i)
270 t(i,1)=tx(i)-sx(i)
271 t(i,2)=ty(i)-sy(i)
272 t(i,3)=tz(i)-sz(i)
273 ENDDO
274
275 ! r
276
277
278
279
280
281
282
283
284
286 1 rho, vol, vis, r,
287 2 s, t, deltax, vdx,
288 3 vdy, vdz, dxx, dxy,
289 4 dxz, dyx, dyy, dyz,
290 5 dzx, dzy, dzz, px3,
291 6 py3, pz3, vdx3, vdy3,
292 7 vdz3, f13, f23, f33,
293 8 nel)
294
295 DO i=1,nel
296 r(i,1)=rx(i)
297 r(i,2)=ry(i)
298 r(i,3)=rz(i)
299 s(i,1)=sx(i)
300 s(i,2)=sy(i)
301 s(i,3)=sz(i)
302 t(i,1)=tx(i)
303 t(i,2)=ty(i)
304 t(i,3)=tz(i)
305 ENDDO
306
307
308
309
310
311
312
313
314
315
316
318 1 rho, vol, vis, r,
319 2 s, t, deltax, vdx,
320 3 vdy, vdz, dxx, dxy,
321 4 dxz, dyx, dyy, dyz,
322 5 dzx, dzy, dzz, px4,
323 6 py4, pz4, vdx4, vdy4,
324 7 vdz4, f14, f24, f34,
325 8 nel)
326
327
328 endif
329
330 RETURN
subroutine a4momtn3(rho, vol, vis, r, s, t, deltax, vmx, vmy, vmz, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, px, py, pz, vdx, vdy, vdz, fx, fy, fz, nel)
subroutine upwind4(rho, vis, vdx, vdy, vdz, r, s, t, gam, nel)