32
33
34
37
38
39
40#include "implicit_f.inc"
41
42
43
44#include "mvsiz_p.inc"
45
46
47
48#include "vect01_c.inc"
49#include "param_c.inc"
50#include "com01_c.inc"
51#include "com04_c.inc"
52#include "inter22.inc"
53#include "tabsiz_c.inc"
54
55
56
57
58
59
60
61 INTEGER IXS(NIXS,SIXS/NIXS)
62 my_real pm(npropm,nummat), v(3,numnod), flux(6,*), flu1(*), veul(lveul,*), tag22(*)
63 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
64
65
66
67 INTEGER MAT(MVSIZ), NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ), NC5(MVSIZ), NC6(MVSIZ),
68 . NC7(MVSIZ), NC8(MVSIZ), I, II,J, IAD2
70 . n2x(mvsiz), n3x(mvsiz), n4x(mvsiz), n5x(mvsiz), n6x(mvsiz), n1y(mvsiz), n2y(mvsiz), n3y(mvsiz),
71 . n4y(mvsiz), n5y(mvsiz), n6y(mvsiz), n1z(mvsiz), n2z(mvsiz), n3z(mvsiz), n4z(mvsiz), n5z(mvsiz),
72 . n6z(mvsiz), flux1(mvsiz), flux2(mvsiz), flux3(mvsiz), flux4(mvsiz), flux5(mvsiz),
73 . flux6(mvsiz), vx1(mvsiz), vx2(mvsiz), vx3(mvsiz), vx4(mvsiz), vx5(mvsiz), vx6(mvsiz),
74 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz), vy4(mvsiz), vy5(mvsiz), vy6(mvsiz), vz1(mvsiz), vz2(mvsiz),
75 . vz3(mvsiz), vz4(mvsiz), vz5(mvsiz), vz6(mvsiz), vdx1(mvsiz), vdx2(mvsiz), vdx3(mvsiz),
76 . vdx4(mvsiz), vdx5(mvsiz), vdx6(mvsiz), vdx7(mvsiz), vdx8(mvsiz), vdy1(mvsiz), vdy2(mvsiz),
77 . vdy3(mvsiz), vdy4(mvsiz), vdy5(mvsiz), vdy6(mvsiz), vdy7(mvsiz
78 . vdz2(mvsiz), vdz3(mvsiz), vdz4(mvsiz), vdz5(mvsiz), vdz6(mvsiz), vdz7(mvsiz), vdz8(mvsiz),
79 . reduc,upwl(6,mvsiz)
80 LOGICAL debug_outp
81
82
83
84
85
86
87 DO i=lft,llt
88 ii=i+nft
89 mat(i)=ixs(1,ii)
90 nc1(i)=ixs(2,ii)
91 nc2(i)=ixs(3,ii)
92 nc3(i)=ixs(4,ii)
93 nc4(i)=ixs(5,ii)
94 nc5(i)=ixs(6,ii)
95 nc6(i)=ixs(7,ii)
96 nc7(i)=ixs(8,ii)
97 nc8(i)=ixs(9,ii)
98
99 vdx1(i)=v(1,nc1(i))
100 vdy1(i)=v(2,nc1(i))
101 vdz1(i)=v(3,nc1(i))
102
103 vdx2(i)=v(1,nc2(i))
104 vdy2(i)=v(2,nc2(i))
105 vdz2(i)=v(3,nc2(i))
106
107 vdx3(i)=v(1,nc3(i))
108 vdy3
109 vdz3(i)=v(3,nc3(i))
110
111 vdx4(i)=v(1,nc4(i))
112 vdy4(i)=v(2,nc4(i))
113 vdz4(i)=v(3,nc4(i))
114
115 vdx5(i)=v(1,nc5(i))
116 vdy5(i)=v(2,nc5(i))
117 vdz5(i)=v(3,nc5(i))
118
119 vdx6(i)=v(1,nc6(i))
120 vdy6(i)=v(2,nc6(i))
121 vdz6(i)=v(3,nc6(i))
122
123 vdx7(i)=v(1,nc7(i))
124 vdy7(i)=v(2,nc7(i))
125 vdz7(i)=v(3,nc7(i))
126
127 vdx8(i)=v(1,nc8(i))
128 vdy8(i)=v(2,nc8(i))
129 vdz8(i)=v(3,nc8(i))
130 ENDDO
131
132
133
134
135
136 ! [0.5*v_face] = 1/8 sum([v_node])
137
138 DO i=lft,llt
139 vx1(i)=one_over_8*(vdx1(i)+vdx2(i)+vdx3(i)+vdx4(i))
140 vx2(i)=one_over_8*(vdx3(i)+vdx4(i)+vdx8(i)+vdx7(i))
141 vx3(i)=one_over_8*(vdx5(i)+vdx6(i)+vdx7(i)+vdx8(i))
142 vx4(i)=one_over_8*(vdx1(i)+vdx2(i)+vdx6(i)+vdx5(i))
143 vx5(i)=one_over_8*(vdx2(i)+vdx3(i)+vdx7(i)+vdx6(i))
144 vx6(i)=one_over_8*(vdx1(i)+vdx4(i)+vdx8(i)+vdx5(i))
145
146 vy1(i)=one_over_8*(vdy1(i)+vdy2(i)+vdy3(i)+vdy4(i))
147 vy2(i)=one_over_8*(vdy3(i)+vdy4(i)+vdy8(i)+vdy7(i))
148 vy3(i)=one_over_8*(vdy5(i)+vdy6(i)+vdy7(i)+vdy8(i))
149 vy4(i)=one_over_8*(vdy1(i)+vdy2(i)+vdy6(i)+vdy5(i))
150 vy5(i)=one_over_8*(vdy2(i)+vdy3(i)+vdy7(i)+vdy6(i))
151 vy6(i)=one_over_8*(vdy1(i)+vdy4(i)+vdy8(i)+vdy5(i))
152
153 vz1(i)=one_over_8*(vdz1(i)+vdz2(i)+vdz3(i)+vdz4(i))
154 vz2(i)=one_over_8*(vdz3(i)+vdz4(i)+vdz8(i)+vdz7(i))
155 vz3(i)=one_over_8*(vdz5(i)+vdz6(i)+vdz7(i)+vdz8(i))
156 vz4(i)=one_over_8*(vdz1(i)+vdz2(i)+vdz6(i)+vdz5(i))
157 vz5(i)=one_over_8*(vdz2(i)+vdz3(i)+vdz7(i)+vdz6(i))
158 vz6(i)=one_over_8*(vdz1(i)+vdz4(i)+vdz8(i)+vdz5(i))
159 ENDDO
160
161
162
163
164
165
166
167 DO i=lft,llt
168 ii=i+nft
169 n1x(i)=veul(14,ii)
170 n2x(i)=veul(15,ii)
171 n3x(i)=veul(16,ii)
172 n4x(i)=veul(17,ii)
173 n5x(i)=veul(18,ii)
174 n6x(i)=veul(19,ii)
175
176 n1y(i)=veul(20,ii)
177 n2y(i)=veul(21,ii)
178 n3y(i)=veul(22,ii)
179 n4y(i)=veul(23,ii)
180 n5y(i)=veul(24,ii)
181 n6y(i)=veul(25,ii)
182
183 n1z(i)=veul(26,ii)
184 n2z(i)=veul(27,ii)
185 n3z(i)=veul(28,ii)
186 n4z(i)=veul(29,ii)
187 n5z(i)=veul(30,ii)
188 n6z(i)=veul(31,ii)
189 ENDDO
190
191
192
193
194
195
196 DO i=lft,llt
197 flux1(i)=(vx1(i)*n1x(i)+vy1(i)*n1y(i)+vz1(i)*n1z(i))
198 flux2(i)=(vx2(i)*n2x(i)+vy2(i)*n2y(i)+vz2(i)*n2z(i))
199 flux3(i)=(vx3(i)*n3x(i)+vy3(i)*n3y(i)+vz3(i)*n3z(i))
200 flux4(i)=(vx4(i)*n4x(i)+vy4(i)*n4y(i)+vz4(i)*n4z(i))
201 flux5(i)=(vx5(i)*n5x(i)+vy5(i)*n5y(i)+vz5(i)*n5z(i))
202 flux6(i)=(vx6(i)*n6x(i)+vy6(i)*n6y(i)+vz6(i)*n6z(i))
203 ENDDO
204
205
206
207 IF(int22>0)THEN
208 debug_outp = .false.
210 debug_outp = .false.
212 do i=lft,llt
214 if(tag22(i)==zero)then
215 debug_outp=.true.
216 exit
217 endif
218 endif
219 enddo
221 debug_outp = .true.
222 endif
223 endif
224
225 if(debug_outp)then
226
227 print *, " |--------eflux3.F--------|"
228 print *, " | THREAD INFORMATION |"
229 print *, " |------------------------|"
230 print *, " NCYCLE =", ncycle
231 do i=lft,llt
233 if (tag22(i)==zero)print *," UNCUT"
234 print *, " brique=", ixs(11,nft+i)
235 write (*,fmt='(A,6E26.14)') " Flux(1:6)=", flux(1:6,i)
236 write (*,fmt='(A,1E26.14)') " Flu1=", flu1(i)
237 print *, " ------------------------"
238 enddo
239
240 endif
241 ENDIF
242
243
244
245
246
247
248
249 IF(nint(pm(19,mat(1))) == 51)THEN
250 DO i=lft,llt
251 flux(1,i)=flux1(i)
252 flux(2,i)=flux2(i)
253 flux(3,i)=flux3(i)
254 flux(4,i)=flux4(i)
255 flux(5,i)=flux5(i)
256 flux(6,i)=flux6(i)
257 ENDDO
258 RETURN
259 ENDIF
260
261
262
263
264
265 DO j=1,6
266 DO i=lft,llt
267 upwl(j,i)=pm(16,mat(i))
268 ENDDO
269 ENDDO
270
271 DO i=lft,llt
272 iad2 = ale_connect%ee_connect%iad_connect(i + nft)
273 reduc=pm(92,mat(i))
274
275 ii=ale_connect%ee_connect%connected(iad2 + 1 - 1)
276 IF(ii == 0)THEN
277 flux1(i)=flux1(i)*reduc
278 ENDIF
279
280 ii=ale_connect%ee_connect%connected(iad2 + 2 - 1)
281 IF(ii == 0)THEN
282 flux2(i)=flux2(i)*reduc
283 ENDIF
284
285 ii=ale_connect%ee_connect%connected(iad2 + 3 - 1)
286 IF(ii == 0)THEN
287 flux3(i)=flux3(i)*reduc
288 ENDIF
289
290 ii=ale_connect%ee_connect%connected(iad2 + 4 - 1)
291 IF(ii == 0)THEN
292 flux4(i)=flux4(i)*reduc
293 ENDIF
294
295 ii=ale_connect%ee_connect%connected(iad2 + 5 - 1)
296 IF(ii == 0)THEN
297 flux5(i)=flux5(i)*reduc
298 ENDIF
299
300 ii=ale_connect%ee_connect%connected(iad2 + 6 - 1)
301 IF(ii == 0)THEN
302 flux6(i)=flux6(i)*reduc
303 ENDIF
304 ENDDO
305
306 DO i=lft,llt
307 flux(1,i)=flux1(i)-upwl(1,i)*abs(flux1(i))
308 flux(2,i)=flux2(i)-upwl(2,i)*abs(flux2(i))
309 flux(3,i)=flux3(i)-upwl(3,i)*abs(flux3(i))
310 flux(4,i)=flux4(i)-upwl(4,i)*abs(flux4(i))
311 flux(5,i)=flux5(i)-upwl(5,i)*abs(flux5(i))
312 flux(6,i)=flux6(i)-upwl(6,i)*abs(flux6(i))
313
314 flu1(i) =flux1(i)+upwl(1,i)*abs(flux1(i))
315 . +flux2(i)+upwl(2,i)*abs(flux2(i))
316 . +flux3(i)+upwl(3,i)*abs(flux3(i))
317 . +flux4(i)+upwl(4,i)*abs(flux4(i))
318 . +flux5(i)+upwl(5,i)*abs(flux5(i))
319 . +flux6(i)+upwl(6,i)*abs(flux6(i))
320 ENDDO
321
322 RETURN