15 & COMM_LOAD, ASS_IRECV,
16 & MSGSOU, MSGTAG, MSGLEN,
17 & BUFR, LBUFR, LBUFR_BYTES, PROCNODE_STEPS, POSFAC,
18 & IWPOS, IWPOSCB, IPTRLU,
19 & LRLU, LRLUS, N, IW, LIW, A, LA, PTRIST,
21 & PTRAST, STEP, PIMASTER, PAMASTER, NSTK_S, COMP,
22 & IFLAG, IERROR, COMM,
23 & PERM, IPOOL, LPOOL, LEAF, NBFIN, MYID, SLAVEF,
25 & root, OPASSW, OPELIW, ITLOC, RHS_MUMPS,
26 & FILS, DAD, PTRARW, PTRAIW,
27 & INTARR, DBLARR, ICNTL, KEEP,KEEP8,DKEEP, ND, FRERE,
28 & LPTRAR, NELT, FRTPTR, FRTELT,
30 & ISTEP_TO_INIV2, TAB_POS_IN_PERE
36 include
'mumps_headers.h'
37 TYPE (dmumps_root_struc) :: root
38 INTEGER msgsou, msgtag, msglen
39 INTEGER lbufr, lbufr_bytes
41 INTEGER keep(500), icntl( 60 )
43 DOUBLE PRECISION dkeep(230)
44 INTEGER(8) :: posfac, iptrlu, lrlu, , la
48 INTEGER,
intent(in) :: lrgroups(n)
49 DOUBLE PRECISION a( la )
50 INTEGER(8) :: ptrfac(keep(28))
52INTEGER(8) :: pamaster(keep(28))
53 INTEGER ptrist(keep(28)), ptlust(keep(28))
54 INTEGER step(n), pimaster(keep(28))
56 INTEGER nstk_s(keep(28)), procnode_steps( keep(28) )
58 INTEGER iflag, ierror, comm
60 INTEGER ipool( lpool )
61 INTEGER comm_load, ass_irecv
62 INTEGER myid, slavef, nbfin
63 DOUBLE PRECISION opassw, opeliw
65 INTEGER frtptr( n+1), frtelt( nelt )
66 INTEGER itloc( n+keep(253) ), fils( n ), dad(keep(28))
67 DOUBLE PRECISION :: rhs_mumps(keep(255))
68 INTEGER(8),
INTENT(IN) :: ptrarw( lptrar ), ptraiw( lptrar )
69 INTEGER nd( keep(28) ), frere( keep(28) )
70 INTEGER istep_to_iniv2(keep(71)),
71 & tab_pos_in_pere(slavef+2,
max(1,keep(56)))
72 INTEGER intarr( keep8(27) )
73 DOUBLE PRECISION dblarr( keep8(26) )
74 INTEGER iniv2, ishift, ibeg
81 INTEGER nbrecu, position, inode, ison, iroot
82 INTEGER nslaves_pere, nfront_pere, nass_pere,
84 & hdmaplig,nfs4father,
85 & tot_root_size, tot_cont_to_recv
86 DOUBLE PRECISION flop1
87 CHARACTER(LEN=35) :: subname
88 include
'mumps_tags.h'
91 INTEGER :: status(mpi_status_size)
96 IF ( msgtag .EQ. racine )
THEN
98 CALL mpi_unpack( bufr, lbufr_bytes, position, nbrecu,
99 & 1, mpi_integer, comm, ierr)
101 nbfin = nbfin - nbrecu
102 ELSEIF ( msgtag .EQ. noeud )
THEN
104 & bufr, lbufr, lbufr_bytes,
105 & iwpos, iwposcb, iptrlu,
106 & lrlu, lrlus, n, iw, liw, a, la, slavef, procnode_steps, dad,
108 & step, pimaster, pamaster,
109 & nstk_s,
comp, fpere, flag, iflag, ierror, comm,
111 subname=
"DMUMPS_PROCESS_NODE"
112 IF ( iflag .LT. 0 )
GO TO 500
115 & procnode_steps, slavef, keep(199), keep(28), keep(76),
116 & keep(80), keep(47), step, fpere )
117 IF (keep(47) .GE. 3)
THEN
120 & procnode_steps, keep,keep8, slavef, comm_load,
121 &
myid, step, n, nd, fils )
124 & procnode_steps,keep(199),
125 & nd, fils, frere, step, pimaster,
126 & keep(28), keep(50), keep(253), flop1,
127 & iw, liw, keep(ixsz) )
128 IF (fpere.NE.keep(20))
131 ELSEIF ( msgtag .EQ. end_niv2_ldlt )
THEN
134 & procnode_steps, slavef, keep(199),
135 & keep(28), keep(76), keep(80), keep(47),
137 IF (keep(47) .GE. 3)
THEN
140 & procnode_steps, keep,keep8, slavef, comm_load,
141 &
myid, step, n, nd, fils )
143 ELSEIF ( msgtag .EQ. terreur )
THEN
147 ELSEIF ( msgtag .EQ. maitre_desc_bande )
THEN
149 & lbufr_bytes, iwpos,
151 & iptrlu, lrlu, lrlus,
152 & n, iw, liw, a, la, slavef, procnode_steps, dad,
153 & ptrist, ptrast, step, pimaster, pamaster,
comp,
154 & keep, keep8, dkeep, itloc, rhs_mumps, istep_to_iniv2,
155#if ! defined (NO_FDM_DESCBAND)
159 subname=
"DMUMPS_PROCESS_DESC_BANDE"
160 IF ( iflag .LT. 0 )
GO to 500
161 ELSEIF ( msgtag .EQ. maitre2 )
THEN
163 & procnode_steps, slavef, iwpos, iwposcb,
164 & iptrlu, lrlu, lrlus, n, iw, liw, a, la,
165 & ptrist, ptrast, step, pimaster, pamaster, nstk_s,
comp,
166 & iflag, ierror, comm, comm_load,
167 & ipool, lpool, leaf,
168 & keep, keep8, dkeep, nd, fils, dad, frere, itloc, rhs_mumps,
169 & istep_to_iniv2, tab_pos_in_pere )
170 subname=
"DMUMPS_PROCESS_MASTER2"
171 IF ( iflag .LT. 0 )
GO to 500
172 ELSEIF ( msgtag .EQ. bloc_facto .OR.
173 & msgtag .EQ. bloc_facto_relay )
THEN
175 & bufr, lbufr, lbufr_bytes,
176 & procnode_steps, msgsou,
177 & slavef, iwpos, iwposcb, iptrlu, lrlu, lrlus, n, iw, liw,
178 & a, la, ptrist, ptrast, nstk_s, perm,
179 &
comp, step, pimaster, pamaster, posfac,
180 &
myid, comm , iflag, ierror, nbfin,
182 & ptlust, ptrfac, root, opassw, opeliw, itloc, rhs_mumps,
183 & fils, dad, ptrarw, ptraiw, intarr, dblarr,
184 & icntl, keep,keep8,dkeep, ipool, lpool, leaf, nd, frere,
185 & lptrar, nelt, frtptr, frtelt,
186 & istep_to_iniv2, tab_pos_in_pere
189 ELSEIF ( msgtag .EQ. bloc_facto_sym_slave )
THEN
192 & lbufr_bytes, procnode_steps, msgsou,
193 & slavef, iwpos, iwposcb, iptrlu, lrlu, lrlus, n, iw, liw,
194 & a, la, ptrist, ptrast, nstk_s, perm,
195 &
comp, step, pimaster, pamaster, posfac,
196 &
myid, comm, iflag, ierror, nbfin,
198 & ptlust, ptrfac, root, opassw, opeliw, itloc, rhs_mumps,
199 & fils, dad, ptrarw, ptraiw, intarr, dblarr,
200 & icntl, keep,keep8,dkeep, ipool, lpool, leaf, nd, frere,
201 & lptrar, nelt, frtptr, frtelt,
202 & istep_to_iniv2, tab_pos_in_pere
205 ELSEIF ( msgtag .EQ. bloc_facto_sym )
THEN
208 & lbufr_bytes, procnode_steps, msgsou,
209 & slavef, iwpos, iwposcb, iptrlu, lrlu, lrlus, n, iw, liw,
210 & a, la, ptrist, ptrast, nstk_s, perm,
211 &
comp, step, pimaster, pamaster, posfac,
212 &
myid, comm, iflag, ierror, nbfin,
214 & ptlust, ptrfac, root, opassw, opeliw, itloc, rhs_mumps,
215 & fils, dad, ptrarw, ptraiw, intarr, dblarr,
216 & icntl,keep,keep8,dkeep,ipool, lpool, leaf, nd, frere,
217 & lptrar, nelt, frtptr, frtelt,
218 & istep_to_iniv2, tab_pos_in_pere
221 ELSEIF ( msgtag .EQ. contrib_type2 )
THEN
223 & msglen, bufr, lbufr,
224 & lbufr_bytes, procnode_steps,
225 & slavef, iwpos, iwposcb, iptrlu, lrlu, lrlus, posfac,
226 & n, iw, liw, a, la, ptrist,
227 & ptlust, ptrfac, ptrast,
228 & step, pimaster, pamaster, perm,
comp, root,
229 & opassw, opeliw, itloc, rhs_mumps, nstk_s, fils, dad,
230 & ptrarw, ptraiw, intarr, dblarr, nbfin,
myid, comm,
231 & icntl,keep,keep8,dkeep,iflag, ierror, ipool, lpool, leaf,
232 & nd, frere, lptrar, nelt, frtptr, frtelt,
233 & istep_to_iniv2, tab_pos_in_pere
236 IF ( iflag .LT. 0 )
GO TO 100
237 ELSEIF ( msgtag .EQ. maplig )
THEN
241 nslaves_pere = bufr( 3 )
242 nfront_pere = bufr( 4 )
243 nass_pere = bufr( 5 )
245 nfs4father = bufr( 7 )
246 IF ( nslaves_pere.NE.0 )
THEN
247 iniv2 = istep_to_iniv2( step(inode) )
248 ishift = nslaves_pere+1
249 tab_pos_in_pere(1:nslaves_pere+1, iniv2) =
250 & bufr(hdmaplig+1:hdmaplig+1+nslaves_pere)
251 tab_pos_in_pere(slavef+2, iniv2) = nslaves_pere
255 ibeg = hdmaplig+1+ishift
257 & bufr, lbufr, lbufr_bytes,
258 & inode, ison, nslaves_pere,
260 & nfront_pere, nass_pere, nfs4father,lmap,
261 & bufr(ibeg+nslaves_pere),
262 & procnode_steps, slavef, posfac, iwpos, iwposcb,
263 & iptrlu, lrlu, lrlus, n, iw, liw, a, la,
264 & ptrist, ptlust, ptrfac, ptrast, step, pimaster, pamaster,
266 & iflag, ierror,
myid, comm, perm,
267 & ipool, lpool, leaf, nbfin, icntl, keep,keep8,dkeep, root,
269 & itloc, rhs_mumps, fils, dad, ptrarw, ptraiw, intarr, dblarr,
270 & nd, frere, lptrar, nelt, frtptr, frtelt,
272 & istep_to_iniv2, tab_pos_in_pere
275 IF ( iflag .LT. 0 )
GO TO 100
276 ELSE IF ( msgtag .EQ. root_cont_static )
THEN
278 & bufr, lbufr, lbufr_bytes,
279 & root, n, iw, liw, a, la,
280 & lrlu, iptrlu, iwpos, iwposcb,
281 & ptrist, ptlust, ptrfac, ptrast,
282 & step, pimaster, pamaster,
283 &
comp, lrlus, ipool, lpool, leaf,
285 & lptrar, nelt, frtptr, frtelt,
286 & ptraiw, ptrarw, intarr, dblarr,
287 & keep, keep8, dkeep, iflag, ierror, comm, comm_load,
289 & nd, procnode_steps, slavef, opassw)
290 subname=
"DMUMPS_PROCESS_CONTRIB_TYPE3"
291 IF ( iflag .LT. 0 )
GO TO 500
292 ELSE IF ( msgtag .EQ. root_non_elim_cb )
THEN
296 IF ( ptlust( step(iroot)) .EQ. 0 )
THEN
297 keep(266)=keep(266)-1
298 CALL mpi_recv( tmp, 2 * keep(34), mpi_packed,
299 & msgsou, root_2slave,
300 & comm, status, ierr )
303 & bufr, lbufr, lbufr_bytes, procnode_steps, posfac,
304 & iwpos, iwposcb, iptrlu,
305 & lrlu, lrlus, n, iw, liw, a, la, ptrist,
307 & ptrast, step, pimaster, pamaster, nstk_s,
comp,
308 & iflag, ierror, comm, comm_load,
309 & ipool, lpool, leaf,
310 & nbfin,
myid, slavef,
312 & opassw, opeliw, itloc, rhs_mumps, fils, dad,
313 & lptrar, nelt, frtptr, frtelt,
315 & intarr, dblarr, icntl, keep,keep8, dkeep,nd )
316 subname=
"DMUMPS_PROCESS_ROOT2SLAVE"
317 IF ( iflag .LT. 0 )
GOTO 500
320 & bufr, lbufr, lbufr_bytes,
321 & root, n, iw, liw, a, la,
322 & lrlu, iptrlu, iwpos, iwposcb,
323 & ptrist, ptlust, ptrfac, ptrast, step, pimaster, pamaster,
324 &
comp, lrlus, ipool, lpool, leaf,
326 & lptrar, nelt, frtptr, frtelt,
327 & ptraiw, ptrarw, intarr, dblarr,
328 & keep, keep8, dkeep, iflag, ierror, comm, comm_load,
330 & nd, procnode_steps, slavef, opassw )
331 subname=
"DMUMPS_PROCESS_CONTRIB_TYPE3"
332 IF ( iflag .LT. 0 )
GO TO 500
333 ELSE IF ( msgtag .EQ. root_2son )
THEN
338 & bufr, lbufr, lbufr_bytes, procnode_steps, posfac,
339 & iwpos, iwposcb, iptrlu,
340 & lrlu, lrlus, n, iw, liw, a, la, ptrist,
342 & ptrast, step, pimaster, pamaster, nstk_s,
comp,
343 & iflag, ierror, comm,
344 & perm, ipool, lpool, leaf, nbfin,
myid, slavef,
346 & opassw, opeliw, itloc, rhs_mumps,
347 & fils, dad, ptrarw, ptraiw,
348 & intarr,dblarr,icntl,keep,keep8,dkeep,nd, frere,
349 & lptrar, nelt, frtptr, frtelt,
350 & istep_to_iniv2, tab_pos_in_pere
353 IF ( iflag .LT. 0 )
GO TO 100
356 IF (keep(50).EQ.0)
THEN
361 IF (iw(ptrist(step(ison))+ishift_hdr+keep(ixsz)).EQ.
362 & s_rec_contstatic)
THEN
363 iw(ptrist(step(ison))+ishift_hdr+keep(ixsz)) =
367 & iw, liw, a, la, lrlu, lrlus, iwposcb,
368 & iptrlu, step,
myid, keep, keep8,
373 ELSE IF ( msgtag .EQ. root_2slave )
THEN
374 tot_root_size = bufr( 1 )
375 tot_cont_to_recv = bufr( 2 )
377 & tot_cont_to_recv, root,
378 & bufr, lbufr, lbufr_bytes, procnode_steps, posfac,
379 & iwpos, iwposcb, iptrlu,
380 & lrlu, lrlus, n, iw, liw, a, la, ptrist,
382 & ptrast, step, pimaster, pamaster, nstk_s,
comp,
383 & iflag, ierror, comm, comm_load,
384 & ipool, lpool, leaf,
385 & nbfin,
myid, slavef,
387 & opassw, opeliw, itloc, rhs_mumps, fils, dad,
388 & lptrar, nelt, frtptr, frtelt,
390 & intarr, dblarr, icntl, keep,keep8, dkeep, nd )
391 IF ( iflag .LT. 0 )
GO TO 100
392 ELSE IF ( msgtag .EQ. root_nelim_indices )
THEN
395 nslaves_pere = bufr( 3 )
397 & ison, nelim, nslaves_pere, bufr(4), bufr(4+bufr(2)),
401 & iwpos, iwposcb, iptrlu,
402 & lrlu, lrlus, n, iw, liw, a, la, ptrist,
404 & ptrast, step, pimaster, pamaster, nstk_s,
405 & itloc, rhs_mumps,
comp,
407 & ipool, lpool, leaf,
myid, slavef,
408 & keep, keep8, dkeep,
409 & comm, comm_load, fils, dad, nd)
410 subname=
"DMUMPS_PROCESS_RTNELIND"
411 IF ( iflag .LT. 0 )
GO TO 500
412 ELSE IF ( msgtag .EQ. update_load )
THEN
413 WRITE(*,*)
"Internal error 3 in DMUMPS_TRAITER_MESSAGE"
415 ELSE IF ( msgtag .EQ. tag_dummy )
THEN
419 &
': Internal error, routine DMUMPS_TRAITER_MESSAGE.',msgtag
427 IF ( icntl(1) .GT. 0 .AND. icntl(4).GE.1 )
THEN
429 IF (iflag.EQ.-9)
THEN
430 WRITE(lp,*)
'FAILURE, WORKSPACE TOO SMALL DURING ',subname
432 IF (iflag.EQ.-8)
THEN
433 WRITE(lp,*)
'FAILURE IN INTEGER ALLOCATION DURING ',subname
435 IF (iflag.EQ.-13)
THEN
436 WRITE(lp,*)
'FAILURE IN DYNAMIC ALLOCATION DURING ',subname
542 & COMM_LOAD, ASS_IRECV, BLOCKING, SET_IRECV,
543 & MESSAGE_RECEIVED, MSGSOU, MSGTAG,
545 & BUFR, LBUFR, LBUFR_BYTES, PROCNODE_STEPS, POSFAC,
546 & IWPOS, IWPOSCB, IPTRLU,
547 & LRLU, LRLUS, N, IW, LIW, A, LA, PTRIST,
549 & PTRAST, STEP, PIMASTER, PAMASTER, NSTK_S, COMP,
550 & IFLAG, IERROR, COMM, PERM,
551 & IPOOL, LPOOL, LEAF, NBFIN, MYID, SLAVEF,
553 & root, OPASSW, OPELIW, ITLOC, RHS_MUMPS,
554 & FILS, DAD, PTRARW, PTRAIW,
555 & INTARR, DBLARR, ICNTL, KEEP,KEEP8,DKEEP, ND, FRERE,
556 & LPTRAR, NELT, FRTPTR, FRTELT,
558 & ISTEP_TO_INIV2, TAB_POS_IN_PERE,
559 & STACK_RIGHT_AUTHORIZED, LRGROUPS )
564 include
'mumps_tags.h'
565 TYPE (dmumps_root_struc) :: root
566 INTEGER :: status(mpi_status_size)
567 LOGICAL,
INTENT (IN) :: blocking
568 LOGICAL,
INTENT (IN) ::
569 LOGICAL,
INTENT (INOUT) :: message_received
570 INTEGER,
INTENT (IN) :: msgsou, msgtag
571 INTEGER keep(500), icntl(60)
572 INTEGER(8) keep8(150)
573 DOUBLE PRECISION dkeep(230)
574 INTEGER lbufr, lbufr_bytes
575 INTEGER comm_load, ass_irecv
576 INTEGER bufr( lbufr )
577 INTEGER(8) :: la, posfac, iptrlu, lrlu, lrlus
578 INTEGER iwpos, iwposcb
581 DOUBLE PRECISION a( la )
582 INTEGER,
intent(in) :: lrgroups(n)
583 INTEGER(8) :: ptrast(keep(28))
584 INTEGER(8) :: ptrfac(keep(28))
585 INTEGER(8) :: pamaster(keep(28))
586 INTEGER ptrist( keep(28) ),
591 INTEGER nstk_s(keep(28)), procnode_steps( keep(28) )
593 INTEGER iflag, ierror, comm
595 INTEGER ipool( lpool )
596 INTEGER myid, slavef, nbfin
597 DOUBLE PRECISION opassw, opeliw
599 INTEGER frtptr( n+1 ), frtelt( nelt )
600 INTEGER itloc( n + keep(253) ), fils( n ), dad( keep(28) )
601 DOUBLE PRECISION :: rhs_mumps(keep(255))
602 INTEGER(8),
INTENT(IN) :: ptrarw( lptrar ), ptraiw( lptrar )
603 INTEGER nd( keep(28) ), frere( keep(28) )
604 INTEGER istep_to_iniv2(keep(71)),
605 & tab_pos_in_pere(slavef+2,
max(1,keep(56)))
606 INTEGER intarr( keep8(27) )
607 DOUBLE PRECISION dblarr( keep8(26) )
608 LOGICAL,
intent(in) ::
609 LOGICAL flag, right_mess, flagbis
610 INTEGER lp, msgsou_loc, msgtag_loc, msglen_loc
612 INTEGER :: status_bis(mpi_status_size)
613 INTEGER,
SAVE :: recurs = 0
615 IF ( .NOT. stack_right_authorized )
THEN
620 IF (icntl(4).LT.1) lp=-1
621 IF ( message_received )
THEN
622 msgsou_loc = mpi_any_source
623 msgtag_loc = mpi_any_tag
626 IF ( ass_irecv .NE. mpi_request_null)
THEN
627 IF (keep(117).NE.0)
THEN
628 WRITE(*,*)
"Problem of active IRECV with KEEP(117)=",keep(117)
636 IF ( ( (msgsou.NE.mpi_any_source) .OR.
637 & (msgtag.NE.mpi_any_tag) ) )
THEN
638 IF ( msgsou.NE.mpi_any_source)
THEN
639 right_mess = msgsou.EQ.status(mpi_source)
641 IF ( msgtag.NE.mpi_any_tag)
THEN
643 & ( (msgtag.EQ.status(mpi_tag)).AND.right_mess )
647 & comm, status_bis, ierr)
652 & flag, status, ierr)
657 &
write(lp,*)
' Error return from MPI_TEST ',
658 & iflag,
' in DMUMPS_TRY_RECVTREAT'
663 keep(266)=keep(266)-1
664 message_received = .true.
665 msgsou_loc = status( mpi_source )
666 msgtag_loc = status( mpi_tag )
668 IF (.NOT.right_mess) recurs = recurs + 10
670 & msgsou_loc, msgtag_loc, msglen_loc, bufr, lbufr,
672 & procnode_steps, posfac,
673 & iwpos, iwposcb, iptrlu,
674 & lrlu, lrlus, n, iw, liw, a, la,
675 & ptrist, ptlust, ptrfac,
676 & ptrast, step, pimaster, pamaster, nstk_s,
comp, iflag,
678 & perm, ipool, lpool, leaf, nbfin,
myid, slavef,
680 & root, opassw, opeliw, itloc, rhs_mumps, fils, dad,
682 & intarr, dblarr, icntl, keep,keep8,dkeep, nd, frere,
683 & lptrar, nelt, frtptr, frtelt,
684 & istep_to_iniv2, tab_pos_in_pere
687 IF (.NOT.right_mess) recurs = recurs - 10
688 IF ( iflag .LT. 0 )
RETURN
689 IF (.NOT.right_mess)
THEN
690 IF (ass_irecv .NE. mpi_request_null)
THEN
694 & comm, flagbis, status, ierr)
696 msgsou_loc = status( mpi_source )
697 msgtag_loc = status( mpi_tag )
699 & status, bufr, lbufr,
701 & procnode_steps, posfac,
702 & iwpos, iwposcb, iptrlu,
703 & lrlu, lrlus, n, iw, liw, a, la,
704 & ptrist, ptlust, ptrfac,
705 & ptrast, step, pimaster, pamaster,
706 & nstk_s,
comp, iflag,
708 & perm, ipool, lpool,leaf,nbfin,
myid,slavef,
710 & root, opassw, opeliw, itloc, rhs_mumps,
711 & fils, dad, ptrarw, ptraiw,
712 & intarr, dblarr, icntl,
713 & keep,keep8, dkeep,nd, frere,
714 & lptrar, nelt, frtptr, frtelt,
715 & istep_to_iniv2, tab_pos_in_pere
718 IF ( iflag .LT. 0 )
RETURN
725 & comm, status, ierr)
729 & comm, flag, status, ierr)
732 msgsou_loc = status( mpi_source )
733 msgtag_loc = status( mpi_tag )
734 message_received = .true.
736 & status, bufr, lbufr,
738 & procnode_steps, posfac,
739 & iwpos, iwposcb, iptrlu,
740 & lrlu, lrlus, n, iw, liw, a, la,
741 & ptrist, ptlust, ptrfac,
742 & ptrast, step, pimaster, pamaster, nstk_s,
comp, iflag,
744 & perm, ipool, lpool, leaf, nbfin,
myid, slavef,
746 & root, opassw, opeliw, itloc, rhs_mumps,
747 & fils, dad, ptrarw, ptraiw,
748 & intarr, dblarr, icntl, keep,keep8,dkeep, nd, frere,
749 & lptrar, nelt, frtptr, frtelt,
750 & istep_to_iniv2, tab_pos_in_pere
753 IF ( iflag .LT. 0 )
RETURN
758 IF ( nbfin .EQ. 0 )
RETURN
759 IF ( recurs .GT. 3 )
RETURN
760 IF ( keep(36).EQ.1 .AND. set_irecv .AND.
761 & (ass_irecv.EQ.mpi_request_null) .AND.
762 & message_received )
THEN
764 & lbufr_bytes, mpi_packed, mpi_any_source,