29 1 XL, VX2L, RY1L, RZ1L,
30 2 RX2L, RY2L, RZ2L, FR_WAVE,
31 3 FR_W_E, EINT, FX, XMOM,
33 5 PARTSAV, IPARTR, EXX, EYX,
43#include "implicit_f.inc"
57 INTEGER,
INTENT(IN) :: NEL
58 INTEGER IPARTR(*),NC1(*),NC2(*)
61 . (*), VX2L(*),RY1L(*), RZ1L(*), RX2L(*), RY2L(*), RZ2L(*),
62 . FR_WAVE(*) ,FR_W_E(*),EINT(*) ,
63 . FX(*), FY(*), FZ(*), XMOM(*), YMOM(*),ZMOM(*),PARTSAV(NPSAV
68 . vx2(mvsiz), vy1(mvsiz), vy2(mvsiz), vz1(mvsiz), vz2(mvsiz)
75 . VX1L, VY1L, VY2L, VZ1L, VZ2L,THETA , XLDEMI,XSIGN
81 rx2l(i) = exx(i)*(rx2(i)-rx1(i))
82 . + eyx(i)*(ry2(i)-ry1(i))
84 ry1l(i) = exy(i)*rx1(i)+eyy(i)*ry1(i)+ezy(i)*rz1(i)
85 ry2l(i) = exy(i)*rx2(i)+eyy(i)*ry2(i)+ezy(i)*rz2(i)
86 rz1l(i) = exz(i)*rx1(i)+eyz(i)*ry1(i)+ezz(i)*rz1(i)
87 rz2l(i) = exz(i)*rx2(i)+eyz(i)*ry2(i)+ezz(i)*rz2(i)
88 vx2l(i) = exx(i)*(vx2(i)-vx1(i))
89 . + eyx(i)*(vy2(i)-vy1(i))
90 . + ezx(i)*(vz2(i)-vz1(i))
91 vy2l = exy(i)*(vx2(i)-vx1(i))
92 . + eyy(i)*(vy2(i)-vy1(i))
93 . + ezy(i)*(vz2(i)-vz1(i))
94 xsign = sign(one, xl(i) - half*vx2l(i)*dt1)
95 xldemi = xsign/
max(em15,abs(xl(i) - half*vx2l(i)*dt1))
97 rz1l(i) = rz1l(i) - theta
98 rz2l(i) = rz2l(i) - theta
99 vz2l = exz(i)*(vx2(i)-vx1(i))
100 . + eyz(i)*(vy2(i)-vy1(i))
101 . + ezz(i)*(vz2(i)-vz1(i))
102 theta = vz2l * xldemi
103 ry1l(i) = ry1l(i) + theta
104 ry2l(i) = ry2l(i) + theta
106 . - half*dt1*xldemi*(vy2l*vy2l+vz2l*vz2l)
113 .+ half*dt1 * (vx2l(i) * fx(i) + rx2l(i) * xmom(i)
114 . + (ry2l(i) - ry1l(i)) * ymom(i)
115 . + (rz2l(i) - rz1l(i)) * zmom(i)
116 . + half * (ry2l(i) + ry1l(i)) * fz(i) * xl(i)
117 . - half * (rz2l(i) + rz1l(i)) * fy(i) * xl(i) )
120 IF (npsav >= 21)
THEN
123 partsav(23,mx)=partsav(23,mx)
124 . + half*dt1 * (rx2l(i) * xmom(i)
125 . + (ry2l(i) - ry1l(i)) * ymom(i)
126 . + (rz2l(i) - rz1l(i)) * zmom(i)
127 . + half * (ry2l(i) + ry1l(i)) * fz(i) * xl(i)
128 . - half * (rz2l(i) + rz1l(i)) * fy(i) * xl(i) )
136 fr_w_e(i)=
max(fr_wave(nc1(i)),fr_wave(nc2(i)),zero)
subroutine r5def3(xl, vx2l, ry1l, rz1l, rx2l, ry2l, rz2l, fr_wave, fr_w_e, eint, fx, xmom, ymom, zmom, fy, fz, partsav, ipartr, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, rx1, ry1, rz1, rx2, ry2, rz2, vx1, vx2, vy1, vy2, vz1, vz2, nc1, nc2, nel)