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