39 8 FQMAX, NEL ,E_DISTOR,
47#include "implicit_f.inc"
57 INTEGER,
INTENT(IN) :: NEL
58 INTEGER,
DIMENSION(MVSIZ),
INTENT(IN) :: ISTAB
59 my_real,
INTENT(IN) :: MU,FQMAX,DT1
60 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: FLD,LL
61 DOUBLE PRECISION,
DIMENSION(MVSIZ,10),
INTENT(IN) ::
62 . XX,YY,ZZ,XX0,YY0,ZZ0
63 my_real,
DIMENSION(MVSIZ,10),
INTENT(IN) ::
65 my_real,
DIMENSION(MVSIZ,10),
INTENT(INOUT) ::
67 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) ::sti,sti_c
68 my_real,
DIMENSION(NEL),
INTENT(INOUT) :: e_distor
73 . xc(mvsiz,5),yc(mvsiz,5),zc(mvsiz,5),stif(mvsiz),
74 . vc(mvsiz,3),forc_n(mvsiz,3),for_t1(mvsiz,3),
75 . for_t2(mvsiz,3),for_t3(mvsiz,3),for_t4(mvsiz,3),
76 . for_t5(mvsiz,3),for_t6(mvsiz,3),for_t7(mvsiz,3),
77 . for_t8(mvsiz,3),for_t9(mvsiz,3),for_t10(mvsiz,3),
78 . forc_n1(mvsiz,3),forc_n2(mvsiz,3),forc_n3(mvsiz,3),
79 . penmin(mvsiz),penref(mvsiz),marge(mvsiz),
80 . vcx(mvsiz,4),vcy(mvsiz,4),vcz(mvsiz,4),
81 . forc_n4(mvsiz,3),fcx,fcy,fcz,fac,gap_max,gap_min,
82 . tol_t,tol_c, tol_v, tol_e
83 INTEGER I,J,NCTL,IFCTL,IFC1(MVSIZ),IFC2(MVSIZ)
95 vc(i,1) = vc(i,1)+vx(i,j)
96 vc(i,2) = vc(i,2)+vy(i,j)
97 vc(i,3) = vc(i,3)+vz(i,j)
101 vc(i,1) = vc(i,1)*em01
102 vc(i,2) = vc(i,2)*em01
103 vc(i,3) = vc(i,3)*em01
124 . vx , vy, vz, ifctl,
125 . for_t1, for_t2, for_t3, for_t4,
126 . for_t5, for_t6, for_t7, for_t8,
127 . for_t9, for_t10, stif , ifc1,
128 . nel ,e_distor, dt1 )
136 xc(i,5) = xc(i,5)+xx(i,j)
137 yc(i,5) = yc(i,5)+yy(i,j)
138 zc(i,5) = zc(i,5)+zz(i,j)
142 xc(i,5) = xc(i,5)*em01
143 yc(i,5) = yc(i,5)*em01
144 zc(i,5) = zc(i,5)*em01
153 . for_t1, for_t2, for_t3,
154 . for_t4, for_t5, for_t6,
155 . for_t7, for_t8, for_t9,
156 . for_t10, tol_e, ifc2 ,
157 . ifctl , nel ,e_distor,
164 gap_max = five*gap_min
165 marge(1:nel) = gap_max*ll(1:nel)
166 penmin(1:nel) = gap_min*ll(1:nel)*half
167 penref(1:nel) = gap_max*ll(1:nel)*half
169 xc(i,1) = fourth*(xx(i,1)+xx(i,5)+xx(i,7)+xx(i,8))
170 yc(i,1) = fourth*(yy(i,1)+yy(i,5)+yy(i,7)+yy(i,8))
171 zc(i,1) = fourth*(zz(i,1)+zz(i,5)+zz(i,7)+zz(i,8))
172 xc(i,2) = fourth*(xx(i,2)+xx(i,5)+xx
173 yc(i,2) = fourth*(yy(i,2)+yy(i,5)+yy(i,6)+yy(i,9))
174 zc(i,2) = fourth*(zz(i,2)+zz(i,5)+zz(i,6)+zz
175 xc(i,3) = fourth*(xx(i,3)+xx(i,7)+xx(i,6)+xx(i,10))
176 yc(i,3) = fourth*(yy(i,3)+yy(i,7)+yy(i,6)+yy(i,10))
177 zc(i,3) = fourth*(zz(i,3)+zz(i,7)+zz(i,6)+zz(i,10))
178 xc(i,4) = fourth*(xx(i,4)+xx(i,8
179 yc(i,4) = fourth*(yy(i,4)+yy(i,8)+yy(i,9)+yy(i,10))
180 zc(i,4) = fourth*(zz(i,4)+zz(i,8)+zz(i,9)+zz(i,10))
183 vcx(i,1) = fourth*(vx(i,1)+vx(i,5)+vx(i,7)+vx(i,8))
184 vcy(i,1) = fourth*(vy(i,1)+vy(i,5)+vy(i,7)+vy(i,8))
185 vcz(i,1) = fourth*(vz(i,1)+vz(i,5)+vz(i,7)+vz(i,8))
186 vcx(i,2) = fourth*(vx(i,2)+vx(i,5)+vx(i,6)+vx(i,9))
187 vcy(i,2) = fourth*(vy(i,2)+vy(i,5)+vy(i,6)+vy(i,9))
188 vcz(i,2) = fourth*(vz(i,2)+vz(i,5)+vz(i,6)+vz(i,9))
189 vcx(i,3) = fourth*(vx(i,3)+vx(i,7)+vx(i,6)+vx(i,10))
190 vcy(i,3) = fourth*(vy(i,3)+vy(i,7)+vy(i,6)+vy(i,10))
191 vcz(i,3) = fourth*(vz(i,3)+vz(i,7)+vz(i,6)+vz(i,10))
192 vcx(i,4) = fourth*(vx(i,4)+vx(i,8)+vx(i,9)+vx(i,10))
193 vcy(i,4) = fourth*(vy(i,4)+vy(i,8)+vy(i,9)+vy(i,10))
194 vcz(i,4) = fourth*(vz(i,4)+vz(i,8)+vz(i,9)+vz(i,10))
199 . xc(1,5), yc(1,5), zc(1,5),
200 . xc(1,1), yc(1,1), zc(1,1),
201 . xc(1,2), yc(1,2), zc(1,2),
202 . xc(1,3), yc(1,3), zc(1,3),
203 . xx(1,1), xx(1,2), xx(1,3),
204 . yy(1,1), yy(1,2), yy(1,3),
205 . zz(1,1), zz(1,2), zz(1,3),
206 . for_t1, for_t2, for_t3,
207 . xx(1,5), xx(1,6), xx(1,7),
208 . yy(1,5), yy(1,6), yy(1,7),
209 . zz(1,5), zz(1,6), zz(1,7),
210 . for_t5, for_t6, for_t7,
211 . forc_n1, forc_n2, forc_n3,
212 . forc_n, stif, sti_c,
214 . penmin, penref, marge,
215 . vc(1,1), vc(1,2), vc(1,3),
216 . vcx(1,1), vcy(1,1), vcz(1,1),
217 . vcx(1,2), vcy(1,2), vcz(1,2),
218 . vcx(1,3), vcy(1,3), vcz(1,3),
219 . vx(1,1), vx(1,2), vx(1,3),
220 . vy(1,1), vy(1,2), vy(1,3),
221 . vz(1,1), vz(1,2), vz(1,3),
222 . vx(1,5), vx(1,6), vx(1,7),
223 . vy(1,5), vy(1,6), vy(1,7),
224 . vz(1,5), vz(1,6), vz(1,7),
225 . ifc1, nel , e_distor,
230 . xc(1,5), yc(1,5), zc(1,5),
231 . xc(1,1), yc(1,1), zc(1,1),
232 . xc(1,4), yc(1,4), zc(1,4),
233 . xc(1,2), yc(1,2), zc(1,2),
234 . xx(1,1), xx(1,4), xx(1,2),
235 . yy(1,1), yy(1,4), yy(1,2),
236 . zz(1,1), zz(1,4), zz(1,2),
237 . for_t1, for_t4, for_t2,
238 . xx(1,8), xx(1,9), xx(1,5),
239 . yy(1,8), yy(1,9), yy(1,5),
240 . zz(1,8), zz(1,9), zz(1,5),
241 . for_t8, for_t9, for_t5,
242 . forc_n1, forc_n4, forc_n2,
243 . forc_n, stif, sti_c,
245 . penmin, penref, marge,
246 . vc(1,1), vc(1,2), vc(1,3),
247 . vcx(1,1), vcy(1,1), vcz(1,1),
248 . vcx(1,4), vcy(1,4), vcz(1,4),
249 . vcx(1,2), vcy(1,2), vcz(1,2),
250 . vx(1,1), vx(1,4), vx(1,2),
251 . vy(1,1), vy(1,4), vy(1,2),
252 . vz(1,1), vz(1,4), vz(1,2),
253 . vx(1,8), vx(1,9), vx(1,5),
254 . vy(1,8), vy(1,9), vy(1,5),
255 . vz(1,8), vz(1,9), vz(1,5),
256 . ifc1, nel , e_distor,
261 . xc(1,5), yc(1,5), zc(1,5),
262 . xc(1,2), yc(1,2), zc(1,2),
263 . xc(1,4), yc(1,4), zc(1,4),
264 . xc(1,3), yc(1,3), zc(1,3),
265 . xx(1,2), xx(1,4), xx(1,3),
266 . yy(1,2), yy(1,4), yy(1,3),
267 . zz(1,2), zz(1,4), zz(1,3),
268 . for_t2, for_t4, for_t3,
269 . xx(1,9), xx(1,10), xx(1,6),
270 . yy(1,9), yy(1,10), yy(1,6),
271 . zz(1,9), zz(1,10), zz(1,6),
272 . for_t9, for_t10, for_t6,
273 . forc_n2, forc_n4, forc_n3,
274 . forc_n, stif, sti_c,
276 . penmin, penref, marge,
277 . vc(1,1), vc(1,2), vc(1,3),
279 . vcx(1,4), vcy(1,4), vcz
281 . vx(1,2), vx(1,4), vx(1,3),
282 . vy(1,2), vy(1,4), vy(1,3),
283 . vz(1,2), vz(1,4), vz(1,3),
284 . vx(1,9), vx(1,10), vx
286 . vz(1,9), vz(1,10), vz(1,6),
287 . ifc1, nel , e_distor,
292 . xc(1,5), yc(1,5), zc(1,5),
293 . xc(1,1), yc(1,1), zc(1,1),
294 . xc(1,3), yc(1,3), zc(1,3),
295 . xc(1,4), yc(1,4), zc(1,4),
296 . xx(1,1), xx(1,3), xx(1,4),
297 . yy(1,1), yy(1,3), yy(1,4),
298 . zz(1,1), zz(1,3), zz(1,4),
300 . xx(1,7), xx(1,10), xx(1,8),
301 . yy(1,7), yy(1,10), yy(1,8),
302 . zz(1,7), zz(1,10), zz(1,8),
303 . for_t7, for_t10, for_t8,
304 . forc_n1, forc_n3, forc_n4,
305 . forc_n, stif, sti_c,
307 . penmin, penref, marge,
308 . vc(1,1), vc(1,2), vc(1,3),
309 . vcx(1,1), vcy(1,1), vcz(1,1),
310 . vcx(1,3), vcy(1,3), vcz(1,3),
311 . vcx(1,4), vcy(1,4), vcz(1,4),
312 . vx(1,1), vx(1,3), vx(1,4),
313 . vy(1,1), vy(1,3), vy(1,4),
314 . vz(1,1), vz(1,3), vz(1,4),
315 . vx(1,7), vx(1,10), vx(1,8),
316 . vy(1,7), vy(1,10), vy(1,8),
317 . vz(1,7), vz(1,10), vz(1,8),
318 . ifc1, nel , e_distor,
324 IF (sti_c(i) ==zero) cycle
325 IF (stif(i)>sti_c(i)) sti(i) =
max(sti(i),stif(i))
326 IF (forc_n(i,1)==zero.AND.forc_n(i,2)==zero
327 . .AND.forc_n(i,3)==zero) cycle
328 fcx = em01*forc_n(i,1)
329 fcy = em01*forc_n(i,2)
330 fcz = em01*forc_n(i,3)
331 fx(i,1) = fx(i,1) + for_t1(i,1) + fcx
332 fy(i,1) = fy(i,1) + for_t1(i,2) + fcy
333 fz(i,1) = fz(i,1) + for_t1(i,3) + fcz
334 fx(i,2) = fx(i,2) + for_t2(i,1) + fcx
335 fy(i,2) = fy(i,2) + for_t2(i,2) + fcy
336 fz(i,2) = fz(i,2) + for_t2(i,3) + fcz
337 fx(i,3) = fx(i,3) + for_t3(i,1) + fcx
338 fy(i,3) = fy(i,3) + for_t3(i,2) + fcy
339 fz(i,3) = fz(i,3) + for_t3(i,3) + fcz
340 fx(i,4) = fx(i,4) + for_t4(i,1) + fcx
341 fy(i,4) = fy(i,4) + for_t4(i,2) + fcy
342 fz(i,4) = fz(i,4) + for_t4(i,3) + fcz
343 fx(i,5) = fx(i,5) + for_t5(i,1) + fcx
344 fy(i,5) = fy(i,5) + for_t5(i,2
345 fz(i,5) = fz(i,5) + for_t5(i,3) + fcz
346 fx(i,6) = fx(i,6) + for_t6(i,1) + fcx
347 fy(i,6) = fy(i,6) + for_t6(i,2) + fcy
348 fz(i,6) = fz(i,6) + for_t6(i,3) + fcz
349 fx(i,7) = fx(i,7) + for_t7(i,1) + fcx
350 fy(i,7) = fy(i,7) + for_t7(i,2) + fcy
351 fz(i,7) = fz(i,7) + for_t7(i,3) + fcz
352 fx(i,8) = fx(i,8) + for_t8(i,1) + fcx
353 fy(i,8) = fy(i,8) + for_t8(i,2) + fcy
354 fz(i,8) = fz(i,8) + for_t8(i,3) + fcz
355 fx(i,9) = fx(i,9) + for_t9(i,1) + fcx
356 fy(i,9) = fy(i,9) + for_t9(i,2) + fcy
357 fz(i,9) = fz(i,9) + for_t9(i,3) + fcz
358 fx(i,10)=fx(i,10) + for_t10(i,1) + fcx
359 fy(i,10)=fy(i,10) + for_t10(i,2) + fcy
360 fz(i,10)=fz(i,10) + for_t10(i,3) + fcz
364 IF (forc_n1(i,1)==zero.AND.forc_n1(i,2)==zero
365 . .AND.forc_n1(i,3)==zero) cycle
366 fcx = fourth*forc_n1(i,1)
367 fcy = fourth*forc_n1(i,2)
368 fcz = fourth*forc_n1(i,3)
369 fx(i,1) = fx(i,1) + fcx
370 fy(i,1) = fy(i,1) + fcy
371 fz(i,1) = fz(i,1) + fcz
372 fx(i,5) = fx(i,5) + fcx
373 fy(i,5) = fy(i,5) + fcy
374 fz(i,5) = fz(i,5) + fcz
375 fx(i,7) = fx(i,7) + fcx
376 fy(i,7) = fy(i,7) + fcy
377 fz(i,7) = fz(i,7) + fcz
378 fx(i,8) = fx(i,8) + fcx
379 fy(i,8) = fy(i,8) + fcy
380 fz(i,8) = fz(i,8) + fcz
383 IF (forc_n2(i,1)==zero.AND.forc_n2(i,2)==zero
384 . .AND.forc_n2(i,3)==zero) cycle
385 fcx = fourth*forc_n2(i,1)
386 fcy = fourth*forc_n2(i,2)
387 fcz = fourth*forc_n2(i,3)
388 fx(i,2) = fx(i,2) + fcx
389 fy(i,2) = fy(i,2) + fcy
390 fz(i,2) = fz(i,2) + fcz
391 fx(i,5) = fx(i,5) + fcx
392 fy(i,5) = fy(i,5) + fcy
393 fz(i,5) = fz(i,5) + fcz
394 fx(i,6) = fx(i,6) + fcx
395 fy(i,6) = fy(i,6) + fcy
396 fz(i,6) = fz(i,6) + fcz
397 fx(i,9) = fx(i,9) + fcx
398 fy(i,9) = fy(i,9) + fcy
399 fz(i,9) = fz(i,9) + fcz
402 IF (forc_n3(i,1)==zero.AND.forc_n3(i,2)==zero
403 . .AND.forc_n3(i,3)==zero) cycle
404 fcx = fourth*forc_n3(i,1)
405 fcy = fourth*forc_n3(i,2)
406 fcz = fourth*forc_n3(i,3)
407 fx(i,3) = fx(i,3) + fcx
408 fy(i,3) = fy(i,3) + fcy
409 fz(i,3) = fz(i,3) + fcz
410 fx(i,6) = fx(i,6) + fcx
411 fy(i,6) = fy(i,6) + fcy
412 fz(i,6) = fz(i,6) + fcz
413 fx(i,7) = fx(i,7) + fcx
414 fy(i,7) = fy(i,7) + fcy
415 fz(i,7) = fz(i,7) + fcz
416 fx(i,10)=fx(i,10) + fcx
417 fy(i,10)=fy(i,10) + fcy
418 fz(i,10)=fz(i,10) + fcz
421 IF (forc_n4(i,1)==zero.AND.forc_n4(i,2)==zero
422 . .AND.forc_n4(i,3)==zero) cycle
423 fcx = fourth*forc_n4(i,1)
424 fcy = fourth*forc_n4(i,2)
425 fcz = fourth*forc_n4(i,3)
426 fx(i,4) = fx(i,4) + fcx
427 fy(i,4) = fy(i,4) + fcy
428 fz(i,4) = fz(i,4) + fcz
429 fx(i,8) = fx(i,8) + fcx
430 fy(i,8) = fy(i,8) + fcy
431 fz(i,8) = fz(i,8) + fcz
432 fx(i,9) = fx(i,9) + fcx
433 fy(i,9) = fy(i,9) + fcy
434 fz(i,9) = fz(i,9) + fcz
435 fx(i,10)=fx(i,10) + fcx
436 fy(i,10)=fy(i,10) + fcy
437 fz(i,10)=fz(i,10) + fcz