40 1 NSV ,NSN ,X ,V ,MS ,
41 2 BMINMAL ,WEIGHT ,STIFN ,NIN ,ISENDTO ,
42 3 IRCVFROM ,IAD_ELEM ,FR_ELEM ,NSNR ,IGAP ,
43 4 GAP_S ,ITAB ,KINET ,IFQ ,INACTI ,
44 5 NSNFIOLD ,INTTH ,IELES ,AREAS ,TEMP ,
45 6 NUM_IMP ,NODNX_SMS ,GAP_S_L ,ITYP ,IRTLM ,
46 7 I24_TIME_S,I24_FRFI ,I24_PENE_OLD,I24_STIF_OLD ,
47 8 NBINFLG ,ILEV ,I24_ICONT_I,INTFRIC,IPARTFRICS ,
48 9 ITIED ,IVIS2 , IF_ADH ,LEDGE , NEDGE ,
49 A LNDEDGE , STFM , NEDGE_LOCAL,GAPE , GAP_E_L ,
50 B STFE ,EDG_BISECTOR,VTX_BISECTOR,ADMSR,IRECT ,
51 D EBINFLG ,MVOISIN ,IEDGE , ICODT ,ISKEW ,
52 E IPARTFRIC_E,E2S_NOD_NORMAL,ISTIF_MSDT,STIFMSDT_S ,
54 F IFSUB_CAREA ,INTAREAN)
65#include "implicit_f.inc"
76#include "timeri_c.inc"
78#include "i25edge_c.inc"
83 INTEGER NIN, NSN, IFQ, INACTI, IGAP,INTTH,NSNR,INTFRIC,
85 . NSNFIOLD(*), NSV(*), WEIGHT(*),
86 . ISENDTO(NINTER+1,*), IRCVFROM(NINTER+1,*),
87 . IAD_ELEM(2,*), FR_ELEM(*), ITAB(*), KINET(*),
88 . IELES(*),NUM_IMP, NODNX_SMS(*),IRTLM(*),ITYP,
89 . NBINFLG(*),ILEV,I24_ICONT_I(*),IPARTFRICS(*),IF_ADH(*),
91 INTEGER :: NEDGE, LNDEDGE, LEDGE(LNDEDGE,NEDGE)
92 INTEGER :: ADMSR(4,*),IRECT(4,*)
93 INTEGER,
INTENT(IN) :: EBINFLG(*)
94 INTEGER,
INTENT(IN) :: NEDGE_LOCAL
95 INTEGER,
INTENT(IN) :: MVOISIN(4,*)
96 INTEGER,
INTENT(IN) :: IEDGE
97 INTEGER,
INTENT(IN) :: ICODT(*)
98 INTEGER,
INTENT(IN) :: ISKEW(*)
99 INTEGER,
INTENT(IN) :: ISTIF_MSDT, IFSUB_CAREA
104 . X(3,*), V(3,*), MS(*), BMINMAL(*), STIFN(*), GAP_S(*),
105 . AREAS(*),TEMP(*),GAP_S_L(*),I24_TIME_S(*),I24_FRFI(6,*),
106 . i24_pene_old(5,*),i24_stif_old(2,*),stfm(*),
110 real*4 edg_bisector(3,4,*),vtx_bisector(3,2,*),e2s_nod_normal(3,*)
111 my_real ,
INTENT(IN) :: stifmsdt_s(nsn), stifmsdt_edg(nedge)
112 my_real ,
INTENT(IN) :: intarean(numnod
118 INTEGER MSGTYP,INFO,I,NOD, DT_CST, LOC_PROC,P,IDEB,
119 . SIZ,J, L, BUFSIZ, LEN, NB, IERROR1, IAD,
120 . STATUS(MPI_STATUS_SIZE),IERROR,REQ_SB(NSPMD),
121 . REQ_RB(),KK,NBIRECV,IRINDEXI(NSPMD),
122 . REQ_RD(NSPMD),REQ_SD(NSPMD),(NSPMD),
123 . REQ_RC(NSPMD),REQ_SC(NSPMD),
124 . INDEXI,ISINDEXI(NSPMD),INDEX(NUMNOD),
125 . nbox2(2,nspmd),nbox(2,nspmd),
126 . nbx,nby,nbz,ix,iy,iz,
127 . msgoff, msgoff2, msgoff3, msgoff4, msgoff5,msgoff6,
129 . rsiz, isiz, l2, req_sd3(nspmd),req_rd2(nspmd),
130 . req_sd4(nspmd),req_rd4(nspmd),
131 . req_sd5(nspmd),req_rd5(nspmd),
132 . len2, rshift, ishift, nd, jdeb, q, nbb,
133 . nb_edge, ideb_edge,
136 my_real:: xmins,ymins,zmins
137 my_real:: xmaxs,ymaxs,zmaxs
138 INTEGER :: N1,N2 ,NN1,NN2
139 INTEGER :: IX1,IX2,IY1,IY2,IZ1,IZ2
140 INTEGER :: IE,JE,I1,I2
155 . xmaxb,ymaxb,zmaxb,xminb,yminb,zminb
157 TYPE(real_pointer),
DIMENSION(NSPMD) :: RBUF
158 TYPE(int_pointer) ,
DIMENSION(NSPMD) ::
159 TYPE(int_pointer) ,
DIMENSION(NSPMD) :: IBUF_EDGE
160 TYPE(real_pointer),
DIMENSION(NSPMD) :: RBUF_EDGE
162 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITAGNSNFI
163 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDEX_EDGE
165 INTEGER :: NBIRECV_NODE,
166 INTEGER :: IAM,JAM,IM,M1,M2
183 IF(inacti==5.OR.inacti==6.OR.inacti==7.OR.ifq>0
184 . .OR.num_imp>0.OR.itied/=0.OR.ityp==23.OR.ityp==24
187 nsnfiold(p) =
nsnfi(nin)%P(p)
199 IF(iedge /= 0)
nsnfie(nin)%P(p) = 0
202 IF(ircvfrom(nin,loc_proc)==0.AND.
203 . isendto(nin,loc_proc)==0)
RETURN
205 bminma(1,loc_proc) = bminmal(1)
206 bminma(2,loc_proc) = bminmal(2)
207 bminma(3,loc_proc) = bminmal(3)
208 bminma(4,loc_proc) = bminmal(4)
209 bminma(5,loc_proc) = bminmal(5)
210 bminma(6,loc_proc) = bminmal(6)
214 IF(ircvfrom(nin,loc_proc)/=0)
THEN
216 IF(isendto(nin,p)/=0)
THEN
222 . it_spmd(p),msgtyp,req_sc
225 . bminma(1,loc_proc),6 ,it_spmd(p),msgtyp,req_sb(p))
233 IF(isendto(nin,loc_proc)/=0)
THEN
236 IF(ircvfrom(nin,p)/=0)
THEN
244 . it_spmd(p),msgtyp,req_rc(nbirecv))
247 . bminma(1,p) ,6 ,it_spmd(p),msgtyp,
267 IF(igap==1 .OR. igap==2)
THEN
281 IF(ityp==25.AND.ivis2==-1 )
THEN
282 IF(intth==0) rsiz = rsiz + 1
287 IF(intfric > 0 )
THEN
292 IF(istif_msdt > 0) rsiz = rsiz + 1
294 IF(ifsub_carea > 0) rsiz = rsiz + 1
300 ELSEIF(idtmins_int/=0)
THEN
309 IF (ilev==2) isiz = isiz + 1
318 IF (ilev==2) isiz = isiz + 1
321 req_sd4(1:nspmd) = mpi_request_null
322 req_sd5(1:nspmd) = mpi_request_null
323 req_rd(1:nspmd) = mpi_request_null
324 req_rd2(1:nspmd) = mpi_request_null
325 req_rd4(1:nspmd) = mpi_request_null
326 req_rd5(1:nspmd) = mpi_request_null
332 ALLOCATE(itagnsnfi(numnod),stat=ierror)
333 itagnsnfi(1:numnod) = 0
334 ALLOCATE(index_edge(nedge),stat=ierror)
335 index_edge(1:nedge) = 0
338 IF(isendto(nin,loc_proc)/=0)
THEN
340 CALL spmd_waitany(nbirecv,req_rb,indexi)
342 CALL spmd_wait(req_rc(indexi))
344 DO j = iad_elem(1,p), iad_elem(1,p+1)-1
347 weight(nod) = weight(nod)*(-1)
362 IF(weight(nod)==1)
THEN
363 IF(stifn(i)>zero)
THEN
364 IF(ityp==25.AND.irtlm(4*(i-1)+4)==p)
THEN
367 ELSEIF(itied/=0.AND.ityp==7.AND.
candf_si(nin)%P(i)/=0)
THEN
371 IF(x(1,nod) < xminb) cycle
372 IF(x(1,nod) > xmaxb) cycle
373 IF(x(2,nod) < yminb) cycle
374 IF(x(2,nod) > ymaxb) cycle
375 IF(x(3,nod) < zminb) cycle
376 IF(x(3,nod) > zmaxb) cycle
377 ix=int(nbx*(x(1,nod)-xminb)/(xmaxb-xminb))
378 IF(ix >= 0 .AND. ix <= nbx)
THEN
379 iy=int(nby*(x(2,nod)-yminb)/(ymaxb
380 IF(iy >= 0 .AND. iy <= nby)
THEN
381 iz=int(nbz*(x(3,nod)-zminb)/(zmaxb-zminb))
382 IF(iz >= 0 .AND. iz <= nbz)
THEN
395 DO j = iad_elem(1,p), iad_elem(1,p+1)-1
398 weight(nod) = weight(nod)*(-1)
410 assert(ledge(9,i) == 1)
418 IF(ledge(1,i) > 0)
THEN
420 stf = stfm(ledge(1,i))
421 ELSEIF (ledge(3,i) > 0)
THEN
424 IF(mvoisin(ledge(4,i),ledge(3,i)) == 0) stf = 0
430 debug_e2e(ledge(8,i) == d_es,p-1)
431 debug_e2e(ledge(8,i) == d_es,stf)
432 debug_e2e(ledge(8,i) == d_es,ledge(7,i))
435 IF( stf > zero .AND. ledge(7,i) >= 0)
THEN
438 xmins =
min(x(1,n1),x(1,n2))
439 ymins =
min(x(2,n1),x(2,n2))
440 zmins =
min(x(3,n1),x(3,n2))
441 xmaxs =
max(x(1,n1),x(1,n2))
442 ymaxs =
max(x(2,n1),x(2,n2))
443 zmaxs =
max(x(3,n1),x(3,n2))
445 debug_e2e(ledge(8,i) == d_es, xmins)
446 debug_e2e(ledge(8,i) == d_es, ymins)
447 debug_e2e(ledge(8,i) == d_es, zmins)
448 debug_e2e(ledge(8,i) == d_es, xmaxs)
449 debug_e2e(ledge(8,i) == d_es, ymaxs)
450 debug_e2e(ledge(8,i) == d_es, zmaxs)
452 ix1=int(nbx*(xmins-xminb)/dx)
453 ix2=int(nbx*(xmaxs-xminb)/dx)
455 IF(ix2>=0.AND.ix1<=nbx)
THEN
456 iy1=int(nby*(ymins-yminb)/dy)
457 iy2=int(nby*(ymaxs-yminb)/dy)
459 IF(iy2>=0.AND.iy1<=nby)
THEN
460 iz1=int(nbz*(zmins-zminb)/dz)
461 iz2=int(nbz*(zmaxs-zminb)/dz)
463 IF(iz2>=0.AND.iz1<=nbz)
THEN
474 nb_edge = nb_edge + 1
475 index_edge(nb_edge) = i
476 debug_e2e(ledge(8,i)==d_es,nb_edge)
495 jdeb = jdeb +
nsnsi(nin)%P(q)
497 nbb =
nsnsi(nin)%P(p)
499 nd =
nsvsi(nin)%P(jdeb+j)
508 CALL spmd_isend(nbox(1,p),2,it_spmd(p),msgtyp,req_sd(p))
512 IF( nb_edge > 0)
THEN
513 ALLOCATE(ibuf_edge(p)%P(e_ibuf_size*nb_edge))
514 ALLOCATE(rbuf_edge(p)%P(e_rbuf_size*nb_edge))
521 ibuf_edge(p)%p(e_global_id + l) = ledge(8,i)
522 ibuf_edge(p)%p(e_left_seg + l) = ledge(1,i)
523 ibuf_edge(p)%p(e_left_id + l) = ledge(2,i)
524 ibuf_edge(p)%p(e_right_seg + l) = ledge(3,i)
525 ibuf_edge(p)%p(e_right_id + l) = ledge(4,i)
526 ibuf_edge(p)%p(e_node1_id + l) = ledge(5,i)
527 ibuf_edge(p)%p(e_node2_id + l) = ledge(6,i)
528 ibuf_edge(p)%p(e_type + l) = ledge(7,i)
530 ibuf_edge(p)%p(e_node1_globid + l) = itab((ledge(5,i)))
531 ibuf_edge(p)%p(e_node2_globid + l) = itab((ledge(6,i)))
532 ibuf_edge(p)%p(e_local_id + l) = i
534 ibuf_edge(p)%p(e_ebinflg + l) = ebinflg(i)
536 ibuf_edge(p)%p(e_ebinflg + l) = 0
543 ibuf_edge(p)%p(e_im + l) = im
544 IF(idtmins /= 0)
THEN
545 IF(idtmins/=2 .AND. idtmins_int == 0)
THEN
546 ELSEIF(idtmins==2)
THEN
547 ibuf_edge(p)%p(e_nodnx1 + l) = nodnx_sms(m1)
548 ibuf_edge(p)%p(e_nodams1 + l) = m1
549 ibuf_edge(p)%p(e_nodnx2 + l) = nodnx_sms(m2)
550 ibuf_edge(p)%p(e_nodams2 + l) = m2
552 ibuf_edge(p)%p(e_nodnx1 + l) = 0
553 ibuf_edge(p)%p(e_nodams1 + l) = m1
554 ibuf_edge(p)%p(e_nodnx2 + l) = 0
555 ibuf_edge(p)%p(e_nodams2 + l) = m2
557 assert(nodnx_sms(m1) >=0)
558 assert(nodnx_sms(m2) >=0)
559 debug_e2e(nodnx_sms(m1) < 0,nodnx_sms(m1))
560 debug_e2e(nodnx_sms(m2) < 0,nodnx_sms(m2))
563 ibuf_edge(p)%p(e_ipartfric_e + l) = ipartfric_e(i)
565 ibuf_edge(p)%p(e_ipartfric_e + l) = 0
573 rbuf_edge(p)%p(e_x1+ l) = x(1,(ledge(5,i)))
574 rbuf_edge(p)%p(e_y1+ l) = x(2,(ledge(5,i))
575 rbuf_edge(p)%p(e_z1+ l) = x(3,(ledge(5,i)))
576 rbuf_edge(p)%p(e_x2+ l) = x(1,(ledge(6,i)))
577 rbuf_edge(p)%p(e_y2+ l) = x(2,(ledge(6,i)))
578 rbuf_edge(p)%p(e_z2+ l) = x(3,(ledge(6,i)))
579 rbuf_edge(p)%p(e_vx1+ l) = v(1,(ledge(5,i)))
580 rbuf_edge(p)%p(e_vy1+ l) = v(2,(ledge(5,i)))
581 rbuf_edge(p)%p(e_vz1+ l) = v(3,(ledge(5,i)))
582 rbuf_edge(p)%p(e_vx2+ l) = v(1,(ledge(6,i)))
583 rbuf_edge(p)%p(e_vy2+ l) = v(2,(ledge(6,i)))
584 rbuf_edge(p)%p(e_vz2+ l) = v(3,(ledge(6,i)))
585 rbuf_edge(p)%p(e_ms1+ l) = ms((ledge(5,i)))
586 rbuf_edge(p)%p(e_ms2+ l) = ms((ledge(6,i)))
587 rbuf_edge(p)%p(e_gap+ l) = gape(i)
589 rbuf_edge(p)%p(e_gapl+ l) = gap_e_l(i)
591 rbuf_edge(p)%p(e_gapl+ l) = 0
593 assert(not(isnan( rbuf_edge(p)%p(e_gapl+ l))))
596 rbuf_edge(p)%p(e_stife+ l) = stfe(i)
597 assert(not(isnan(stfe(i))))
612 nn2 = admsr(mod(je,4)+1,ie)
615 rbuf_edge(p)%p(l2:l2+2) = edg_bisector(1:3,je,ie)
618 rbuf_edge(p)%p(l2:l2+2) = vtx_bisector(1:3,1,i1)
621 rbuf_edge(p)%p(l2:l2+2) = vtx_bisector(1:3,2,i1)
624 rbuf_edge(p)%p(l2:l2+2) = vtx_bisector(1:3,1,i2)
627 rbuf_edge(p)%p(l2:l2+2) = vtx_bisector(1:3,2,i2)
630 rbuf_edge(p)%p(l2:l2+2) = e2s_nod_normal(1:3,nn1)
633 rbuf_edge(p)%p(l2:l2+2) = e2s_nod_normal(1:3,nn2)
635 IF(istif_msdt > 0) rbuf_edge(p)%p(e_stife_msdt_fi+ l) = stifmsdt_edg(i)
648 ALLOCATE(rbuf(p)%P(rsiz*nb),stat=ierror)
649 ALLOCATE(ibuf(p)%P(isiz*nb),stat=ierror)
653#include "vectorize.inc"
657 rbuf(p)%p(l+1) = x(1,nod)
658 rbuf(p)%p(l+2) = x(2,nod)
659 rbuf(p)%p(l+3) = x(3,nod)
660 rbuf(p)%p(l+4) = v(1,nod)
661 rbuf(p)%p(l+5) = v(2,nod)
662 rbuf(p)%p(l+6) = v(3,nod)
663 rbuf(p)%p(l+7) = ms(nod)
664 rbuf(p)%p(l+8) = stifn(i)
666 ibuf(p)%p(l2+2) = itab(nod)
667 ibuf(p)%p(l2+3) = kinet(nod)
684#include "vectorize.inc"
688 ibuf(p)%p(l+ishift+0)= icodt(nod)
689 ibuf(p)%p(l+ishift+1)= iskew(nod)
701 IF(igap==1 .OR. igap==2)
THEN
704#include "vectorize.inc"
707 rbuf(p)%p(l+rshift)= gap_s(i)
716#include "vectorize.inc"
719 rbuf(p)%p(l+rshift) = gap_s(i)
720 rbuf(p)%p(l+rshift+1)= gap_s_l(i)
730#include "vectorize.inc"
734 rbuf(p)%p(l+rshift) = temp(nod)
735 rbuf(p)%p(l+rshift+1) = areas(i)
736 ibuf(p)%p(l2+ishift) = ieles(i)
745 IF(ityp==25.AND.ivis2==-1)
THEN
748#include "vectorize.inc"
752 IF(intth==0) rbuf(p)%p(l+rshift) = areas(i)
753 ibuf(p)%p(l2+ishift) = if_adh(i)
754 ibuf(p)%p(l2+ishift+1)=itagnsnfi
755 IF(intth==0) l = l + rsiz
758 IF(intth==0) rshift = rshift + 1
765#include "vectorize.inc"
768 ibuf(p)%p(l2+ishift) = ipartfrics(i)
774 IF(istif_msdt > 0)
THEN
776#include "vectorize.inc"
779 rbuf(p)%p(l+rshift) =stifmsdt_s(i)
786 IF(ifsub_carea > 0)
THEN
788#include "vectorize.inc"
792 rbuf(p)%p(l+rshift) =intarean(nod)
801#include "vectorize.inc"
805 ibuf(p)%p(l2+ishift) = nodnx_sms(nod)
806 ibuf(p)%p(l2+ishift+1)= nod
812 ELSEIF(idtmins_int/=0)
THEN
814#include "vectorize.inc"
818 ibuf(p)%p(l2+ishift)= nod
829#include "vectorize.inc"
832 rbuf(p)%p(l+rshift) =i24_time_s(i)
833 rbuf(p)%p(l+rshift+1) =i24_frfi(1,i)
834 rbuf(p)%p(l+rshift+2) =i24_frfi(2,i)
835 rbuf(p)%p(l+rshift+3) =i24_frfi(3,i)
836 rbuf(p)%p(l+rshift+4) =i24_pene_old(1,i)
837 rbuf(p)%p(l+rshift+5) =i24_stif_old(1,i)
838 rbuf(p)%p(l+rshift+6) =i24_pene_old(3,i)
839 rbuf(p)%p(l+rshift+7) =i24_pene_old(5,i)
846#include "vectorize.inc"
850 ibuf(p)%p(l2+ishift) =irtlm(2*(i-1)+1)
851 ibuf(p)%p(l2+ishift+1)=irtlm(2*(i-1)+2)
852 ibuf(p)%p(l2+ishift+2)=i24_icont_i(i)
860#include "vectorize.inc"
863 ibuf(p)%p(l2+ishift)=nbinflg(i)
875#include "vectorize.inc"
878 rbuf(p)%p(l+rshift) =i24_time_s(2*(i-1)+1)
879 rbuf(p)%p(l+rshift+1) =i24_time_s(2*(i-1)+2)
880 rbuf(p)%p(l+rshift+2) =i24_pene_old(5,i)
888#include "vectorize.inc"
893 ibuf(p)%p(l2+ishift) =irtlm(4*(i-1)+1)
894 ibuf(p)%p(l2+ishift+1)=irtlm(4*(i-1)+2)
897 ibuf(p)%p(l2+ishift+2)=irtlm(4*(i-1)+3)
898 ibuf(p)%p(l2+ishift+3)=irtlm(4*(i-1)+4)
899 ibuf(p)%p(l2+ishift+4)=i24_icont_i(i)
900 ibuf(p)%p(l2+ishift+5)=itagnsnfi(nod)
908#include "vectorize.inc"
911 ibuf(p)%p(l2+ishift)=nbinflg(i)
921#include "vectorize.inc"
937 1 rbuf(p)%P(1),nb*rsiz,it_spmd(p),msgtyp,
942 1 ibuf(p)%P(1),nb*isiz,it_spmd(p),msgtyp,
949 1 ibuf_edge(p)%P(1),e_ibuf_size*nb_edge ,it_spmd(p),msgtyp,
954 1 rbuf_edge(p)%P(1),e_rbuf_size*nb_edge ,it_spmd(p),msgtyp,
962 nbb =
nsnsi(nin)%P(p)
964 nd =
nsvsi(nin)%P(jdeb+j)
973 DEALLOCATE(itagnsnfi)
974 DEALLOCATE(index_edge)
980 IF(ircvfrom(nin,loc_proc)/=0)
THEN
985 IF(iedge /= 0)
nsnfie(nin)%P(p) = 0
986 IF(isendto(nin,p)/=0)
THEN
989 CALL spmd_recv(nbox2(1,p),2,it_spmd(p),msgtyp)
990 nsnfi(nin)%P(p) = nbox2(1,p)
995 nsnfie(nin)%P(p) = nbox2(2,p)
1001 IF(
nsnfi(nin)%P(p)> 0 .OR. nbox2(2,p) > 0)
THEN
1004 nsnr = nsnr +
nsnfi(nin)%P(p)
1015 ALLOCATE(xrem(rsiz,nsnr),stat=ierror)
1017 CALL ancmsg(msgid=20,anmode=aninfo)
1020 ALLOCATE(
irem(isiz,nsnr),stat=ierror)
1022 CALL ancmsg(msgid=20,anmode=aninfo)
1028 CALL ancmsg(msgid=20,anmode=aninfo)
1031 ALLOCATE(xrem_edge(e_rbuf_size,
nedge_remote),stat=ierror)
1033 CALL ancmsg(msgid=20,anmode=aninfo)
1043 IF(
nsnfi(nin)%P(p) > 0 )
THEN
1044 len =
nsnfi(nin)%P(p)*rsiz
1046 nbirecv_node = nbirecv_node + 1
1048 1 xrem(1,ideb),len,it_spmd(p),
1049 2 msgtyp,req_rd(nbirecv_node))
1051 len2 =
nsnfi(nin)%P(p)*isiz
1054 1
irem(1,ideb),len2,it_spmd(p),
1055 2 msgtyp,req_rd2(nbirecv_node))
1056 ideb = ideb +
nsnfi(nin)%P(p)
1060 IF(
edge_fi(nin)%P(p) > 0 )
THEN
1062 len2 =
edge_fi(nin)%P(p)*e_ibuf_size
1063 nbirecv_edge = nbirecv_edge + 1
1066 1
irem_edge(1,ideb_edge),len2,it_spmd(p),
1067 2 msgtyp,req_rd4(nbirecv_edge))
1070 len2 =
edge_fi(nin)%P(p)*e_rbuf_size
1072 1 xrem_edge(1,ideb_edge),len2,it_spmd(p),
1073 2 msgtyp,req_rd5(nbirecv_edge))
1074 ideb_edge = ideb_edge +
edge_fi(nin)%P(p)
1081 CALL spmd_waitall(nbirecv_node,req_rd )
1082 CALL spmd_waitall(nbirecv_node,req_rd2)
1083 CALL spmd_waitall(nbirecv_edge,req_rd4)
1084 CALL spmd_waitall(nbirecv_edge,req_rd5)
1087 IF(isiz > 5 .AND. nsnr > 0)
THEN
1095 IF(ircvfrom(nin,loc_proc)/=0)
THEN
1097 IF(isendto(nin,p)/=0)
THEN
1098 IF(p/=loc_proc)
THEN
1099 CALL spmd_wait(req_sb(p))
1100 CALL spmd_wait(req_sc(p))
1106 IF(isendto(nin,loc_proc)/=0)
THEN
1109 IF(p/=loc_proc)
THEN
1110 CALL spmd_wait(req_sd(p))
1112 CALL spmd_wait(req_sd2(p))
1113 DEALLOCATE(rbuf(p)%p)
1114 CALL spmd_wait(req_sd3(p))
1115 DEALLOCATE(ibuf(p)%p)
1117 IF(nbox(2,p) > 0)
THEN
1118 CALL spmd_wait(req_sd4(p))
1119 DEALLOCATE(ibuf_edge(p)%p)
1120 CALL spmd_wait(req_sd5(p))
1121 DEALLOCATE(rbuf_edge(p)%p)