30 2 ALPH, ALPHC, FILL, B11,
33 5 PY2, PZ1, PZ2, AIRE,
39#include
"implicit_f.inc"
52 INTEGER,
INTENT(IN) :: NEL
54 . PM(NPROPM,*), V(3,*), W(3,*), RHO(*), ALPH(*), ALPHC(
61 INTEGER MAT(*), NC1(*), (*), NC3(*), NC4(*)
67 . GAMMA(MVSIZ), XMS(MVSIZ),
69 . vdz3(mvsiz), vdz4(mvsiz), vy1(mvsiz), vy2(mvsiz), vy3(mvsiz), vy4(mvsiz), vz1(mvsiz),
70 . vz2(mvsiz), vz3(mvsiz), vz4(mvsiz), vy13(mvsiz), vy24(mvsiz), vz13(mvsiz), vz24(mvsiz),
71 . dyy(mvsiz), dzz(mvsiz), dyz(mvsiz), dzy(mvsiz), vdy(mvsiz), vdz(mvsiz), f1(mvsiz), f2(mvsiz),
72 . a1(mvsiz), a2(mvsiz), g1(mvsiz), g2(mvsiz), ff1, ff2, ff3, ff4, dvy, dvz
75 xms(i) =fourth*rho(i)*alph(i)
76 gamma(i)= pm(15,mat(i))
98 dyy(i)=py1(i)*vy13(i)+py2(i)*vy24(i)
99 dzz(i)=pz1(i)*vz13(i)+pz2(i)*vz24(i)
100 dyz(i)=pz1(i)*vy13(i)+pz2(i)*vy24(i)
101 dzy(i)=py1(i)*vz13(i)+py2(i)*vz24(i)
107 vdy1(i)=v(2,nc1(i)) - w(2,nc1(i))
108 vdz1(i)=v(3,nc1(i)) - w(3,nc1(i))
110 vdy2(i)=v(2,nc2(i)) - w(2,nc2(i))
111 vdz2(i)=v(3,nc2(i)) - w(3,nc2(i))
113 vdy3(i)=v(2,nc3(i)) - w(2,nc3(i))
114 vdz3(i)=v(3,nc3(i)) - w(3,nc3(i))
116 vdy4(i)=v(2,nc4(i)) - w(2,nc4(i))
117 vdz4(i)=v(3,nc4(i)) - w(3,nc4(i))
123 vdy(i)=fourth*(vdy1(i)+vdy2(i)+vdy3(i)+vdy4(i))
124 vdz(i)=fourth*(vdz1(i)+vdz2(i)+vdz3(i)+vdz4(i))
128 f1(i) = (vdy(i)*dyy(i)+vdz(i)*dyz(i))*xms(i)
129 f2(i) = (vdy(i)*dzy(i)+vdz(i)*dzz(i))*xms(i)
133 a1(i) = py1(i)*vdy(i)+pz1(i)*vdz(i)
134 a2(i) = py2(i)*vdy(i)+pz2(i)*vdz(i)
138 g1(i) = sign(gamma(i),a1(i))
139 g2(i) = sign(gamma(i),a2(i))
143 b11(i) = (one + g1(i))*f1(i)
144 b12(i) = (one + g2(i))*f1(i)
145 b13(i) = (one - g1(i))*f1(i)
146 b14(i) = (one - g2(i))*f1(i)
148 b21(i) = (one+g1(i))*f2(i)
149 b22(i) = (one+g2(i))*f2(i)
150 b23(i) = (one-g1(i))*f2(i)
151 b24(i) = (one-g2(i))*f2(i)
155 xms(i) =fourth*rho(i)*aire(i)*(one-alph(i)) /
max(em15,dt1)
161 . .AND.alphc(i)==zero
175 dvy=dvy+(v(2,nc2(i))-v(2,nc1(i)))
176 dvz=dvz+(v(3,nc2(i))-v(3,nc1(i)))
180 dvy=dvy+(v(2,nc4(i))-v(2,nc1(i)))
181 dvz=dvz+(v(3,nc4(i))-v(3,nc1(i)))
183 IF(nv==0.AND.ff3>zero)
THEN
185 dvy=dvy+(v(2,nc3(i))-v(2,nc1(i)))
186 dvz=dvz+(v(3,nc3(i))-v(3,nc1(i)))
188 b11(i)=b11(i)-xms(i)*dvy/
max(1,nv)
189 b21(i)=b21(i)-xms(i)*dvz/
max(1,nv)
198 dvy=dvy+(v(2,nc3(i))-v(2,nc2(i)))
199 dvz=dvz+(v(3,nc3(i))-v(3,nc2(i)))
203 dvy=dvy+(v(2,nc1(i))-v(2,nc2(i)))
204 dvz=dvz+(v(3,nc1(i))-v(3,nc2(i)))
206 IF(nv==0.AND.ff4>zero)
THEN
208 dvy=dvy+(v(2,nc4(i))-v(2,nc2(i)))
209 dvz=dvz+(v(3,nc4(i))-v(3,nc2(i)))
211 b12(i)=b12(i)-xms(i)*dvy/
max(1,nv)
212 b22(i)=b22(i)-xms(i)*dvz/
max(1,nv)
221 dvy=dvy+(v(2,nc4(i))-v(2,nc3(i)))
222 dvz=dvz+(v(3,nc4(i))-v(3,nc3(i)))
226 dvy=dvy+(v(2,nc2(i))-v(2,nc3(i)))
227 dvz=dvz+(v(3,nc2(i))-v(3,nc3(i)))
229 IF(nv==0.AND.ff1>zero)
THEN
231 dvy=dvy+(v(2,nc1(i))-v(2,nc3(i)))
232 dvz=dvz+(v(3,nc1(i))-v(3,nc3(i)))
234 b13(i)=b13(i)-xms(i)*dvy/
max(1,nv)
235 b23(i)=b23(i)-xms(i)*dvz/
max(1,nv)
244 dvy=dvy+(v(2,nc1(i))-v(2,nc4(i)))
245 dvz=dvz+(v(3,nc1(i))-v(3,nc4(i)))
249 dvy=dvy+(v(2,nc3(i))-v(2,nc4(i)))
250 dvz=dvz+(v(3,nc3(i))-v(3,nc4(i)))
252 IF(nv==0.AND.ff2>zero)
THEN
254 dvy=dvy+(v(2,nc2(i))-v(2,nc4(i)))
255 dvz=dvz+(v(3,nc2(i))-v(3,nc4(i)))
257 b14(i)=b14(i)-xms(i)*dvy/
max(1,nv)
258 b24(i)=b24(i)-xms(i)*dvz/
max(1,nv)
subroutine bamom2(pm, v, w, rho, alph, alphc, fill, b11, b12, b13, b14, b21, b22, b23, b24, py1, py2, pz1, pz2, aire, mat, nc1, nc2, nc3, nc4, nel)