29!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.f90
35 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
36#include "implicit_f.inc"
51 INTEGER FXBIPM(NBIPM,*), DSKY, IADN(*)
53 . mfextp(*), fskyfxb(dsky,*)
58 INTEGER NFX, NMOD, NME, NSN, NVAR, PMAIN, IAD, NSNT, I, J, JJ,
59 . ITAG, MSGOFF, NSNP(NSPMD-1), NSNPMAX, LEN, K, KK, AVAR,
60 . IERR, REQ(NSPMD-1), STAT(MPI_STATUS_SIZE,NSPMD-1),
63 . ,
DIMENSION(:,:),
ALLOCATABLE :: fskyl, fskyp
74 IF (ispmd==pmain)
THEN
76 ALLOCATE(fskyl(nsnt,nme+nmod))
79 jj=nint(fskyfxb(iad+j,1))
80 fskyl(jj,i)=fskyfxb(iad+j,1+i)
89 CALL mpi_irecv(nsnp(ii), 1, mpi_integer, it_spmd(i),
90 . itag, spmd_comm_world, req(ii), ierr)
96 nsnpmax=
max(nsnpmax,nsnp(i))
98 ALLOCATE(fskyp(nsnpmax*(1+nme+nmod),nspmd-1))
101 IF (ispmd==i-1) cycle
104 len=nsnp(ii)*(1+nme+nmod)
105 CALL mpi_irecv(fskyp(1,ii), len, real, it_spmd(i),
106 . itag, spmd_comm_world, req(ii), ierr)
115 fskyl(kk,j)=fskyp(jj+k,i)
122 mfextp(avar+i-1)=zero
124 mfextp(avar+i-1)=mfextp(avar
130 CALL mpi_isend(nsn, 1, mpi_integer, it_spmd(pmain+1),
131 . itag, spmd_comm_world, req(1), ierr)
134 ALLOCATE(fskyl(nsn,1+nme+nmod
137 fskyl(j,i)=fskyfxb(iad+j,i)
142 CALL mpi_isend(fskyl, len, real, it_spmd(pmain+1),
143 . itag, spmd_comm_world, req(1), ierr)
160!||====================================================================
164!||--- uses -----------------------------------------------------
171 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
172#include "implicit_f.inc"
176#include "com04_c.inc"
181 INTEGER FXBIPM(NBIPM,*), DSKY, IADN(*)
183 . mfextp(*), fskyfxb(dsky,*)
187 INTEGER NFX, NMOD, NME, NSN, NVAR, IAD, , J, JJ,
190 . ,
DIMENSION(:,:),
ALLOCATABLE :: fskyl
198 ALLOCATE(fskyl(nsn,nme+nmod))
201 jj=nint(fskyfxb(iad+j,1))
202 fskyl(jj,i)=fskyfxb(iad+j,1+i)
207 mfextp(avar+i-1)=zero
209 mfextp(avar+i-1)=mfextp(avar+i-1)+fskyl(j,i)
subroutine mpi_isend(buf, cnt, datatype, dest, tag, comm, ireq, ierr)
subroutine mpi_wait(ireq, status, ierr)
subroutine mpi_waitall(cnt, array_of_requests, status, ierr)
subroutine mpi_irecv(buf, cnt, datatype, source, tag, comm, ireq, ierr)
subroutine spmd_fxb_for_pon(fxbipm, mfextp, fskyfxb, dsky, iadn)