36 SUBROUTINE i9avel(X , SKEW, A , FN , FT ,
37 2 IRECT, LMSR, CRST , MSR , NSV ,
38 3 ILOC , IRTL, LCODE , V , ISKEW,
39 4 NOR , MS , FRIGAP, MSMN, MSMT ,
40 5 EFRIC, ITAB, FSAV , NMN , NSN )
48#include "implicit_f.inc"
53 INTEGER,
INTENT(IN) :: NMN,NSN
54 INTEGER IRECT(4,*), LMSR(4,*), MSR(*), NSV(NSN), ILOC(*), IRTL(*),LCODE(*), ISKEW(*), ITAB(*)
56 . X(3,*), SKEW(LSKEW,*), A(*), FN(*), FT(*), MSMN(*), MSMT(*),
57 . crst(2,*), v(*), nor(3,*), ms(*), efric(*), fsav(nthvki),
64#include "scr08_a_c.inc"
68 INTEGER (3), NIR, I, J, I3, J3, I2, J2, I1, J1, ISK, LCOD, II,
71 . XN(3), YN(3), ZN(3), H(4), N1, N2, N3, AX, AY, AZ,
72 . vx, vy, vz, amn, vmn, amod, vmod, bvz, baz, bvx, bvy, bax, bay,
73 . a11, a12, a13, a21, a22, a23, a31, a32, a33, axt, ayt, azt,
74 . vxt, vyt, vzt, axn, ayn, azn, vt, at, ftt, fac, vxn, vyn,
75 . vzn, fnn, det, fric, fheat
92 fsav(1)=fsav(1)+fn(i1)*dt12
93 fsav(2)=fsav(2)+fn(i2)*dt12
94 fsav(3)=fsav(3)+fn(i3)*dt12
95 fsav(4)=fsav(4)+ft(i1)*dt12
96 fsav(5)=fsav(5)+ft(i2)*dt12
97 fsav(6)=fsav(6)+ft(i3)*dt12
98 IF(msmn(i1) > zero)
THEN
99 a(j1)=a(j1) + fn(i1)/msmn(i1)
100 a(j2)=a(j2) + fn(i2)/msmn(i1)
101 a(j3)=a(j3) + fn(i3)/msmn(i1)
103 IF(msmt(i1) > zero)
THEN
104 a(j1)=a(j1) + ft(i1)/msmt(i1)
105 a(j2)=a(j2) + ft(i2)/msmt(i1)
106 a(j3)=a(j3) + ft(i3)/msmt(i1)
110 CALL bcs2(a(j1),skew(1,isk),isk,lcod)
116 IF(iloc(ii) >= 1)
THEN
127 CALL shapeh(h,crst(1,ii),crst(2,ii))
129 h(1) = half*(one - crst(1,ii))
130 h(2) = half*(one + crst(1,ii))
153 amn=n1*ax+n2*ay+n3*az
154 vmn=n1*vx+n2*vy+n3*vz
155 amod=amn-n1*a(i1)-n2*a(i2)-n3*a(i3)
156 vmod=vmn-n1*v(i1)-n2*v(i2)-n3*v(i3)
164 fnn = (vmod/dt12 + amod) * ms(i)
166 axt = ax - a(i1) - axn
167 ayt = ay - a(i2) - ayn
168 azt = az - a(i3) - azn
169 vxt = vx - v(i1) - vxn
170 vyt = vy - v(i2) - vyn
171 vzt = vz - v(i3) - vzn
172 vt = sqrt(vxt**2+vyt**2+vzt**2)
173 at = sqrt(axt**2+ayt**2+azt**2)
174 ftt = (vt/dt12 + at) * ms(i)
176 fac =
min(one,fric*fnn/
max(em30,ftt))
204 IF(lcode(i) > 0)
THEN
205 jbc(3) = iand(lcode(i), 1)
206 jbc(2) = iand(lcode(i), 2)
207 jbc(1) = iand(lcode(i), 4)
228 CALL ancmsg(msgid=11,anmode=aninfo,i1=itab(i))
240 xn(3)=yn(1)*zn(2)-zn(1)*yn(2)
241 yn(3)=zn(1)*xn(2)-xn(1)*zn(2)
243 bvz=v(i1)*xn(3)+v(i2)*yn(3)+v(i3)*zn(3)
244 baz=a(i1)*xn(3)+a(i2)*yn(3)+a(i3)*zn(3)
258 a11=yn(2)*zn(3)-zn(2)*yn(3)
259 a12=zn(2)*xn(3)-xn(2)*zn(3)
260 a13=xn(2)*yn(3)-yn(2)*xn(3)
261 a21=yn(3)*zn(1)-zn(3)*yn(1)
262 a22=zn(3)*xn(1)-xn(3)*zn(1)
263 a23=xn(3)*yn(1)-yn(3)*xn(1)
264 a31=yn(1)*zn(2)-zn(1)*yn(2)
265 a32=zn(1)*xn(2)-xn(1)*zn(2)
266 a33=xn(1)*yn(2)-yn(1)*xn(2)
267 det=xn(1)*a11+yn(1)*a12+zn(1)*a13
272 v(i1)=(a11*bvx+a21*bvy+a31*bvz)/det
273 v(i2)=(a12*bvx+a22*bvy+a32*bvz)/det
274 v(i3)=(a13*bvx+a23*bvy+a33*bvz)/det
276 a(i1)=(a11*bax+a21*bay+a31*baz)/det
277 a(i2)=(a12*bax+a22*bay+a32*baz)/det
278 a(i3)=(a13*bax+a23*bay+a33*baz)/det
286 vt = sqrt((v(i1)-vx)**2 + (v(i2)-vy)**2 + (v(i3)-vz)**2 )
287 efric(ii) = fheat * ftt * vt * dt1
subroutine i9avel(x, skew, a, fn, ft, irect, lmsr, crst, msr, nsv, iloc, irtl, lcode, v, iskew, nor, ms, frigap, msmn, msmt, efric, itab, fsav, nmn, nsn)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)