5 &(v1,v2,v3,npoin,icom,ian,nplan,nb_neighb,nb_neighb_pt,list_send,
6 & nh_com,dimnhcom,buf_send,buf_recv,dimbuf)
53 INTEGER,
INTENT(IN) :: NPOIN,ICOM,IAN,NPLAN,NB_NEIGHB
54 INTEGER,
INTENT(IN) :: DIMNHCOM,DIMBUF
55 INTEGER,
INTENT(IN) :: NB_NEIGHB_PT(nb_neighb)
56 INTEGER,
INTENT(IN) :: LIST_SEND(nb_neighb),NH_COM(dimnhcom,*)
58 INTEGER,
INTENT(INOUT) :: BUF_SEND(dimbuf,*)
59 INTEGER,
INTENT(INOUT) :: BUF_RECV(dimbuf,*)
60 INTEGER,
INTENT(INOUT) :: V1(npoin,nplan)
61 INTEGER,
INTENT(INOUT) :: V2(npoin,nplan)
62 INTEGER,
INTENT(INOUT) :: V3(npoin,nplan)
66 INTEGER IKA,IL,II,I,J,K,IPA
70 INTEGER SEND_REQ(100),RECV_REQ(100)
74 IF(ian.NE.1.AND.ian.NE.2.AND.ian.NE.3)
THEN 75 WRITE(
lu,*)
'FALSCHE FREIWERTZAHL BEI KOMMUNIKATION',ian,
76 &
' AUF PROZESSOR',
ipid 92 ika = nb_neighb_pt(il)
94 CALL p_read(buf_recv(1:dimbuf,il),ian*ika*nplan,
101 ika = nb_neighb_pt(il)
111 buf_send(k,il) =v1(ii,j)
112 buf_send(k+1,il)=v2(ii,j)
113 buf_send(k+2,il)=v3(ii,j)
117 ELSEIF(ian.EQ.2)
THEN 121 buf_send(k,il) =v1(ii,j)
122 buf_send(k+1,il)=v2(ii,j)
126 ELSEIF(ian.EQ.1)
THEN 130 buf_send(k,il) =v1(ii,j)
136 CALL p_write(buf_send(1:dimbuf,il),ian*ika*nplan,
144 ika = nb_neighb_pt(il)
155 IF(abs(buf_recv(k,il)).GT.abs(v1(ii,j)))
156 & v1(ii,j)=buf_recv(k ,il)
157 IF(abs(buf_recv(k+1,il)).GT.abs(v2(ii,j)))
158 & v2(ii,j)=buf_recv(k+1,il)
159 IF(abs(buf_recv(k+2,il)).GT.abs(v3(ii,j)))
160 & v3(ii,j)=buf_recv(k+2,il)
164 ELSEIF(ian.EQ.2)
THEN 168 IF(abs(buf_recv(k,il)).GT.abs(v1(ii,j)))
169 & v1(ii,j)=buf_recv(k ,il)
170 IF(abs(buf_recv(k+1,il)).GT.abs(v2(ii,j)))
171 & v2(ii,j)=buf_recv(k+1,il)
175 ELSEIF(ian.EQ.1)
THEN 179 IF(abs(buf_recv(k,il)).GT.abs(v1(ii,j)))
180 & v1(ii,j)=buf_recv(k ,il)
185 ELSEIF(icom.EQ.2)
THEN 190 v1(ii,j)=v1(ii,j)+buf_recv(k ,il)
191 v2(ii,j)=v2(ii,j)+buf_recv(k+1,il)
192 v3(ii,j)=v3(ii,j)+buf_recv(k+2,il)
196 ELSEIF(ian.EQ.2)
THEN 200 v1(ii,j)=v1(ii,j)+buf_recv(k ,il)
201 v2(ii,j)=v2(ii,j)+buf_recv(k+1,il)
205 ELSEIF(ian.EQ.1)
THEN 209 v1(ii,j)=v1(ii,j)+buf_recv(k ,il)
214 ELSEIF(icom.EQ.3)
THEN 219 IF(buf_recv(k ,il).GT.v1(ii,j))
220 & v1(ii,j)=buf_recv(k ,il)
221 IF(buf_recv(k+1,il).GT.v2(ii,j))
222 & v2(ii,j)=buf_recv(k+1,il)
223 IF(buf_recv(k+2,il).GT.v3(ii,j))
224 & v3(ii,j)=buf_recv(k+2,il)
228 ELSEIF(ian.EQ.2)
THEN 232 IF(buf_recv(k ,il).GT.v1(ii,j))
233 & v1(ii,j)=buf_recv(k ,il)
234 IF(buf_recv(k+1,il).GT.v2(ii,j))
235 & v2(ii,j)=buf_recv(k+1,il)
239 ELSEIF(ian.EQ.1)
THEN 243 IF(buf_recv(k ,il).GT.v1(ii,j))
244 & v1(ii,j)=buf_recv(k ,il)
249 ELSEIF(icom.EQ.4)
THEN 254 IF(buf_recv(k ,il).LT.v1(ii,j))
255 & v1(ii,j)=buf_recv(k ,il)
256 IF(buf_recv(k+1,il).LT.v2(ii,j))
257 & v2(ii,j)=buf_recv(k+1,il)
258 IF(buf_recv(k+2,il).LT.v3(ii,j))
259 & v3(ii,j)=buf_recv(k+2,il)
263 ELSEIF(ian.EQ.2)
THEN 267 IF(buf_recv(k ,il).LT.v1(ii,j))
268 & v1(ii,j)=buf_recv(k ,il)
269 IF(buf_recv(k+1,il).LT.v2(ii,j))
270 & v2(ii,j)=buf_recv(k+1,il)
274 ELSEIF(ian.EQ.1)
THEN 278 IF(buf_recv(k ,il).LT.v1(ii,j))
279 & v1(ii,j)=buf_recv(k ,il)
subroutine paracoi(V1, V2, V3, NPOIN, ICOM, IAN, NPLAN, NB_NEIGHB, NB_NEIGHB_PT, LIST_SEND, NH_COM, DIMNHCOM, BUF_SEND, BUF_RECV, DIMBUF)
subroutine p_wait_paraco(IBUF, NB)