33 SUBROUTINE i3for2(OUTPUT, 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 TYPE(output_),
INTENT(inout) :: OUTPUT
64 INTEGER NSN, NMN, NTY, IBC, IMAST
65 INTEGER IRECT(4,*), LMSR(*), MSR(*), NSV(*), ILOC(*), IRTL(*),
66 . IRTLO(*), (*), ISKY(*)
69 . x(3,*), e(*), stf(*), cst(2,*), fric0(3,*), frigap
70 . stfn(*), fsav(*),fskyi(lskyi,nfskyi),ptmax, areas(*),
71 . fcont(3,*),fncont(3,*), ftcont(3,*)
76 INTEGER IX(2), II, I, J, K, L, M, IMP, I3, I2, JJ, J3, J2, LOLD,
80 . h(2), n2, n3, fric, gap, ym1, zm1, ym2, zm2, ys, zs, t2, t3,
81 . xl, ans, ss, stif, fni, fyi, fzi, ss0, fti, ds, anst, fmax,
120 ans =n2*(ys-ym1)+n3*(zs-zm1)
123 h(2)=t2*(ys-ym1)+t3*(zs-zm1)
127 IF(ss> onep05)
GO TO 120
128 IF(ss<-onep05)
GO TO 120
134 IF (stfn(ii)<zero)
THEN
140 stif=stf(l)*stfn(ii)/
max(em20,(stf(l)+stfn(ii)))
149 fsav(2)=fsav(2)+fyi*imast*dt12*ax
150 fsav(3)=fsav(3)+fzi*imast*dt12*ax
156 e(j2)=e(j2)+fyi*h(jj)
157 e(j3)=e(j3)+fzi*h(jj)
165#include "lockoff.inc"
169 fskyi(niskyl+1,1)= zero
170 fskyi(niskyl+1,2)= fyi*h(1)
171 fskyi(niskyl+1,3)= fzi*h(1)
172 fskyi(niskyl+1,4)= zero
173 isky(niskyl+1) = ix(1)
175 fskyi(niskyl+2,1)= zero
176 fskyi(niskyl+2,2)= fyi*h(2)
177 fskyi(niskyl+2,3)= fzi*h(2)
178 fskyi(niskyl+2,4)= zero
179 isky(niskyl+2) = ix(2)
181 fskyi(niskyl+3,1)= zero
182 fskyi(niskyl+3,2)= -fyi
183 fskyi(niskyl+3,3)= -fzi
184 fskyi(niskyl+3,4)= zero
187 fskyi(niskyl+1,1)= zero
188 fskyi(niskyl+1,2)= fyi*h(1)
189 fskyi(niskyl+1,3)= fzi*h(1)
190 fskyi(niskyl+1,4)= zero
191 fskyi(niskyl+1,5)= zero
192 isky(niskyl+1) = ix(1)
194 fskyi(niskyl+2,1)= zero
195 fskyi(niskyl+2,2)= fyi*h(2)
196 fskyi(niskyl+2,3)= fzi*h(2)
197 fskyi(niskyl+1,4)= zero
198 fskyi(niskyl+1,5)= zero
199 isky(niskyl+2) = ix(2)
201 fskyi(niskyl+3,1)= zero
202 fskyi(niskyl+3,2)= -fyi
203 fskyi(niskyl+3,3)= -fzi
204 fskyi(niskyl+1,4)= zero
205 fskyi(niskyl+1,5)= zero
210 IF(anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT>0.AND.
211 . ((tt>=output%TANIM .AND. tt<=output%TANIM_STOP).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt
213 fcont(2,ix(1)) =fcont(2,ix(1)) + fyi*h(1)
214 fcont(3,ix(1)) =fcont(3,ix(1)) + fzi*h(1)
215 fcont(2,ix(2)) =fcont(2,ix(2)) + fyi*h(2)
216 fcont(3,ix(2)) =fcont(3,ix(2)) + fzi*h(2)
218 fcont(2,i)=fcont(2,i)- fyi
219 fcont(3,i)=fcont(3,i)- fzi
222 IF(anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT>0.AND.
223 . ((tt>=output%TANIM .AND. tt<=output%TANIM_STOP).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP) .OR.
224 . (manim>=4.AND.manim<=15).OR.h3d_data%MH3D/=0))
THEN
226 fncont(2,ix(1)) =fncont(2,ix(1)) + fyi*h(1)
227 fncont(3,ix(1)) =fncont(3,ix(1)) + fzi*h(1)
228 fncont(2,ix(2)) =fncont(2,ix(2)) + fyi*h(2)
229 fncont(3,ix(2)) =fncont(3,ix(2)) + fzi*h(2)
231 fncont(2,i)=fncont(2,i)- fyi
232 fncont(3,i)=fncont(3,i)- fzi
235 IF(ibc/=0)
CALL ibcoff(ibc,icodt(i))
238 IF(fric==zero)
GO TO 500
257 fmax=-
min(fric*fni,zero)
274 fs = ptmax*areas(ii)/sqrt(three)
289 fsav(5)=fsav(5)+fyi*imast*dt12*ax
296 e(j2)=e(j2)+fyi*h(jj)
297 400 e(j3)=e(j3)+fzi*h(jj)
306#include "lockoff.inc"
308 fskyi(niskyl,1)= zero
309 fskyi(niskyl+1,2)= fyi*h(1)
310 fskyi(niskyl+1,3)= fzi*h(1)
311 fskyi(niskyl+1,4)= zero
312 isky(niskyl+1) = ix(1)
314 fskyi(niskyl+2,1)= zero
315 fskyi(niskyl+2,2)= fyi*h(2)
316 fskyi(niskyl+2,3)= fzi*h(2)
317 fskyi(niskyl+2,4)= zero
318 isky(niskyl+2) = ix(2)
320 fskyi(niskyl+3,1)= zero
321 fskyi(niskyl+3,2)= -fyi
322 fskyi(niskyl+3,3)= -fzi
323 fskyi(niskyl+3,4)= zero
326 fskyi(niskyl,1)= zero
327 fskyi(niskyl+1,2)= fyi*h(1)
328 fskyi(niskyl+1,3)= fzi*h(1)
329 fskyi(niskyl+1,4)= zero
330 fskyi(niskyl+1,5)= zero
331 isky(niskyl+1) = ix(1)
333 fskyi(niskyl+2,1)= zero
334 fskyi(niskyl+2,2)= fyi*h(2)
335 fskyi(niskyl+2,3)= fzi*h(2)
336 fskyi(niskyl+2,4)= zero
337 fskyi(niskyl+1,5)= zero
338 isky(niskyl+2) = ix(2)
340 fskyi(niskyl+3,1)= zero
341 fskyi(niskyl+3,2)= -fyi
342 fskyi(niskyl+3,3)= -fzi
343 fskyi(niskyl+3,4)= zero
344 fskyi(niskyl+1,5)= zero
349 fskyi(niskyl+1,2)= fskyi(niskyl+1,2)+fyi*h(1)
350 fskyi(niskyl+1,3)= fskyi(niskyl+1,3)+fzi*h(1)
352 fskyi(niskyl+2,2)= fskyi(niskyl+2,2)+fyi*h(2)
353 fskyi(niskyl+2,3)= fskyi(niskyl+2,3)+fzi*h(2)
355 fskyi(niskyl+3,2)= fskyi(niskyl+3,2)-fyi
356 fskyi(niskyl+3,3)= fskyi(niskyl+3,3)-fzi
360 IF(anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT>0.AND.
361 . ((tt>=output%TANIM .AND. tt<=output%TANIM_STOP).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP).OR.
362 . (manim>=4.AND.manim<=15).OR. h3d_data%MH3D /= 0))
THEN
363 fcont(2,ix(1)) =fcont(2,ix(1)) + fyi*h(1)
364 fcont(3,ix(1)) =fcont(3,ix(1)) + fzi*h(1)
365 fcont(2,ix(2)) =fcont(2,ix(2)) + fyi*h(2)
366 fcont(3,ix(2)) =fcont(3,ix(2)) + fzi*h(2)
368 fcont(2,i)=fcont(2,i)- fyi
369 fcont(3,i)=fcont(3,i)- fzi
371 IF(anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT>0.AND.
372 . ((tt>=output%TANIM .AND. tt<=output%TANIM_STOP).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt
373 . (manim>=4.AND.manim<=15).OR.h3d_data%MH3D/=0))
THEN
374 ftcont(2,ix(1)) =ftcont(2,ix(1)) + fyi*h(1)
375 ftcont(3,ix(1)) =ftcont(3,ix(1)) + fzi*h(1)
376 ftcont(2,ix(2)) =ftcont(2,ix(2)) + fyi*h(2)
377 ftcont(3,ix(2)) =ftcont(3,ix(2)) + fzi*h(2)
379 ftcont(2,i)=ftcont(2,i)- fyi
380 ftcont(3,i)=ftcont(3,i)- fzi