35 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
36#include "implicit_f.inc"
46 INTEGER LEN,LENP0,WEIGHT(*)
48 . v(len),vp0(lenp0),v_tmp(len)
55 INTEGER STATUS(MPI_STATUS_SIZE),IERROR,
56 . MSGTYP,I,SIZ,LENP(NSPMD),DISP(NSPMD)
62 IF(weight(i) == 1)
THEN
63 v_tmp(j+1) = v(3*(i-1)+1)
64 v_tmp(j+2) = v(3*(i-1)+2)
65 v_tmp(j+3) = v(3*(i-1)+3)
72 s len_tmp ,1 ,mpi_integer
73 r lenp ,1 ,mpi_integer,it_spmd(1),
74 g spmd_comm_world,ierror)
85 s v_tmp ,len_tmp ,real,
86 r vp0 ,lenp ,disp,real,it_spmd(1),
87 g spmd_comm_world,ierror)
94!||--- called by ------------------------------------------------------
104 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
105#include "implicit_f.inc"
114 INTEGER LEN,LENP0, NODGLOB(*)
118 . ,
DIMENSION(:),
ALLOCATABLE :: v_tmp,vp0_tmp
124 INTEGER STATUS(MPI_STATUS_SIZE),IERROR,I
127 ALLOCATE(v_tmp(lenp0))
128 ALLOCATE(vp0_tmp(lenp0))
137 vp0_tmp(3*(i-1)+1)=v(3*(k-1)+1)
138 vp0_tmp(3*(i-1)+2)=v(3*(k-1)+2)
139 vp0_tmp(3*(i-1)+3)=v(3*(k-1)+3)
144 . mpi_real,mpi_sum,it_spmd
154 DEALLOCATE(v_tmp,vp0_tmp)
174 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
175#include "implicit_f.inc"
184 INTEGER LEN,LENP0, NODGLOB(*)
186 . v(len),vp0(lenp0),vg21(lenp0)
188 . ,
DIMENSION(:),
ALLOCATABLE :: v_tmp,vp0_tmp
194 INTEGER STATUS(MPI_STATUS_SIZE),IERROR,I
197 ALLOCATE(v_tmp(lenp0))
198 ALLOCATE(vp0_tmp(lenp0))
207 vp0_tmp(3*(i-1)+1)=v(3*(k-1)+1)
208 vp0_tmp(3*(i-1)+2)=v(3*(k-1)+2)
209 vp0_tmp(3*(i-1)+3)=v(3*(k-1)+3)
214 . real,mpi_sum,it_spmd(1),
215 . spmd_comm_world,ierror)
224 DEALLOCATE(v_tmp,vp0_tmp)
subroutine mpi_reduce(sendbuf, recvbuf, cnt, datatype, op, root, comm, ierr)
subroutine mpi_gather(sendbuf, cnt, datatype, recvbuf, reccnt, rectype, root, comm, ierr)
subroutine mpi_gatherv(sendbuf, cnt, datatype, recvbuf, reccnt, displs, rectype, root, comm, ierr)
subroutine spmd_h3d_sum_r_nodal_21(nodglob, v, len, vp0, lenp0, vg21)
subroutine spmd_h3d_gather_r_node(weight, v, len, vp0, lenp0)
subroutine spmd_h3d_sum_r_nodal(nodglob, v, len, vp0, lenp0)