31 SUBROUTINE bafil2(V,W,FILL,DFILL,IMS,X, DALPH1, DALPH2, NC1, NC2, NC3, NC4)
35#include
"implicit_f.inc"
43#include "vect01_c.inc"
50 INTEGER :: IMS(NUMNOD,*), NC1(*), NC2(*), NC3(*), NC4(*)
51 my_real :: v(3,*), w(3,*), fill(numnod,*), dfill(numnod,*), x(3,*), dalph1(*), dalph2(*)
55 INTEGER I, N1, N2, N3, N4, NP
56 my_real fi1(mvsiz), fi2(mvsiz), fi3(mvsiz), fi4(mvsiz),
57 . fa(mvsiz), vdy1(mvsiz), vdy2(mvsiz), vdy3(mvsiz), vdy4(mvsiz),
58 . vdz1(mvsiz), vdz2(mvsiz), vdz3(mvsiz), vdz4(mvsiz), vdy(mvsiz), vdz(mvsiz),
59 . abf, dn, p1, p2, p3, p4, pt, psy, psz, pty,
60 . ptz, ps, pst, pts, ds0, dt0, ds, dt,
61 . df1(mvsiz), df2(mvsiz), df3(mvsiz), df4(mvsiz)
68 abf=abs(fi1(i))+abs(fi2(i))+abs(fi3(i))+abs(fi4(i))
69 n1=nint(sign(one,fi1(i)))
70 n2=nint(sign(one,fi2(i)))
71 n3=nint(sign(one,fi3(i)))
72 n4=nint(sign(one,fi4(i)))
76 fa(i)=-dalph1(i)*abf/dn
85 vdy1(i)=v(2,nc1(i)) - w(2,nc1(i))
86 vdz1(i)=v(3,nc1(i)) - w(3,nc1(i))
88 vdy2(i)=v(2,nc2(i)) - w(2,nc2(i))
89 vdz2(i)=v(3,nc2(i)) - w(3,nc2(i))
91 vdy3(i)=v(2,nc3(i)) - w(2,nc3(i))
92 vdz3(i)=v(3,nc3(i)) - w(3,nc3(i))
94 vdy4(i)=v(2,nc4(i)) - w(2,nc4(i))
95 vdz4(i)=v(3,nc4(i)) - w(3,nc4(i))
107 vdy(i)=(vdy1(i)*p1+vdy2(i)*p2+vdy3(i)*p3+vdy4(i)*p4)/pt
108 vdz(i)=(vdz1(i)*p1+vdz2(i)*p2+vdz3(i)*p3+vdz4(i)*p4)/pt
112 psy=-x(2,nc1(i))+x(2,nc2(i))+x(2,nc3(i))-x(2,nc4(i))
113 psz=-x(3,nc1(i))+x(3,nc2(i))+x(3,nc3(i))-x(3,nc4(i))
114 pty=-x(2,nc1(i))-x(2,nc2(i))+x(2,nc3(i))+x(2,nc4(i))
115 ptz=-x(3,nc1(i))-x(3,nc2(i))+x(3,nc3(i))+x(3,nc4(i))
116 ps=sqrt(psy**2+psz**2)
117 pt=sqrt(pty**2+ptz**2)
120 ds0=-four*(pty*vdz(i)-ptz*vdy(i))/pts
121 dt0=-four*(psy*vdz(i)-psz*vdy(i))/pst
123 ds=-four*(pty*vdz1(i)-ptz*vdy1(i))/pts
124 dt=-four*(psy*vdz1(i)-psz*vdy1(i))/pst
131 df1(i)=fourth*((-two*ds-two*dt+ds*dt*dt1)*fi1(i)
132 . + ( two*ds-ds*dt*dt1)*fi2(i)
133 . + ( ds*dt*dt1)*fi3(i)
134 . + ( two*dt-ds*dt*dt1)*fi4(i) )
136 ds=-four*(pty*vdz2(i)-ptz*vdy2(i))/pts
137 dt=-four*(psy*vdz2(i)-psz*vdy2(i))/pst
144 df2(i)=fourth*(( -two*ds+ds*dt*dt1)*fi1(i)
145 . + ( two*ds-two*dt-ds*dt*dt1)*fi2(i)
146 . + ( +two*dt+ds*dt*dt1)*fi3(i)
147 . + ( -ds*dt*dt1)*fi4(i) )
149 ds=-four*(pty*vdz3(i)-ptz*vdy3(i))/pts
150 dt=-four*(psy*vdz3(i)-psz*vdy3(i))/pst
157 df3(i)=fourth*(( +ds*dt*dt1)*fi1(i)
158 . + ( -two*dt-ds*dt*dt1)*fi2(i)
159 . + (+two*ds+two*dt+ds*dt*dt1)*fi3(i)
160 . + (-two*ds -ds*dt*dt1)*fi4(i) )
162 ds=-four*(pty*vdz4(i)-ptz*vdy4(i))/pts
163 dt=-four*(psy*vdz4(i)-psz*vdy4(i))/pst
170 df4(i)=fourth*(( -two*dt+ds*dt*dt1)*fi1(i)
171 . + ( -ds*dt*dt1)*fi2(i)
172 . + (+two*ds +ds*dt*dt1)*fi3(i)
173 . + (-two*ds+two*dt-ds*dt*dt1)*fi4(i) )
179 dfill(nc1(i),1)=dfill(nc1(i),1)+df1(i)-fa(i)
180 dfill(nc2(i),1)=dfill(nc2(i),1)+df2(i)-fa(i)
181 dfill(nc3(i),1)=dfill(nc3(i),1)+df3(i)-fa(i)
182 dfill(nc4(i),1)=dfill(nc4(i),1)+df4(i)-fa(i)
183 ims(nc1(i),1)=ims(nc1(i),1)+1
184 ims(nc2(i),1)=ims(nc2(i),1)+1
185 ims(nc3(i),1)=ims(nc3(i),1)+1
186 ims(nc4(i),1)=ims(nc4(i),1)+1
194 fi1(i)=fill(nc1(i),2)
195 fi2(i)=fill(nc2(i),2)
196 fi3(i)=fill(nc3(i),2)
197 fi4(i)=fill(nc4(i),2)
198 abf=abs(fi1(i))+abs(fi2(i))+abs(fi3(i))+abs(fi4(i))
199 n1=nint(sign(one,fi1(i)))
200 n2=nint(sign(one,fi2(i)))
201 n3=nint(sign(one,fi3(i)))
202 n4=nint(sign(one,fi4(i)))
206 fa(i)=-dalph2(i)*abf/dn
221 vdy(i)=(vdy1(i)*p1+vdy2(i)*p2+vdy3(i)*p3+vdy4(i)*p4)/pt
222 vdz(i)=(vdz1(i)*p1+vdz2(i)*p2+vdz3(i)*p3+vdz4(i)*p4)/pt
226 psy=-x(2,nc1(i))+x(2,nc2(i))+x(2,nc3(i))-x(2,nc4(i))
227 psz=-x(3,nc1(i))+x(3,nc2(i))+x(3,nc3(i))-x(3,nc4(i))
228 pty=-x(2,nc1(i))-x(2,nc2(i))+x(2,nc3(i))+x(2,nc4(i))
229 ptz=-x(3,nc1(i))-x(3,nc2(i))+x(3,nc3(i))+x(3,nc4(i))
230 ps=sqrt(psy**2+psz**2)
231 pt=sqrt(pty**2+ptz**2)
234 ds0=-four*(pty*vdz(i)-ptz*vdy(i))/pts
235 dt0=-four*(psy*vdz(i)-psz*vdy(i))/pst
237 ds=-four*(pty*vdz1(i)
245 df1(i)=fourth*((-two*ds-two*dt+ds*dt*dt1)*fi1(i
246 . +( two*ds -ds*dt*dt1)*fi2(i)
247 . +( ds*dt*dt1)*fi3(i)
248 . +( two*dt-ds*dt*dt1)*fi4(i) )
250 ds=-four*(pty*vdz2(i)-ptz*vdy2(i))/pts
251 dt=-four*(psy*vdz2(i)-psz*vdy2(i))/pst
258 df2(i)=fourth*((-two*ds +ds*dt*dt1)*fi1(i)
259 . +( two*ds-two*dt-ds*dt*dt1)*fi2(i)
260 . +( +two*dt+ds*dt*dt1)*fi3(i)
263 ds=-four*(pty*vdz3(i)-ptz*vdy3(i))/pts
264 dt=-four*(psy*vdz3(i)-psz*vdy3(i))/pst
271 df3(i)=fourth*(( +ds*dt*dt1)*fi1(i)
272 . +( -two*dt-ds*dt*dt1)*fi2(i)
273 . +(+two*ds+two*dt+ds*dt*dt1)*fi3(i)
274 . +(-two*ds -ds*dt*dt1)*fi4(i) )
276 ds=-four*(pty*vdz4(i)-ptz*vdy4(i))/pts
277 dt=-four*(psy*vdz4(i)-psz*vdy4(i))/pst
284 df4(i)=fourth*(( -two*dt+ds*dt*dt1)*fi1(i)
285 . +( -ds*dt*dt1)*fi2(i)
286 . +(+two*ds +ds*dt*dt1)*fi3(i)
287 . +(-two*ds+two*dt-ds*dt*dt1)*fi4(i) )
293 dfill(nc1(i),2)=dfill(nc1(i),2)+df1(i)-fa(i)
294 dfill(nc2(i),2)=dfill(nc2(i),2)+df2(i)-fa(i)
295 dfill(nc3(i),2)=dfill(nc3(i),2)+df3(i)-fa(i)
296 dfill(nc4(i),2)=dfill(nc4(i),2)+df4(i)-fa(i)
297 ims(nc1(i),2)=ims(nc1(i),2)+1
298 ims(nc2(i),2)=ims(nc2(i),2)+1
299 ims(nc3(i),2)=ims(nc3(i),2)+1
300 ims(nc4(i),2)=ims(nc4(i),2)+1