33 1 A6 ,ITAG ,IAD_ELEM ,FR_ELEM,SIZE,
42#include "implicit_f.inc"
55 INTEGER ITAG(*), IAD_ELEM(2,*),FR_ELEM(*), SIZE
56DOUBLE PRECISION A6(6,3,*)
61 INTEGER MSGTYP,I,NOD,LOC_PROC,IERROR,MSGOFF,
63 . status(mpi_status_size),
64 . iad_send(nspmd+1),iad_recv(nspmd+1),
65 . req_r(nspmd),req_s(nspmd)
80 siz = size*(iad_elem(1,i+1)-iad_elem(1,i))
84 s rbuf(l),siz,it_spmd(i),msgtyp,
94#include "vectorize.inc"
95 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
98 sbuf(l ) = j-iad_elem(1,i)+1
99 sbuf(l+1) = a6(1,1,nod)
100 sbuf(l+2) = a6(1,2,nod)
101 sbuf(l+3) = a6(1,3,nod)
102 sbuf(l+4) = a6(2,1,nod)
103 sbuf(l+5) = a6(2,2,nod)
104 sbuf(l+6) = a6(2,3,nod)
105 sbuf(l+7) = a6(3,1,nod)
106 sbuf(l+8) = a6(3,2,nod)
107 sbuf(l+9) = a6(3,3,nod)
108 sbuf(l+10) = a6(4,1,nod)
109 sbuf(l+11) = a6(4,2,nod)
110 sbuf(l+12) = a6(4,3,nod)
111 sbuf(l+13) = a6(5,1,nod)
112 sbuf(l+14) = a6(5,2,nod)
113 sbuf(l+15) = a6(5,3,nod)
114 sbuf(l+16) = a6(6,1,nod)
115 sbuf(l+17) = a6(6,2,nod)
116 sbuf(l+18) = a6(6,3,nod)
129 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
131 siz = iad_send(i+1)-iad_send(i)
134 s sbuf(l),siz,it_spmd(i),msgtyp,
144 nb_nod = iad_elem(1,i+1)-iad_elem(1,i)
146 CALL spmd_wait(req_r(i),status)
150#include "vectorize.inc"
153 j = nint(rbuf(l)) + iad_elem(1,i)-1
157 a6(1,1,nod)=a6(1,1,nod)+ rbuf(l+1)
158 a6(1,2,nod)=a6(1,2,nod)+ rbuf(l+2)
159 a6(1,3,nod)=a6(1,3,nod)+ rbuf(l+3)
160 a6(2,1,nod)=a6(2,1,nod)+ rbuf(l+4)
161 a6(2,2,nod)=a6(2,2,nod)+ rbuf(l+5)
162 a6(2,3,nod)=a6(2,3,nod)+ rbuf(l+6)
163 a6(3,1,nod)=a6(3,1,nod)+ rbuf(l+7)
164 a6(3,2,nod)=a6(3,2,nod)+ rbuf(l+8)
165 a6(3,3,nod)=a6(3,3,nod)+ rbuf(l+9)
166 a6(4,1,nod)=a6(4,1,nod)+ rbuf(l+10)
167 a6(4,2,nod)=a6(4,2,nod)+ rbuf(l+11)
168 a6(4,3,nod)=a6(4,3,nod)+ rbuf(l+12)
169 a6(5,1,nod)=a6(5,1,nod)+ rbuf(l+13)
170 a6(5,2,nod)=a6(5,2,nod)+ rbuf(l+14)
171 a6(5,3,nod)=a6(5,3,nod)+ rbuf(l+15)
172 a6(6,1,nod)=a6(6,1,nod)+ rbuf(l+16)
173 a6(6,2,nod)=a6(6,2,nod)+ rbuf(l+17)
174 a6(6,3,nod)=a6(6,3,nod)+ rbuf(l+18)
184 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
185 CALL spmd_wait(req_s(i))
495#include "implicit_f.inc"
503#include "com01_c.inc"
509 INTEGER,
INTENT(IN) :: SPH_IORD1
511 . spbuf(nspbuf,*), wacomp(16,*), wa(kwasph,*),
517 INTEGER , I, NN, N, IDEB, MSGTYP, LOC_PROC,
519 . req_sd(nspmd), msgoff
521 . bufs(15+6*sph_iord1,
nsphs),bufr(15+6*sph_iord1,
nsphr)
530 IF (sph_iord1 == 0)
THEN
536 IF(
isphs(ideb+n)==1)
THEN
538 icell =
lsphs(ideb+n)
540 bufs(1,nn+ideb) = spbuf(2,icell)
541 bufs(2,nn+ideb) = wa(1,icell)
542 bufs(3,nn+ideb) = wa(2,icell)
543 bufs(4,nn+ideb) = wa(3,icell)
544 bufs(5,nn+ideb) = wa(4,icell)
545 bufs(6,nn+ideb) = wa(5,icell)
546 bufs(7,nn+ideb) = wa(6,icell)
547 bufs(8,nn+ideb) = wa(8,icell)
548 bufs(9,nn+ideb) = wa(9,icell)
549 bufs(10,nn+ideb) = wa(13,icell)
550 bufs(11,nn+ideb) = wa(14,icell)
551 bufs(12,nn+ideb) = wacomp(1,icell)
552 bufs(13,nn+ideb) = wacomp(5,icell)
553 bufs(14,nn+ideb) = wacomp(6,icell)
554 bufs(15,nn+ideb) = wacomp(7,icell)
559 s bufs(1,ideb+1),nn*15,it_spmd(p),msgtyp,
561 ideb = ideb +
psphs(p)
570 IF(
isphs(ideb+n)==1)
THEN
572 icell =
lsphs(ideb+n)
574 bufs(1,nn+ideb) = spbuf(2,icell)
575 bufs(2,nn+ideb) = wa(1,icell)
576 bufs(3,nn+ideb) = wa(2,icell)
577 bufs(4,nn+ideb) = wa(3,icell)
578 bufs(5,nn+ideb) = wa(4,icell)
579 bufs(6,nn+ideb) = wa(5,icell)
580 bufs(7,nn+ideb) = wa(6,icell)
581 bufs(8,nn+ideb) = wa(8,icell)
582 bufs(9,nn+ideb) = wa(9,icell)
583 bufs(10,nn+ideb) = wa(13,icell)
584 bufs(11,nn+ideb) = wa(14,icell)
585 bufs(12,nn+ideb) = wacomp(1,icell)
586 bufs(13,nn+ideb) = wacomp(8,icell)
587 bufs(14,nn+ideb) = wacomp(9,icell)
588 bufs(15,nn+ideb) = wacomp(10,icell)
589 bufs(16,nn+ideb) = wacomp(11,icell)
590 bufs(17,nn+ideb) = wacomp(12,icell)
591 bufs(18,nn+ideb) = wacomp(13,icell)
592 bufs(19,nn+ideb) = wacomp(14,icell)
593 bufs(20,nn+ideb) = wacomp(15,icell)
594 bufs(21,nn+ideb) = wacomp(16,icell)
599 s bufs(1,ideb+1),nn*21,it_spmd(p),msgtyp,
601 ideb = ideb +
psphs(p)
608 IF (sph_iord1 == 0)
THEN
613 CALL spmd_recv(bufr,15*
psphr(p),it_spmd(p),
617 IF(
isphr(ideb+n)==1)
THEN
619 xsphr(7,ideb+n) = bufr(1,nn)
620 war(1,ideb+n)= bufr(2,nn)
621 war(2,ideb+n)= bufr(3,nn)
622 war(3,ideb+n)= bufr(4,nn)
623 war(4,ideb+n)= bufr(5,nn)
624 war(5,ideb+n)= bufr(6,nn)
625 war(6,ideb+n)= bufr(7,nn)
626 war(7,ideb+n)= bufr(8,nn)
627 war(8,ideb+n)= bufr(9,nn)
628 war(9,ideb+n)= bufr(10,nn)
629 war(10,ideb+n)=bufr(11,nn)
630 wacompr(1,ideb+n)= bufr(12,nn)
631 wacompr(2,ideb+n)= zero
632 wacompr(3,ideb+n)= zero
633 wacompr(4,ideb+n)= zero
634 wacompr(5,ideb+n)= bufr(13,nn)
635 wacompr(6,ideb+n)= bufr(14,nn)
636 wacompr(7,ideb+n)= bufr(15,nn)
637 wacompr(8,ideb+n)= zero
638 wacompr(9,ideb+n)= zero
639 wacompr(10,ideb+n)=zero
640 wacompr(11,ideb+n)=zero
641 wacompr(12,ideb+n)=zero
642 wacompr(13,ideb+n)=zero
643 wacompr(14,ideb+n)=zero
644 wacompr(15,ideb+n)=zero
645 wacompr(16,ideb+n)=zero
648 ideb = ideb +
psphr(p)
656 CALL spmd_recv(bufr,21*
psphr(p),it_spmd(p),
660 IF(
isphr(ideb+n)==1)
THEN
662 xsphr(7,ideb+n) = bufr(1,nn)
663 war(1,ideb+n)= bufr(2,nn)
664 war(2,ideb+n)= bufr(3,nn)
665 war(3,ideb+n)= bufr(4,nn)
666 war(4,ideb+n)= bufr(5,nn)
667 war(5,ideb+n)= bufr(6,nn)
668 war(6,ideb+n)= bufr(7,nn)
669 war(7,ideb+n)= bufr(8,nn)
670 war(8,ideb+n)= bufr(9,nn)
671 war(9,ideb+n)= bufr(10,nn)
672 war(10,ideb+n)=bufr(11,nn)
673 wacompr(1,ideb+n)= bufr(12,nn)
674 wacompr(2,ideb+n)= zero
675 wacompr(3,ideb+n)= zero
676 wacompr(4,ideb+n)= zero
677 wacompr(5,ideb+n)= zero
678 wacompr(6,ideb+n)= zero
679 wacompr(7,ideb+n)= zero
680 wacompr(8,ideb+n)= bufr(13,nn)
681 wacompr(9,ideb+n)= bufr(14,nn)
682 wacompr(10,ideb+n)=bufr(15,nn)
683 wacompr(11,ideb+n)=bufr(16,nn)
684 wacompr(12,ideb+n)=bufr(17,nn)
685 wacompr(13,ideb+n)=bufr(18,nn)
686 wacompr(14,ideb+n)=bufr(19,nn)
687 wacompr(15,ideb+n)=bufr(20,nn)
688 wacompr(16,ideb+n)=bufr(21,nn)
691 ideb = ideb +
psphr(p)
700 CALL spmd_wait(req_sd(p))
1309#include "implicit_f.inc"
1317#include "com01_c.inc"
1318#include "task_c.inc"
1322 INTEGER,
INTENT(IN) :: SPH_IORD1
1324 . wgradt(3,*), wacomp(16,*), wgr(3,*)
1329 INTEGER P, I, NN, N, IDEB, , LOC_PROC,
1331 . req_sd(nspmd), msgoff
1333 . bufs(7+6*sph_iord1,
nsphs), bufr(7+6*sph_iord1,
nsphr)
1342 IF (sph_iord1==0)
THEN
1348 IF(
isphs(ideb+n)==1)
THEN
1350 icell =
lsphs(ideb+n)
1352 bufs(1,nn+ideb) = wgradt(1,icell)
1353 bufs(2,nn+ideb) = wgradt(2,icell)
1354 bufs(3,nn+ideb) = wgradt(3,icell)
1355 bufs(4,nn+ideb) = wacomp(1,icell)
1356 bufs(5,nn+ideb) = wacomp(5,icell)
1357 bufs(6,nn+ideb) = wacomp(6,icell)
1363 s bufs(1,ideb+1),nn*7,it_spmd(p),msgtyp,
1365 ideb = ideb +
psphs(p)
1374 IF(
isphs(ideb+n)==1)
THEN
1376 icell =
lsphs(ideb+n)
1378 bufs(1,nn+ideb) = wgradt(1,icell)
1379 bufs(2,nn+ideb) = wgradt(2,icell)
1380 bufs(3,nn+ideb) = wgradt(3,icell)
1381 bufs(4,nn+ideb) = wacomp(1,icell)
1382 bufs(5,nn+ideb) = wacomp(8,icell)
1383 bufs(6,nn+ideb) = wacomp(9,icell)
1384 bufs(7,nn+ideb) = wacomp(10,icell)
1385 bufs(8,nn+ideb) = wacomp(11,icell)
1386 bufs(9,nn+ideb) = wacomp(12,icell)
1387 bufs(10,nn+ideb) = wacomp(13,icell)
1388 bufs(11,nn+ideb) = wacomp(14,icell)
1389 bufs(12,nn+ideb) = wacomp(15,icell)
1390 bufs(13,nn+ideb) = wacomp(16,icell)
1395 s bufs(1,ideb+1),nn*13,it_spmd(p),msgtyp,
1397 ideb = ideb +
psphs(p)
1404 IF (sph_iord1==0)
THEN
1409 CALL spmd_recv(bufr,7*
psphr(p),it_spmd(p),
1413 IF(
isphr(ideb+n)==1)
THEN
1415 wgr(1,ideb+n)= bufr(1,nn)
1416 wgr(2,ideb+n)= bufr(2,nn)
1417 wgr(3,ideb+n)= bufr(3,nn)
1418 wacompr(1,ideb+n)= bufr(4,nn)
1419 wacompr(2,ideb+n)= zero
1420 wacompr(3,ideb+n)= zero
1421 wacompr(4,ideb+n)= zero
1422 wacompr(5,ideb+n)= bufr(5,nn)
1423 wacompr(6,ideb+n)= bufr(6,nn)
1424 wacompr(7,ideb+n)= bufr(7,nn)
1425 wacompr(8,ideb+n)= zero
1426 wacompr(9,ideb+n)= zero
1427 wacompr(10,ideb+n)=zero
1428 wacompr(11,ideb+n)=zero
1429 wacompr(12,ideb+n)=zero
1430 wacompr(13,ideb+n)=zero
1431 wacompr(14,ideb+n)=zero
1432 wacompr(15,ideb+n)=zero
1433 wacompr(16,ideb+n)=zero
1436 ideb = ideb +
psphr(p)
1444 CALL spmd_recv(bufr,13*
psphr(p),it_spmd(p),
1448 IF(
isphr(ideb+n)==1)
THEN
1450 wgr(1,ideb+n)= bufr(1,nn)
1451 wgr(2,ideb+n)= bufr(2,nn)
1452 wgr(3,ideb+n)= bufr(3,nn)
1453 wacompr(1,ideb+n)= bufr(4,nn)
1454 wacompr(2,ideb+n)= zero
1455 wacompr(3,ideb+n)= zero
1456 wacompr(4,ideb+n)= zero
1457 wacompr(5,ideb+n)= zero
1458 wacompr(6,ideb+n)= zero
1459 wacompr(7,ideb+n)= zero
1460 wacompr(8,ideb+n)= bufr(5,nn)
1461 wacompr(9,ideb+n)= bufr(6,nn)
1462 wacompr(10,ideb+n)=bufr(7,nn)
1463 wacompr(11,ideb+n)=bufr(8,nn)
1464 wacompr(12,ideb+n)=bufr(9,nn)
1465 wacompr(13,ideb+n)=bufr(10,nn)
1466 wacompr(14,ideb+n)=bufr(11,nn)
1467 wacompr(15,ideb+n)=bufr(12,nn)
1468 wacompr(16,ideb+n)=bufr(13,nn)
1471 ideb = ideb +
psphr(p)
1480 CALL spmd_wait(req_sd(p))
1507#include "implicit_f.inc"
1515#include "com01_c.inc"
1516#include "task_c.inc"
1517#include "sphcom.inc"
1522 . war2(9,*), wa(kwasph,*)
1524 INTEGER KXSP(NISP,*)
1529 INTEGER P, I, NN, N, IDEB, MSGTYP, LOC_PROC,
1531 . req_sd(nspmd), msgoff
1549 IF(
isphs(ideb+n)==1)
THEN
1551 icell =
lsphs(ideb+n)
1552 bufs(1,nn+ideb) = wa(1,icell)
1553 bufs(2,nn+ideb) = wa(2,icell)
1554 bufs(3,nn+ideb) = wa(3,icell)
1555 bufs(4,nn+ideb) = wa(4,icell)
1556 bufs(5,nn+ideb) = wa(5,icell)
1557 bufs(6,nn+ideb) = wa(6,icell)
1558 bufs(7,nn+ideb) = wa(7,icell)
1559 bufs(8,nn+ideb) = wa(8,icell)
1560 bufs(9,nn+ideb) = wa(9,icell)
1562 bufs(10,nn+ideb) = kxsp(2,icell)/(ngroup+1)
1567 s bufs(1,ideb+1),nn*10,it_spmd(p),msgtyp,
1569 ideb = ideb +
psphs(p)
1579 CALL spmd_recv(bufr,10*
psphr(p),it_spmd(p),
1583 IF(
isphr(ideb+n)==1)
THEN
1585 war2(1,ideb+n)= bufr(1,nn)
1586 war2(2,ideb+n)= bufr(2,nn)
1587 war2(3,ideb+n)= bufr(3,nn)
1588 war2(4,ideb+n)= bufr(4,nn)
1589 war2(5,ideb+n)= bufr(5,nn)
1590 war2(6,ideb+n)= bufr(6,nn)
1591 war2(7,ideb+n)= bufr(7,nn)
1592 war2(8,ideb+n)= bufr(8,nn)
1593 war2(9,ideb+n)= bufr(9,nn)
1594 xsphr(12,ideb+n) = bufr(10,nn)
1597 ideb = ideb +
psphr(p)
1607 CALL spmd_wait(req_sd(p))
1928 . SPBUF,V,A,ASPHR,DSPHR)
1937#include "implicit_f.inc"
1945#include "com01_c.inc"
1946#include "com08_c.inc"
1947#include "task_c.inc"
1948#include "sphcom.inc"
1954 . ISPHIO(NISPHIO,*),
1955 . IXSP(KVOISPH,*),NOD2SP(*),
1958 . x(3,*),spbuf(nspbuf,*),v(3,*) ,a(3,*),
1959 . asphr(3,*),dsphr(12,*)
1964 INTEGER P, I, NN, N, IDEB, MSGTYP, LOC_PROC,
1965 . IERROR, ICELL, INOD,
1966 . REQ_SD(NSPMD), REQ_SD2(NSPMD),
1970 .
DIMENSION(:,:),
ALLOCATABLE :: TMP_IPPV
1972 .
DIMENSION(:),
ALLOCATABLE :: CPT_TMP,
1973 . mypsphs,mypsphs2,mypsphr,
1974 . rec_ippv,send_ippv,send_ippv2
1977 . II,IPT,JJ,NPF,IFVITS,
1979 . IPPV,J,M,JNOD,IMPOSE,JMPOSE,
1980 . nvois,ij,np,k,jmpose2,ippvr,indice
1981 . ideb2, c, indice, ideb2,n1, siz,indice1,
1982 . nbis,msgoff,msgoff2,msgoff3
1987 . vx,vy,vz,vn,vt,ux,uy,uz,un1,nx,ny,nz,
1989 . xi,yi,zi,xj,yj,zj,dmin,dd,
1990 . di,rhoi,dj,rhoj,dij,
1991 . vxi,vyi,vzi,vxj,vyj,vzj,
1993 . wght,wgrad(3),wgrdx,wgrdy,wgrdz,
1994 . dxx,dxy,dxz,dyx,dyy,dyz,dzx,dzy,dzz,
1995 . exx,exy,exz,eyx,eyy,eyz,ezx,ezy,ezz,
1996 . alphai,alphaxi,alphayi,alphazi,alphai2,xp,yp,zp
1997 LOGICAL :: CONDITION
2007 ALLOCATE(tmp_ippv(3,
nsphr),cpt_tmp(nspmd))
2008 ALLOCATE(mypsphs(nspmd+1),mypsphs2(nspmd+1),mypsphr(nspmd+1))
2011 tmp_ippv(1:3,1:
nsphr) = 0
2012 mypsphs(1:nspmd+1)=0
2013 mypsphs2(1:nspmd+1)=0
2014 mypsphr(1:nspmd+1)=0
2016 send_ippv(1:
nsphr)=0
2017 send_ippv2(1:
nsphr)=0
2026 impose=kxsp(2,n)/(ngroup+1)
2028 IF ( isphio(1,impose)==2.OR.isphio(1,impose)==3 )
THEN
2042 jmpose=kxsp(2,m)/(ngroup+1)
2044 condition = jmpose==0
2045 IF(jmpose/=0) condition = isphio(1,jmpose)==1
2058 jmpose = nint(xsphr(12,nn))
2060 jmpose2=isphio(1,jmpose)
2064 IF(jmpose2==0.OR.jmpose2==1)
THEN
2068 dd =(xi-xj)*(xi-xj)+(yi-yj)*(yi-yj)+(zi-zj)*(zi-zj)
2080 tmp_ippv(1,ippvr) = -ippv
2084 IF(p/=loc_proc)
THEN
2086 nbis = nbis+
psphr(p)
2087 IF((-ippv)<=nbis)
THEN
2089 tmp_ippv(3,ippvr)=(-ippv)-n1
2090 mypsphs(p)=mypsphs(p)+1
2092 ELSEIF(p==nspmd)
THEN
2094 tmp_ippv(3,ippvr)=(-ippv)-n1
2095 mypsphs(p)=mypsphs(p)+1
2107 mypsphs2(p+1)=mypsphs2(p)+mypsphs(p)
2113 cpt_tmp(p)=cpt_tmp(p)+1
2114 indice=mypsphs2(p)+cpt_tmp(p)-1
2115 send_ippv(indice)= tmp_ippv(3,i)
2116 send_ippv2(indice)=tmp_ippv(1,i)
2128 s mypsphs(p),1,it_spmd(p),msgtyp,
2138 CALL spmd_recv(mypsphr(p),1,it_spmd(p),
2144 IF(mypsphs(p)/=0)
THEN
2148 s send_ippv(ideb),mypsphs(p),
2149 . it_spmd(p),msgtyp,req_sd2(p))
2156 IF(mypsphr(p)/=0)
THEN
2159 . rec_ippv(ideb),mypsphr(p),
2160 . it_spmd(p),msgtyp)
2161 ideb = ideb + mypsphr(p)
2169 CALL spmd_wait(req_sd(p))
2171 IF(mypsphs(p)/=0)
THEN
2172 CALL spmd_wait(req_sd2(p))
2183 IF(mypsphr(p)/=0)
THEN
2184 DO n = 1, mypsphr(p)
2185 c = rec_ippv(ideb2+n)
2186 icell =
lsphs(c+ideb)
2187 inod = kxsp(3,icell)
2194 CALL weight0(xp,yp,zp,xp,yp,zp,di,wght)
2195 vj=spbuf(12,np)/
max(em20,rhoi)
2205 jmpose=kxsp(2,m)/(ngroup+1)
2207 condition = jmpose==0
2208 IF(jmpose/=0) condition = isphio(1,jmpose)==1
2216 CALL weight1(xp,yp,zp,xj,yj,zj,dij,wght,wgrad)
2217 vj=spbuf(12,m)/
max(em20,rhoj)
2218 alphai =alphai +vj*wght
2219 alphaxi=alphaxi+vj*wgrad(1)
2220 alphayi=alphayi+vj*wgrad(2)
2221 alphazi=alphazi+vj*wgrad(3)
2225 jmpose = nint(xsphr(12,nn))
2227 jmpose2=isphio(1,jmpose)
2231 IF(jmpose2==0.OR.jmpose2==1)
THEN
2238 CALL weight1(xp,yp,zp,xj,yj,zj,dij,wght,wgrad)
2239 vj=xsphr(8,nn)/
max(em20,rhoj)
2240 alphai =alphai +vj*wght
2241 alphaxi=alphaxi+vj*wgrad(1)
2242 alphayi=alphayi+vj*wgrad(2)
2243 alphazi=alphazi+vj*wgrad(3)
2248 alphai =one/
max(em20,alphai)
2249 alphai2=alphai*alphai
2250 alphaxi=-alphaxi*alphai2
2251 alphayi=-alphayi*alphai2
2252 alphazi=-alphazi*alphai2
2254 vx =v(1,inod)+dt12*a(1,inod)
2255 vy =v(2,inod)+dt12*a(2,inod)
2272 jmpose=kxsp(2,m)/(ngroup+1)
2274 condition = jmpose==0
2275 IF(jmpose/=0) condition = isphio(1,jmpose)==1
2283 CALL weight1(xp,yp,zp,xj,yj,zj,dij,wght,wgrad)
2284 wgrdx=wgrad(1)*alphai+wght*alphaxi
2285 wgrdy=wgrad(2)*alphai+wght*alphayi
2286 wgrdz=wgrad(3)*alphai+wght*alphazi
2287 vj=spbuf(12,m)/
max(em20,rhoj)
2288 vxj =v(1,jnod)+dt12*a(1,jnod)
2289 vyj =v(2,jnod)+dt12*a(2,jnod)
2290 vzj =v(3,jnod)+dt12*a(3,jnod)
2306 jmpose = nint(xsphr(12,nn))
2308 jmpose2=isphio(1,jmpose)
2312 IF(jmpose2==0.OR.jmpose2==1)
THEN
2319 CALL weight1(xp,yp,zp,xj,yj,zj,dij,wght,wgrad)
2320 wgrdx=wgrad(1)*alphai+wght*alphaxi
2321 wgrdy=wgrad(2)*alphai+wght*alphayi
2322 wgrdz=wgrad(3)*alphai+wght*alphazi
2323 vj=xsphr(8,nn)/
max(em20,rhoj)
2324 vxj =xsphr(9,nn)+dt12*asphr(1,nn)
2325 vyj =xsphr(10,nn)+dt12*asphr(2,nn)
2326 vzj =xsphr(11,nn)+dt12*asphr(3,nn)
2343 bufs(2,n+ideb2) = dxy
2344 bufs(3,n+ideb2) = dxz
2345 bufs(4,n+ideb2) = dyx
2346 bufs(5,n+ideb2) = dyy
2347 bufs(6,n+ideb2) = dyz
2348 bufs(7,n+ideb2) = dzx
2349 bufs(8,n+ideb2) = dzy
2350 bufs(9,n+ideb2) = dzz
2351 bufs(10,n+ideb2) = vx
2352 bufs(11,n+ideb2) = vy
2353 bufs(12,n+ideb2) = vz
2360 s bufs(1,ideb2+1),siz,it_spmd(p),msgtyp,
2362 ideb2= ideb2+mypsphr(p)
2364 ideb = ideb +
psphs(p)
2365 END DO !
ENDDO p = 1, nspmd
2372 IF(mypsphs(p)/=0)
THEN
2375 CALL spmd_recv(bufr,siz,it_spmd(p),
2377 DO n = 1, mypsphs(p)
2378 indice1 = send_ippv2(ideb+n)
2379 dsphr(1,indice1) = bufr(1,n)
2380 dsphr(2,indice1) = bufr(2,n)
2381 dsphr(3,indice1) = bufr(3,n)
2382 dsphr(4,indice1) = bufr(4,n)
2383 dsphr(5,indice1) = bufr(5,n)
2384 dsphr(6,indice1) = bufr(6,n)
2385 dsphr(7,indice1) = bufr(7,n)
2386 dsphr(8,indice1) = bufr(8,n)
2387 dsphr(9,indice1) = bufr(9,n)
2388 dsphr(10,indice1) = bufr(10,n)
2389 dsphr(11,indice1) = bufr(11,n)
2390 dsphr(12,indice1) = bufr(12,n)
2392 ideb = ideb + mypsphs(p)
2399 IF(mypsphr(p)/=0)
THEN
2400 CALL spmd_wait(req_sd3(p))
2406 DEALLOCATE(tmp_ippv,mypsphs,mypsphs2,mypsphr)
2407 DEALLOCATE(send_ippv,send_ippv2,rec_ippv,cpt_tmp)