33
34
35
36
37
39
40
41
42#include "implicit_f.inc"
43
44
45
46#include "spmd.inc"
47
48
49
50#include "com01_c.inc"
51
52
53
54 INTEGER IFV
55
56
57
58#ifdef MPI
59 INTEGER IERROR, LENG,ITABL(4)
60 INTEGER II, I, ITAG, LEN, (3,NSPMD-1),REQ(2*(NSPMD-1)),
61 . STAT(MPI_STATUS_SIZE,2*(NSPMD-1)), IERR,
62 . MSGOFF
63 DATA msgoff/238/
64
65
66
67
68 leng=1
69 IF(
fvspmd(ifv)%RANK > -1)
THEN
71 . mpi_integer,mpi_sum,
fvspmd(ifv)%MPI_COMM, ierror)
72
73 ELSE
75 ENDIF
76
77 IF (
fvspmd(ifv)%RANK == 0)
THEN
78
79 ii=0
81 ii=ii+1
82 itag=msgoff+i
83 len=4
85 . itag,
fvspmd(ifv)%MPI_COMM, req(ii), ierr)
86 ENDDO
88
89 ELSE IF(
fvspmd(ifv)%RANK > 0)
THEN
91
93 itabl(3)=
fvspmd(ifv)%NNSA_L
95 itag=msgoff+
fvspmd(ifv)%RANK
96 len=4
97 CALL mpi_send(itabl, len, mpi_integer, 0,
98 . itag,
fvspmd(ifv)%MPI_COMM, ierr)
99
100 ENDIF
101#endif
102 RETURN
subroutine mpi_waitall(cnt, array_of_requests, status, ierr)
subroutine mpi_send(buf, cnt, datatype, dest, tag, comm, ierr)
subroutine mpi_allreduce(sendbuf, recvbuf, cnt, datatype, operation, comm, ierr)
subroutine mpi_irecv(buf, cnt, datatype, source, tag, comm, ireq, ierr)
type(fvbag_spmd), dimension(:), allocatable fvspmd