29 1 (x ,a ,v ,rwl ,nsw ,
30 2 nsn ,itied ,msr ,ms ,weight ,
31 3 rwsav ,nimpact,impact ,nsms ,nrwl_sms)
35#include "implicit_f.inc"
45 INTEGER NSN, ITIED, MSR, NIMPACT, NSMS
46 INTEGER NSW(*), WEIGHT(*), IMPACT(*), NRWL_SMS(*)
49 . x(*), a(*), v(*), rwl(*), ms(*), rwsav(*)
53 INTEGER I, N, N3, N2, N1,IFQ, J, K, M1, M2, M3
57 . xwl, ywl, zwl, vxw, vyw, vzw,
58 . vx, vy, vz, ux, uy, uz, xc, yc, zc, dp
101 dp=xc*rwl(1)+yc*rwl(2)+zc*rwl(3)
110 IF((vx-vxw)*rwl(1)+(vy-vyw)*rwl(2)+(vz-vzw)*rwl(3)>zero)
131 dp=xc*rwl(1)+yc*rwl(2)+zc*rwl(3)
134 IF((vx-vxw)*rwl(1)+(vy-vyw)*rwl(2)+(vz-vzw)*rwl(3)>zero)
141 IF(nimpact/=0.AND.itied==2)ifricw=1
151 1 (x ,a ,v ,rwl ,nsw ,
152 2 nsn ,itied ,msr ,ms ,weight ,
153 3 rwsav ,nimpact,impact ,nsms ,nrwl_sms,
154 4 fsav ,fopt ,res ,r ,frea )
158#include "implicit_f.inc"
159#include "comlock.inc"
163#include "com08_c.inc"
167 INTEGER NSN, ITIED, MSR, NIMPACT, NSMS
168 INTEGER NSW(*), WEIGHT(*), IMPACT(*), NRWL_SMS(*)
171 . x(*), a(*), v(*), rwl(*), ms(*), rwsav(*), fsav(*),
172 . fopt(*), res(*), frea(*), r(*)
176 INTEGER I, N, , N2, N1,IFQ, J, K, , M2, M3
180 . xwl, ywl, zwl, vxw, vyw, vzw, vx, vy, vz,
181 . dv, da, dvt, fn, msw,
182 . fnxn, fnyn, fnzn, fnxt, fnyt, fnzt, fndfn, ftdft, fric, fric2,
183 . fcoe, fac,
alpha, alphi, fxt, fyt, fzt, fxn, fyn, fzn
224 fn=res(n1)*rwl(1)+res(n2)*rwl(2)+res(n3)*rwl(3)
229 fnxt=res(n1)*dt12-fnxn
230 fnyt=res(n2)*dt12-fnyn
231 fnzt=res(n3)*dt12-fnzn
234 fnxt = fnxt *
alpha + rwsav(k) * alphi
235 fnyt = fnyt *
alpha + rwsav(k+1) * alphi
236 fnzt = fnzt *
alpha + rwsav(k+2) * alphi
238 fndfn=fnxn**2+fnyn**2+fnzn**2
239 ftdft=fnxt**2+fnyt**2+fnzt**2
250 IF(ftdft <= fric2*fndfn)
THEN
253 fcoe=fric*sqrt(fndfn/ftdft)
285 fn=res(n1)*rwl(1)+res(n2)*rwl(2)+res(n3)*rwl(3)
290 fnxt=res(n1)*dt12-fnxn
291 fnyt=res(n2)*dt12-fnyn
292 fnzt=res(n3)*dt12-fnzn
295 fndfn=fnxn**2+fnyn**2+fnzn**2
296 ftdft=fnxt**2+fnyt**2+fnzt**2
297 IF(ftdft <= fric2*fndfn)
THEN
301 fcoe=fric*sqrt(fndfn/ftdft)
335 1 (x ,a ,v ,rwl ,nsw ,
336 2 nsn ,itied ,msr ,diag_sms,weight ,
337 3 rwsav ,nimpact,impact ,nsms ,nrwl_sms)
341#include "implicit_f.inc"
342#include "comlock.inc"
346#include "com08_c.inc"
350 INTEGER NSN, ITIED, MSR, NIMPACT, NSMS
351 INTEGER NSW(*), WEIGHT(*), IMPACT(*), NRWL_SMS(*)
354 . x(*), a(*), v(*), rwl(*), diag_sms(*), rwsav(*)
358 INTEGER I, N, N3, N2, N1,IFQ, J, K, M1, M2, M3, M
362 . xwl, ywl, zwl, vxw, vyw, vzw,
363 . dv, da, dvt, msw, fnxn, fnyn, fnzn
396 dv =(v(n1)-vxw)*rwl(1)+(v(n2)-vyw)*rwl(2)+(v(n3)-vzw)*rwl(3)
397 da =a(n1)*rwl(1)+a(n2)*rwl(2)+a(n3)*rwl(3)
400 a(n1)=a(n1)-da*rwl(1)
401 a(n2)=a(n2)-da*rwl(2)
402 a(n3)=a(n3)-da*rwl(3)
415 a(n1)=-(v(n1)-vxw)/dt12
416 a(n2)=-(v(n2)-vyw)/dt12
417 a(n3)=-(v(n3)-vzw)/dt12
431 a(n1)=-(v(n1)-vxw)/dt12
432 a(n2)=-(v(n2)-vyw)/dt12
433 a(n3)=-(v(n3)-vzw)/dt12
445 1 (x ,a ,v ,rwl ,nsw ,
446 2 nsn ,itied ,msr ,ms ,weight ,
447 3 rwsav ,nimpact,impact ,nsms ,nrwl_sms)
451#include "implicit_f.inc"
452#include "comlock.inc"
456 INTEGER NSN, ITIED, MSR, NIMPACT, NSMS
457 INTEGER NSW(*), WEIGHT(*), IMPACT(*), NRWL_SMS(*)
460 . x(*), a(*), v(*), rwl(*), ms(*), rwsav(*)
464 INTEGER , N, N3, N2, N1,IFQ, J
481 da =a(n1)*rwl(1)+a(n2)*rwl(2)+a(n3)*rwl(3)
483 a(n1)=a(n1)-da*rwl(1)
484 a(n2)=a(n2)-da*rwl(2)
485 a(n3)=a(n3)-da*rwl(3)
510 da=a(n1)*rwl(1)+a(n2)*rwl(2)+a(n3)*rwl(3)
512 IF(impact(j) > 0)
THEN
519 a(n1)=a(n1)-da*rwl(1)
520 a(n2)=a(n2)-da*rwl(2)
521 a(n3)=a(n3)-da*rwl(3)
536 1 (x ,frea ,v ,rwl ,nsw ,
537 2 nsn ,itied ,msr ,ms ,weight ,
538 3 rwsav ,nimpact,impact ,nsms ,nrwl_sms,
539 4 fsav ,fopt ,frwl6 ,a ,wfext)
543#include "implicit_f.inc"
544#include "comlock.inc"
548#include "com06_c.inc"
549#include
"com08_c.inc"
553 INTEGER NSN, ITIED, MSR, NIMPACT, NSMS
554 INTEGER NSW(*), WEIGHT(*), IMPACT(*), NRWL_SMS(*)
557 . x(*), v(*), rwl(*), ms(*), rwsav(*), fsav(*), frea(3,*),
559 DOUBLE PRECISION FRWL6(7,6)
560 DOUBLE PRECISION,
INTENT(INOUT) :: WFEXT
564 INTEGER I, N, N3, N2, N1,IFQ, J, K, , M2, M3
567 . vxw, vyw, vzw, vx, vy, vz,
569 . fnxn, fnyn, fnzn, fnxt, fnyt, fnzt, fn, msw,
570 . fxn, fyn, fzn, fxt, fyt, fzt,
571 . f1(nsn), f2(nsn), f3(nsn), f4(nsn), f5(nsn), f6(nsn), f7(nsn)
584 vxw=v(m1)+half*a(m1)*dt12
585 vyw=v(m2)+half*a(m2)*dt12
586 vzw=v(m3)+half*a(m3)*dt12
599 fn=frea(1,n)*rwl(1)+frea(2,n)*rwl(2)+frea(3,n)*rwl(3)
629 fn=frea(1,n)*rwl(1)+frea(2,n)*rwl(2)+frea
643 vx=v(n1)+half*a(n1)*dt12
644 vy=v(n2)+half*a(n2)*dt12
645 vz=v(n3)+half*a(n3)*dt12
649 fxt=weight(n)*frea(1,n)-fxn
650 fyt=weight(n)*frea(2,n)-fyn
651 fzt=weight(n)*frea(3,n)-fzn
655 wfextt = wfextt -dt12*((vx-vxw)*fxt+(vy-vyw)*fyt+(vz-vzw)*fzt)
662#include "lockoff.inc"
subroutine sms_rgwall_fric(x, a, v, rwl, nsw, nsn, itied, msr, ms, weight, rwsav, nimpact, impact, nsms, nrwl_sms, fsav, fopt, res, r, frea)
subroutine sms_rgwall_bilan(x, frea, v, rwl, nsw, nsn, itied, msr, ms, weight, rwsav, nimpact, impact, nsms, nrwl_sms, fsav, fopt, frwl6, a, wfext)