32 SUBROUTINE rgwalc(X ,A ,V ,RWL ,NSW ,
33 . NSN ,ITIED,MSR ,MS ,WEIGHT,
34 . ICONT,FRWL6,IMP_S,NT_RW,IDDL ,
35 . IKC ,NDOF ,NODNX_SMS, WEIGHT_MD,
40#include "implicit_f.inc"
53 INTEGER NSN, ITIED, MSR,ICONT,IMP_S,NT_RW
54 INTEGER NSW(*),WEIGHT(*), IDDL(*),IKC(*),NDOF(*), NODNX_SMS(*), WEIGHT_MD(*)
55 my_real X(*), A(*), V(*), RWL(*), MS(*)
56 DOUBLE PRECISION FRWL6(7,6)
57 DOUBLE PRECISION,
INTENT(INOUT) :: WFEXT, WFEXT_MD
61 INTEGER M3, M2, M1, I, N, N3, N2, N1,J,JJ,K,NINDEX,
65 . ra2, xwl, ywl, zwl, vxw, vyw, vzw, wfxtn, fact,
66 . wfxt, vx, vy, vz, ux, uy, uz, xc, yc, zc, dd1, dd,
67 . dp, xt, yt, zt, xx, xn, yn, zn, dv, da, dvt, fnxn, fnyn, fnzn,
68 . fnxt, fnyt, fnzt, fndfn, ftdft, fric, fric2, fcoe,
70 . f1(nsn), f2(nsn), f3(nsn), f4(nsn), f5(nsn), f6(nsn), f7(nsn),
71 . wfxt2, wfxtn2, wewe2
114 IF(idtmins==0.AND.idtmins_int==0)
THEN
130 dd1=xc**2+yc**2+zc**2
131 dd =xc*rwl(1)+yc*rwl(2)+zc*rwl(3)
144 IF(nodnx_sms(n)/=0)cycle
157 dd1=xc**2+yc**2+zc**2
158 dd =xc*rwl(1)+yc*rwl(2)+zc*rwl(3)
179 dd1=xc**2+yc**2+zc**2
180 dd =xc*rwl(1)+yc*rwl(2)+zc*rwl(3)
189 dv=(v(n1)-vxw)*xn+(v(n2)-vyw)*yn+(v(n3)-vzw)*zn
190 da=a(n1)*xn+a(n2)*yn+a(n3)*zn
195 wfxtn = wfxtn - weight_md(n)*fact*
196 . ((v(n1)-vxw)*fnxn+(v(n2)-vyw)*fnyn+(v(n3)-vzw)*fnzn)
197 wewe2 = (1-weight_md(n))*weight(n)
198 wfxtn2 = wfxtn2 - wewe2*fact*
199 . ((v(n1)-vxw)*fnxn+(v(n2)-vyw)*fnyn+(v(n3)-vzw)*fnzn)
200 f1(j) = fnxn*weight_md(n)
201 f2(j) = fnyn*weight_md(n)
202 f3(j) = fnzn*weight_md(n)
203 f4(j) = ms(n)*weight_md(n)
205 fnxt=((v(n1)-vxw)+a(n1)*dt12)*ms(n)-fnxn
206 fnyt=((v(n2)-vyw)+a(n2)*dt12)*ms(n)-fnyn
207 fnzt=((v(n3)-vzw)+a(n3)*dt12)*ms(n)-fnzn
208 fndfn=fnxn**2+fnyn**2+fnzn**2
209 ftdft=fnxt**2+fnyt**2+fnzt**2
212 IF(ftdft<=fric2*fndfn.OR.itied==1)
THEN
224 IF (ikc(jj)==0)ikc(jj)=3
225 IF (ikc(jj+1)==0)ikc(jj+1)=3
226 IF (ikc(jj+2)==0)ikc(jj+2)=3
231 fcoe=fric*sqrt(fndfn/ftdft)
235 a(n1)=a(n1)-(da*xn+fnxt/(dt12*ms(n)))
236 a(n2)=a(n2)-(da*yn+fnyt/(dt12*ms(n)))
237 a(n3)=a(n3)-(da*zn+fnzt/(dt12*ms(n)))
248 IF (ikc(jj)==0)ikc(jj)=10
252 . ((v(n1)-vxw)*fnxt+(v(n2)-vyw)*fnyt+(v(n3
254 wewe2 = (1-weight_md(n))*weight(n)
256 . ((v(n1)-vxw)*fnxt+(v(n2)-vyw)*fnyt+(v(n3)-vzw)*fnzt)
259 f5(j) = fnxt*weight_md(n)
260 f6(j) = fnyt*weight_md(n)
261 f7(j) = fnzt*weight_md(n)
279 IF (ikc(jj)==0)ikc(jj)=10
286 wfxt=wfxt+half*dt1*wfxtn
287 wfxt2=wfxt2+half*dt1*wfxtn2
290 wfext_md=wfext_md+wfxt2
310 frwl6(1,k) = frwl6(1,k)+frwl6_l(1,k)
311 frwl6(2,k) = frwl6(2,k)+frwl6_l(2,k)
312 frwl6(3,k) = frwl6(3,k)+frwl6_l(3,k)
313 frwl6(4,k) = frwl6(4,k)+frwl6_l(4,k)
314 frwl6(5,k) = frwl6(5,k)+frwl6_l(5,k)
315 frwl6(6,k) = frwl6(6,k)+frwl6_l(6,k)
316 frwl6(7,k) = frwl6(7,k)+frwl6_l(7,k)
318#include "lockoff.inc"