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