406 SUBROUTINE set_front8(IPARI,INTERCEP,INTBUF_TAB,T8,NBT8,ITAB)
416#include "implicit_f.inc"
420#include "param_c.inc"
424#include "com01_c.inc"
425#include "com04_c.inc"
429 INTEGER IPARI(NPARI,*)
431 TYPE(intbuf_struct_) INTBUF_TAB(*)
432 TYPE(int8_struct_) :: T8(NSPMD,)
433 INTEGER :: NBT8,ITAB(*)
437 INTEGER NI,K,I,,P,Q,NB
439 INTEGER ITY,NMN,NRTM,NM_SHARED
440 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: TAG,INDEX_IN_COMM
441 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDEX_IN_FRONT
442 INTEGER :: S_FRONT8(NSPMD,NSPMD),IDX(NSPMD)
443 INTEGER :: LOCAL_ID,II,JJ,KK,NSN
457 ALLOCATE(index_in_front(nmn))
458 index_in_front(1:nmn) = 0
459 ALLOCATE(tag(nspmd,nmn))
460 ALLOCATE(index_in_comm(nspmd,nmn))
461 tag(1:nspmd,1:nmn) = 0
463 n1 = intbuf_tab(ni)%IRECTM(4*(k-1)+1)
464 n2 = intbuf_tab(ni)%IRECTM(4*(k-1)+2)
465 n3 = intbuf_tab(ni)%IRECTM(4*(k-1)+3)
466 n4 = intbuf_tab(ni)%IRECTM(4*(k-1)+4)
467 proc = intercep(1,ni)%P(k)
480 IF(tag(p,k) == 1 .AND. tag(q,k) == 1)
THEN
482 local_id = local_id + 1
483 s_front8(p,q) = s_front8(p,q) + 1
484 s_front8(q,p) = s_front8(q,p) + 1
486 IF( index_in_front(k) == 0)
THEN
487 index_in_front(k) = local_id
494 index_in_comm(1:nspmd,1:nmn) = 0
505 IF(tag(p,k) /= 0)
THEN
507 index_in_comm(p,k)=idx(p)
516 nm_shared = s_front8(p,q)
517 t8(p,nbt8)%BUFFER(q)%NBMAIN = 0
518 ALLOCATE(t8(p,nbt8)%BUFFER(q)%MAIN_ID(nm_shared))
519 ALLOCATE(t8(p,nbt8)%BUFFER(q)%MAIN_UID(nm_shared))
520 ALLOCATE(t8(p,nbt8)%BUFFER(q)%NBSECND(nm_shared))
521 t8(p,nbt8)%BUFFER(q)%NBSECND(1:nm_shared) = 0
522 t8(q,nbt8)%BUFFER(p)%NBMAIN = 0
523 ALLOCATE(t8(q,nbt8)%BUFFER(p)%MAIN_ID(nm_shared))
524 ALLOCATE(t8(q,nbt8)%BUFFER(p)%MAIN_UID(nm_shared))
525 ALLOCATE(t8(q,nbt8)%BUFFER(p)%NBSECND(nm_shared))
526 t8(q,nbt8)%BUFFER(p)%NBSECND(1:nm_shared) = 0
535 t8(p,nbt8)%S_COMM = k
536 ALLOCATE(t8(p,nbt8)%SPMD_COMM_PATTERN(k))
538 t8(p,nbt8)%SPMD_COMM_PATTERN(q)%NUMLOC = 0
539 t8(p,nbt8)%SPMD_COMM_PATTERN(q)%NBCOM = 0
540 ALLOCATE(t8(p,nbt8)%SPMD_COMM_PATTERN(q)%PROCLIST(nspmd))
541 t8(p,nbt8)%SPMD_COMM_PATTERN(q)%PROCLIST(1:nspmd) = 0
542 ALLOCATE(t8(p,nbt8)%SPMD_COMM_PATTERN(q)%BUF_INDEX(nspmd))
543 t8(p,nbt8)%SPMD_COMM_PATTERN(q)%BUF_INDEX(1:nspmd) = 0
558 s_front8(1:nspmd,1:nspmd) = 0
562 IF(index_in_comm(p,k) > 0)
THEN
564 IF(index_in_comm(q,k)/=0)
THEN
566 local_id = index_in_comm(p,k)
567 nb = t8(p,nbt8)%SPMD_COMM_PATTERN(local_id)%NBCOM +1
568 t8(p,nbt8)%SPMD_COMM_PATTERN(local_id)%PROCLIST(nb) = q
569 ii = s_front8(p,q) + 1
570 t8(p,nbt8)%SPMD_COMM_PATTERN(local_id)%BUF_INDEX(nb) = ii
571 jj = t8(p,nbt8)%BUFFER(q)%NBMAIN+1
572 t8(p,nbt8)%BUFFER(q)%MAIN_ID(ii) = k
573 t8(p,nbt8)%BUFFER(q)%MAIN_UID(ii) =
574 . itab(intbuf_tab(ni)%MSR(k))
577 t8(p,nbt8)%BUFFER(q)%NBMAIN = jj
578 t8(p,nbt8)%SPMD_COMM_PATTERN(local_id)%NBCOM=nb
579 t8(p,nbt8)%SPMD_COMM_PATTERN(local_id)%NUMLOC = k
582 local_id = index_in_comm(q,k)
583 nb = t8(q,nbt8)%SPMD_COMM_PATTERN(local_id)%NBCOM +1
584 t8(q,nbt8)%SPMD_COMM_PATTERN(local_id)%PROCLIST(nb) = p
585 ii = s_front8(q,p) + 1
586 t8(q,nbt8)%SPMD_COMM_PATTERN(local_id)%BUF_INDEX(nb) = ii
587 jj = t8(q,nbt8)%BUFFER(p)%NBMAIN+1
588 t8(q,nbt8)%BUFFER(p)%MAIN_ID(ii) = k
589 t8(q,nbt8)%BUFFER(p)%MAIN_UID(ii) =
590 . itab(intbuf_tab(ni)%MSR(k))
592 t8(q,nbt8)%BUFFER(p)%NBMAIN = jj
593 t8(q,nbt8)%SPMD_COMM_PATTERN(local_id)%NBCOM=nb
594 t8(q,nbt8)%SPMD_COMM_PATTERN(local_id)%NUMLOC = k
606 IF(index_in_comm(p,intbuf_tab(ni)%ILOCS(i)) > 0)
THEN
607 local_id = index_in_comm(p,intbuf_tab(ni)%ILOCS(i))
608 nb = t8(p,nbt8)%SPMD_COMM_PATTERN(local_id)%NBCOM
610 ii = t8(p,nbt8)%SPMD_COMM_PATTERN(local_id)%BUF_INDEX(k)
611 q = t8(p,nbt8)%SPMD_COMM_PATTERN(local_id)%PROCLIST(k)
612 t8(p,nbt8)%BUFFER(q)%NBSECND(ii) =
613 . t8(p,nbt8)%BUFFER(q)%NBSECND(ii) + 1
614 t8(p,nbt8)%BUFFER(q)%NBSECND_TOT =
615 . t8(p,nbt8)%BUFFER(q)%NBSECND_TOT + 1
692 DEALLOCATE(index_in_comm)
693 DEALLOCATE(index_in_front)
722#include "implicit_f.inc"
726#include "param_c.inc"
730#include "com04_c.inc"
734 INTEGER IPARI(NPARI,*),FLAG,ITAB(*),CEP(*)
736 TYPE(intbuf_struct_) INTBUF_TAB(*)
745 INTEGER ITY,NRTM,N,N1,N2,N3,N4,NSN,
746 . NRTS,N1L,N2L,N3L,N4L,NLINM,NLINS
747 INTEGER NI,K,I,PROC,IE
754 IF ((flag==0.AND.(ity==24.OR.(ity==25.AND.ipari(100,ni) == 0))).OR.
755 . (flag==1.AND.(ity==7.OR.ity==10.OR.
756 . ity==22.OR.ity==23)) )
THEN
761 IF (.NOT.(
ASSOCIATED(intercep(1,ni)%P)))
THEN
762 ALLOCATE(intercep(1,ni)%P(nrtm))
763 IF(ity==25)
ALLOCATE(intercep(2,ni)%P(nrtm))
765 intercep(1,ni)%P(1:nrtm)=0
767 IF (.NOT.(
ASSOCIATED(intercep(2,ni)%P)))
THEN
768 ALLOCATE(intercep(2,ni)%P(nrtm))
770 intercep(2,ni)%P(1:nrtm) = 0
774 n1=intbuf_tab(ni)%IRECTM(4*(k-1)+1)
775 n2=intbuf_tab(ni)%IRECTM(4*(k-1)+2)
776 n3=intbuf_tab(ni)%IRECTM(4*(k-1)+3)
777 n4=intbuf_tab(ni)%IRECTM(4*(k-1)+4)
778 IF(n1>numnod.OR.n2>numnod.OR.
779 . n3>numnod.OR.n4>numnod)
THEN
780 intercep(1,ni)%P(k) = 1
783 proc = intersurfl(n1,n2,n3,n4)
784 intercep(1,ni)%P(k) = proc
787 ELSEIF (flag==0.AND.ity==25.AND.ipari(100,ni) > 0)
THEN
790 IF (.NOT.(
ASSOCIATED(intercep(1,ni)%P)))
THEN
791 ALLOCATE(intercep(1,ni)%P(nrtm))
793 intercep(1,ni)%P(1:nrtm)=0
795 ie = intbuf_tab(ni)%IELEM_M(2*(k-1)+1)
797 intercep(1,ni)%P(k) = cep(ie) + 1
800 ELSEIF(ity==24.AND.flag==1.AND.ipari(86,ni) > 0)
THEN
805 IF (.NOT.(
ASSOCIATED(intercep(3,ni)%P)))
THEN
806 ALLOCATE(intercep(3,ni)%P(nrts))
808 intercep(3,ni)%P(1:nrts)=0
812 ie = intbuf_tab(ni)%IELNRTS(k)
815 intercep(3,ni)%P(k) = proc + 1
824 IF (.NOT.(
ASSOCIATED(intercep(1,ni)%P)))
THEN
825 ALLOCATE(intercep(1,ni)%P(nrtm))
827 intercep(1,ni)%P(1:nrtm)=0
830 n1=intbuf_tab(ni)%IRECTM(4*(k-1)+1)
831 n2=intbuf_tab(ni)%IRECTM(4*(k-1)+2)
832 n3=intbuf_tab(ni)%IRECTM(4*(k-1)+3)
833 n4=intbuf_tab(ni)%IRECTM(4*(k-1)+4)
834 n1=intbuf_tab(ni)%MSR(n1)
835 n2=intbuf_tab(ni)%MSR(n2)
836 n3=intbuf_tab(ni)%MSR(n3)
837 n4=intbuf_tab(ni)%MSR(n4)
840 proc = intersurfl(n1,n2,n3,n4)
841 intercep(1,ni)%P(k) = proc
844 ELSEIF (ity==11)
THEN
850 IF (.NOT.(
ASSOCIATED(intercep(1,ni)%P)))
THEN
851 ALLOCATE(intercep(1,ni)%P(nrtm))
853 IF (.NOT.(
ASSOCIATED(intercep(2,ni)%P)))
THEN
854 ALLOCATE(intercep(2,ni)%P(nrts))
856 intercep(1,ni)%P(1:nrtm)=0
857 intercep(2,ni)%P(1:nrts)=0
860 n1 = intbuf_tab(ni)%IRECTM(2*(k-1)+1)
861 n2 = intbuf_tab(ni)%IRECTM(2*(k-1)+2)
864 proc = intersurfl(n1,n1,n2,n2)
865 intercep(1,ni)%P(k) = proc
869 n1 = intbuf_tab(ni)%IRECTS(2*(k-1)+1)
870 n2 = intbuf_tab(ni)%IRECTS(2*(k-1)+2)
873 proc = intersurfl(n1,n1,n2,n2)
874 intercep(2,ni)%P(k) = proc
878 ELSEIF (ity==20)
THEN
885 IF (.NOT.(
ASSOCIATED(intercep(1,ni)%P)))
THEN
886 ALLOCATE(intercep(1,ni)%P(nrtm))
888 IF (.NOT.(
ASSOCIATED(intercep(2,ni)%P)))
THEN
889 ALLOCATE(intercep(2,ni)%P(nlinm))
891 IF (.NOT.(
ASSOCIATED(intercep(3,ni)%P)))
THEN
892 ALLOCATE(intercep(3,ni)%P(nlins))
894 intercep(1,ni)%P(1:nrtm) =0
895 intercep(2,ni)%P(1:nlinm)=0
896 intercep(3,ni)%P(1:nlins)=0
899 n1l = intbuf_tab(ni)%IRECTM(4*(k-1)+1)
900 n2l = intbuf_tab(ni)%IRECTM(4*(k-1)+2)
901 n3l = intbuf_tab(ni)%IRECTM(4*(k-1)+3)
902 n4l = intbuf_tab(ni)%IRECTM(4*(k-1)+4)
903 n1 = intbuf_tab(ni)%NLG(n1l)
904 n2 = intbuf_tab(ni)%NLG(n2l)
905 n3 = intbuf_tab(ni)%NLG(n3l)
906 n4 = intbuf_tab(ni)%NLG(n4l)
908 proc = intersurfl(n1,n2,n3,n4)
909 intercep(1,ni)%P(k) = proc
913 n1l = intbuf_tab(ni)%IXLINM(2*(k-1)+1)
914 n2l = intbuf_tab(ni)%IXLINM(2*(k-1)+2)
915 n1 = intbuf_tab(ni)%NLG(n1l)
916 n2 = intbuf_tab(ni)%NLG(n2l)
919 proc = intersurfl(n1,n1,n2,n2)
920 intercep(2,ni)%P(k) = proc
924 n1l = intbuf_tab(ni)%IXLINS(2*(k-1)+1)
925 n2l = intbuf_tab(ni)%IXLINS(2*(k-1)+2)
926 n1 = intbuf_tab(ni)%NLG(n1l)
927 n2 = intbuf_tab(ni)%NLG(n2l)
930 proc = intersurfl(n1,n1,n2,n2)
931 intercep(3,ni)%P(k) = proc
935 ELSEIF (ity==21)
THEN
940 IF (.NOT.(
ASSOCIATED(intercep(1,ni)%P)))
THEN
941 ALLOCATE(intercep(1,ni)%P(nrts))
943 intercep(1,ni)%P(1:nrts) =0
946 n1 = intbuf_tab(ni)%IRECTS(4*(k-1)+1)
947 n2 = intbuf_tab(ni)%IRECTS(4*(k-1)+2)
948 n3 = intbuf_tab(ni)%IRECTS(4*(k-1)+3)
949 n4 = intbuf_tab(ni)%IRECTS(4*(k-1)+4)
951 proc = intersurfl(n1,n2,n3,n4)
952 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, rwstif_pen, sln_pen)