405 SUBROUTINE set_front8(IPARI,INTERCEP,INTBUF_TAB,T8,NBT8,ITAB)
415#include "implicit_f.inc"
419#include "param_c.inc"
423#include "com01_c.inc"
424#include "com04_c.inc"
428 INTEGER IPARI(NPARI,*)
430 TYPE(intbuf_struct_) INTBUF_TAB(*)
431 TYPE(int8_struct_) :: T8(NSPMD,NBT8)
432 INTEGER :: NBT8,ITAB(*)
436 INTEGER NI,K,I,PROC,P,Q,NB
438 INTEGER ITY,NMN,NRTM,NM_SHARED
439 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: TAG,INDEX_IN_COMM
440 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDEX_IN_FRONT
441 INTEGER :: S_FRONT8(NSPMD,NSPMD),IDX(NSPMD)
442 INTEGER :: LOCAL_ID,II,JJ,KK,NSN
456 ALLOCATE(index_in_front(nmn))
457 index_in_front(1:nmn) = 0
458 ALLOCATE(tag(nspmd,nmn))
459 ALLOCATE(index_in_comm(nspmd,nmn))
460 tag(1:nspmd,1:nmn) = 0
462 n1 = intbuf_tab(ni)%IRECTM(4*(k-1)+1)
463 n2 = intbuf_tab(ni)%IRECTM(4*(k-1)+2)
464 n3 = intbuf_tab(ni)%IRECTM(4*(k-1)+3)
465 n4 = intbuf_tab(ni)%IRECTM(4*(k-1)+4)
466 proc = intercep(1,ni)%P(k)
479 IF(tag(p,k) == 1 .AND. tag(q,k) == 1)
THEN
481 local_id = local_id + 1
482 s_front8(p,q) = s_front8(p,q) + 1
483 s_front8(q,p) = s_front8(q,p) + 1
485 IF( index_in_front(k) == 0)
THEN
486 index_in_front(k) = local_id
493 index_in_comm(1:nspmd,1:nmn) = 0
504 IF(tag(p,k) /= 0)
THEN
506 index_in_comm(p,k)=idx(p)
515 nm_shared = s_front8(p,q)
516 t8(p,nbt8)%BUFFER(q)%NBMAIN = 0
517 ALLOCATE(t8(p,nbt8)%BUFFER(q)%MAIN_ID(nm_shared))
518 ALLOCATE(t8(p,nbt8)%BUFFER(q)%MAIN_UID(nm_shared))
519 ALLOCATE(t8(p,nbt8)%BUFFER(q)%NBSECND(nm_shared))
520 t8(p,nbt8)%BUFFER(q)%NBSECND(1:nm_shared) = 0
521 t8(q,nbt8)%BUFFER(p)%NBMAIN = 0
522 ALLOCATE(t8(q,nbt8)%BUFFER(p)%MAIN_ID(nm_shared))
523 ALLOCATE(t8(q,nbt8)%BUFFER(p)%MAIN_UID(nm_shared))
524 ALLOCATE(t8(q,nbt8)%BUFFER(p)%NBSECND(nm_shared))
525 t8(q,nbt8)%BUFFER(p)%NBSECND(1:nm_shared) = 0
534 t8(p,nbt8)%S_COMM = k
535 ALLOCATE(t8(p,nbt8)%SPMD_COMM_PATTERN(k))
537 t8(p,nbt8)%SPMD_COMM_PATTERN(q)%NUMLOC = 0
538 t8(p,nbt8)%SPMD_COMM_PATTERN(q)%NBCOM = 0
539 ALLOCATE(t8(p,nbt8)%SPMD_COMM_PATTERN(q)%PROCLIST(nspmd))
540 t8(p,nbt8)%SPMD_COMM_PATTERN(q)%PROCLIST(1:nspmd) = 0
541 ALLOCATE(t8(p,nbt8)%SPMD_COMM_PATTERN(q)%BUF_INDEX(nspmd))
542 t8(p,nbt8)%SPMD_COMM_PATTERN(q)%BUF_INDEX(1:nspmd) = 0
557 s_front8(1:nspmd,1:nspmd) = 0
561 IF(index_in_comm(p,k) > 0)
THEN
563 IF(index_in_comm(q,k)/=0)
THEN
565 local_id = index_in_comm(p,k)
566 nb = t8(p,nbt8)%SPMD_COMM_PATTERN(local_id)%NBCOM +1
567 t8(p,nbt8)%SPMD_COMM_PATTERN(local_id)%PROCLIST(nb) = q
568 ii = s_front8(p,q) + 1
569 t8(p,nbt8)%SPMD_COMM_PATTERN(local_id)%BUF_INDEX(nb) = ii
570 jj = t8(p,nbt8)%BUFFER(q)%NBMAIN+1
571 t8(p,nbt8)%BUFFER(q)%MAIN_ID(ii) = k
572 t8(p,nbt8)%BUFFER(q)%MAIN_UID(ii) =
573 . itab(intbuf_tab(ni)%MSR(k))
576 t8(p,nbt8)%BUFFER(q)%NBMAIN = jj
577 t8(p,nbt8)%SPMD_COMM_PATTERN(local_id)%NBCOM=nb
578 t8(p,nbt8)%SPMD_COMM_PATTERN(local_id)%NUMLOC = k
581 local_id = index_in_comm(q,k)
582 nb = t8(q,nbt8)%SPMD_COMM_PATTERN(local_id)%NBCOM +1
583 t8(q,nbt8)%SPMD_COMM_PATTERN(local_id)%PROCLIST(nb) = p
584 ii = s_front8(q,p) + 1
585 t8(q,nbt8)%SPMD_COMM_PATTERN(local_id)%BUF_INDEX(nb) = ii
586 jj = t8(q,nbt8)%BUFFER(p)%NBMAIN+1
587 t8(q,nbt8)%BUFFER(p)%MAIN_ID(ii) = k
588 t8(q,nbt8)%BUFFER(p)%MAIN_UID(ii) =
589 . itab(intbuf_tab(ni)%MSR(k))
591 t8(q,nbt8)%BUFFER(p)%NBMAIN = jj
592 t8(q,nbt8)%SPMD_COMM_PATTERN(local_id)%NBCOM=nb
593 t8(q,nbt8)%SPMD_COMM_PATTERN(local_id)%NUMLOC = k
605 IF(index_in_comm(p,intbuf_tab(ni)%ILOCS(i)) > 0)
THEN
606 local_id = index_in_comm(p,intbuf_tab(ni)%ILOCS(i))
607 nb = t8(p,nbt8)%SPMD_COMM_PATTERN(local_id)%NBCOM
609 ii = t8(p,nbt8)%SPMD_COMM_PATTERN(local_id)%BUF_INDEX(k)
610 q = t8(p,nbt8)%SPMD_COMM_PATTERN(local_id)%PROCLIST(k)
611 t8(p,nbt8)%BUFFER(q)%NBSECND(ii) =
612 . t8(p,nbt8)%BUFFER(q)%NBSECND(ii) + 1
613 t8(p,nbt8)%BUFFER(q)%NBSECND_TOT =
614 . t8(p,nbt8)%BUFFER(q)%NBSECND_TOT + 1
634 . ! t8(p,nbt8)%BUFFER(q)%BUFI(i-1) +
691 DEALLOCATE(index_in_comm)
692 DEALLOCATE(index_in_front)
721#include "implicit_f.inc"
725#include "param_c.inc"
729#include "com04_c.inc"
733 INTEGER IPARI(NPARI,*),FLAG,ITAB(*),CEP(*)
735 TYPE(intbuf_struct_) INTBUF_TAB(*)
744 INTEGER ITY,NRTM,N,N1,N2,N3,N4,NSN,
745 . NRTS,N1L,N2L,N3L,N4L,NLINM,NLINS
746 INTEGER NI,K,I,PROC,IE
753 IF ((flag==0.AND.(ity==24.OR.(ity==25.AND.ipari(100,ni) == 0))).OR.
754 . (flag==1.AND.(ity==7.OR.ity==10.OR.
755 . ity==22.OR.ity==23)) )
THEN
760 IF (.NOT.(
ASSOCIATED(intercep(1,ni)%P)))
THEN
761 ALLOCATE(intercep(1,ni)%P(nrtm))
762 IF(ity==25)
ALLOCATE(intercep(2,ni)%P(nrtm))
764 intercep(1,ni)%P(1:nrtm)=0
766 IF (.NOT.(
ASSOCIATED(intercep(2,ni)%P)))
THEN
767 ALLOCATE(intercep(2,ni)%P(nrtm))
769 intercep(2,ni)%P(1:nrtm) = 0
773 n1=intbuf_tab(ni)%IRECTM(4*(k-1)+1)
774 n2=intbuf_tab(ni)%IRECTM(4*(k-1)+2)
775 n3=intbuf_tab(ni)%IRECTM(4*(k-1)+3)
776 n4=intbuf_tab(ni)%IRECTM(4*(k-1)+4)
777 IF(n1>numnod.OR.n2>numnod.OR.
778 . n3>numnod.OR.n4>numnod)
THEN
779 intercep(1,ni)%P(k) = 1
782 proc = intersurfl(n1,n2,n3,n4)
783 intercep(1,ni)%P(k) = proc
786 ELSEIF (flag==0.AND.ity==25.AND.ipari(100,ni) > 0)
THEN
789 IF (.NOT.(
ASSOCIATED(intercep(1,ni)%P)))
THEN
790 ALLOCATE(intercep(1,ni)%P(nrtm))
792 intercep(1,ni)%P(1:nrtm)=0
794 ie = intbuf_tab(ni)%IELEM_M(2*(k-1)+1)
796 intercep(1,ni)%P(k) = cep(ie) + 1
799 ELSEIF(ity==24.AND.flag==1.AND.ipari(86,ni) > 0)
THEN
804 IF (.NOT.(
ASSOCIATED(intercep(3,ni)%P)))
THEN
805 ALLOCATE(intercep(3,ni
807 intercep(3,ni)%P(1:nrts)=0
811 ie = intbuf_tab(ni)%IELNRTS(k)
814 intercep(3,ni)%P(k) = proc + 1
823 IF (.NOT.(
ASSOCIATED(intercep(1,ni)%P)))
THEN
824 ALLOCATE(intercep(1,ni)%P(nrtm))
826 intercep(1,ni)%P(1:nrtm)=0
829 n1=intbuf_tab(ni)%IRECTM(4*(k-1)+1)
830 n2=intbuf_tab(ni)%IRECTM(4*(k-1)+2)
834 n2=intbuf_tab(ni)%MSR(n2)
835 n3=intbuf_tab(ni)%MSR(n3)
836 n4=intbuf_tab(ni)%MSR(n4)
840 intercep(1,ni)%P(k) = proc
843 ELSEIF (ity==11)
THEN
849 IF (.NOT.(
ASSOCIATED(intercep(1,ni)%P)))
THEN
850 ALLOCATE(intercep(1,ni)%P(nrtm))
852 IF (.NOT.(
ASSOCIATED(intercep(2,ni)%P)))
THEN
853 ALLOCATE(intercep(2,ni)%P(nrts))
855 intercep(1,ni)%P(1:nrtm)=0
856 intercep(2,ni)%P(1:nrts)=0
859 n1 = intbuf_tab(ni)%IRECTM(2*(k-1)+1)
860 n2 = intbuf_tab(ni)%IRECTM(2*(k-1)+2)
863 proc = intersurfl(n1,n1,n2,n2)
864 intercep(1,ni)%P(k) = proc
868 n1 = intbuf_tab(ni)%IRECTS(2*(k-1)+1)
869 n2 = intbuf_tab(ni)%IRECTS(2*(k-1)+2)
872 proc = intersurfl(n1,n1,n2,n2)
873 intercep(2,ni)%P(k) = proc
877 ELSEIF (ity==20)
THEN
884 IF (.NOT.(
ASSOCIATED(intercep(1,ni)%P)))
THEN
885 ALLOCATE(intercep(1,ni)%P(nrtm))
887 IF (.NOT.(
ASSOCIATED(intercep(2,ni)%P)))
THEN
888 ALLOCATE(intercep(2,ni)%P(nlinm))
890 IF (.NOT.(
ASSOCIATED(intercep(3,ni)%P)))
THEN
891 ALLOCATE(intercep(3,ni)%P(nlins))
893 intercep(1,ni)%P(1:nrtm) =0
894 intercep(2,ni)%P(1:nlinm)=0
895 intercep(3,ni)%P(1:nlins)=0
898 n1l = intbuf_tab(ni)%IRECTM(4*(k-1)+1)
899 n2l = intbuf_tab(ni)%IRECTM(4*(k-1)+2)
900 n3l = intbuf_tab(ni)%IRECTM(4*(k-1)+3)
901 n4l = intbuf_tab(ni)%IRECTM(4*(k-1)+4)
902 n1 = intbuf_tab(ni)%NLG(n1l)
903 n2 = intbuf_tab(ni)%NLG(n2l)
904 n3 = intbuf_tab(ni)%NLG(n3l)
905 n4 = intbuf_tab(ni)%NLG(n4l)
907 proc = intersurfl(n1,n2,n3,n4)
908 intercep(1,ni)%P(k) = proc
912 n1l = intbuf_tab(ni)%IXLINM(2*(k-1)+1)
913 n2l = intbuf_tab(ni)%IXLINM(2*(k-1)+2)
914 n1 = intbuf_tab(ni)%NLG(n1l)
915 n2 = intbuf_tab(ni)%NLG(n2l)
918 proc = intersurfl(n1,n1,n2,n2)
919 intercep(2,ni)%P(k) = proc
923 n1l = intbuf_tab(ni)%IXLINS(2*(k-1)+1)
924 n2l = intbuf_tab(ni)%IXLINS(2*(k-1)+2)
925 n1 = intbuf_tab(ni)%NLG(n1l)
926 n2 = intbuf_tab(ni)%NLG(n2l)
929 proc = intersurfl(n1,n1,n2,n2)
930 intercep(3,ni)%P(k) = proc
934 ELSEIF (ity==21)
THEN
939 IF (.NOT.(
ASSOCIATED(intercep(1,ni)%P)))
THEN
940 ALLOCATE(intercep(1,ni)%P(nrts))
942 intercep(1,ni)%P(1:nrts) =0
945 n1 = intbuf_tab(ni)%IRECTS(4*(k-1)+1)
946 n2 = intbuf_tab(ni)%IRECTS(4*(k-1)+2)
947 n3 = intbuf_tab(ni)%IRECTS(4*(k-1)+3)
948 n4 = intbuf_tab(ni)%IRECTS(4*(k-1)+4)
950 proc = intersurfl(n1,n2,n3,n4)
951 intercep(1,ni)%P(k) = proc
subroutine ddsplit(p, cep, cel, igeo, mat_elem, ipm, icode, iskew, iskn, insel, ibcslag, ipart, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, detonators, ipartx, npc, ixtg, group_param_tab, ixtg6, ixs, ixs10, ixs20, ixs16, ixq, ixc, ixt, ixp, ixr, itab, itabm1, gjbufi, nale, ale_connectivity, kxx, ixx, ibcl, ibfv, las, laccelm, nnlink, lllink, iparg, igrav, lgrav, ibvel, lbvel, iactiv, factiv, kinet, ipari, nprw, lprw, iexmad, npby, lpby, ixri, nstrf, ljoint, pornod, monvol, icontact, lagbuf, fr_iad, x, d, v, vr, dr, thke, dampr, damp, ms, in, tf, pm, skew, xframe, geo, eani, bufmat, bufgeo, bufsf, brmpc, gjbufr, w, veul, fill, dfill, wb, dsav, asav, msnf, spbuf, fac, vel, fsav, fzero, xlas, accelm, fbvel, gravfac, fr_wave, failwave, parts0, elbuf, rwl, rwsav, rby, rivet, secbuf, rvolu, rconx, nloc_dmg, fvmain, libagale, lenthg, lbufmat, lbufgeo, lbufsf, lenxlas, lnom_opt, lenlas, lenvolu, npts, cne, lcne, addcne, cni2, lcni2g, addcni2, cepi2, celi2, i2nsnt, probint, ddstat, pm1shf, dd_iad, kxsp, ixsp, nod2sp, cepsp, nthwa, nairwa, nmnt, l_mul_lag1, l_mul_lag, lwaspio, ipartsp, ispcond, pm1sph, wma, eigipm, eigibuf, eigrpm, iflow, rflow, memflow, iexlnk, fasolfr, iparth, fxbipm, fxbrpm, fxbnod, fxbmod, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxbdep, fxbvit, fxbacc, fxbelm, fxbsig, fxbgrvi, fxbgrvr, iadll, lll, ibmpc, lambda, lrbagale, iskwp, nskwp, isensp, nsensp, iaccp, naccp, ipart_state, mcp, temp, unitab, intstamp, iframe, clusters, partsav, ibft, fbft, ibcv, fconv, irbe3, lrbe3, frbe3, front_rm, rbym, irbym, lcrbym, inoise, fnoise, ms0, admsms, nom_sect, ispsym, sh4tree, sh3tree, ipadmesh, ibfflux, fbfflux, sh4trim, sh3trim, padmesh, msc, mstg, inc, intg, ptg, mcpc, mcptg, rcontact, acontact, pcontact, mscnd, incnd, mssa, mstr, msp, msrt, ibcr, fradia, dmelc, dmeltg, dmels, dmeltr, dmelp, dmelrt, res_sms, isphio, lprtsph, lonfsph, vsphio, sphveln, alph, ifill, ims, irbe2, lrbe2, ms_ply, zi_ply, inod_pxfem, iel_pxfem, icodply, iskwply, addcne_pxfem, cne_pxfem, cel_pxfem, ithvar, xdp, table, celsph, icfield, lcfield, cfield, msz2, itask, diag_sms, iloadp, lloadp, loadp, inod_crkxfem, iel_crkxfem, addcne_crkxfem, cne_crkxfem, cel_crkxfem, ibufssg_io, intercep, ibordnode, iedgesh, ibordedge, linale, nodedge, iedge, cep_crkxfem, iedge_tmp, crknodiad, elbuf_tab, nom_opt, lgauge, gauge, igaup, ngaup, nodlevxf, frontb_r2r, dflow, vflow, wflow, sph2sol, sol2sph, irst, elcutc, nodenr, kxfenod2elc, enrtag, intbuf_tab, i11flag, xfem_tab, lenthgr, rthbuf, ixig3d, kxig3d, knot, ipartig3d, wige, ncrkpart, indx_crk, crklvset, crkshell, crksky, crkavx, crkedge, sensors, stack, xfem_phantom, t8, tab_ump, poin_ump, sol2sph_typ, addcsrect, csrect, drape, loads, itagnd, icnds10, addcncnd, cepcnd, celcnd, cncnd, nativ_sms, i24maxnsne, multi_fvm, segquadfr, intbuf_fric_tab, subset, igrnod, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart, igrsurf, igrslin, poin_part_shell, poin_part_tri, poin_part_sol, mid_pid_shell, mid_pid_tri, mid_pid_sol, tag_nm, nindx_nm, indx_nm, tag_scratch, nindx_scrt, indx_scrt, flag_24_25, numnod_l, tag_skn, multiple_skew, igrsurf_proc, knotlocpc, knotlocel, ale_elm, size_ale_elm, pinch_data, tag_skins6, ibcscyc, lbcscyc, t_monvol, indx_s, indx_q, indx_tg, face_elm_s, face_elm_q, face_elm_tg, nbr_th_monvol, ebcs_tab, kloadpinter, loadpinter, dgaploadint, s_loadpinter, len_cep, dynain_data, drapeg, user_windows, output, interfaces, number_load_cyl, loads_per_proc, python, dpl0cld, vel0cld, names_and_titles, bcs_per_proc, constraint_struct, glob_therm, pblast)