522
523
524
526 USE intbufdef_mod
527 USE multi_fvm_mod
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544#include "implicit_f.inc"
545
546
547
548#include "mvsiz_p.inc"
549#include "comlock.inc"
550
551
552
553#include "com04_c.inc"
554#include "com08_c.inc"
555#include "param_c.inc"
556#include "task_c.inc"
557#include "warn_c.inc"
558#include "tabsiz_c.inc"
559
560
561
562 INTEGER NIN,JTASK ,LINDMAX,NMN ,
563 . ,NB_JLT_NEW,NB_STOK_N,NRTMDIM
564 INTEGER IPARI(NPARI), KINET(*),ITAB(*)
566 INTEGER, INTENT(in) :: S_XCELL_REMOTE
567 my_real,
DIMENSION(S_XCELL_REMOTE),
INTENT(in) :: xcell_remote
569 . x(3,*), v(3,*), a(3,*), ms(*),
570 . mtf(14,*),cand_sav(8,*),xcell(3,sxcell)
571 TYPE(INTBUF_STRUCT_) INTBUF_TAB
572 TYPE(MULTI_FVM_STRUCT), INTENT(IN) :: MULTI_FVM
573 TYPE(t_connectivity), INTENT(IN) :: ALE_NE_CONNECT
574
575
576
577 INTEGER I, NSN,
578 . NOINT,NTY,IVIS2,
579 . IGAP,INACTI,IBAG,I_STOK, I_STOK_LOC, JLT_NEW,
580 . JLT, NFT,DEBUT,NBID,NB_LOC,IGSTI,ICURV,IADM
581 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
582 . NSVG(MVSIZ), CN_LOC(MVSIZ),CE_LOC(MVSIZ),INDEX2(LINDMAX),
583 . CAND_N_N(MVSIZ),CAND_E_N(MVSIZ),KINI(MVSIZ),IBID
585 . startt, stopt,gap,gapmin,maxbox,minbox,bid,
586 . kmin, kmax, gapmax
588 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
589 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
590 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
591 . lb1(mvsiz), lb2(mvsiz), lb3(mvsiz), lb4(mvsiz),
592 . lc1(mvsiz), lc2(mvsiz), lc3(mvsiz), lc4(mvsiz),
593 . p1(mvsiz), p2(mvsiz), p3(mvsiz), p4(mvsiz),
594 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
595 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
596 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
597 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
598 . gapv(mvsiz),vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),msi(mvsiz)
599
600
601
602 inacti=ipari(22)
603 IF(inacti /= 7 .or. ipari(34) == 0)RETURN
604
605
607
608
609
610
611
612
613 nbid=0
614 bid=zero
615 ibid = 0
616
617 nsn =ipari(5)
618 nty =ipari(7)
619 ivis2 =ipari(14)
620 noint =ipari(15)
621 igap =ipari(21)
622 inacti=ipari(22)
623 ibag =ipari(32)
624 igsti=ipari(34)
625 icurv =0
626 iadm =ipari(44)
627 startt=intbuf_tab%VARIABLES(3)
628 stopt =intbuf_tab%VARIABLES(11)
629 IF(startt > tt) RETURN
630 IF(tt > stopt) RETURN
631 gap =intbuf_tab%VARIABLES(2)
632 gapmin=intbuf_tab%VARIABLES(13)
633
634 i_stok = intbuf_tab%I_STOK(1)
635 maxbox = intbuf_tab%VARIABLES(9)
636 minbox = intbuf_tab%VARIABLES(12)
637 gapmax=intbuf_tab%VARIABLES(16)
638 kmin =intbuf_tab%VARIABLES(17)
639 kmax =intbuf_tab%VARIABLES(18)
640
641
642
643 nb_loc = i_stok / nthread
644 IF (jtask == nthread) THEN
645 i_stok_loc = i_stok-nb_loc*(nthread-1)
646 ELSE
647 i_stok_loc = nb_loc
648 ENDIF
649 debut = (jtask-1)*nb_loc
650 i_stok = 0
651
652 DO i = debut+1, debut+i_stok_loc
653 IF(intbuf_tab%CAND_N(i) < 0) THEN
654 IF(i_stok + 1 > 4*numnod) THEN
655 CALL ancmsg(msgid=94,anmode=aninfo)
657 ENDIF
658 i_stok = i_stok + 1
659 index2(i_stok) = i
660
661 intbuf_tab%CAND_N(i) = -intbuf_tab%CAND_N(i)
662 ENDIF
663
664 cand_sav(8,i) = zero
665 ENDDO
666
667 IF (debug(3) >= 1) THEN
668 nb_jlt = nb_jlt + i_stok_loc
669 nb_stok_n = nb_stok_n + i_stok
670 ENDIF
671
672 DO nft = 0 , i_stok - 1 , nvsiz
673 jlt =
min( nvsiz, i_stok - nft )
674
676 1 jlt,index2(nft+1),intbuf_tab%CAND_E,intbuf_tab%CAND_N,
677 2 cand_e_n,cand_n_n)
678
680 1 jlt ,x ,intbuf_tab%IRECTM,intbuf_tab%NSV,cand_e_n,
681 2 cand_n_n ,intbuf_tab%STFM ,intbuf_tab%STFNS ,x1 ,x2 ,
682 3 x3 ,x4 ,y1 ,y2 ,y3 ,
683 4 y4 ,z1 ,z2 ,z3 ,z4 ,
684 5 xi ,yi ,zi ,stif ,ix1 ,
685 6 ix2 ,ix3 ,ix4 ,nsvg ,igap ,
686 7 gap ,intbuf_tab%GAP_S ,intbuf_tab%GAP_M ,gapv ,
687 9 ms ,vxi ,vyi ,
688 a vzi ,msi ,nsn ,v ,kinet ,
689 b kini ,nty ,nin
690 c kmax ,gapmax
691 d bid ,bid ,bid ,ibid ,bid ,
692 e bid ,bid ,bid
693 f ibid ,ibid ,ibid ,bid ,bid ,
694 g ibid ,ibid ,ibid ,ibid ,ibid ,
695 h ibid ,ibid ,bid ,ibid ,bid )
696
697 jlt_new = 0
699 1 jlt ,cand_n_n ,cand_e_n ,cn_loc ,ce_loc ,
700 2 x1 ,x2 ,x3 ,x4 ,y1 ,
701 3 y2 ,y3 ,y4 ,z1 ,z2 ,
702 4 z3 ,z4 ,xi ,yi ,zi ,
703 5 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
704 6 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
705 7 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
706 8 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
707 9 p1 ,p2 ,p3 ,p4 ,ix1 ,
708 a ix2 ,ix3 ,ix4 ,nsvg ,stif ,
709 b jlt_new ,gapv ,intbuf_tab%CAND_P ,ale_ne_connect,
710 c index2(nft+1) ,vxi ,vyi ,itab ,xcell ,
711 d vzi ,msi ,kini ,
712 e igap ,multi_fvm ,s_xcell_remote ,xcell_remote)
713 jlt = jlt_new
714 IF(jlt_new /= 0) THEN
715 ipari(29) = 1
716 IF (debug(3) >= 1) nb_jlt_new = nb_jlt_new + jlt_new
718 1 jlt ,a ,v ,
719 2 gap ,ms ,noint ,intbuf_tab%STFNS ,itab ,
720 3 stifn ,stif ,x ,intbuf_tab%IRECTM ,
721 4 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
722 5 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
723 6 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
724 7 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
725 8 p1 ,p2 ,p3 ,p4 ,nin ,
726 9 ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
727 a gapv ,inacti ,vxi ,vyi ,vzi ,
728 b msi ,mtf ,index2(nft+1),cand_sav)
729 ENDIF
730 ENDDO
731
732 RETURN
subroutine i18kine_i(jlt, a, v, gap, ms, noint, stfn, itab, stifn, stif, x, irect, nx1, nx2, nx3, nx4, ny1, ny2, ny3, ny4, nz1, nz2, nz3, nz4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, p1, p2, p3, p4, nin, ix1, ix2, ix3, ix4, nsvg, gapv, inacti, vxi, vyi, vzi, msi, mtf, index, cand_sav)
subroutine i7cdcor3(jlt, index, cand_e, cand_n, cand_e_n, cand_n_n)
subroutine i18dst3(jlt, cand_n, cand_e, cn_loc, ce_loc, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, nx1, nx2, nx3, nx4, ny1, ny2, ny3, ny4, nz1, nz2, nz3, nz4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, p1, p2, p3, p4, ix1, ix2, ix3, ix4, nsvg, stif, jlt_new, gapv, cand_p, ale_ne_connect, index, vxi, vyi, itab, xcell, vzi, msi, kini, igap, multi_fvm, s_xcell_remote, xcell_remote)
subroutine i7cor3(x, irect, nsv, cand_e, cand_n, stf, stfn, gapv, igap, gap, gap_s, gap_m, istf, gapmin, gapmax, gap_s_l, gap_m_l, drad, ix1, ix2, ix3, ix4, nsvg, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, stif, dgapload, last)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)