34 2 E ,MSR ,NSV ,IRTL ,STF ,
35 3 STFN ,IBC ,ICODT ,FSAV ,IGIMP ,
36 4 FSKYI ,ISKY ,FCONT ,FNCONT,ICONTACT,
37 5 IBAG ,IADM ,H3D_DATA,
38 6 IX1 ,IX2 ,IX3 ,IX4 ,N1 ,
39 7 N2 ,N3 ,XFACE ,H1 ,H2 ,
40 8 H3 ,H4 ,THK ,ANS ,STIF ,
51#include "implicit_f.inc"
70 INTEGER IBC, IGIMP,LFT, LLT, NFT, IBAG, IADM
71 INTEGER MSR(*), NSV(*), IRTL(*), ICODT(*), ISKY(*),
74 . E(*), STF(*), STFN(*), FSAV(*),FSKYI(LSKYI,4),FCONT(3,*),
76 TYPE(H3D_DATABASE) :: H3D_DATA
77 INTEGER,
DIMENSION(MVSIZ),
INTENT(IN) :: IX1,IX2,IX3,IX4
78 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: n1,n2,n3
79 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: h1,h2,h3,h4,thk
80 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: ans,stif,fni,xface
84 INTEGER I, IL, L, J3, J2, J1, IG,
88 . fxi(mvsiz), fyi(mvsiz), fzi(mvsiz), fx1(mvsiz), fx2(mvsiz), fx3(mvsiz), fx4(mvsiz),
89 . fy1(mvsiz), fy2(mvsiz), fy3(mvsiz), fy4(mvsiz), fz1(mvsiz), fz2(mvsiz), fz3(mvsiz), fz4(mvsiz)
93 ans(i)=
min(zero,(ans(i)*xface(i)-thk(i)))
98 IF(ans(i)==zero)xface(i)=zero
99 ans(i)=xface(i)*ans(i)
104 igimp=igimp+abs(xface(i))
115 fni(i)=ans(i)*stif(i)
124 fsav(1)=fsav(1)+fxi(i)*dt12
125 fsav(2)=fsav(2)+fyi(i)*dt12
126 fsav(3)=fsav(3)+fzi(i)*dt12
192 nisky = nisky + 5 * llt
193#include "lockoff.inc"
197 fskyi(niskyl,1)=fx1(i)
198 fskyi(niskyl,2)=fy1(i)
199 fskyi(niskyl,3)=fz1(i)
201 isky(niskyl) = ix1(i)
203 fskyi(niskyl,1)=fx2(i)
204 fskyi(niskyl,2)=fy2(i)
205 fskyi(niskyl,3)=fz2(i)
207 isky(niskyl) = ix2(i)
209 fskyi(niskyl,1)=fx3(i)
210 fskyi(niskyl,2)=fy3(i)
211 fskyi(niskyl,3)=fz3(i)
213 isky(niskyl) = ix3(i)
215 fskyi(niskyl,1)=fx4(i)
216 fskyi(niskyl,2)=fy4(i)
217 fskyi(niskyl,3)=fz4(i)
219 isky(niskyl) = ix4(i)
221 fskyi(niskyl,1)=-fxi(i)
222 fskyi(niskyl,2)=-fyi(i)
223 fskyi(niskyl,3)=-fzi(i)
226 isky(niskyl) = nsv(il)
231 IF(ibag/=0.OR.iadm/=0)
THEN
241#include "lockoff.inc"
244 IF(anim_v(4)+outp_v(4)>0.AND.
245 . ((tt>=tanim .AND. tt<=tanim_stop).OR.tt>=toutp.OR.
246 . (manim>=4.AND.manim<=15)))
THEN
249 fcont(1,ix1(i)) =fcont(1,ix1(i)) + fx1(i)
250 fcont(2,ix1(i)) =fcont(2,ix1(i)) + fy1(i)
251 fcont(3,ix1(i)) =fcont(3,ix1(i)) + fz1(i)
252 fcont(1,ix2(i)) =fcont(1,ix2(i)) + fx2(i)
253 fcont(2,ix2(i)) =fcont(2,ix2(i)) + fy2(i)
254 fcont(3,ix2(i)) =fcont(3,ix2(i)) + fz2(i)
255 fcont(1,ix3(i)) =fcont(1,ix3(i)) + fx3(i)
256 fcont(2,ix3(i)) =fcont(2,ix3(i)) + fy3(i)
257 fcont(3,ix3(i)) =fcont(3,ix3(i)) + fz3(i)
258 fcont(1,ix4(i)) =fcont(1,ix4(i)) + fx4(i)
259 fcont(2,ix4(i)) =fcont(2,ix4(i)) + fy4(i)
260 fcont(3,ix4(i)) =fcont(3,ix4(i)) + fz4(i)
261 fcont(1,nsv(i+nft))=fcont(1,nsv(i+nft))- fxi(i)
262 fcont(2,nsv(i+nft))=fcont(2,nsv(i+nft))- fyi(i)
263 fcont(3,nsv(i+nft))=fcont(3,nsv(i+nft))- fzi(i)
265#include "lockoff.inc"
268 IF(anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT>0.AND.
269 . ((tt>=tanim .AND. tt<=tanim_stop).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP).OR.
270 . (manim>=4.AND.manim<=15).OR.h3d_data%MH3D/=0))
THEN
273 fncont(1,ix1(i)) =fncont(1,ix1(i)) + fx1(i)
274 fncont(2,ix1(i)) =fncont(2,ix1(i)) + fy1(i)
275 fncont(3,ix1(i)) =fncont(3,ix1(i)) + fz1(i)
276 fncont(1,ix2(i)) =fncont(1,ix2(i)) + fx2(i)
277 fncont(2,ix2(i)) =fncont(2,ix2(i)) + fy2(i)
278 fncont(3,ix2(i)) =fncont(3,ix2(i)) + fz2(i)
279 fncont(1,ix3(i)) =fncont(1,ix3(i)) + fx3(i)
280 fncont(2,ix3(i)) =fncont(2,ix3(i)) + fy3(i)
281 fncont(3,ix3(i)) =fncont(3,ix3(i)) + fz3(i)
282 fncont(1,ix4(i)) =fncont(1,ix4(i)) + fx4(i)
283 fncont(2,ix4(i)) =fncont(2,ix4(i)) + fy4(i)
284 fncont(3,ix4(i)) =fncont(3,ix4(i)) + fz4(i)
285 fncont(1,nsv(i+nft))=fncont(1,nsv(i+nft))- fxi(i
286 fncont(2,nsv(i+nft))=fncont(2,nsv(i+nft))- fyi(i)
287 fncont(3,nsv(i+nft))=fncont(3,nsv(i+nft))- fzi(i)
289#include "lockoff.inc"
294 IF(ibc==0.OR.xface(i)==zero)
GOTO 200
297 CALL ibcoff(ibc,icodt(ig))
subroutine i5for3(lft, llt, nft, e, msr, nsv, irtl, stf, stfn, ibc, icodt, fsav, igimp, fskyi, isky, fcont, fncont, icontact, ibag, iadm, h3d_data, ix1, ix2, ix3, ix4, n1, n2, n3, xface, h1, h2, h3, h4, thk, ans, stif, fni)