57 . STI, STI_C, FLD, MU ,
58 . LL , ISTAB, FQMAX, NEL,
63 USE sfor_nsn2seg_mod,
ONLY : sfor_4n2s4
67#include "implicit_f.inc"
78 INTEGER,
INTENT(IN) :: NEL
79 INTEGER,
DIMENSION(MVSIZ),
INTENT(IN) :: ISTAB
80 my_real,
DIMENSION(NEL),
INTENT(IN) :: STI_C
81 my_real,
INTENT(IN) :: MU,FQMAX,DT1
82 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: FLD,LL,
95 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: sti,
100 8 f31, f32, f33, f34,
102 my_real,
DIMENSION(NEL),
INTENT(INOUT) :: e_distor
107 . xc(mvsiz),yc(mvsiz),zc(mvsiz),stif(mvsiz),
108 . vc(mvsiz,3),forc_n(mvsiz,3),for_t1(mvsiz,3),
109 . for_t2(mvsiz,3),for_t3(mvsiz,3),for_t4(mvsiz,3),
110 . for_t5(mvsiz,3),for_t6(mvsiz,3),for_t7(mvsiz,3),
111 . for_t8(mvsiz,3),fcx,fcy,fcz,fac,gap_max,gap_min,
112 . penmin(mvsiz),penref(mvsiz),marge(mvsiz),
114 INTEGER I,J,NCTL,IFCTL,IFC1(MVSIZ)
124 vc(i,1) = one_over_8*(vx1(i)+vx2(i)+vx3(i)+vx4(i)+
125 . vx5(i)+vx6(i)+vx7(i)+vx8(i))
126 vc(i,2) = one_over_8*(vy1(i)+vy2(i)+vy3(i)+vy4(i)+
127 . vy5(i)+vy6(i)+vy7(i)+vy8(i))
128 vc(i,3) = one_over_8*(vz1(i)+vz2(i)+vz3(i)+vz4(i)+
129 . vz5(i)+vz6(i)+vz7(i)+vz8(i))
145 . vx1, vx2, vx3, vx4,
146 . vx5, vx6, vx7, vx8,
147 . vy1, vy2, vy3, vy4,
148 . vy5, vy6, vy7, vy8,
149 . vz1, vz2, vz3, vz4,
150 . vz5, vz6, vz7, vz8,
151 . for_t1, for_t2, for_t3, for_t4,
152 . for_t5, for_t6, for_t7, for_t8,
153 . ifctl, stif , mu , nel ,
159 xc(i) = one_over_8*(x1(i)+x2(i)+x3(i)+x4(i)+
160 . x5(i)+x6(i)+x7(i)+x8(i))
161 yc(i) = one_over_8*(y1(i)+y2(i)+y3(i)+y4(i)+
162 . y5(i)+y6(i)+y7(i)+y8(i))
168 gap_max = five*gap_min
169 penmin(1:nel) = gap_min*ll(1:nel)
170 penref(1:nel) = gap_max*ll(1:nel)
171 marge(1:nel) = two*gap_max*ll(1:nel)
177 . vx2, vx1, vx4, vx3,
178 . vy2, vy1, vy4, vy3,
179 . vz2, vz1, vz4, vz3,
180 . for_t2, for_t1, for_t4, for_t3,
181 . forc_n, ll , ifctl, ifc1 ,
182 . penmin, penref, marge, fqmax,
183 . sti_c, nel , vc ,e_distor,
191 . vx1, vx2, vx6, vx5,
192 . vy1, vy2, vy6, vy5,
193 . vz1, vz2, vz6, vz5,
194 . for_t1, for_t2, for_t6, for_t5,
195 . forc_n, ll , ifctl, ifc1 ,
196 . penmin, penref, marge, fqmax,
197 . sti_c, nel , vc ,e_distor,
205 . vx2, vx3, vx7, vx6,
206 . vy2, vy3, vy7, vy6,
207 . vz2, vz3, vz7, vz6,
208 . for_t2, for_t3, for_t7, for_t6,
209 . forc_n, ll , ifctl, ifc1 ,
210 . penmin, penref, marge, fqmax,
211 . sti_c, nel , vc ,e_distor,
219 . vx1, vx5, vx8, vx4,
221 . vz1, vz5, vz8, vz4,
222 . for_t1, for_t5, for_t8, for_t4,
223 . forc_n, ll , ifctl, ifc1 ,
224 . penmin, penref, marge, fqmax,
233 . vx4, vx8, vx7, vx3,
234 . vy4, vy8, vy7, vy3,
235 . vz4, vz8, vz7, vz3,
236 . for_t4, for_t8, for_t7, for_t3,
237 . forc_n, ll , ifctl, ifc1 ,
238 . penmin, penref, marge, fqmax,
239 . sti_c, nel , vc ,e_distor,
247 . vx5, vx6, vx7, vx8,
248 . vy5, vy6, vy7, vy8,
249 . vz5, vz6, vz7, vz8,
250 . for_t5, for_t6, for_t7, for_t8,
252 . penmin, penref, marge, fqmax,
253 . sti_c, nel , vc ,e_distor,
262 . vx5, vx8, vx7, vx6,
263 . vy5, vy8, vy7, vy6,
264 . vz5, vz8, vz7, vz6,
265 . for_t5, for_t8, for_t7, for_t6,
269 . vx1, vx4, vx3, vx2,
270 . vy1, vy4, vy3, vy2,
271 . vz1, vz4, vz3, vz2,
272 . for_t1, for_t4, for_t3, for_t2,
273 . stif, ll , nctl, ifc1 ,
274 . penmin, penref, marge, fqmax,
275 . sti_c,e_distor, dt1, nel )
281 . vx4, vx3, vx7, vx8,
282 . vy4, vy3, vy7, vy8,
283 . vz4, vz3, vz7, vz8,
284 . for_t4, for_t3, for_t7, for_t8,
288 . vx1, vx2, vx6, vx5,
289 . vy1, vy2, vy6, vy5,
291 . for_t1, for_t2, for_t6, for_t5,
292 . stif, ll , nctl, ifc1 ,
293 . penmin, penref, marge, fqmax,
294 . sti_c,e_distor, dt1, nel )
295!---- 1,4,8,5 to seg 3 : 2,3,7,6
300 . vx1, vx4, vx8, vx5,
301 . vy1, vy4, vy8, vy5,
302 . vz1, vz4, vz8, vz5,
303 . for_t1, for_t4, for_t8, for_t5,
307 . vx2, vx3, vx7, vx6,
311 . stif, ll , nctl, ifc1 ,
313 . sti_c,e_distor, dt1, nel )
319 . vx2, vx6, vx7, vx3,
320 . vy2, vy6, vy7, vy3,
321 . vz2, vz6, vz7, vz3,
322 . for_t2, for_t6, for_t7, for_t3,
326 . vx1, vx5, vx8, vx4,
327 . vy1, vy5, vy8, vy4,
328 . vz1, vz5, vz8, vz4,
329 . for_t1, for_t5, for_t8, for_t4,
330 . stif, ll , nctl, ifc1 ,
331 . penmin, penref, marge, fqmax,
332 . sti_c,e_distor, dt1, nel )
338 . vx1, vx5, vx6, vx2,
339 . vy1, vy5, vy6, vy2,
340 . vz1, vz5, vz6, vz2,
341 . for_t1, for_t5, for_t6, for_t2,
345 . vx4, vx8, vx7, vx3,
346 . vy4, vy8, vy7, vy3,
347 . vz4, vz8, vz7, vz3,
348 . for_t4, for_t8, for_t7, for_t3,
349 . stif, ll , nctl, ifc1 ,
350 . penmin, penref, marge, fqmax,
351 . sti_c,e_distor, dt1, nel )
357 . vx1, vx2, vx3, vx4,
358 . vy1, vy2, vy3, vy4,
359 . vz1, vz2, vz3, vz4,
360 . for_t1, for_t2, for_t3, for_t4,
364 . vx5, vx6, vx7, vx8,
365 . vy5, vy6, vy7, vy8,
366 . vz5, vz6, vz7, vz8,
367 . for_t5, for_t6, for_t7, for_t8,
368 . stif, ll , nctl, ifc1 ,
369 . penmin, penref, marge, fqmax,
370 . sti_c,e_distor, dt1, nel )
373 fcx = one_over_8*forc_n(i,1)
374 fcy = one_over_8*forc_n(i,2)
375 fcz = one_over_8*forc_n(i,3)
376 f11(i)=f11(i) + for_t1(i,1) + fcx
377 f21(i)=f21(i) + for_t1(i,2) + fcy
378 f31(i)=f31(i) + for_t1(i,3) + fcz
379 f12(i)=f12(i) + for_t2(i,1) + fcx
380 f22(i)=f22(i) + for_t2(i,2) + fcy
381 f32(i)=f32(i) + for_t2(i,3) + fcz
382 f13(i)=f13(i) + for_t3(i,1) + fcx
383 f23(i)=f23(i) + for_t3(i,2) + fcy
384 f33(i)=f33(i) + for_t3(i,3) + fcz
385 f14(i)=f14(i) + for_t4(i,1) + fcx
386 f24(i)=f24(i) + for_t4(i,2) + fcy
387 f34(i)=f34(i) + for_t4(i,3) + fcz
388 f15(i)=f15(i) + for_t5(i,1) + fcx
389 f25(i)=f25(i) + for_t5(i,2) + fcy
390 f35(i)=f35(i) + for_t5(i,3) + fcz
391 f16(i)=f16(i) + for_t6(i,1) + fcx
392 f26(i)=f26(i) + for_t6(i,2) + fcy
393 f36(i)=f36(i) + for_t6(i,3) + fcz
394 f17(i)=f17(i) + for_t7(i,1) + fcx
395 f27(i)=f27(i) + for_t7(i,2) + fcy
396 f37(i)=f37(i) + for_t7(i,3) + fcz
397 f18(i)=f18(i) + for_t8(i,1) + fcx
398 f28(i)=f28(i) + for_t8(i,2) + fcy
399 f38(i)=f38(i) + for_t8(i,3) + fcz
401 IF (stif(i)>sti_c(i)) sti(i) =
max(sti(i),stif(i))
subroutine s8cforc3(timers, output, elbuf_tab, ng, pm, geo, ixs, x, a, v, ms, w, flux, flu1, veul, fv, ale_connect, iparg, tf, npf, bufmat, partsav, nloc_dmg, dt2t, neltst, ityptst, stifn, fsky, iads, offset, eani, iparts, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nel, icp, icsig, smr, sms, smt, mfxx, mfxy, mfxz, mfyx, mfyy, mfyz, mfzx, mfzy, mfzz, nvc, ipm, itask, istrain, temp, fthe, fthesky, iexpan, igeo, nnpt, gresav, grth, igrth, mssa, dmels, table, xdp, voln, condn, condnsky, sensors, ioutprt, mat_elem, h3d_strain, dt, nodadt, dtfac1, dtmin1, idtmin, snpc, stf, sbufmat, svis, nsvois, idtmins, iresp, maxfunc, userl_avail, glob_therm, impl_s, idyna)
subroutine s8for_distor(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, f11, f12, f13, f14, f15, f16, f17, f18, f21, f22, f23, f24, f25, f26, f27, f28, f31, f32, f33, f34, f35, f36, f37, f38, sti, sti_c, fld, mu, ll, istab, fqmax, nel, e_distor, dt1)