44 1 X ,V ,MS ,A ,SPBUF ,
45 2 WA ,ITAB ,KXSP ,IXSP ,NOD2SP ,
46 3 D ,ISPSYM ,XSPSYM ,VSPSYM ,BUFMAT ,
47 4 BUFGEO ,NPC ,PLD ,PM ,GEO ,
48 5 ISPCOND ,XFRAME ,WASPSYM ,IPARTSP ,PARTSAV ,
49 6 WACOMP ,WSMCOMP ,WASPACT ,IPART ,ITASK ,
50 7 SPH2SOL ,SOL2SPH ,IRST ,IXS ,IPARG ,
51 8 NGROUNC ,IGROUNC ,ELBUF_TAB,IAD_ELEM,FR_ELEM,
52 9 IGEO ,SOL2SPH_TYP,SPH_WORK)
61 use element_mod ,
only : nixs
65#include "implicit_f.inc"
70#include "vect01_c.inc"
82 INTEGER KXSP(NISP,*),(KVOISPH,*),NOD2SP(*),ITAB(*),
83 . ISPSYM(NSPCOND,*),NPC(*),ISPCOND(NISPCOND,*),
84 . IPARTSP(*),WASPACT(*),IPART(LIPART1,*), ITASK,
85 . SPH2SOL(*),IXS(NIXS,*),IRST(3,*),SOL2SPH(2,*),
86 . IPARG(NPARG,*), NGROUNC, IGROUNC(*),
87 . IAD_ELEM(2,*),FR_ELEM(*),IGEO(NPROPGI,*),SOL2SPH_TYP(*)
90 . X(3,*) ,V(3,*) ,MS(*) ,
91 . a(3,*) ,spbuf(nspbuf,*) ,wa(*),
92 . d(3,*) ,xspsym(3,*) ,vspsym(3,*),
93 . pm(npropm,*), geo(npropg,*),bufmat(*),bufgeo(*),pld(*),
94 . xframe(nxframe,*), waspsym(3,*), partsav(npsav,*),
95 . wacomp(16,*), wsmcomp(6,*)
96 TYPE (ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
97 TYPE (SPH_WORK_) :: SPH_WORK
101 INTEGER N,INOD,JNOD,J,NVOIS,M,NN,
104 . IS,IC,ISLIDE,,NS,MYADRN,
105 . nsol, n1, n2, n3, n4, n5, n6, n7, n8,
106 . ir, it, nsphdir, kp, np,nelem, offset, nel, ig, ng,
109 . xi,yi,zi,di,rhoi,xj,yj,zj,dj,rhoj,dij,
110 . vxi,vyi,vzi,vxj,vyj,vzj,
115 . wax,way,waz,axi,ayi,azi,axj,ayj,azj,an,
116 . vv,kv,ehourt,dtinv,
117 . ox,oy,oz,nx,ny,nz,axs,ays,azs,
118 . alphai,betaxi,betayi,betazi,betai,
119 . alphaj,betaxj,betayj,betazj,betaj,unm,
120 . vx1,vx2,vx3,vx4,vx5,vx6,vx7,vx8,
121 . vy1,vy2,vy3,vy4,vy5,vy6,vy7,vy8,
122 . vz1,vz2,vz3,vz4,vz5,vz6,vz7,vz8,usdt,
123 . phi1,phi2,phi3,phi4,phi5,phi6,phi7,phi8,
129 TYPE(g_bufel_) ,
POINTER :: GBUF
130 TYPE(L_BUFEL_) ,
POINTER :: LBUF
131 TYPE(BUF_MAT_) ,
POINTER :: MBUF
134 . A_GAUSS(9,9),A_GAUSS_TETRA(9,9)
142 3 -.666666666666666,0. ,0.666666666666666,
151 6 -.833333333333333,-.5 ,-.166666666666666,
152 6 0.166666666666666,0.5 ,0.833333333333333,
154 7 -.857142857142857,-.571428571428571,-.285714285714285,
155 7 0. ,0.285714285714285,0.571428571428571,
156 7 0.857142857142857,0. ,0. ,
157 8 -.875 ,-.625 ,-.375 ,
158 8 -.125 ,0.125 ,0.375,
160 9 -.888888888888888,-.666666666666666,-.444444444444444,
161 9 -.222222222222222,0. ,0.222222222222222,
162 9 0.444444444444444,0.666666666666666,0.888888888888888/
165 1 0.250000000000000,0.000000000000000,0.000000000000000,
166 1 0.000000000000000,0.000000000000000,0.000000000000000,
167 1 0.000000000000000,0.000000000000000,0.000000000000000,
168 2 0.166666666666667,0.500000000000000,0.000000000000000,
169 2 0.000000000000000,0.000000000000000,0.000000000000000,
170 2 0.000000000000000,0.000000000000000,0.000000000000000,
171 3 0.125000000000000,0.375000000000000,0.625000000000000,
172 3 0.000000000000000,0.000000000000000,0.000000000000000,
173 3 0.000000000000000,0.000000000000000,0.000000000000000,
174 4 0.100000000000000,0.300000000000000,0.500000000000000,
175 4 0.700000000000000,0.000000000000000,0.000000000000000,
176 4 0.000000000000000,0.000000000000000,0.000000000000000,
177 5 0.083333333333333,0.250000000000000,0.41666
178 5 0.583333333333333,0.750000000000000,0.000000000000000,
179 5 0.000000000000000,0.000000000000000,0.000000000000000,
180 6 0.071428571428571,0.214285714285714,0.357142857142857,
181 6 0.500000000000000,0.642857142857143,0.785714285714286,
182 6 0.000000000000000,0.000000000000000,0.000000000000000,
183 7 0.062500000000000,0.187500000000000,0.312500000000000,
184 7 0.437500000000000,0.562500000000000,0.687500000000000,
185 7 0.812500000000000,0.000000000000000,0.000000000000000,
186 8 0.055555555555556,0.166666666666667,0.277777777777778,
187 8 0.388888888888889,0.500000000000000,0.611111111111111,
188 8 0.722222222222222,0.833333333333333,0.000000000000000,
189 9 0.050000000000000,0.150000000000000,0.250000000000000,
190 9 0.350000000000000,0.450000000000000,0.550000000000000,
191 9 0.650000000000000,0.750000000000000,0.850000000000000/
194 IF(sol2sph_flag/=0)
THEN
197 sph_work%A6(1:6,1:3,1:numnod) = zero
198 IF (
ALLOCATED(sph_work%AS))
DEALLOCATE(sph_work%AS)
199 CALL my_alloc(sph_work%AS,3,8*nsphact)
202 IF (
ALLOCATED(sph_work%AS))
DEALLOCATE(sph_work%AS6)
203 CALL my_alloc(sph_work%AS6,6,3,8*nsphact)
217 IF (nsphsol > 0)
THEN
222 IF(iparg(8,ng)==1)
GOTO 250
224 DO nelem = 1,iparg(2,ng),nvsiz
227 nft =iparg(3,ng) + offset
230 ipartsph=iparg(69,ng)
232 llt=
min(nvsiz,nel-nelem+1)
233 IF(ity==1.AND.ipartsph/=0)
THEN
235 gbuf => elbuf_tab(ng)%GBUF
236 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
237 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
239 IF (iparg(28,ng)==4)
THEN
245 IF(gbuf%OFF(i)==zero) cycle
249 vx1=v(1,n1)+dt12*a(1,n1)/ms(n1)
250 vy1=v(2,n1)+dt12*a(2,n1)/ms(n1)
251 vz1=v(3,n1)+dt12*a(3,n1)/ms(n1)
253 vx2=v(1,n2)+dt12*a(1,n2)/ms(n2)
254 vy2=v(2,n2)+dt12*a(2,n2)/ms(n2)
255 vz2=v(3,n2)+dt12*a(3,n2)/ms(n2)
257 vx3=v(1,n3)+dt12*a(1,n3)/ms(n3)
258 vy3=v(2,n3)+dt12*a(2,n3)/ms(n3)
259 vz3=v(3,n3)+dt12*a(3,n3)/ms(n3)
261 vx4=v(1,n4)+dt12*a(1,n4)/ms(n4)
262 vy4=v(2,n4)+dt12*a(2,n4)/ms(n4)
263 vz4=v(3,n4)+dt12*a(3,n4)/ms(n4)
265 nsphdir=igeo(37,ixs(10,n))
267 DO kp=1,sol2sph(2,n)-sol2sph(1,n)
269 ir=irst(1,np-first_sphsol+1)
270 is=irst(2,np-first_sphsol+1)
271 it=irst(3,np-first_sphsol+1)
273 ksi = a_gauss_tetra(ir,nsphdir)
274 eta = a_gauss_tetra(is,nsphdir)
275 zeta = a_gauss_tetra(it,nsphdir)
282 vxi=phi1*vx1+phi2*vx2+phi3*vx3+phi4*vx4
283 vyi=phi1*vy1+phi2*vy2+phi3*vy3+phi4*vy4
284 vzi=phi1*vz1+phi2*vz2+phi3*vz3+phi4*vz4
287 a(1,inod)=ms(inod)*(vxi-v(1,inod))*usdt
288 a(2,inod)=ms(inod)*(vyi-v(2,inod))*usdt
289 a(3,inod)=ms(inod)*(vzi-v(3,inod))*usdt
299 IF(gbuf%OFF(i)==zero) cycle
303 vx1=v(1,n1)+dt12*a(1,n1)/ms(n1)
304 vy1=v(2,n1)+dt12*a(2,n1)/ms(n1)
305 vz1=v(3,n1)+dt12*a(3,n1)/ms(n1)
307 vx2=v(1,n2)+dt12*a(1,n2)/ms(n2)
308 vy2=v(2,n2)+dt12*a(2,n2)/ms(n2)
309 vz2=v(3,n2)+dt12*a(3,n2)/ms(n2)
311 vx3=v(1,n3)+dt12*a(1,n3)/ms(n3)
312 vy3=v(2,n3)+dt12*a(2,n3)/ms(n3)
313 vz3=v(3,n3)+dt12*a(3,n3)/ms(n3)
315 vx4=v(1,n4)+dt12*a(1,n4)/ms(n4)
316 vy4=v(2,n4)+dt12*a(2,n4)/ms(n4)
317 vz4=v(3,n4)+dt12*a(3,n4)/ms(n4)
319 vx5=v(1,n5)+dt12*a(1,n5)/ms(n5)
320 vy5=v(2,n5)+dt12*a(2,n5)/ms(n5)
321 vz5=v(3,n5)+dt12*a(3,n5)/ms(n5)
323 vx6=v(1,n6)+dt12*a(1,n6)/ms(n6)
324 vy6=v(2,n6)+dt12*a(2,n6)/ms(n6)
325 vz6=v(3,n6)+dt12*a(3,n6)/ms(n6)
327 vx7=v(1,n7)+dt12*a(1,n7)/ms(n7)
328 vy7=v(2,n7)+dt12*a(2,n7)/ms(n7)
329 vz7=v(3,n7)+dt12*a(3,n7)/ms(n7)
331 vx8=v(1,n8)+dt12*a(1,n8)/ms(n8)
332 vy8=v(2,n8)+dt12*a(2,n8)/ms(n8)
333 vz8=v(3,n8)+dt12*a(3,n8)/ms(n8)
335 nsphdir=nint((sol2sph(2,n)-sol2sph(1,n))**third)
337 DO kp=1,sol2sph(2,n)-sol2sph(1,n)
339 ir=irst(1,np-first_sphsol+1)
340 is=irst(2,np-first_sphsol+1)
341 it=irst(3,np-first_sphsol+1)
342 ksi = a_gauss(ir,nsphdir)
343 eta = a_gauss(is,nsphdir)
344 zeta = a_gauss(it,nsphdir)
346 phi1=(one-ksi)*(one-eta)*(one-zeta)
347 phi2=(one-ksi)*(one-eta)*(one+zeta)
348 phi3=(one+ksi)*(one-eta)*(one+zeta)
349 phi4=(one+ksi)*(one-eta)*(one-zeta)
350 phi5=(one-ksi)*(one+eta)*(one-zeta)
351 phi6=(one-ksi)*(one+eta)*(one+zeta)
352 phi7=(one+ksi)*(one+eta)*(one+zeta)
353 phi8=(one+ksi)*(one+eta)*(one-zeta)
354 vxi=one_over_8*(phi1*vx1+phi2*vx2+phi3*vx3+phi4*vx4+
355 . phi5*vx5+phi6*vx6+phi7*vx7+phi8*vx8)
356 vyi=one_over_8*(phi1*vy1+phi2*vy2+phi3*vy3+phi4*vy4+
357 . phi5*vy5+phi6*vy6+phi7*vy7+phi8*vy8)
358 vzi=one_over_8*(phi1*vz1+phi2*vz2+phi3*vz3+phi4*vz4+
359 . phi5*vz5+phi6*vz6+phi7*vz7+phi8*vz8)
361 a(1,inod)=ms(inod)*(vxi-v(1,inod))*usdt
362 a(2,inod)=ms(inod)*(vyi-v(2,inod))*usdt
363 a(3,inod)=ms(inod)*(vzi-v(3,inod))*usdt
383 ALLOCATE(sph_work%ASPHR(4,
nsphr))
401 nx=xframe(3*(ic-1)+1,is)
402 ny=xframe(3*(ic-1)+2,is)
403 nz=xframe(3*(ic-1)+3,is)
404 DO ns =itask+1,nsphact,nthread
420 an=axi*nx+ayi*ny+azi*nz
433 DO ns = itask+1,
nsphr,nthread
439 axi=sph_work%ASPHR(1,ns)
440 ayi=sph_work%ASPHR(2,ns)
441 azi=sph_work%ASPHR(3,ns)
447 an=axi*nx+ayi*ny+azi*nz
465 DO ns =itask+1,nsphact,nthread
468 unm=one/
max(em30,ms(inod))
469 vxi=v(1,inod)+dt12*a(1,inod)*unm
470 vyi=v(2,inod)+dt12*a(2,inod)*unm
471 vzi=v(3,inod)+dt12*a(3,inod)*unm
472 vv=vxi*vxi+vyi*vyi+vzi*vzi
476 partsav(8,iprt)=partsav(8,iprt)+kv
482 DO ns =itask+1,nsphact,nthread
490 DO ns =itask+1,nsphact,nthread
496 alpci=get_u_geo(4,iprop)
523 IF(kxsp(2,n)<0.AND.kxsp(2,m)<0)cycle
536 CALL weight0(xi,yi,zi,xj,yj,zj,dij,wght)
537 betai=one+betaxi*(xi-xj)+betayi*(yi-yj)+betazi*(zi-zj)
542 betaj=one+betaxj*(xj-xi)+betayj*(yj-yi)+betazj*(zj-zi)
543 wght=wght*(alphai*betai+alphaj*betaj)*half
544 fact=two*wght/(rhoi+rhoj)
545 wax=axj-axi+ms(inod)*(vxj-vxi)*dtinv
546 way=ayj-ayi+ms(inod)*(vyj-vyi)*dtinv
547 waz=azj-azi+ms(inod)*(vzj-vzi)*dtinv
548 faci= alpci*spbuf(12,m)*fact
553 IF(kxsp(2,n)<=0.AND.xsphr(13,nn)<=0)cycle
561 axj=sph_work%ASPHR(1,nn)
562 ayj=sph_work%ASPHR(2,nn)
563 azj=sph_work%ASPHR(3,nn)
566 CALL weight0(xi,yi,zi,xj,yj,zj,dij,wght
567 betai=one+betaxi*(xi-xj)+betayi*(yi-yj)+betazi*(zi-zj)
572 betaj=one+betaxj*(xj-xi)+betayj*(yj-yi)+betazj*(zj-zi)
573 wght=wght*(alphai*betai+alphaj*betaj)*half
574 fact=two*wght/(rhoi+rhoj)
575 wax=axj-axi+ms(inod)*(vxj-vxi)*dtinv
576 way=ayj-ayi+ms(inod)*(vyj-vyi)*dtinv
577 waz=azj-azi+ms(inod)*(vzj-vzi)*dtinv
578 faci= alpci*xsphr(8,nn)*fact
580 wa(myadrn+1)=wa(myadrn+1)+faci*wax
581 wa(myadrn+2)=wa(myadrn+2)+faci*way
582 wa(myadrn+3)=wa(myadrn+3)+faci*waz
587 DO j=kxsp(5,n)+1,kxsp(5,n)+nvoiss
593 IF(kxsp(2,n)<=0.AND.kxsp(2,sm)<=0)cycle
608 CALL weight0(xi,yi,zi,xj,yj,zj,dij,wght)
610 betai=one +betaxi*(xi-xj)+betayi*(yi-yj)+betazi*(zi-zj)
618 betaj=one+betaxj*(xj-xi)+betayj*(yj-yi)+betazj*(zj-zi)
619 wght=wght*(alphai*betai+alphaj*betaj)*half
620 fact=alpci*two*spbuf(12,sm)*wght/(rhoi+rhoj)
621 wax=axj-axi+ms(inod)*(vxj-vxi)*dtinv
622 way=ayj-ayi+ms(inod)*(vyj-vyi)*dtinv
623 waz=azj-azi+ms(inod)*(vzj-vzi)*dtinv
628 IF(kxsp(2,n)<=0.AND.xsphr(13,sm)<=0)cycle
629 nc=mod(-js,nspcond+1)
643 CALL weight0(xi,yi,zi,xj,yj,zj,dij,wght)
644 betai=one +betaxi*(xi-xj)+betayi*(yi-yj)+betazi*(zi-zj)
652 betaj=one+betaxj*(xj-xi)+betayj*(yj-yi)+betazj*(zj-zi)
653 wght=wght*(alphai*betai+alphaj*betaj)*half
654 fact=alpci*two*xsphr(8,sm)*wght/(rhoi+rhoj)
655 wax=axj-axi+ms(inod)*(vxj-vxi)*dtinv
656 way=ayj-ayi+ms(inod)*(vyj-vyi)*dtinv
657 waz=azj-azi+ms(inod)*(vzj-vzi)*dtinv
659 wa(myadrn+1)=wa(myadrn+1)+fact*wax
660 wa(myadrn+2)=wa(myadrn+2)+fact*way
661 wa(myadrn+3)=wa(myadrn+3)+fact*waz
673 DO ns=itask+1,nsphact,nthread
677 a(1,inod)=a(1,inod)+wa(myadrn+1)
678 a(2,inod)=a(2,inod)+wa(myadrn+2)
679 a(3,inod)=a(3,inod)+wa(myadrn+3)
688 IF(sph2sol(n)==0)
THEN
690 a(1,inod)=a(1,inod)+wa(myadrn+1)
691 a(2,inod)=a(2,inod)+wa(myadrn+2)
692 a(3,inod)=a(3,inod)+wa(myadrn+3)
694 ELSEIF (sol2sph_typ(sph2sol(n))==4)
THEN
700 a(1,inod)=a(1,inod)+wa(myadrn+1)
701 a(2,inod)=a(2,inod)+wa(myadrn+2)
702 a(3,inod)=a(3,inod)+wa(myadrn+3)
711 ir=irst(1,n-first_sphsol+1)
712 is=irst(2,n-first_sphsol+1)
713 it=irst(3,n-first_sphsol+1)
714 nsphdir=igeo(37,ixs(10,nsol))
716 ksi = a_gauss(ir,nsphdir)
717 eta = a_gauss(is,nsphdir)
718 zeta = a_gauss(it,nsphdir)
720 phi1=one_over_8*(one-ksi)*(one-eta)*(one-zeta)
721 phi2=one_over_8*(one-ksi)*(one-eta)*(one+zeta)
722 phi3=one_over_8*(one+ksi)*(one-eta)*(one+zeta)
723 phi4=one_over_8*(one+ksi)*(one-eta)*(one-zeta)
726 sph_work%AS(1,ii)=phi1*wa(myadrn+1)
727 sph_work%AS(2,ii)=phi1*wa(myadrn+2)
728 sph_work%AS(3,ii)=phi1*wa(myadrn+3)
731 sph_work%AS(1,ii)=phi2*wa(myadrn+1)
732 sph_work%AS(2,ii)=phi2*wa(myadrn+2)
733 sph_work%AS(3,ii)=phi2*wa(myadrn+3)
736 sph_work%AS(1,ii)=phi3*wa(myadrn+1)
737 sph_work%AS(2,ii)=phi3*wa(myadrn+2)
738 sph_work%AS(3,ii)=phi3*wa(myadrn+3)
741 sph_work%AS(1,ii)=phi4*wa(myadrn+1)
742 sph_work%AS(2,ii)=phi4*wa(myadrn+2)
743 sph_work%AS(3,ii)=phi4*wa(myadrn+3)
751 a(1,inod)=a(1,inod)+wa(myadrn+1)
752 a(2,inod)=a(2,inod)+wa(myadrn+2)
753 a(3,inod)=a(3,inod)+wa(myadrn+3)
766 ir=irst(1,n-first_sphsol+1)
767 is=irst(2,n-first_sphsol+1)
768 it=irst(3,n-first_sphsol+1)
769 nsphdir=nint((sol2sph(2,nsol)-sol2sph(1,nsol))**third)
771 ksi = a_gauss(ir,nsphdir)
772 eta = a_gauss(is,nsphdir)
773 zeta = a_gauss(it,nsphdir)
775 phi1=one_over_8*(one-ksi)*(one-eta)*(one-zeta)
776 phi2=one_over_8*(one-ksi)*(one-eta)*(one+zeta)
777 phi3=one_over_8*(one+ksi)*(one-eta)*(one+zeta)
778 phi4=one_over_8*(one+ksi)*(one-eta)*(one-zeta)
779 phi5=one_over_8*(one-ksi)*(one+eta)*(one-zeta)
780 phi6=one_over_8*(one-ksi)*(one+eta)*(one+zeta)
781 phi7=one_over_8*(one+ksi)*(one+eta)*(one+zeta)
782 phi8=one_over_8*(one+ksi)*(one+eta)*(one-zeta)
785 sph_work%AS(1,ii)=phi1*wa(myadrn+1)
786 sph_work%AS(2,ii)=phi1*wa(myadrn+2)
787 sph_work%AS(3,ii)=phi1*wa(myadrn+3)
790 sph_work%AS(1,ii)=phi2*wa(myadrn+1)
791 sph_work%AS(2,ii)=phi2*wa(myadrn+2)
792 sph_work%AS(3,ii)=phi2*wa(myadrn+3)
795 sph_work%AS(1,ii)=phi3*wa(myadrn+1)
796 sph_work%AS(2,ii)=phi3*wa(myadrn+2)
797 sph_work%AS(3,ii)=phi3*wa(myadrn+3)
800 sph_work%AS(1,ii)=phi4*wa(myadrn+1)
801 sph_work%AS(2,ii)=phi4*wa(myadrn+2)
802 sph_work%AS(3,ii)=phi4*wa(myadrn+3)
805 sph_work%AS(1,ii)=phi5*wa(myadrn+1)
806 sph_work%AS(2,ii)=phi5*wa(myadrn+2)
807 sph_work%AS(3,ii)=phi5*wa(myadrn+3)
810 sph_work%AS(1,ii)=phi6*wa(myadrn+1)
811 sph_work%AS(2,ii)=phi6*wa(myadrn+2)
812 sph_work%AS(3,ii)=phi6*wa(myadrn+3)
815 sph_work%AS(1,ii)=phi7*wa(myadrn+1)
816 sph_work%AS(2,ii)=phi7*wa(myadrn+2)
817 sph_work%AS(3,ii)=phi7*wa(myadrn+3)
820 sph_work%AS(1,ii)=phi8*wa(myadrn+1)
821 sph_work%AS(2,ii)=phi8*wa(myadrn+2)
822 sph_work%AS(3,ii)=phi8*wa(myadrn+3)
832 IF(sph2sol(n)/=0)
THEN
833 IF (sol2sph_typ(sph2sol(n))==4)
THEN
853 sph_work%A6(j,1,n1)=sph_work%A6(j,1,n1)+sph_work%AS6(j,1,ii)
854 sph_work%A6(j,2,n1)=sph_work%A6(j,2,n1)+sph_work%AS6(j,2,ii)
855 sph_work%A6(j,3,n1)=sph_work%A6(j,3,n1)+sph_work%AS6(j,3,ii)
858 sph_work%A6(j,1,n2)=sph_work%A6(j,1,n2)+sph_work%AS6(j,1,ii)
859 sph_work%A6(j,2,n2)=sph_work%A6(j,2,n2)+sph_work%AS6(j,2,ii)
860 sph_work%A6(j,3,n2)=sph_work%A6(j,3,n2)+sph_work%AS6(j,3,ii)
863 sph_work%A6(j,1,n3)=sph_work%A6(j,1,n3)+sph_work%AS6(j,1,ii)
864 sph_work%A6(j,2,n3)=sph_work%A6(j,2,n3)+sph_work%AS6(j,2,ii)
865 sph_work%A6(j,3,n3)=sph_work%A6(j,3,n3)+sph_work%AS6(j,3,ii)
868 sph_work%A6(j,1,n4)=sph_work%A6(j,1,n4)+sph_work%AS6(j,1,ii)
869 sph_work%A6(j,2,n4)=sph_work%A6(j,2,n4)+sph_work%AS6(j,2,ii)
870 sph_work%A6(j,3,n4)=sph_work%A6(j,3,n4)+sph_work%AS6(j,3,ii)
902 sph_work%A6(j,1,n1)=sph_work%A6(j,1,n1)+sph_work%AS6(j,1,ii)
903 sph_work%A6(j,2,n1)=sph_work%A6(j,2,n1)+sph_work%AS6(j,2,ii)
904 sph_work%A6(j,3,n1)=sph_work%A6(j,3,n1)+sph_work%AS6(j,3,ii)
907 sph_work%A6(j,1,n2)=sph_work%A6(j,1,n2)+sph_work%AS6(j,1,ii)
908 sph_work%A6(j,2,n2)=sph_work%A6(j,2,n2)+sph_work%AS6(j,2,ii)
909 sph_work%A6(j,3,n2)=sph_work%A6(j,3,n2)+sph_work%AS6(j,3,ii)
912 sph_work%A6(j,1,n3)=sph_work%A6(j,1,n3)+sph_work%AS6(j,1,ii)
913 sph_work%A6(j,2,n3)=sph_work%A6(j,2,n3)+sph_work%AS6(j,2,ii)
914 sph_work%A6(j,3,n3)=sph_work%A6(j,3,n3)+sph_work%AS6(j,3,ii)
917 sph_work%A6(j,1,n4)=sph_work%A6(j,1,n4)+sph_work%AS6(j,1,ii)
918 sph_work%A6(j,2,n4)=sph_work%A6(j,2,n4)+sph_work%AS6(j,2,ii)
919 sph_work%A6(j,3,n4)=sph_work%A6(j,3,n4)+sph_work%AS6(j,3,ii)
922 sph_work%A6(j,1,n5)=sph_work%A6(j,1,n5)+sph_work%AS6(j,1,ii)
923 sph_work%A6(j,2,n5)=sph_work%A6(j,2,n5)+sph_work%AS6(j,2,ii)
924 sph_work%A6(j,3,n5)=sph_work%A6(j,3,n5)+sph_work%AS6(j,3,ii)
927 sph_work%A6(j,1,n6)=sph_work%A6(j,1,n6)+sph_work%AS6(j,1,ii)
928 sph_work%A6(j,2,n6)=sph_work%A6(j,2,n6)+sph_work%AS6(j,2,ii)
929 sph_work%A6(j,3,n6)=sph_work%A6(j,3,n6)+sph_work%AS6(j,3,ii)
932 sph_work%A6(j,1,n7)=sph_work%A6(j,1,n7)+sph_work%AS6(j,1,ii)
933 sph_work%A6(j,2,n7)=sph_work%A6(j,2,n7)+sph_work%AS6(j,2,ii)
934 sph_work%A6(j,3,n7)=sph_work%A6(j,3,n7)+sph_work%AS6(j,3,ii)
937 sph_work%A6(j,1,n8)=sph_work%A6(j,1,n8)+sph_work%AS6(j,1,ii)
938 sph_work%A6(j,2,n8)=sph_work%A6(j,2,n8)+sph_work%AS6(j,2,ii)
939 sph_work%A6(j,3,n8)=sph_work%A6(j,3,n8)+sph_work%AS6(j,3,ii)
951 IF ((sol2sph_flag > 0).AND.(itask==0))
THEN
954 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
956 1 sph_work%A6 ,sph_work%ITAG ,iad_elem ,fr_elem,sz,
961 IF(sph_work%ITAG(n)/=0)
THEN
962 a(1,n)=a(1,n)+sph_work%A6(1,1,n)+sph_work%A6(2,1,n)+sph_work%A6(3,1,n)
963 . +sph_work%A6(4,1,n)+sph_work%A6(5,1,n)+sph_work%A6(6,1,n)
964 a(2,n)=a(2,n)+sph_work%A6(1,2,n)+sph_work%A6(2,2,n)+sph_work%A6(3,2,n)
965 . +sph_work%A6(4,2,n)+sph_work%A6(5,2,n)+sph_work%A6(6,2,n)
966 a(3,n)=a(3,n)+sph_work%A6(1,3,n)+sph_work%A6(2,3,n)+sph_work%A6(3,3,n)
967 . +sph_work%A6(4,3,n)+sph_work%A6(5,3,n)+sph_work%A6(6,3,n)
978 DO ns =itask+1,nsphact,nthread
981 unm=one/
max(em30,ms(inod))
982 vxi=v(1,inod)+dt12*a(1,inod)*unm
983 vyi=v(2,inod)+dt12*a(2,inod)*unm
984 vzi=v(3,inod)+dt12*a(3,inod)*unm
985 vv=vxi*vxi+vyi*vyi+vzi*vzi
989 partsav(8,iprt)=partsav(8,iprt)-kv
995 IF(nspmd>1 .AND. itask==0.AND.
ALLOCATED(sph_work%ASPHR))
DEALLOCATE(sph_work%ASPHR)