33 SUBROUTINE i3for2(X ,E ,IRECT,LMSR ,MSR ,
34 1 NSV ,ILOC ,IRTL ,STF ,NSN ,
35 2 NMN ,NTY ,CST ,IRTLO,FRIC0,
36 3 FRIGAP,STFN ,IBC ,ICODT,IMAST,
37 4 FSAV ,FSKYI,ISKY ,PTMAX,AREAS,
38 5 FCONT ,FNCONT,FTCONT,H3D_DATA)
47#include "implicit_f.inc"
63 INTEGER NSN, NMN, NTY, IBC, IMAST
64 INTEGER IRECT(4,*), LMSR(*), MSR(*), NSV(*), ILOC(*), IRTL(*),
65 . IRTLO(*), ICODT(*), ISKY(*)
68 . x(3,*), e(*), stf(*), cst(2,*), fric0(3,*), frigap(*),
69 . stfn(*), fsav(*),fskyi(lskyi,nfskyi),ptmax, areas(*),
70 . fcont(3,*),fncont(3,*), ftcont(3,*)
75 INTEGER IX(2), II, I, J, K, L, M, IMP, I3, I2, JJ, J3, J2, LOLD,
79 . h(2), n2, n3, fric, gap, ym1, zm1, ym2, zm2, ys, zs, t2, t3,
80 . xl, ans, ss, stif, fni, fyi, fzi, ss0, fti, ds, anst, fmax,
119 ans =n2*(ys-ym1)+n3*(zs-zm1)
122 h(2)=t2*(ys-ym1)+t3*(zs-zm1)
126 IF(ss> onep05)
GO TO 120
127 IF(ss<-onep05)
GO TO 120
133 IF (stfn(ii)<zero)
THEN
139 stif=stf(l)*stfn(ii)/
max(em20,(stf(l)+stfn(ii)))
148 fsav(2)=fsav(2)+fyi*imast*dt12*ax
149 fsav(3)=fsav(3)+fzi*imast*dt12*ax
155 e(j2)=e(j2)+fyi*h(jj)
156 e(j3)=e(j3)+fzi*h(jj)
164#include "lockoff.inc"
168 fskyi(niskyl+1,1)= zero
169 fskyi(niskyl+1,2)= fyi*h(1)
170 fskyi(niskyl+1,3)= fzi*h(1)
171 fskyi(niskyl+1,4)= zero
172 isky(niskyl+1) = ix(1)
174 fskyi(niskyl+2,1)= zero
175 fskyi(niskyl+2,2)= fyi*h(2)
176 fskyi(niskyl+2,3)= fzi*h(2)
177 fskyi(niskyl+2,4)= zero
178 isky(niskyl+2) = ix(2)
180 fskyi(niskyl+3,1)= zero
181 fskyi(niskyl+3,2)= -fyi
182 fskyi(niskyl+3,3)= -fzi
183 fskyi(niskyl+3,4)= zero
186 fskyi(niskyl+1,1)= zero
187 fskyi(niskyl+1,2)= fyi*h(1)
188 fskyi(niskyl+1,3)= fzi*h(1)
189 fskyi(niskyl+1,4)= zero
190 fskyi(niskyl+1,5)= zero
191 isky(niskyl+1) = ix(1)
193 fskyi(niskyl+2,1)= zero
194 fskyi(niskyl+2,2)= fyi*h(2)
195 fskyi(niskyl+2,3)= fzi*h(2)
196 fskyi(niskyl+1,4)= zero
197 fskyi(niskyl+1,5)= zero
198 isky(niskyl+2) = ix(2)
200 fskyi(niskyl+3,1)= zero
201 fskyi(niskyl+3,2)= -fyi
202 fskyi(niskyl+3,3)= -fzi
203 fskyi(niskyl+1,4)= zero
204 fskyi(niskyl+1,5)= zero
209 IF(anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT>0.AND.
210 . ((tt>=tanim .AND. tt<=tanim_stop).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt
211 . (manim>=4.AND.manim<=15).OR. h3d_data%MH3D /= 0))
THEN
212 fcont(2,ix(1)) =fcont(2,ix(1)) + fyi*h(1)
213 fcont(3,ix(1)) =fcont(3,ix(1)) + fzi*h(1)
214 fcont(2,ix(2)) =fcont(2,ix(2)) + fyi*h(2)
215 fcont(3,ix(2)) =fcont(3,ix(2)) + fzi*h(2)
217 fcont(2,i)=fcont(2,i)- fyi
218 fcont(3,i)=fcont(3,i)- fzi
221 IF(anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT>0.AND.
222 . ((tt>=tanim .AND. tt<=tanim_stop).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP
223 . (manim>=4.AND.manim<=15).OR.h3d_data%MH3D/=0))
THEN
225 fncont(2,ix(1)) =fncont(2,ix(1)) + fyi*h(1)
226 fncont(3,ix(1)) =fncont(3,ix(1)) + fzi*h(1)
227 fncont(2,ix(2)) =fncont(2,ix(2)) + fyi*h(2)
228 fncont(3,ix(2)) =fncont(3,ix(2)) + fzi*h(2)
230 fncont(2,i)=fncont(2,i)- fyi
231 fncont(3,i)=fncont(3,i)- fzi
234 IF(ibc/=0)
CALL ibcoff(ibc,icodt(i))
237 IF(fric==zero)
GO TO 500
256 fmax=-
min(fric*fni,zero)
273 fs = ptmax*areas(ii)/sqrt(three)
288 fsav(5)=fsav(5)+fyi*imast*dt12*ax
289 fsav(6)=fsav(6)+fzi*imast*dt12*ax
295 e(j2)=e(j2)+fyi*h(jj)
296 400 e(j3)=e(j3)+fzi*h(jj)
305#include "lockoff.inc"
307 fskyi(niskyl,1)= zero
308 fskyi(niskyl+1,2)= fyi*h(1)
309 fskyi(niskyl+1,3)= fzi*h(1)
310 fskyi(niskyl+1,4)= zero
311 isky(niskyl+1) = ix(1)
313 fskyi(niskyl+2,1)= zero
314 fskyi(niskyl+2,2)= fyi*h(2)
315 fskyi(niskyl+2,3)= fzi*h(2)
316 fskyi(niskyl+2,4)= zero
317 isky(niskyl+2) = ix(2)
319 fskyi(niskyl+3,1)= zero
320 fskyi(niskyl+3,2)= -fyi
321 fskyi(niskyl+3,3)= -fzi
322 fskyi(niskyl+3,4)= zero
325 fskyi(niskyl,1)= zero
326 fskyi(niskyl+1,2)= fyi*h(1)
327 fskyi(niskyl+1,3)= fzi*h(1)
328 fskyi(niskyl+1,4)= zero
329 fskyi(niskyl+1,5)= zero
330 isky(niskyl+1) = ix(1)
332 fskyi(niskyl+2,1)= zero
333 fskyi(niskyl+2,2)= fyi*h(2)
334 fskyi(niskyl+2,3)= fzi*h(2)
335 fskyi(niskyl+2,4)= zero
336 fskyi(niskyl+1,5)= zero
337 isky(niskyl+2) = ix(2)
339 fskyi(niskyl+3,1)= zero
340 fskyi(niskyl+3,2)= -fyi
341 fskyi(niskyl+3,3)= -fzi
342 fskyi(niskyl+3,4)= zero
343 fskyi(niskyl+1,5)= zero
348 fskyi(niskyl+1,2)= fskyi(niskyl+1,2)+fyi*h(1)
349 fskyi(niskyl+1,3)= fskyi(niskyl+1,3)+fzi*h(1)
351 fskyi(niskyl+2,2)= fskyi(niskyl+2,2)+fyi*h(2)
352 fskyi(niskyl+2,3)= fskyi(niskyl+2,3)+fzi*h(2)
354 fskyi(niskyl+3,2)= fskyi(niskyl+3,2)-fyi
355 fskyi(niskyl+3,3)= fskyi(niskyl+3,3)-fzi
359 IF(anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT>0.AND.
360 . ((tt>=tanim .AND. tt<=tanim_stop).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt
361 . (manim>=4.AND.manim<=15).OR. h3d_data%MH3D /= 0))
THEN
362 fcont(2,ix(1)) =fcont(2,ix(1)) + fyi*h(1)
363 fcont(3,ix(1)) =fcont(3,ix(1)) + fzi*h(1)
364 fcont(2,ix(2)) =fcont(2,ix(2)) + fyi*h(2)
365 fcont(3,ix(2)) =fcont(3,ix(2)) + fzi*h(2)
367 fcont(2,i)=fcont(2,i)- fyi
368 fcont(3,i)=fcont(3,i)- fzi
370 IF(anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT>0.AND.
371 . ((tt>=tanim .AND. tt<=tanim_stop).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP
372 . (manim>=4.AND.manim<=15).OR.h3d_data%MH3D/=0))
THEN
373 ftcont(2,ix(1)) =ftcont(2,ix(1)) + fyi*h(1)
374 ftcont(3,ix(1)) =ftcont(3,ix(1)) + fzi*h(1)
375 ftcont(2,ix(2)) =ftcont(2,ix(2)) + fyi*h(2)
376 ftcont(3,ix(2)) =ftcont(3,ix(2)) + fzi*h(2)
378 ftcont(2,i)=ftcont(2,i)- fyi
379 ftcont(3,i)=ftcont(3,i)- fzi