38 * IAD_ELEM ,FR_ELEM,INTLIST,NBINTC,
39 * IAD_I24 ,FR_I24 ,SFR_I24,I24MAXNSNE,FLAG,
50 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
51#include "implicit_f.inc"
67 INTEGER IPARI(NPARI,*),IAD_ELEM(2,*),FR_ELEM(*),
68 * ITAB(*),INTLIST(*),NBINTC,FLAG,I24MAXNSNE,INT24E2EUSE
70 * iad_i24(nbintc+1,*), sfr_i24,fr_i24(*)
72 TYPE(intbuf_struct_) INTBUF_TAB(*)
78 * (PARASIZ),REQ_RI(PARASIZ),REQ_S(PARASIZ),
79 * REQ_S2(PARASIZ)(PARASIZ)
80 INTEGER P,LENRV,IADS(PARASIZ+1),IADR(PARASIZ+1),IERROR,
81 * SIZ,LOC_PROC,MSGTYP,IDEB(NINTER),IDB,PROC,
82 * MSGOFF,MSGOFF2,MSGOFF3,MSGOFF4,MSGOFF5
83 INTEGER IADINT(NINTER,NSPMD)
85 INTEGER I,J,L,NB,NL,NN,K,N
87 * snremote,surf,surfr,i_stok,it,len_nsnsi,ct,seg,ms,nsnr,
88 * snremotebis,ni,ilen,rlen,li,lr,igsti,nfit
91 * TMP,,SEND_PMAX(NINTER),REC_PMAX(NINTER),TIME_S,TIME_SR
93 *
DIMENSION(:),
ALLOCATABLE :: bbufs, bbufr,rrecbuf
95 *
DIMENSION(:,:),
ALLOCATABLE :: rsendbuf
98 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ISENDBUF
99 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IRECBUF
100 INTEGER,
DIMENSION(:),
ALLOCATABLE :: SNIDX
101 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITRI,INDTRI,ISCANDR,ISCAND
110 SAVE iads,iadr,bbufs,bbufr,req_s,req_s2,
111 * req_si,req_r,req_r2
112 * rrecbuf,irecbuf,rsendbuf,isendbuf,
113 * ilen,rlen,len,lensd,lenrv
117 send_pmax(1:ninter)=0
133 ALLOCATE(iscand(numnod+i24maxnsne))
134 iscand(1:numnod+i24maxnsne)=0
139 nsnr = ipari( 24,nin)
140 iedg4 = ipari(59,nin)
142 i_stok = intbuf_tab(nin)%I_STOK(1)
144 n = intbuf_tab(nin)%CAND_N(i)
146 sn = intbuf_tab(nin)%NSV(n)
148 ms = intbuf_tab(nin)%CAND_E(i)
152 n = intbuf_tab(nin)%NSV(i)
153 IF (iscand(n)==0)
THEN
154 intbuf_tab(nin)%TIME_S(i) = zero
155 intbuf_tab(nin)%IRTLM(2*(i-1)+1) = 0
197 lensd = lensd +
nsnfi(nin)%P(p)*alen
198 lenrv = lenrv +
nsnsi(nin)%P(p)*alen
202 iadr(nspmd+1)=lenrv+1
206 ALLOCATE(bbufs(lensd),stat=ierror)
208 CALL ancmsg(msgid=20,anmode=aninfo)
216 ALLOCATE(bbufr(lenrv),stat=ierror)
218 CALL ancmsg(msgid=20,anmode=aninfo)
224 siz=iadr(p+1)-iadr(p)
227 CALL mpi_irecv( bbufr(iadr(p)),siz,real,it_spmd(p),msgtyp,
228 * spmd_comm_world,req_r(p),ierror )
238 IF (p/= loc_proc)
THEN
245 bbufs(l)=
irtlm_fi(nin)%P(1,nn+ideb(nin))
246 bbufs(l+1)=
irtlm_fi(nin)%P(2,nn+ideb(nin))
247 bbufs(l+2)=
time_sfi(nin)%P(nn+ideb(nin))
257 ideb(nin)=ideb(nin)+nb
264 . bbufs(iads(p)),siz,real ,it_spmd(p),msgtyp,
265 . spmd_comm_world,req_si(p),ierror )
285 siz=iadr(p+1)-iadr(p)
290 CALL mpi_wait(req_r(p),status,ierror)
302 nd =
nsvsi(nin)%P(ideb(nin)+k)
305 sn = intbuf_tab(nin)%NSV(nd)
306 time_s = intbuf_tab(nin)%TIME_S(nd)
307 surf = intbuf_tab(nin)%IRTLM(2*(nd-1)+1)
308 surfr = bbufr(iadr(p)+l)
309 time_sr = bbufr(iadr(p)+l+2)
311 IF (bbufr(iadr(p)+l)==0
312 * .AND.bbufr(iadr(p)+l+2)==zero)
THEN
315 ELSEIF (intbuf_tab(nin)%IRTLM(2*(nd-1)+1) == 0
316 * .AND. intbuf_tab(nin)%TIME_S(nd) ==zero)
THEN
318 intbuf_tab(nin)%IRTLM(2*(nd-1)+1) = bbufr(iadr(p)+l)
319 intbuf_tab(nin)%IRTLM(2*(nd-1)+2) = bbufr(iadr(p)+l+1)
320 intbuf_tab(nin)%TIME_S(nd) = bbufr(iadr(p)+l+2)
322 ELSEIF (time_s==-ep20 .AND. surf == 0)
THEN
323 intbuf_tab(nin)%IRTLM(2*(nd-1)+1) = 0
324 intbuf_tab(nin)%IRTLM(2*(nd-1)+2) = 0
325 intbuf_tab(nin)%TIME_S(nd) = -ep20
327 ELSEIF (time_sr==-ep20 .AND. surfr == 0)
THEN
328 intbuf_tab(nin)%IRTLM(2*(nd-1)+1) = 0
329 intbuf_tab(nin)%IRTLM(2*(nd-1)+2) = 0
330 intbuf_tab(nin)%TIME_S(nd) = -ep20
331 ELSEIF (time_s==-ep20 .AND. surf == 0)
THEN
333 ELSEIF( surfr > 0 .AND. time_sr==-ep20 .AND.
334 * surf > 0 .AND. time_s==-ep20 )
THEN
337 IF (surfr > surf)
THEN
338 intbuf_tab(nin)%IRTLM(2*(nd-1)+1) = bbufr(iadr(p)+l)
339 intbuf_tab(nin)%IRTLM(2*(nd-1)+2) = bbufr(iadr(p)+l+1)
340 intbuf_tab(nin)%TIME_S(nd) = bbufr(iadr(p)+l+2)
342 ELSEIF(surfr > 0 .AND. time_sr==-ep20)
THEN
343 intbuf_tab(nin)%IRTLM(2*(nd-1)+1) = bbufr(iadr(p)+l)
344 intbuf_tab(nin)%IRTLM(2*(nd-1)+2) = bbufr(iadr(p)+l+1)
345 intbuf_tab(nin)%TIME_S(nd) = -ep20
347 ELSEIF(surf > 0 .AND. time_s==-ep20)
THEN
350 IF (time_sr == time_s)
THEN
351 IF (abs(surfr) > abs(surf))
THEN
352 intbuf_tab(nin)%IRTLM(2*(nd-1)+1) = bbufr(iadr(p)+l)
353 intbuf_tab(nin)%IRTLM(2*(nd-1)+2)=
355 intbuf_tab(nin)%TIME_S(nd) = bbufr(iadr(p)+l+2)
357 ELSEIF (time_s <= time_sr )
THEN
358 intbuf_tab(nin)%IRTLM(2*(nd-1)+1) =
360 intbuf_tab(nin)%IRTLM(2*(nd-1)+2)= int(bbufr(iadr(p)+l+1))
361 intbuf_tab(nin)%TIME_S(nd) = bbufr(iadr(p)+l+2)
366 IF(abs(bbufr(iadr(p)+l+3)) >
367 * abs(intbuf_tab(nin)%SECND_FR(6*(nd-1)+1)))
368 * intbuf_tab(nin)%SECND_FR(6*(nd-1)+1) = bbufr(iadr(p)+l+3)
370 IF(abs(bbufr(iadr(p)+l+4)) >
371 * abs(intbuf_tab(nin)%SECND_FR(6*(nd-1)+2)))
372 * intbuf_tab(nin)%SECND_FR(6*(nd-1)+2) = bbufr(iadr(p)+l+4)
374 IF(abs(bbufr(iadr(p)+l+5)) >
375 * abs(intbuf_tab(nin)%SECND_FR(6*(nd-1)+3)))
376 * intbuf_tab(nin)%SECND_FR(6*(nd-1)+3) = bbufr(iadr(p)+l+5)
379 IF(bbufr(iadr(p)+l+3)==-intbuf_tab(nin)%SECND_FR(6*(nd-1)+1) )
380 * intbuf_tab(nin)%SECND_FR(6*(nd-1)+1) = abs(bbufr(iadr(p)+l+3))
382 IF(bbufr(iadr(p)+l+4)==-intbuf_tab(nin)%SECND_FR(6*(nd-1)+2) )
383 * intbuf_tab(nin)%SECND_FR(6*(nd-1)+2) = abs(bbufr(iadr(p)+l+4))
385 IF(bbufr(iadr(p)+l+5)==-intbuf_tab(nin)%SECND_FR(6*(nd-1)+3) )
386 * intbuf_tab(nin)%SECND_FR(6*(nd-1)+3) = abs(bbufr(iadr(p)+l+5))
393 intbuf_tab(nin)%PENE_OLD(5*(nd-1)+1)=
max(intbuf_tab(nin)%PENE_OLD(5*(nd-1)+1),
394 * bbufr(iadr(p)+l+6) )
395 intbuf_tab(nin)%PENE_OLD(5*(nd-1)+3)=
396 *
max(intbuf_tab(nin)%PENE_OLD(5*(nd-1)+3),
397 * bbufr(iadr(p)+l+8) )
399 intbuf_tab(nin)%PENE_OLD(5*(nd-1)+5)=
400 *
max(intbuf_tab(nin)%PENE_OLD(5*(nd-1)+5),
401 * bbufr(iadr(p)+l+9) )
407 intbuf_tab(nin)%STIF_OLD(2*(nd-1)+1)=
max(intbuf_tab(nin)%STIF_OLD(2*(nd-1)+1),
408 * bbufr(iadr(p)+l+7) )
414 ideb(nin)=ideb(nin)+nb
425 siz=iads(p+1)-iads(p)
428 CALL mpi_wait(req_si(p),status,ierror)
432 IF (
ALLOCATED(bbufs))
DEALLOCATE(bbufs)
433 IF (
ALLOCATED(bbufr))
DEALLOCATE(bbufr)
447 IF(int24e2euse == 1)
THEN
451 iedg4 = ipari(59,nin)
452 IF(nty==24 .AND. iedg4 > 0)
THEN
456 intbuf_tab(nin)%ISPT2(sn)=0
457 nsi = intbuf_tab(nin)%ISEGPT(sn)
458 nd=intbuf_tab(nin)%NSV(sn)
460 IF(intbuf_tab(nin)%IRTLM
THEN
461 intbuf_tab(nin)%ISPT2(sn) = 0
463 intbuf_tab(nin)%ISPT2(sn) = 1
466 intbuf_tab(nin)%ISPT2(sn) = 1
482 iads(nspmd+1)=sfr_i24+1
486 ALLOCATE(isendbuf(4,sfr_i24))
487 ALLOCATE(irecbuf(ilen*sfr_i24))
488 ALLOCATE(rsendbuf(8,sfr_i24))
489 ALLOCATE(rrecbuf(rlen*sfr_i24))
493 siz = iads(p+1)-iads(p)
495 li = (iads(p)-1)*ilen+1
496 lr = (iads(p)-1)*rlen+1
500 s irecbuf(li),len,mpi_integer,it_spmd(p),msgtyp,
501 g spmd_comm_world,req_r(p),ierror)
506 s rrecbuf(lr),len,real,it_spmd(p),msgtyp,
507 g spmd_comm_world,req_r2(p),ierror)
518 iedg4 = ipari(59,nin)
521 DO i=iad_i24(ni,p),iad_i24(ni+1,p)-1
524 sn = intbuf_tab(nin)%NSV(nd)
526 isendbuf(1,nb)=itab(sn)
527 isendbuf(2,nb)=intbuf_tab(nin)%IRTLM(2*(nd-1)+1)
528 isendbuf(3,nb)=intbuf_tab(nin)%IRTLM(2*(nd-1)+2)
530 isendbuf(4,nb)= intbuf_tab(nin)%ISPT2(nd)
534 rsendbuf(1,nb) = intbuf_tab(nin)%TIME_S(nd)
535 rsendbuf(2,nb) = intbuf_tab(nin)%SECND_FR(6*(nd-1)+1)
536 rsendbuf(3,nb) = intbuf_tab(nin)%SECND_FR(6*(nd-1)+2)
537 rsendbuf(4,nb) = intbuf_tab(nin)%SECND_FR(6*(nd-1)+3)
538 rsendbuf(5,nb) = intbuf_tab(nin)%PENE_OLD(5*(nd-1)+1)
539 rsendbuf(6,nb) = intbuf_tab(nin)%PENE_OLD(5*(nd-1)+3)
540 rsendbuf(8,nb) = intbuf_tab(nin)%PENE_OLD(5*(nd-1)+5)
541 rsendbuf(7,nb) = intbuf_tab(nin)%STIF_OLD(2*(nd-1)+1)
552 siz = iads(p+1) - iads(p)
557 s isendbuf(1,l),siz*4,mpi_integer,it_spmd(p),msgtyp,
558 g spmd_comm_world,req_s(p),ierror)
562 s rsendbuf(1,l),siz*8,real,it_spmd(p),msgtyp,
563 g spmd_comm_world,req_s2(p),ierror)
581 siz = iads(p+1)-iads(p)
584 CALL mpi_wait(req_r(p),status,ierror)
586 CALL mpi_wait(req_r2(p),status,ierror)
595 iedg4 = ipari(59,nin)
598 DO k=iad_i24(ni,p),iad_i24(ni+1,p)-1
600 time_s = intbuf_tab(nin)%TIME_S(sn)
601 surf = intbuf_tab(nin)%IRTLM(2*(sn-1)+1)
602 surfr = irecbuf(2+(idb-1)*ilen)
603 time_sr = rrecbuf(1+(idb-1)*rlen)
604 IF (time_sr==0 .AND. surfr==0)
THEN
607 ELSEIF (time_s==0 .AND.surf==0)
THEN
609 intbuf_tab(nin)%TIME_S(sn) = time_sr
610 intbuf_tab(nin)%IRTLM(2*(sn-1)+1) = irecbuf(2+(idb-1)*ilen)
611 intbuf_tab(nin)%IRTLM(2*(sn-1)+2) = irecbuf(3+(idb-1)*ilen)
615 ELSEIF( time_s == -ep20 .AND. surf == 0)
THEN
618 ELSEIF( surfr == 0 .AND. time_sr == -ep20)
THEN
619 intbuf_tab(nin)%TIME_S(sn) = -ep20
620 intbuf_tab(nin)%IRTLM(2*(sn-1)+1) = irecbuf(2+(idb-1)*ilen)
621 intbuf_tab(nin)%IRTLM(2*(sn-1)+2) = irecbuf(3+(idb-1)*ilen)
623 ELSEIF( surfr > 0 .AND. time_sr==-ep20 .AND.
624 * surf > 0 .AND. time_s==-ep20)
THEN
627 IF (surfr > surf)
THEN
628 intbuf_tab(nin)%IRTLM(2*(sn-1)+1) = irecbuf(2+(idb-1)*ilen)
629 intbuf_tab(nin)%IRTLM(2*(sn-1)+2) =
630 * irecbuf(3+(idb-1)*ilen)
631 intbuf_tab(nin)%TIME_S(sn) = -ep20
632 intbuf_tab(nin)%PENE_OLD(5*(sn-1)+1)=rrecbuf(5+(idb-1)*rlen)
633 intbuf_tab(nin)%STIF_OLD(2*(sn-1)+1)=rrecbuf(7+(idb-1)*rlen)
636 ELSEIF( surf > 0 .AND. time_s == -ep20)
THEN
639 ELSEIF( surfr > 0 .AND. time_sr == -ep20)
THEN
640 intbuf_tab(nin)%TIME_S(sn) = -ep20
641 intbuf_tab(nin)%IRTLM(2*(sn-1)+1) = irecbuf(2+(idb-1)*ilen)
642 intbuf_tab(nin)%IRTLM(2*(sn-1)+2) = irecbuf(3+(idb-1)*ilen)
645 IF (time_sr == time_s)
THEN
646 IF (abs(surfr) > abs(surf))
THEN
647 intbuf_tab(nin)%TIME_S
648 intbuf_tab(nin)%IRTLM(2*(sn-1)+1) =
649 * irecbuf(2+(idb-1)*ilen)
650 intbuf_tab(nin)%IRTLM(2*(sn-1)+2) =
651 * irecbuf(3+(idb-1)*ilen)
653 ELSEIF (time_s <= time_sr )
THEN
654 intbuf_tab(nin)%TIME_S(sn) = time_sr
655 intbuf_tab(nin)%IRTLM(2*(sn-1)+1) =
656 * irecbuf(2+(idb-1)*ilen)
657 intbuf_tab(nin)%IRTLM(2*(sn-1)+2) =
658 * irecbuf(3+(idb-1)*ilen)
663 IF (abs(rrecbuf(2+(idb-1)*rlen)) >
664 * (abs(intbuf_tab(nin)%SECND_FR(6*(sn-1)+1)) ) )
665 * intbuf_tab(nin)%SECND_FR(6*(sn-1)+1) = rrecbuf(2+(idb-1)*rlen)
667 IF (abs(rrecbuf(3+(idb-1)*rlen)) >
668 * abs(intbuf_tab(nin)%SECND_FR(6*(sn-1)+2)) )
669 * intbuf_tab(nin)%SECND_FR(6*(sn-1)+2) = rrecbuf(3+(idb-1)*rlen)
671 IF (abs(rrecbuf(4+(idb-1)*rlen)) >
672 * abs(intbuf_tab(nin)%SECND_FR(6*(sn-1)+3)) )
673 * intbuf_tab(nin)%SECND_FR(6*(sn-1)+3) = rrecbuf(4+(idb-1)*rlen)
676 IF (rrecbuf(2+(idb-1)*rlen)==-intbuf_tab(nin)%SECND_FR(6*(sn-1)+1) )
677 * intbuf_tab(nin)%SECND_FR(6*(sn-1)+1)=
678 * abs(rrecbuf(2+(idb-1)*rlen))
680 IF (rrecbuf(3+(idb-1)*rlen)==-intbuf_tab(nin)%SECND_FR(6*(sn-1)+2) )
681 * intbuf_tab(nin)%SECND_FR(6*(sn-1)+2)=
682 * abs(rrecbuf(3+(idb-1)*rlen))
685 * intbuf_tab(nin)%SECND_FR(6*(sn-1)+3)=
686 * abs(rrecbuf(4+(idb-1)*rlen))
689 intbuf_tab(nin)%PENE_OLD(5*(sn-1)+1)=
max(intbuf_tab(nin)%PENE_OLD(5*(sn-1)+1),
690 * rrecbuf(5+(idb-1)*rlen) )
691 intbuf_tab(nin)%PENE_OLD(5*(sn-1)+3)=
max(intbuf_tab(nin)%PENE_OLD(5*(sn-1)+3),
692 * rrecbuf(6+(idb-1)*rlen) )
695 intbuf_tab(nin)%PENE_OLD(5*(sn-1)+5)=
max(intbuf_tab(nin)%PENE_OLD(5*(sn-1)+5),
696 * rrecbuf(8+(idb-1)*rlen) )
702 intbuf_tab(nin)%STIF_OLD(2*(sn-1)+1)=
max(intbuf_tab(nin)%STIF_OLD(2*(sn-1)+1),
703 * rrecbuf(7+(idb-1)*rlen) )
707 nd=intbuf_tab(nin)%NSV(sn)
708 intbuf_tab(nin)%ISPT2(sn) =
max( intbuf_tab(nin)%ISPT2(sn), irecbuf(4+(idb-1)*ilen))
719 siz = iads(p+1)-iads(p)
721 CALL mpi_wait(req_s(p),status,ierror)
722 CALL mpi_wait(req_s2(p),status,ierror)
732 nsnr = ipari( 24,nin)
733 iedg4 = ipari(59,nin)
736 IF(intbuf_tab(nin)%IRTLM(2*(sn-1)+1)==0)
737 * intbuf_tab(nin)%PENE_OLD(5*(sn-1)+5)=zero
742 IF(
ALLOCATED(isendbuf))
DEALLOCATE(isendbuf)
743 IF(
ALLOCATED(irecbuf))
DEALLOCATE(irecbuf)
744 IF(
ALLOCATED(rsendbuf))
DEALLOCATE(rsendbuf)
745 IF(
ALLOCATED(rrecbuf))
DEALLOCATE(rrecbuf)
764 lensd = lensd +
nsnsi(nin)%P(p)*alen
765 lenrv = lenrv +
nsnfi(nin)%P(p)*alen
769 iadr(nspmd+1)=lenrv+1
772 ALLOCATE(bbufs(lensd),stat=ierror)
774 CALL ancmsg(msgid=20,anmode=aninfo)
781 ALLOCATE(bbufr(lenrv),stat=ierror)
783 CALL ancmsg(msgid=20,anmode=aninfo)
790 siz=iadr(p+1)-iadr(p)
793 CALL mpi_irecv( bbufr(iadr(p)),siz,real,it_spmd(p),msgtyp,
794 * spmd_comm_world,req_r(p),ierror )
803 IF (p/= loc_proc)
THEN
808 iedg4 = ipari(59,nin)
812 nd =
nsvsi(nin)%P(ideb(nin)+nn)
813 nod=intbuf_tab(nin)%NSV(nd)
814 bbufs(l )=intbuf_tab(nin)%IRTLM(2*(nd-1)+1)
815 bbufs(l+1)=intbuf_tab(nin)%IRTLM(2*(nd-1)+2)
816 bbufs(l+2)=intbuf_tab(nin)%TIME_S(nd)
817 bbufs(l+3)=intbuf_tab(nin)%SECND_FR(6*(nd-1)+1)
818 bbufs(l+4)=intbuf_tab(nin)%SECND_FR(6*(nd-1)+2)
819 bbufs(l+5)=intbuf_tab(nin)%SECND_FR(6*(nd-1)+3)
820 bbufs(l+6)=intbuf_tab(nin)%PENE_OLD(5*(nd-1)+1)
821 bbufs(l+7)=intbuf_tab(nin)%PENE_OLD(5*(nd-1)+3)
822 bbufs(l+9)=intbuf_tab(nin)%PENE_OLD(5*(nd-1)+5)
823 bbufs(l+8)=intbuf_tab(nin)%STIF_OLD(2*(nd-1)+1)
825 bbufs(l+10)=intbuf_tab(nin)%ISPT2(nd)
832 ideb(nin)=ideb(nin)+nb
840 . bbufs(iads(p)),siz,real ,it_spmd(p),msgtyp,
841 . spmd_comm_world,req_si(p),ierror )
866 siz=iadr(p+1)-iadr(p)
869 CALL mpi_wait(req_r(p),status,ierror)
873 igsti = ipari(34,nin)
876 iedg4 = ipari(59,nin)
880 IF(impl_s>0.AND.igsti==6)
THEN
883 irtlm_fi(nin)%P(1,ideb(nin)+k)=bbufr(iadr(p)+l)
884 irtlm_fi(nin)%P(2,ideb(nin)+k)=bbufr(iadr(p)+l+1)
885 time_sfi(nin)%P(ideb(nin)+k)=bbufr(iadr(p)+l+2)
891 secnd_frfi(nin)%P(4,ideb(nin)+k)=bbufr(iadr(p)+l+3)
892 secnd_frfi(nin)%P(5,ideb(nin)+k)=bbufr(iadr(p)+l+4)
893 secnd_frfi(nin)%P(6,ideb(nin)+k)=bbufr(iadr(p)+l+5)
895 pene_oldfi(nin)%P(2,ideb(nin)+k)=bbufr(iadr(p)+l+6)
896 pene_oldfi(nin)%P(3,ideb(nin)+k)=bbufr(iadr(p)+l+7)
898 stif_oldfi(nin)%P(2,ideb(nin)+k)=bbufr(iadr(p)+l+8)
900 ispt2_fi(nin)%P(ideb(nin)+k)=bbufr(iadr(p
906 irtlm_fi(nin)%P(1,ideb(nin)+k)=bbufr(iadr(p)+l)
907 irtlm_fi(nin)%P(2,ideb(nin)+k)=bbufr(iadr(p)+l+1)
908 time_sfi(nin)%P(ideb(nin)+k)=bbufr(iadr(p)+l+2)
914 secnd_frfi(nin)%P(4,ideb(nin)+k)=bbufr(iadr(p)+l+3)
915 secnd_frfi(nin)%P(5,ideb(nin)+k)=bbufr(iadr(p)+l+4)
916 secnd_frfi(nin)%P(6,ideb(nin)+k)=bbufr(iadr(p)+l+5)
918 pene_oldfi(nin)%P(2,ideb(nin)+k)=bbufr(iadr(p)+l+6)
919 pene_oldfi(nin)%P(3,ideb(nin)+k)=bbufr(iadr(p)+l+7)
920 pene_oldfi(nin)%P(5,ideb(nin)+k)=bbufr(iadr(p)+l+9)
922 stif_oldfi(nin)%P(2,ideb(nin)+k)=bbufr(iadr(p)+l+8)
924 ispt2_fi(nin)%P(ideb(nin)+k)=bbufr(iadr(p)+l+10)
931 ideb(nin)=ideb(nin)+nb
941 siz=iads(p+1)-iads(p)
944 CALL mpi_wait(req_si(p),status,ierror)
949 IF (
ALLOCATED(bbufs))
DEALLOCATE(bbufs)
950 IF (
ALLOCATED(bbufr))
DEALLOCATE(bbufr)