38 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
39#include "implicit_f.inc"
52 INTEGER IAD_ELEM(2,*),FR_ELEM(*),LENR
54 . volnod6(6,*), varnod6(6,*)
59 INTEGER MSGTYP,I,NOD,LOC_PROC,IERROR,MSGOFF,
60 . siz,j,l,nb_nod,siz6,len,
61 . status(mpi_status_size),
64 . req_r(nspmd),req_s(nspmd)
68 .
DIMENSION(:,:),
ALLOCATABLE :: rbuf, sbuf
72 ALLOCATE(rbuf(6,lenr))
73 ALLOCATE(sbuf(6,lenr))
82 len = iad_elem(1,i+1)-iad_elem(1,i)
87 s rbuf(1,l),siz,mpi_double_precision,
88 g it_spmd(i),msgtyp,spmd_comm_world,
99 nb_nod = iad_elem(1,i+1)-iad_elem(1,i)
100#include "vectorize.inc"
101 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
104 sbuf(1, l) = volnod6(1,nod)
105 sbuf(2, l) = volnod6(2,nod)
106 sbuf(3, l) = volnod6(3,nod)
107 sbuf(4, l) = volnod6(4,nod)
108 sbuf(5, l) = volnod6(5,nod)
109 sbuf(6, l) = volnod6(6,nod)
111 sbuf(1, l+ nb_nod) = varnod6(1,nod)
112 sbuf(2, l+ nb_nod) = varnod6(2,nod)
113 sbuf(3, l+ nb_nod) = varnod6(3,nod)
114 sbuf(4, l+ nb_nod) = varnod6(4,nod)
115 sbuf(5, l+ nb_nod) = varnod6(5,nod)
116 sbuf(6, l+ nb_nod) = varnod6(6,nod)
130 nb_nod = iad_elem(1,i+1)-iad_elem(1,i)
133 len = iad_elem(1,i+1)-iad_elem(1,i)
138 s sbuf(1,l),siz,mpi_double_precision,
139 g it_spmd(i),msgtyp,spmd_comm_world,
148 nb_nod = iad_elem(1,i+1)-iad_elem(1,i)
150 CALL mpi_wait(req_r(i),status,ierror)
153#include "vectorize.inc"
154 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
156 volnod6(1,nod) = volnod6(1,nod) + rbuf(1,l)
157 volnod6(2,nod) = volnod6(2,nod) + rbuf(2,l)
158 volnod6(3,nod) = volnod6(3,nod) + rbuf(3,l)
159 volnod6(4,nod) = volnod6(4,nod) + rbuf(4,l)
160 volnod6(5,nod) = volnod6(5,nod) + rbuf(5,l)
161 volnod6(6,nod) = volnod6(6,nod) + rbuf(6,l)
163 varnod6(1,nod) = varnod6(1,nod) + rbuf(1,l+ nb_nod)
164 varnod6(2,nod) = varnod6(2,nod) + rbuf(2,l+ nb_nod)
165 varnod6(3,nod) = varnod6(3,nod) + rbuf(3,l+ nb_nod)
166 varnod6(4,nod) = varnod6(4,nod) + rbuf(4,l+ nb_nod)
167 varnod6(5,nod) = varnod6(5,nod) + rbuf(5,l+ nb_nod)
168 varnod6(6,nod) = varnod6(6,nod) + rbuf(6,l+ nb_nod)
178 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
179 CALL mpi_wait(req_s(i),status,ierror)