+ if (nfgtasks.gt.1) then
+ call MPI_Allgatherv(fac_shield(ivec_start), &
+ ivec_count(fg_rank1), &
+ MPI_DOUBLE_PRECISION,fac_shieldbuf(1),ivec_count(0), &
+ ivec_displ(0), &
+ MPI_DOUBLE_PRECISION,FG_COMM,IERROR)
+ call MPI_Allgatherv(shield_list(1,ivec_start), &
+ ivec_count(fg_rank1), &
+ MPI_I50,shield_listbuf(1,1),ivec_count(0), &
+ ivec_displ(0), &
+ MPI_I50,FG_COMM,IERROR)
+ call MPI_Allgatherv(ishield_list(ivec_start), &
+ ivec_count(fg_rank1), &
+ MPI_INTEGER,ishield_listbuf(1),ivec_count(0), &
+ ivec_displ(0), &
+ MPI_INTEGER,FG_COMM,IERROR)
+ call MPI_Allgatherv(grad_shield(1,ivec_start), &
+ ivec_count(fg_rank1), &
+ MPI_UYZ,grad_shieldbuf(1,1),ivec_count(0), &
+ ivec_displ(0), &
+ MPI_UYZ,FG_COMM,IERROR)
+ call MPI_Allgatherv(grad_shield_side(1,1,ivec_start), &
+ ivec_count(fg_rank1), &
+ MPI_SHI,grad_shield_sidebuf(1,1,1),ivec_count(0), &
+ ivec_displ(0), &
+ MPI_SHI,FG_COMM,IERROR)
+ call MPI_Allgatherv(grad_shield_loc(1,1,ivec_start), &
+ ivec_count(fg_rank1), &
+ MPI_SHI,grad_shield_locbuf(1,1,1),ivec_count(0), &
+ ivec_displ(0), &
+ MPI_SHI,FG_COMM,IERROR)
+ do i=1,nres
+ fac_shield(i)=fac_shieldbuf(i)
+ ishield_list(i)=ishield_listbuf(i)
+ do j=1,3
+ grad_shield(j,i)=grad_shieldbuf(j,i)
+ enddo !j
+ do j=1,ishield_list(i)
+ shield_list(j,i)=shield_listbuf(j,i)
+ do k=1,3
+ grad_shield_loc(k,j,i)=grad_shield_locbuf(k,j,i)
+ grad_shield_side(k,j,i)=grad_shield_sidebuf(k,j,i)
+ enddo !k
+ enddo !j
+ enddo !i
+ endif
+
+
+
+