38 2 NSN ,MSR ,MS ,FSAV ,IXS ,
39 3 IXQ ,ELBUF_TAB,IPARG ,PM ,
40 4 NTAG ,NELW ,NE ,TEMP ,TSTIF ,
41 5 E ,A ,ITIED ,WEIGHT ,IAD_ELEM,
47 use element_mod ,
only : nixs,nixq
51#include "implicit_f.inc"
63 INTEGER NSN, ITIED, MSR, NE
64 INTEGER IPARG(NPARG,*), NSW(*) ,IXS(NIXS,*),IXQ(NIXQ,*),
65 . NTAG(*), NELW(*), WEIGHT(*),
66 . IAD_ELEM(*), FR_ELEM(*), FR_WALL(*)
68 . PM(NPROPM,*), X(*), RWL(*), MS(*), FSAV(*), V(*), W(*),
71 TYPE(elbuf_struct_),
DIMENSION(NGROUP) :: ELBUF_TAB
75 INTEGER M3, M2, M1, I, N, N3, N2, N1, K, PMAIN
77 . xwl, ywl, zwl, vxw, vyw, vzw, fxn, fyn, fzn, fxt, fyt, fzt,
78 . vx, vy, vz, ux, uy, uz, xc, yc, zc, dp, dv, dvt,
79 . fnxn,fnyn, fnzn, fnxt, fnyt, fnzt, fndfn, ftdft, fric, fric2,
81 . f1(nsn), f2(nsn), f3(nsn), f4(nsn), f5(nsn), f6(nsn)
141 dp=xc*rwl(1)+yc*rwl(2)+zc*rwl(3)
145 dv=(v(n1)-vxw)*rwl(1)+(v(n2)-vyw)*rwl(2)+(v(n3)-vzw)*rwl(3)
147 fnxn=dvt*rwl(1)*ms(n)
148 fnyn=dvt*rwl(2)*ms(n)
149 fnzn=dvt*rwl(3)*ms(n)
150 f1(i) = fnxn*weight(n)
151 f2(i) = fnyn*weight(n)
152 f3(i) = fnzn*weight(n)
157 fnxt=((v(n1)-vxw))*ms(n)-fnxn
158 fnyt=((v(n2)-vyw))*ms(n)-fnyn
159 fnzt=((v(n3)-vzw))*ms(n)-fnzn
160 fndfn=fnxn**2+fnyn**2+fnzn**2
161 ftdft=fnxt**2+fnyt**2+fnzt**2
165 IF(ftdft<=fric2*fndfn.OR.itied==1)
THEN
172 fcoe=fric*sqrt(fndfn/ftdft)
176 v(n1)=v(n1)-dv*rwl(1)-fnxt/ms(n)
177 v(n2)=v(n2)-dv*rwl(2)-fnyt/ms(n)
178 v(n3)=v(n3)-dv*rwl(3)-fnzt/ms(n)
180 . ((v(n1)-vxw)*fnxt+(v(n2)-vyw)*fnyt+(v(n3)-vzw)*fnzt)
182 f4(i) = fnxt*weight(n)
183 f5(i) = fnyt*weight(n)
184 f6(i) = fnzt*weight(n)
195 v(n1)=v(n1)-dv*rwl(1)
196 v(n2)=v(n2)-dv*rwl(2)
197 v(n3)=v(n3)-dv*rwl(3)
199 dv=(w(n1)-vxw)*rwl(1)+(w(n2)-vyw)*rwl(2)+(w(n3)-vzw)*rwl(3)
200 w(n1)=w(n1)-dv*rwl(1)
201 w(n2)=w(n2)-dv*rwl(2)
202 w(n3)=w(n3)-dv*rwl(3)
225 IF(fr_wall(ispmd+1)/=0)
THEN
228 pmain = fr_wall(nspmd+2)
233 fxn = frwl6(1,1)+frwl6(1,2)+frwl6(1,3)+
234 . frwl6(1,4)+frwl6(1,5)+frwl6(1,6)
235 fyn = frwl6(2,1)+frwl6(2,2)+frwl6(2,3)+
236 . frwl6(2,4)+frwl6(2,5)+frwl6(2,6)
237 fzn = frwl6(3,1)+frwl6(3,2)+frwl6(3,3)+
238 . frwl6(3,4)+frwl6(3,5)+frwl6(3,6)
239 fxt = frwl6(4,1)+frwl6(4,2)+frwl6(4,3)+
240 . frwl6(4,4)+frwl6(4,5)+frwl6(4,6)
241 fyt = frwl6(5,1)+frwl6(5,2)+frwl6(5,3)+
242 . frwl6(5,4)+frwl6(5,5)+frwl6(5,6)
243 fzt = frwl6(6,1)+frwl6(6,2)+frwl6(6,3)+
244 . frwl6(6,4)+frwl6(6,5)+frwl6(6,6)
245 IF(ms(msr)/=zero)
THEN
246 a(m1)=(fxt+fxn) / dt12
247 a(m2)=(fyt+fyn) / dt12
248 a(m3)=(fzt+fzn) / dt12
251 IF(ispmd+1==pmain)
THEN
268 4 elbuf_tab,iparg,pm ,ntag ,temp ,
269 5 tstif ,e ,iad_elem,fr_elem )
273 4 elbuf_tab,iparg,pm ,ntag ,temp ,
274 5 tstif ,e ,iad_elem,fr_elem )
subroutine rgwath(x, v, w, rwl, nsw, nsn, msr, ms, fsav, ixs, ixq, elbuf_tab, iparg, pm, ntag, nelw, ne, temp, tstif, e, a, itied, weight, iad_elem, fr_elem, fr_wall)