38 1 X ,NBRCVOIS,NBSDVOIS,LNRCVOIS,LNSDVOIS,
44#include "implicit_f.inc"
53 INTEGER NBRCVOIS(*), NBSDVOIS(*), LNRCVOIS(*), LNSDVOIS(*),
61 INTEGER I, IDEB, IDEB2, MSGOFF, MSGTYP,IAD_RECV(NSPMD),
62 . REQ_S(NSPMD), REQ_R(NSPMD),
63 . loc_proc, n, nn, nbirecv, irindex(nspmd), ii, index,
80 IF(nbrcvois(i)>0)
THEN
84 CALL spmd_irecv(wa(ideb2+1),len,it_spmd(i),msgtyp,req_r(nbirecv))
96 wa(ideb2+3*(n-1)+1) = x(1,nn)
97 wa(ideb2+3*(n-1)+2) = x(2,nn)
98 wa(ideb2+3*(n-1)+3) = x(3,nn)
100 CALL spmd_isend(wa(ideb2+1),len*3,it_spmd(i),msgtyp,req_s(i))
102 ideb2 = ideb2 + 3*len
108 CALL spmd_waitany(nbirecv,req_r,index)
112 DO n = 1, nbrcvois(i)
113 nn = lnrcvois(ideb+n)
114 x(1,nn) = wa(ideb2+3*(n-1))
115 x(2,nn) = wa(ideb2+3*(n-1)+1)
116 x(3,nn) = wa(ideb2+3*(n-1)+2)
121 IF(nbsdvois(i)>0)
THEN
122 CALL spmd_wait(req_s(i))
140 . LNRCVOIS,LNSDVOIS,LENCOM)
145#include "implicit_f.inc"
153#include "com01_c.inc"
158 INTEGER NBRCVOIS(*), NBSDVOIS(*), LNRCVOIS(*), LNSDVOIS(*),
160 my_real X(3,*), D(3,*), W(3,*)
165 INTEGER I, IDEB, IDEB2, MSGOFF, MSGTYP,IAD_RECV(NSPMD),
166 . REQ_S(NSPMD), REQ_R(NSPMD),
167 . LOC_PROC, N, NN, NBIRECV, IRINDEX(NSPMD), II, INDEX,
182 iad_recv(i) = ideb2+1
183 IF(nbrcvois(i)>0)
THEN
184 nbirecv = nbirecv + 1
187 CALL spmd_irecv(wa(ideb2+1),len,it_spmd(i),msgtyp,req_r(nbirecv))
200 wa(ideb2+9*(n-1)+2) = x(2,nn)
201 wa(ideb2+9*(n-1)+3) = x(3,nn)
202 wa(ideb2+9*(n-1)+4) = d(1,nn)
203 wa(ideb2+9*(n-1)+5) = d(2,nn)
204 wa(ideb2+9*(n-1)+6) = d(3,nn)
205 wa(ideb2+9*(n-1)+7) = w(1,nn)
206 wa(ideb2+9*(n-1)+8) = w(2,nn)
207 wa(ideb2+9*(n-1)+9) = w(3,nn)
209 CALL spmd_isend(wa(ideb2+1),len*9,it_spmd(i),msgtyp,req_s(i))
211 ideb2 = ideb2 + 9*len
217 CALL spmd_waitany(nbirecv,req_r,index)
221 DO n = 1, nbrcvois(i)
222 nn = lnrcvois(ideb+n)
223 x(1,nn) = wa(ideb2+9*(n-1))
224 x(2,nn) = wa(ideb2+9*(n-1)+1)
225 x(3,nn) = wa(ideb2+9*(n-1)+2)
226 d(1,nn) = wa(ideb2+9*(n-1)+3)
227 d(2,nn) = wa(ideb2+9*(n-1)+4)
228 d(3,nn) = wa(ideb2+9*(n-1)+5)
229 w(1,nn) = wa(ideb2+9*(n-1)+6)
230 w(2,nn) = wa(ideb2+9*(n-1)+7)
231 w(3,nn) = wa(ideb2+9*(n-1)+8)
236 IF(nbsdvois(i)>0)
THEN
237 CALL spmd_wait(req_s(i))
259 1 T ,VAL2 ,NERCVOIS,NESDVOIS,LERCVOIS,
265#include "implicit_f.inc"
273#include "com01_c.inc"
278 INTEGER NERCVOIS(*), NESDVOIS(*), LERCVOIS(*), LESDVOIS(*),
280 my_real T(*), VAL2(*)
285 INTEGER I, IDEB, IDEB2, MSGOFF, MSGTYP,IAD_RECV(NSPMD),
286 . REQ_S(NSPMD), REQ_R(NSPMD),
287 . LOC_PROC, N, NN, NBIRECV, IRINDEX(NSPMD), II, INDEX,
303 iad_recv(i) = ideb2+1
304 IF(nercvois(i)>0)
THEN
305 nbirecv = nbirecv + 1
308 CALL spmd_irecv(wa(ideb2+1),len,it_spmd(i),msgtyp,req_r(nbirecv))
319 nn = lesdvois(ideb+n)
320 wa(ideb2+2*(n-1)+1) = t(nn)
321 wa(ideb2+2*(n-1)+2) = val2(nn)
323 CALL spmd_isend(wa(ideb2+1),len*2,it_spmd(i),msgtyp,req_s(i))
325 ideb2 = ideb2 + 2*len
331 CALL spmd_waitany(nbirecv,req_r,index)
335 DO n = 1, nercvois(i)
336 nn = lercvois(ideb+n)
337 t(nn) = wa(ideb2+2*(n-1))
338 val2(nn) = wa(ideb2+2*(n-1)+1)
343 IF(nesdvois(i)>0)
THEN
344 CALL spmd_wait(req_s(i))
373 1 PHI ,NERCVOIS,NESDVOIS,LERCVOIS,
379#include "implicit_f.inc"
387#include "com01_c.inc"
392 INTEGER NERCVOIS(*), NESDVOIS(*), LERCVOIS(*), LESDVOIS(*),LENCOM
398 INTEGER I, IDEB, IDEB2, MSGOFF, MSGTYP,IAD_RECV(NSPMD),
399 . req_s(nspmd), req_r(nspmd),
400 . loc_proc, n, nn, nbirecv, irindex(nspmd), ii, index,
415 iad_recv(i) = ideb2+1
416 IF(nercvois(i)>0)
THEN
417 nbirecv = nbirecv + 1
420 CALL spmd_irecv(wa(ideb2+1),len,it_spmd(i),msgtyp,req_r(nbirecv))
431 nn = lesdvois(ideb+n)
432 wa(ideb2+n) = phi(nn)
434 CALL spmd_isend(wa(ideb2+1),len,it_spmd(i),msgtyp,req_s(i))
441 CALL spmd_waitany(nbirecv,req_r,index)
444 DO n = 1, nercvois(i)
445 nn = lercvois(ideb+n)
451 IF(nesdvois(i)>0)
THEN
452 CALL spmd_wait(req_s(i))
472 1 PHI ,NERCVOIS,NESDVOIS,LERCVOIS,
478#include "implicit_f.inc"
486#include "com01_c.inc"
487#include "com04_c.inc"
493 INTEGER NERCVOIS(*), NESDVOIS(*), LERCVOIS(*), LESDVOIS(*),LENCOM
494 my_real PHI(NUMELS+NSVOIS,6)
499 INTEGER I, IDEB, IDEB2, MSGOFF, MSGTYP,IAD_RECV(NSPMD),
500 . REQ_S(NSPMD), REQ_R(NSPMD),
501 . LOC_PROC, N, NN, NBIRECV, IRINDEX(NSPMD), II, INDEX,
517 iad_recv(i) = ideb2+1
518 IF(nercvois(i)>0)
THEN
519 nbirecv = nbirecv + 1
522 CALL spmd_irecv(wa(1,ideb2+1),len*6,it_spmd(i),msgtyp,req_r(nbirecv))
533 nn = lesdvois(ideb+n)
535 wa(2,ideb2+n) = phi(nn,2)
536 wa(3,ideb2+n) = phi(nn,3)
537 wa(4,ideb2+n) = phi(nn,4)
538 wa(5,ideb2+n) = phi(nn,5)
539 wa(6,ideb2+n) = phi(nn,6)
541 CALL spmd_isend(wa(1,ideb2+1),len*6,it_spmd(i),msgtyp,req_s(i))
548 CALL spmd_waitany(nbirecv,req_r,index)
551 DO n = 1, nercvois(i)
552 nn = lercvois(ideb+n)
553 phi(nn,1) = wa(1,ideb+n)
554 phi(nn,2) = wa(2,ideb+n)
555 phi(nn,3) = wa(3,ideb+n)
556 phi(nn,4) = wa(4,ideb+n)
557 phi(nn,5) = wa(5,ideb+n)
558 phi(nn,6) = wa(6,ideb+n)
563 IF(nesdvois(i)>0)
THEN
564 CALL spmd_wait(req_s(i))
584 1 PHI ,NERCVOIS,NESDVOIS,LERCVOIS,
590#include "implicit_f.inc"
598#include "com01_c.inc"
599#include "com04_c.inc"
605 INTEGER NERCVOIS(*), NESDVOIS(*), LERCVOIS(*), LESDVOIS(*), LENCOM
611 INTEGER I, IDEB, IDEB2, MSGOFF, MSGTYP,IAD_RECV(NSPMD),
612 . REQ_S(NSPMD), REQ_R(NSPMD),
613 . LOC_PROC, N, NN, , IRINDEX(NSPMD), II, INDEX,
629 iad_recv(i) = ideb2+1
630 IF(nercvois(i)>0)
THEN
631 nbirecv = nbirecv + 1
634 CALL spmd_irecv(wa(1,ideb2+1),len*4,it_spmd(i),msgtyp,req_r(nbirecv))
645 nn = lesdvois(ideb+n)
646 wa(1,ideb2+n) = phi(nn,1)
647 wa(2,ideb2+n) = phi(nn,2)
648 wa(3,ideb2+n) = phi(nn,3)
649 wa(4,ideb2+n) = phi(nn,4)
651 CALL spmd_isend(wa(1,ideb2+1),len*4,it_spmd(i),msgtyp,req_s(i))
658 CALL spmd_waitany(nbirecv,req_r,index)
661 DO n = 1, nercvois(i)
662 nn = lercvois(ideb+n)
663 phi(nn,1) = wa(1,ideb+n)
664 phi(nn,2) = wa(2,ideb+n)
665 phi(nn,3) = wa(3,ideb+n)
666 phi(nn,4) = wa(4,ideb+n)
671 IF(nesdvois(i)>0)
THEN
672 CALL spmd_wait(req_s(i))
693 1 PHI ,NERCVOIS,NESDVOIS,LERCVOIS,
699#include "implicit_f.inc"
707#include "com01_c.inc"
713 INTEGER NERCVOIS(*), NESDVOIS(*), LERCVOIS(*), LESDVOIS(*), LENCOM
719 INTEGER I, NDIM, IDEB, IDEB2, MSGOFF, MSGTYP,IAD_RECV(NSPMD),
720 . REQ_S(NSPMD), REQ_R(NSPMD),
721 . LOC_PROC, N, NN, NBIRECV, IRINDEX(NSPMD), II, INDEX,
737 iad_recv(i) = ideb2+1
738 IF(nercvois(i)>0)
THEN
739 nbirecv = nbirecv + 1
742 CALL spmd_irecv(wa(1,ideb2+1),len*dim,it_spmd(i),msgtyp,req_r(nbirecv))
753 nn = lesdvois(ideb+n)
755 wa(ndim,ideb2+n) = phi(dim * (nn - 1) + ndim)
758 CALL spmd_isend(wa(1,ideb2+1),len*dim,it_spmd(i),msgtyp,req_s(i))
765 CALL spmd_waitany(nbirecv,req_r,index)
768 DO n = 1, nercvois(i)
769 nn = lercvois(ideb+n)
771 phi(dim * (nn - 1) + ndim) = wa(ndim,ideb+n)
777 IF(nesdvois(i)>0)
THEN
778 CALL spmd_wait(req_s(i))
797 1 PHI ,NERCVOIS,NESDVOIS,LERCVOIS,LESDVOIS,
803#include "implicit_f.inc"
811#include "com01_c.inc"
812#include "com04_c.inc"
818 INTEGER NERCVOIS(*), NESDVOIS(*), LERCVOIS(*), LESDVOIS(*),
819 . PHI(+NSVOIS,8), LENCOM
824 INTEGER I, IDEB, IDEB2, MSGOFF, MSGTYP,IAD_RECV(NSPMD),
825 . REQ_S(NSPMD), REQ_R(NSPMD),
826 . LOC_PROC, N, NN, NBIRECV, IRINDEX(NSPMD), II, INDEX,
840 iad_recv(i) = ideb2+1
841 IF(nercvois(i)>0)
THEN
842 nbirecv = nbirecv + 1
846 s wa(1,ideb2+1),len*8,it_spmd(i),msgtyp,
858 nn = lesdvois(ideb+n)
859 wa(1,ideb2+n) = phi(nn,1)
860 wa(2,ideb2+n) = phi(nn,2)
861 wa(3,ideb2+n) = phi(nn,3)
862 wa(4,ideb2+n) = phi(nn,4)
863 wa(5,ideb2+n) = phi(nn,5)
864 wa(6,ideb2+n) = phi(nn,6)
865 wa(7,ideb2+n) = phi(nn,7)
866 wa(8,ideb2+n) = phi(nn,8)
870 s wa(1,ideb2+1),len*8,it_spmd(i),msgtyp,
879 CALL spmd_waitany(nbirecv,req_r,index)
882 DO n = 1, nercvois(i)
883 nn = lercvois(ideb+n)
884 phi(nn,1) = wa(1,ideb+n)
885 phi(nn,2) = wa(2,ideb+n)
886 phi(nn,3) = wa(3,ideb+n)
887 phi(nn,4) = wa(4,ideb+n)
888 phi(nn,5) = wa(5,ideb+n)
889 phi(nn,6) = wa(6,ideb+n)
890 phi(nn,7) = wa(7,ideb+n)
891 phi(nn,8) = wa(8,ideb+n)
896 IF(nesdvois(i)>0)
THEN
897 CALL spmd_wait(req_s(i))
917 1 PHI ,NERCVOIS,NESDVOIS,LERCVOIS,LESDVOIS,
923#include "implicit_f.inc"
931#include "com01_c.inc"
932#include "com04_c.inc"
938 INTEGER NERCVOIS(*), NESDVOIS(*), LERCVOIS(*), LESDVOIS(*),
939 . PHI(NUMELQ+NQVOIS,4), LENCOM
944 INTEGER I, IDEB, IDEB2, MSGOFF, MSGTYP,IAD_RECV(NSPMD),
945 . REQ_S(NSPMD), REQ_R(NSPMD),
946 . LOC_PROC, N, NN, NBIRECV, IRINDEX(NSPMD), II, INDEX,
960 iad_recv(i) = ideb2+1
961 IF(nercvois(i)>0)
THEN
962 nbirecv = nbirecv + 1
966 s wa(1,ideb2+1),len*4,it_spmd(i),msgtyp,
978 nn = lesdvois(ideb+n)
979 wa(1,ideb2+n) = phi(nn,1)
980 wa(2,ideb2+n) = phi(nn,2)
981 wa(3,ideb2+n) = phi(nn,3)
982 wa(4,ideb2+n) = phi(nn,4)
985 s wa(1,ideb2+1),len*4,it_spmd(i),msgtyp,
994 CALL spmd_waitany(nbirecv,req_r,index)
997 DO n = 1, nercvois(i)
998 nn = lercvois(ideb+n)
999 phi(nn,1) = wa(1,ideb+n)
1000 phi(nn,2) = wa(2,ideb+n)
1001 phi(nn,3) = wa(3,ideb+n)
1002 phi(nn,4) = wa(4,ideb+n)
1007 IF(nesdvois(i)>0)
THEN
1008 CALL spmd_wait(req_s(i))
1029 1 LBVOIS ,IPARG ,ELBUF_TAB,PM ,IXS,
1030 2 IXQ ,NERCVOIS,NESDVOIS,LERCVOIS,LESDVOIS,
1037 use element_mod ,
only : nixs,nixq
1041#include "implicit_f.inc"
1049#include
"com01_c.inc"
1050#include "com04_c.inc"
1051#include "task_c.inc"
1052#include "param_c.inc"
1056 INTEGER IPARG(NPARG,*),IXS(NIXS,*), IXQ(NIXQ,*),
1057 . nercvois(*), nesdvois(*), lercvois(*), lesdvois(*),
1059 my_real lbvois(6,*), pm(npropm,*)
1060 TYPE(elbuf_struct_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
1065 INTEGER I,II,JJ,IDEB,IDEB2,MSGOFF,MSGTYP,IAD_RECV(NSPMD),
1066 . REQ_S(NSPMD), REQ_R(NSPMD),
1067 . LOC_PROC, N, NN, NBIRECV, IRINDEX(NSPMD), INDEX,
1068 . LEN, ML, , KTY, KLT, MFT, IS,
1069 . KB1, KB2, KB3 ,KB4 ,KB10, KB11, KB12, KKB2,
1070 . G_PLA,G_RK,L_RE,L_TEMP,KK(6),K
1072 my_real WA(6*LENCOM)
1074 TYPE(G_BUFEL_) ,
POINTER :: GBUF
1075 TYPE(L_BUFEL_) ,
POINTER :: LBUF
1087 iad_recv(i) = ideb2+1
1088 IF(nercvois(i)>0)
THEN
1089 nbirecv = nbirecv + 1
1090 irindex(nbirecv) = i
1093 s wa(ideb2+1) , len, it_spmd(i) , msgtyp,
1108 nn = lesdvois(ideb+n)
1111 ml=nint(pm(19,ixs(1,nn)))
1113 ml=nint(pm(19,ixq(1,nn)))
1118 gbuf => elbuf_tab(ni)%GBUF
1119 lbuf => elbuf_tab(ni)%BUFLY(1)%LBUF(1,1,1)
1123 IF( (kty == 1.OR.kty == 2).AND.(nn<=klt+mft) .AND. nn>mft)
THEN
1124 g_pla = elbuf_tab(ni)%GBUF%G_PLA
1125 g_rk = elbuf_tab(ni)%GBUF%G_RK
1126 l_re = elbuf_tab(ni)%BUFLY(1)%L_RE
1127 l_temp= elbuf_tab(ni)%BUFLY(1)%L_TEMP
1134 wa(ii+1) =-(gbuf%SIG(kk(1)+is)+gbuf%SIG(kk(2)+is)+ gbuf%SIG(kk(3)+is))*third
1135 wa(ii+2) = gbuf%EINT(is)
1136 wa(ii+3) = gbuf%RHO(is)
1138 wa(ii+4) = gbuf%PLA(is)
1139 ELSEIF (g_rk > 0)
THEN
1140 wa(ii+4) = gbuf%RK(is)
1145 wa(ii+5) = lbuf%TEMP(is)
1150 wa(ii+6) = lbuf%RE(is)
1167 s wa(ideb2+1) ,len*6 ,it_spmd(i) , msgtyp,
1170 ideb2 = ideb2 + 6*len
1176 CALL spmd_waitany(nbirecv,req_r,index)
1180 DO n = 1, nercvois(i)
1182 nn = lercvois(ideb+n)-numels-numelq
1183 lbvois(1,nn) = wa(jj)
1184 lbvois(2,nn) = wa(jj+1)
1185 lbvois(3,nn) = wa(jj+2)
1186 lbvois(4,nn) = wa(jj+3)
1187 lbvois(5,nn) = wa(jj+4)
1188 lbvois(6,nn) = wa(jj+5)
1193 IF(nesdvois(i)>0)
THEN
1194 CALL spmd_wait(req_s(i))
1220#include "implicit_f.inc"
1228#include "com01_c.inc"
1229#include "task_c.inc"
1233 INTEGER IAD_ELEM(2,*), FR_ELEM(*), NALE(*),
1241 INTEGER MSGTYP,I,NOD,LOC_PROC,SIZ,J, L
1242 INTEGER IAD_SEND(NSPMD+1),IAD_RECV(NSPMD+1),REQ_R(NSPMD),REQ_S(NSPMD), MSGOFF
1243 my_real RBUF(SIZE*LENR), SBUF(SIZE*LENR)
1250 LOC_PROC = ispmd + 1
1255 siz = size*(iad_elem(1,i+1)-iad_elem(1,i))
1259 s rbuf(l),siz,it_spmd(i),msgtyp,
1269#include "vectorize.inc"
1270 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
1272 IF(iabs(nale(nod)) == 1)
THEN
1273 sbuf(l ) = wa(1,nod)
1274 sbuf(l+1) = wa(2,nod)
1275 sbuf(l+2) = wa(3,nod)
1276 sbuf(l+3) = wb(1,nod)
1277 sbuf(l+4) = wb(2,nod)
1278 sbuf(l+5) = wb(3,nod)
1286 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
1288 siz = iad_send(i+1)-iad_send(i)
1291 s sbuf(l),siz,it_spmd(i),msgtyp,
1299 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
1300 CALL spmd_wait(req_r(i))
1302#include "vectorize.inc"
1303 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
1305 IF(iabs(nale(nod)) == 1)
THEN
1306 wa(1,nod) = wa(1,nod) + rbuf(l )
1307 wa(2,nod) = wa(2,nod) + rbuf(l+1)
1308 wa(3,nod) = wa(3,nod) + rbuf(l+2)
1309 wb(1,nod) = wb(1,nod) + rbuf(l+3)
1310 wb(2,nod) = wb(2,nod) + rbuf(l+4)
1311 wb(3,nod) = wb(3,nod) + rbuf(l+5)
1321 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
1322 .
CALL spmd_wait(req_s(i))
1342 1 FSKY ,FSKYV ,IAD_ELEM,FR_ELEM,NALE,
1343 2 ADDCNE,PROCNE,FR_NBCC ,SIZE ,LENR,
1353#include "implicit_f.inc"
1361#include "com01_c.inc"
1362#include "task_c.inc"
1363#include "parit_c.inc"
1367 INTEGER IAD_ELEM(2,*),FR_ELEM(*),FR_NBCC(2,*),NALE(*),ADDCNE(*), PROCNE(*),SIZE, LENR ,LENS
1368 my_real fsky(8,lsky), fskyv(lsky,8)
1373 INTEGER MSGTYP,I,NOD,LOC_PROC,SIZ,J,L,CC,NBIRECV,
1375 . IAD_SEND(NSPMD+1),IAD_RECV(NSPMD+1),
1376 . REQ_R(NSPMD),REQ_S(NSPMD),IRINDEX(NSPMD),MSGOFF
1377 my_real RBUF(SIZE*LENR+1), SBUF(SIZE*LENS)
1384 LOC_PROC = ispmd + 1
1391 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
1393 siz = size*fr_nbcc(2,i)
1394 nbirecv = nbirecv + 1
1395 irindex(nbirecv) = i
1397 s rbuf(l),siz,it_spmd(i),msgtyp,
1407 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
1409 IF(iabs(nale(nod)) == 1)
THEN
1410 IF(ivector == 1)
THEN
1412 DO cc = addcne(nod),addcne(nod+1)-1
1413 IF(procne(cc) == loc_proc)
THEN
1414 sbuf(l) = fsky(1,cc)
1415 sbuf(l+1) = fsky(2,cc)
1416 sbuf(l+2) = fsky(3,cc)
1417 sbuf(l+3) = fsky(4,cc)
1418 sbuf(l+4) = fsky(5,cc)
1419 sbuf(l+5) = fsky(6,cc)
1430 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
1431 siz = iad_send(i+1)-iad_send(i)
1435 s sbuf(l),siz,it_spmd(i),msgtyp,
1443 CALL spmd_waitany(nbirecv,req_r,index)
1446 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
1448 IF(iabs(nale(nod)) == 1)
THEN
1449 IF(ivector == 1)
THEN
1451 DO cc = addcne(nod), addcne(nod+1)-1
1452 IF(procne(cc) == i)
THEN
1453 fsky(1,cc) = rbuf(l)
1454 fsky(2,cc) = rbuf(l+1)
1455 fsky(3,cc) = rbuf(l+2)
1456 fsky(4,cc) = rbuf(l+3)
1457 fsky(5,cc) = rbuf(l+4)
1458 fsky(6,cc) = rbuf(l+5)
1470 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
1471 siz = iad_send(i+1)-iad_send(i)
1472 CALL spmd_wait(req_s(i))
1555#include "implicit_f.inc"
1563#include "com01_c.inc"
1564#include "task_c.inc"
1568 INTEGER IAD_ELEM(2,*), FR_ELEM(*), SIZE, LENR, NTAG(*)
1573 INTEGER MSGTYP,I,NOD,LOC_PROC,NB_NOD,
1575 . IAD_SEND(NSPMD+1),IAD_RECV(NSPMD+1),
1576 . REQ_R(NSPMD),REQ_S(NSPMD),
1577 . RBUF(LENR), SBUF(LENR) ,MSGOFF
1584 LOC_PROC = ispmd + 1
1589 siz = iad_elem(1,i+1)-iad_elem(1,i)
1593 s rbuf(l),siz,it_spmd(i),msgtyp,
1603#include "vectorize.inc"
1604 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
1606 IF(ntag(nod)>0)
THEN
1608 sbuf(l) = ntag(nod)-1
1618 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
1620 siz = iad_send(i+1)-iad_send(i)
1623 s sbuf(l),siz,it_spmd(i),msgtyp,
1631 nb_nod = iad_elem(1,i+1)-iad_elem(1,i)
1633 CALL spmd_wait(req_r(i))
1635#include "vectorize.inc"
1636 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
1638 ntag(nod) = ntag(nod)+rbuf(l)
1645 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
1646 .
CALL spmd_wait(req_s(i))
1675#include "implicit_f.inc"
1683#include "com01_c.inc"
1684#include "task_c.inc"
1688 INTEGER NPSEGCOM(*), LSEGCOM(*), FLAG, SIZE
1689 TYPE(t_segvar) :: SEGVAR
1694 INTEGER I, IDEB, IDEB2, MSGOFF, MSGTYP,IAD_RECV(NSPMD),
1695 . REQ_R(NSPMD), IRINDEX(NSPMD),
1696 . LOC_PROC, N, KK, NN, NBIRECV, II, INDEX, LEN
1698 my_real WA(SIZE*ALE%GLOBAL%NVCONV)
1714 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_rho)
THEN
1715 wa(ale%GLOBAL%NVCONV*(n-1)+nn) = segvar%RHO(kk)
1719 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_eint)
THEN
1720 wa(ale%GLOBAL%NVCONV*(n-1)+nn) = segvar%EINT(kk)
1724 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_rk)
THEN
1725 wa(ale%GLOBAL%NVCONV*(n-1)+nn) = segvar%RK(kk)
1729 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_re)
THEN
1730 wa(ale%GLOBAL%NVCONV*(n-1)+nn) = segvar%RE(kk)
1734 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_uvar)
THEN
1735 wa(ale%GLOBAL%NVCONV*(n-1)+nn) = segvar%UVAR(kk)
1740 s wa ,len*ale%GLOBAL%NVCONV,it_spmd(1),msgtyp)
1748 iad_recv(i) = ideb+1
1749 IF(npsegcom(i)>0)
THEN
1750 nbirecv = nbirecv + 1
1751 irindex(nbirecv) = i
1752 len = ale%GLOBAL%NVCONV*npsegcom(i)
1754 s wa(ideb+1),len,it_spmd(i),msgtyp,
1762 CALL spmd_waitany(nbirecv,req_r,index)
1764 ideb2 = iad_recv(i)-1
1765 ideb = ideb2 / ale%GLOBAL%NVCONV
1766 DO n = 1, npsegcom(i)
1767 kk = lsegcom(ideb+n)
1770 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_rho)
THEN
1771 segvar%RHO(kk) = wa(ideb2+ale%GLOBAL%NVCONV*(n-1)+nn)
1775 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_eint)
THEN
1776 segvar%EINT(kk) = wa(ideb2+ale%GLOBAL%NVCONV*(n-1)+nn)
1780 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_rk)
THEN
1781 segvar%RK(kk) = wa(ideb2+ale%GLOBAL%NVCONV*(n-1)+nn)
1785 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_re)
THEN
1786 segvar%RE(kk) = wa(ideb2+ale%GLOBAL%NVCONV*(n-1)+nn)
1790 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_uvar)
THEN
1791 segvar%UVAR(kk) = wa(ideb2+ale%GLOBAL%NVCONV*(n-1)+nn)
1807 s wa,len*ale%GLOBAL%NVCONV,it_spmd(1),msgtyp)
1812 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_rho)
THEN
1813 segvar%RHO(kk) = wa(ale%GLOBAL%NVCONV*(n-1)+nn)
1817 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_eint)
THEN
1818 segvar%EINT(kk) = wa(ale%GLOBAL%NVCONV*(n-1)+nn)
1822 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_rk)
THEN
1823 segvar%RK(kk) = wa(ale%GLOBAL%NVCONV*(n-1)+nn)
1827 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_re)
THEN
1828 segvar%RE(kk) = wa(ale%GLOBAL%NVCONV*(n-1)+nn)
1832 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_uvar)
THEN
1833 segvar%UVAR(kk) = wa(ale%GLOBAL%NVCONV*(n-1)+nn)
1846 kk = lsegcom(ideb+n)
1849 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_rho)
THEN
1850 wa(ale%GLOBAL%NVCONV*(n-1)+nn) = segvar%RHO(kk)
1854 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_eint)
THEN
1855 wa(ale%GLOBAL%NVCONV*(n-1)+nn) = segvar%EINT(kk)
1859 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_rk)
THEN
1860 wa(ale%GLOBAL%NVCONV*(n-1)+nn) = segvar%RK(kk)
1864 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_re)
THEN
1865 wa(ale%GLOBAL%NVCONV*(n-1)+nn) = segvar%RE(kk)
1869 IF(nn <= ale%GLOBAL%NVCONV .AND. segvar%has_uvar)
THEN
1870 wa(ale%GLOBAL%NVCONV*(n-1)+nn) = segvar%UVAR(kk)
1876 s wa ,len*ale%GLOBAL%NVCONV,it_spmd(i),msgtyp)
1904#include "implicit_f.inc"
1912#include "com01_c.inc"
1913#include "com04_c.inc"
1914#include "task_c.inc"
1915#include "param_c.inc"
1919 INTEGER IAD_ELEM(2,*), FR_ELEM(*), ISIZXV
1921 TYPE(t_ebcs_tab),
INTENT(IN) :: EBCS_TAB
1926 INTEGER MSGTYP,I, NOD,LOC_PROC, MSGOFF,
1927 . SIZ, L, E_LEN, ICOMV, , TYP, J
1928 my_real WA(3*ISIZXV)
1934 LOC_PROC = ispmd + 1
1940 typ =ebcs_tab%tab(i)%poly%type
1941 IF(typ == 4.OR.typ == 5) icomv = 1
1944 IF(icomv == 0)
RETURN
1949#include "vectorize.inc"
1950 DO j=iad_elem(2,i),iad_elem(1,i+1)-1
1964 IF(iad_elem(1,i+1)-iad_elem(2,i)>0)
THEN
1966 siz = e_len*(iad_elem(1,i+1)-iad_elem(2,i))
1968 s wa(l),siz,it_spmd(i),msgtyp)
1977 IF(icomv == 0)
RETURN
1979 siz = e_len*(iad_elem(1,2)-iad_elem(2,1))
1984 s wa,siz,it_spmd(1),msgtyp)
1985#include "vectorize.inc"
1986 DO j=iad_elem(2,1),iad_elem(1,2)-1
2015 1 LBVOIS ,IPARG ,ELBUF_TAB ,PM ,IXS ,
2016 2 IXQ ,NERCVOIS ,NESDVOIS ,LERCVOIS ,LESDVOIS,
2017 3 LENCOM ,IPM ,BUFMAT)
2023 USE multimat_param_mod ,
ONLY : m51_n0phas, m51_nvphas, m51_iflg6_size
2024 use element_mod ,
only : nixs,nixq
2028#include "implicit_f.inc"
2036#include "com01_c.inc"
2037#include "com04_c.inc"
2038#include "task_c.inc"
2039#include "param_c.inc"
2043 TYPE(elbuf_struct_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
2045 INTEGER :: IPARG(NPARG,*),IXS(NIXS,*), IXQ(NIXQ,*),
2046 . NERCVOIS(*), NESDVOIS(*), LERCVOIS(*), LESDVOIS(*),
2047 . lencom, ipm(npropmi,*)
2048 my_real :: lbvois(m51_iflg6_size,*), pm(npropm,*), bufmat(*)
2059,IMAT,IADBUF,IFLG,,ITRIMAT,KK,KJ(6),K
2063 my_real :: WA(M51_IFLG6_SIZE*LENCOM), ELBUF(10000)
2065 TYPE(G_BUFEL_) ,
POINTER :: GBUF
2066 TYPE(L_BUFEL_) ,
POINTER :: LBUF
2067 TYPE(BUF_MAT_) ,
POINTER :: MBUF
2077 iad_recv(i) = ideb2+
2078 IF(nercvois(i)>0)
THEN
2079 nbirecv = nbirecv + 1
2080 irindex(nbirecv) = i
2081 len = m51_iflg6_size*nercvois(i)
2083 s wa(ideb2+1) , len , it_spmd(i) , msgtyp,
2097 ii = ideb2+m51_iflg6_size*(n-1)
2098 nn = lesdvois(ideb+n)
2100 ml = nint(pm(19,ixs(1,nn)))
2103 ml = nint(pm(19,ixq(1,nn)))
2106 iadbuf = ipm(7,imat)
2108 IF(ml==51)iflg = nint(bufmat(iadbuf-1+31))
2112 gbuf => elbuf_tab(ni)%GBUF
2113 lbuf => elbuf_tab(ni)%BUFLY(1)%LBUF(1,1,1)
2114 mbuf => elbuf_tab(ni)%BUFLY(1)%MAT(1,1,1)
2115 lbuf => elbuf_tab(ni)%BUFLY(1)%LBUF(1,1,1)
2119 IF( (kty == 1.OR.kty == 2).AND.(nn<=klt+mft) .AND. nn>mft)
THEN
2120 l_temp = elbuf_tab(ni)%BUFLY(1)%L_TEMP
2126 wa(ii+1) = -(gbuf%SIG(kj(1)+is)+gbuf%SIG(kj(2)+is)+gbuf%SIG(kj(3)+is))*third
2127 wa(ii+2) = gbuf%EINT(is)
2128 wa(ii+3) = gbuf%RHO(is)
2130 wa(ii+4) = lbuf%TEMP(is)
2134 wa(ii+5) = lbuf%SSP(is)
2136 IF(elbuf_tab(ni)%BUFLY(1)%L_PLA > 0)wa(ii+6) = lbuf%PLA(is)
2141 kk = m51_n0phas + (itrimat-1)*m51_nvphas
2142 iadbuf=18 ; wa(ii+07) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2143 iadbuf=1 ; wa(ii+08) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2144 iadbuf=8 ; wa(ii+09) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2145 iadbuf=9 ; wa(ii+10) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2146 iadbuf=16 ; wa(ii+11) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2147 iadbuf=14 ; wa(ii+12) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2148 iadbuf=15 ; wa(ii+13) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2150 kk = m51_n0phas + (itrimat-1)*m51_nvphas
2151 iadbuf=18 ; wa(ii+14) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2152 iadbuf=1 ; wa(ii+15) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2153 iadbuf=8 ; wa(ii+16) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2154 iadbuf=9 ; wa(ii+17) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2155 iadbuf=16 ; wa(ii+18) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2156 iadbuf=14 ; wa(ii+19) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2157 iadbuf=15 ; wa(ii+20) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2159 kk = m51_n0phas + (itrimat-1)*m51_nvphas
2160 iadbuf=18 ; wa(ii+21) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2161 iadbuf=1 ; wa(ii+22) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2162 iadbuf=8 ; wa(ii+23) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2163 iadbuf=9 ; wa(ii+24) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2164 iadbuf=16 ; wa(ii+25) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2165 iadbuf=14 ; wa(ii+26) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2166 iadbuf=15 ; wa(ii+27) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2168 kk = m51_n0phas + (itrimat-1)*m51_nvphas
2169 iadbuf=18 ; wa(ii+28) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2170 iadbuf=1 ; wa(ii+29) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2171 iadbuf=8 ; wa(ii+30) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2172 iadbuf=9 ; wa(ii+31) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2173 iadbuf=16 ; wa(ii+32) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2174 iadbuf=14 ; wa(ii+33) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2175 iadbuf=15 ; wa(ii+34) = mbuf%VAR(nelg*(iadbuf+kk-1)+is)
2177 wa(ii+35) = mbuf%VAR(nelg*3+is)
2179 iadbuf = ipm(7,imat)
2180 wa(ii+37) = 51 + 100*nint(bufmat(iadbuf-1+276+4))
2181 . + 1000*nint(bufmat(iadbuf-1+276+3))
2182 . + 10000*nint(bufmat(iadbuf-1+276+2))
2183 . + 100000*nint(bufmat(iadbuf-1+276+1))
2190 wa(ii+1:ii+m51_iflg6_size) = zero
2196 s wa(ideb2+1),len*m51_iflg6_size,it_spmd(i),msgtyp,
2199 ideb2 = ideb2 + m51_iflg6_size*len
2204 CALL spmd_waitany(nbirecv,req_r,index)
2207 ideb = (ideb2-1)/m51_iflg6_size
2208 DO n = 1, nercvois(i)
2209 jj = ideb2+m51_iflg6_size*(n-1)
2210 nn = lercvois(ideb+n)-numels-numelq
2211 lbvois(1:m51_iflg6_size,nn) = wa(jj+0:jj+m51_iflg6_size-1)
2215 IF(nesdvois(i)>0)
THEN
2216 CALL spmd_wait(req_s(i))