30 2 ALPHC, FILL, B11, B12,
33 5 PZ1, PZ2, AIRE, MAT,
39#include "implicit_f.inc"
52 INTEGER,
INTENT(IN) :: NEL
54 . PM(NPROPM,*), V(3,*), RHO(*), (*), ALPHC(*), FILL(*)
56 . B11(*), B12(*), B13(*), B14(*),
57 . B21(*), B22(*), B23(*), B24(*),
58 . PY1(*), PY2(*), PZ1(*), PZ2(*), AIRE(*)
60 INTEGER MAT(*), NC1(*), NC2(*), NC3(*), NC4(*)
66 . GAMMA(MVSIZ), XMS(MVSIZ),
67 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz), vy4(mvsiz), vz1(mvsiz),
68 . vz2(mvsiz), vz3(mvsiz), vz4(mvsiz), vy13(mvsiz), vy24(mvsiz), vz13(mvsiz), vz24(mvsiz),
69 . dyy(mvsiz), dzz(mvsiz), dyz(mvsiz), dzy(mvsiz), vdy(mvsiz), vdz(mvsiz), f1(mvsiz), f2(mvsiz),
70 . a1(mvsiz), a2(mvsiz), g1(mvsiz), g2(mvsiz), ff1, ff2, ff3, ff4, dvy, dvz
74 xms(i) =fourth*rho(i)*alph(i)
75 gamma(i)= pm(15,mat(i))
97 dyy(i)=py1(i)*vy13(i)+py2(i)*vy24(i)
98 dzz(i)=pz1(i)*vz13(i)+pz2(i)*vz24(i)
99 dyz(i)=pz1(i)*vy13(i)+pz2(i)*vy24(i)
100 dzy(i)=py1(i)*vz13(i)+py2(i)*vz24(i)
106 vdy(i)=fourth*(vy1(i)+vy2(i)+vy3(i)+vy4(i))
107 vdz(i)=fourth*(vz1(i)+vz2(i)+vz3(i)+vz4(i))
111 f1(i) = (vdy(i)*dyy(i)+vdz(i)*dyz(i))*xms(i)
112 f2(i) = (vdy(i)*dzy(i)+vdz(i)*dzz(i))*xms(i)
116 a1(i) = py1(i)*vdy(i)+pz1(i)*vdz(i)
117 a2(i) = py2(i)*vdy(i)+pz2(i)*vdz(i)
121 g1(i) = sign(gamma(i),a1(i))
122 g2(i) = sign(gamma(i),a2(i))
126 b11(i) = (one+g1(i))*f1(i)
127 b12(i) = (one+g2(i))*f1(i)
128 b13(i) = (one-g1(i))*f1(i)
129 b14(i) = (one-g2(i))*f1(i)
131 b21(i) = (one+g1(i))*f2(i)
132 b22(i) = (one+g2(i))*f2(i)
133 b23(i) = (one-g1(i))*f2(i)
134 b24(i) = (one-g2(i))*f2(i)
138 xms(i) =fourth*rho(i)*aire(i)*(one-alph(i)) /
max(em15,dt1)
144 . .AND.alphc(i)==zero
158 dvy=dvy+(v(2,nc2(i))-v(2,nc1(i)))
159 dvz=dvz+(v(3,nc2(i))-v(3,nc1(i)))
163 dvy=dvy+(v(2,nc4(i))-v(2,nc1(i)))
164 dvz=dvz+(v(3,nc4(i))-v(3,nc1(i)))
166 IF(nv==0.AND.ff3>zero)
THEN
168 dvy=dvy+(v(2,nc3(i))-v(2,nc1(i)))
169 dvz=dvz+(v(3,nc3(i))-v(3,nc1(i)))
171 b11(i)=b11(i)-xms(i)*dvy/
max(1,nv)
172 b21(i)=b21(i)-xms(i)*dvz/
max(1,nv)
181 dvy=dvy+(v(2,nc3(i))-v(2,nc2(i)))
182 dvz=dvz+(v(3,nc3(i))-v(3,nc2(i)))
186 dvy=dvy+(v(2,nc1(i))-v(2,nc2(i)))
187 dvz=dvz+(v(3,nc1(i))-v(3,nc2(i)))
189 IF(nv==0.AND.ff4>zero)
THEN
191 dvy=dvy+(v(2,nc4(i))-v(2,nc2(i)))
192 dvz=dvz+(v(3,nc4(i))-v(3,nc2(i)))
194 b12(i)=b12(i)-xms(i)*dvy/
max(1,nv)
195 b22(i)=b22(i)-xms(i)*dvz/
max(1,nv)
204 dvy=dvy+(v(2,nc4(i))-v(2,nc3(i)))
205 dvz=dvz+(v(3,nc4(i))-v(3,nc3(i)))
209 dvy=dvy+(v(2,nc2(i))-v(2,nc3(i)))
210 dvz=dvz+(v(3,nc2(i))-v(3,nc3(i)))
212 IF(nv==0.AND.ff1>zero)
THEN
214 dvy=dvy+(v(2,nc1(i))-v(2,nc3(i)))
215 dvz=dvz+(v(3,nc1(i))-v(3,nc3(i)))
217 b13(i)=b13(i)-xms(i)*dvy/
max(1,nv)
218 b23(i)=b23(i)-xms(i)*dvz/
max(1,nv)
227 dvy=dvy+(v(2,nc1(i))-v(2,nc4(i)))
228 dvz=dvz+(v(3,nc1(i))-v(3,nc4(i)))
232 dvy=dvy+(v(2,nc3(i))-v(2,nc4(i)))
233 dvz=dvz+(v(3,nc3(i))-v(3,nc4(i)))
235 IF(nv==0.AND.ff2>zero)
THEN
237 dvy=dvy+(v(2,nc2(i))-v(2,nc4(i)))
238 dvz=dvz+(v(3,nc2(i))-v(3,nc4(i)))
240 b14(i)=b14(i)-xms(i)*dvy/
max(1,nv)
241 b24(i)=b24(i)-xms(i)*dvz/
max(1,nv)
subroutine bemom2(pm, v, rho, alph, alphc, fill, b11, b12, b13, b14, b21, b22, b23, b24, py1, py2, pz1, pz2, aire, mat, nc1, nc2, nc3, nc4, nel)