32 . FR_SMS,LIST_RMS ,LIST_SMS)
37#include "implicit_f.inc"
50 INTEGER NODNX_SMS(*), SIZE,
51 . fr_rms(nspmd+1), fr_sms(nspmd+1),list_rms(*), list_sms(*)
53 . v(
SIZE,*), vfi(
SIZE,*)
58 INTEGER MSGTYP,I,NOD,LOC_PROC,IERROR,,
59 . siz,j,l,nb_nod,k,m,kk,
60 . status(mpi_status_size),
61 . iad_send(nspmd+1),iad_recv(nspmd+1),iadfi_send(nspmd+1),
62 . req_r(nspmd),req_s(nspmd)
64 . rbuf(size*(fr_rms(nspmd+1)+fr_sms(nspmd+1))),
65 . sbuf(size*(fr_rms(nspmd+1)+fr_sms(nspmd+1)))
75 siz = fr_rms(i+1) - fr_rms(i)
77 siz = siz + fr_sms(i+1) - fr_sms(i)
84 s rbuf(l),siz,real,it_spmd(i),msgtyp,
85 g spmd_comm_world,req_r(i),ierror)
97#include
"vectorize.inc"
98 DO j=fr_sms(i),fr_sms(i+1)-1
102 sbuf(l+k-1) = v(k,nod)
113#include "vectorize.inc"
114 DO j=fr_rms(i),fr_rms(i+1)-1
118 sbuf(l+k-1) = v(k,nod)
134 IF(iad_send(i+1)-iad_send(i)>0)
THEN
136 siz = iad_send(i+1)-iad_send(i)
139 s sbuf(l),siz,real,it_spmd(i),msgtyp,
140 g spmd_comm_world,req_s(i),ierror)
148 IF(iad_recv(i+1)-iad_recv(i)>0)
THEN
149 CALL mpi_wait(req_r(i),status,ierror)
151#include "vectorize.inc"
152 DO j=fr_rms(i),fr_rms(i+1)-1
153 IF(list_rms(j)/=0)
THEN
155 vfi(k,kk) = rbuf(l+k-1)
162#include "vectorize.inc"
163 DO j=fr_sms(i),fr_sms(i+1)-1
164 IF(list_sms(m)/=0)
THEN
166 vfi(k,kk) = rbuf(l+k-1)
178 IF(iad_send(i+1)-iad_send(i)>0)
THEN
179 CALL mpi_wait(req_s(i),status,ierror)
subroutine mpi_isend(buf, cnt, datatype, dest, tag, comm, ireq, ierr)
subroutine mpi_irecv(buf, cnt, datatype, source, tag, comm, ireq, ierr)
subroutine spmd_fi_sms(v, nodnx_sms, size, vfi, fr_rms, fr_sms, list_rms, list_sms)