31 2 XLL ,CANDN ,CANDE ,I_STOK,IXS ,
32 3 IXS20 ,IADLL ,EMINX ,NSV ,NELEM ,
33 4 NC ,N_MUL_MX,ITASK ,A ,ITIED ,
34 5 NINT ,NKMAX ,EMINXS ,COMNTAG)
38#include "implicit_f.inc"
52 INTEGER NC,I_STOK,N_MUL_MX,ITASK,ITIED,NINT,NKMAX ,
53 . LLL(*),JLL(*),SLL(*),CANDN(*),CANDE(*),COMNTAG(*),
54 . IXS(NIXS,*),IXS20(12,*),IADLL(*),NSV(*) ,NELEM(*)
57 . x(3,*),v(3,*),xll(*),
58 . eminx(6,*),eminxs(6,*),a(3,*)
62 INTEGER I,J,K,IK,IE,IS,IC,NK,III(MVSIZ,21),LLT,NFT,LE,FIRST,LAST,
65 . XX(MVSIZ,21),YY(MVSIZ,21),ZZ(MVSIZ,21),
66 . aa,xmin,ymin,zmin,xmax,
ymax,zmax,dist
122 first = 1 + i_stok * itask / nthread
123 last = i_stok*(itask+1) / nthread
129 i20 = ie - numels8 - numels10
133 IF(i20.ge .1.AND.i20.le .numels20)
THEN
136 dist =
max(eminx(1,le)-x(1,is)-dt2*(v(1,is)+dt12*a(1,is)),
137 . x(1,is)+dt2*(v(1,is)+dt12*a(1,is))-eminx(4,le),dist)
138 dist =
max(eminx(2,le)-x(2,is)-dt2*(v(2,is)+dt12*a(2,is)),
139 . x(2,is)+dt2*(v(2,is)+dt12*a(2,is))-eminx(5,le),dist)
140 dist =
max(eminx(3,le)-x(3,is)-dt2*(v(3,is)+dt12*a(3,is)),
141 . x(3,is)+dt2*(v(3,is)+dt12*a(3,is))-eminx(6,le),dist)
156 iii(llt,k)=ixs(k+1,ie)
159 iii(llt,k+8)=ixs20(k,i20)
172 1 llt ,lll ,jll ,sll ,xll ,v ,
173 2 xx ,yy ,zz ,iii ,nc ,iadll ,
174 3 n_mul_mx ,a ,x ,itied ,nint ,nkmax ,
189 1 llt ,lll ,jll ,sll ,xll ,v ,
190 2 xx ,yy ,zz ,iii ,nc ,iadll ,
191 3 n_mul_mx ,a ,x ,itied ,nint ,nkmax ,
208 SUBROUTINE i21lll(LLT ,LLL ,JLL ,SLL ,XLL ,V ,
209 2 XX ,YY ,ZZ ,III ,NC ,IADLL ,
210 3 N_MUL_MX,A ,X ,ITIED,NINT ,NKMAX ,
219#include "implicit_f.inc"
220#include "comlock.inc"
224#include "mvsiz_p.inc"
228#include "com08_c.inc"
232 INTEGER LLT,NC,N_MUL_MX,ITIED,NINT ,NKMAX
233 INTEGER LLL(*),JLL(*),SLL(*),COMNTAG(*),
234 . III(MVSIZ,21),IADLL(*)
237 . XLL(*),V(3,*),A(3,*)
239 . xx(mvsiz,21),yy(mvsiz,21),zz(mvsiz,21)
243 INTEGER I,J,IK,NK,I1,,I3,I4,IAD,NN
247 . r(mvsiz),s(mvsiz),t(mvsiz),
248 . nsx(mvsiz), nsy(mvsiz), nsz(mvsiz),
249 . nx(mvsiz), ny(mvsiz), nz(mvsiz),
257 CALL i20rst(llt ,r ,s ,t ,ni ,
258 2 nsx ,nsy ,nsz ,nx ,ny ,nz ,
268 IF(r(i)>=-one.AND.s(i)>=-one.AND.t(i)>=-one.AND.
269 . r(i)<= one.AND.s(i)<= one.AND.t(i)<= one)
THEN
276 vx = vx - (v(1,iii(i,ik))+dt12*a(1,iii(i,ik)))*ni(i,ik)
277 vy = vy - (v(2,iii(i,ik))+dt12*a(2,iii(i,ik)))*ni(i,ik)
278 vz = vz - (v(3,iii(i,ik))+dt12*a(3,iii(i,ik)))*ni(i,ik)
284 vn = nsx(i)*vx + nsy(i)*vy + nsz(i)*vz
288 IF(s(i)*vn<=zero)
THEN
294 aa = one/sqrt(nsx(i)*nsx(i)+nsy(i)*nsy(i)+nsz(i)*nsz(i))
301#include "lockoff.inc"
302 CALL ancmsg(msgid=84,anmode=aninfo)
305 iadll(nc+1)=iadll(nc) + 63
306 IF(iadll(nc+1)-1>nkmax)
THEN
307#include "lockoff.inc"
308 CALL ancmsg(msgid=84,anmode=aninfo)
313 lll(iad+ik) = iii(i,ik)
316 xll(iad+ik) = nsx(i)*ni(i,ik)
317 lll(iad+ik+21) = iii(i,ik)
320 xll(iad+ik+21) = nsy(i)*ni(i,ik)
321 lll(iad+ik+42) = iii(i,ik)
324 xll(iad+ik+42) = nsz(i)*ni(i,ik)
326 comntag(nn) = comntag(nn) + 1
331#include "lockoff.inc"
343 IF(r(i)>=-one.AND.s(i)>=-one.AND.t(i)>=-one.AND.
344 . r(i)<= one.AND.s(i)<= one.AND.t(i)<= one)
THEN
351 vx = vx - (v(1,iii(i,ik))+dt12*a(1,iii(i,ik)))*ni(i,ik)
352 vy = vy - (v(2,iii(i,ik))+dt12*a(2,iii(i,ik)))*ni(i,ik)
353 vz = vz - (v(3,iii(i,ik))+dt12*a(3,iii(i,ik)))*ni(i,ik)
359 vn = nx(i)*vx + ny(i)*vy + nz(i)*vz
369 IF(nc+3>n_mul_mx)
THEN
370#include "lockoff.inc"
371 CALL ancmsg(msgid=84,anmode=aninfo)
374 IF(iadll(nc+1)-1+21*3>nkmax)
THEN
375#include "lockoff.inc"
376 CALL ancmsg(msgid=84,anmode=aninfo)
381 iadll(nc+1)=iadll(nc) + 21
384 lll(iad+ik) = iii(i,ik)
387 xll(iad+ik) = ni(i,ik)
389 comntag(nn) = comntag(nn) + 1
394 iadll(nc+1)=iadll(nc) + 21
397 lll(iad+ik) = iii(i,ik)
400 xll(iad+ik) = ni(i,ik)
402 comntag(nn) = comntag(nn) + 1
407 iadll(nc+1)=iadll(nc) + 21
410 lll(iad+ik) = iii(i,ik)
413 xll(iad+ik) = ni(i,ik)
415 comntag(nn) = comntag(nn) + 1
418#include "lockoff.inc"
430 IF(r(i)>=-one.AND.s(i)>=-one.AND.t(i)>=-one.AND.
431 . r(i)<= one.AND.s(i)<= one.AND.t(i)<= one)
THEN
438 IF(nc+3>n_mul_mx)
THEN
439#include "lockoff.inc"
440 CALL ancmsg(msgid=84,anmode=aninfo)
443 IF(iadll(nc+1)-1+21*3>nkmax)
THEN
444#include "lockoff.inc"
445 CALL ancmsg(msgid=84,anmode=aninfo)
449 iadll(nc+1)=iadll(nc) + 21
452 lll(iad+ik) = iii(i,ik)
455 xll(iad+ik) = ni(i,ik)
457 comntag(nn) = comntag(nn) + 1
462 iadll(nc+1)=iadll(nc) + 21
465 lll(iad+ik) = iii(i,ik)
468 xll(iad+ik) = ni(i,ik)
475 iadll(nc+1)=iadll(nc) + 21
478 lll(iad+ik) = iii(i,ik)
483 comntag(nn) = comntag(nn) + 1
487#include "lockoff.inc"
subroutine i21lagm(x, v, lll, jll, sll, xll, candn, cande, i_stok, ixs, ixs20, iadll, eminx, nsv, nelem, nc, n_mul_mx, itask, a, itied, nint, nkmax, eminxs, comntag)
subroutine i21lll(llt, lll, jll, sll, xll, v, xx, yy, zz, iii, nc, iadll, n_mul_mx, a, x, itied, nint, nkmax, comntag)
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)