34 SUBROUTINE c_front(PROC ,NBDDACC,NBDDKIN,NBDDNRB,
35 2 NPBY ,NRBYKIN_L,LJOINT ,NBDDNCJ,IBVEL ,
36 3 NBDDNRBM ,IADLL ,LLL ,NLAGF_L,FRONT_RM,
37 4 NRBYMK_L ,NBDDNRBYM,
38 5 SDD_R2R_ELEM,ADDCSRECT,CSRECT,NBDDNORT,NBDDNOR_MAX,
39 6 NBCCNOR,NBCCFR25,NBDDEDGT ,NBDDEDG_MAX,NRTMX25 ,
40 7 IPARI ,INTBUF_TAB,INTERCEP,NODGLOB ,NODLOCAL ,
52#include "implicit_f.inc"
64 INTEGER PROC, NBDDACC, NBDDKIN, NBDDNRB,NRBYKIN_L, NBDDNCJ,
65 . NBDDNRBM, NLAGF_L,NRBYMK_L ,NBDDNRBYM, NBDDNORT,
66 . NBDDNOR_MAX, NBCCNOR, NBCCFR25, NBDDEDGT,NBDDEDG_MAX,NRTMX25,
67 . NPBY(NNPBY,*), LJOINT(*),
68 . IBVEL(NBVELP,*) , IADLL(*), LLL(*),FRONT_RM(NRBYM,*),
70 . ADDCSRECT(*), CSRECT(*), IPARI(NPARI,*)
71 INTEGER,
INTENT(IN) :: NUMNOD_L
72 INTEGER,
DIMENSION(NUMNOD_L),
INTENT(IN) :: NODGLOB
73 INTEGER,
DIMENSION(NUMNOD),
INTENT(IN) :: NODLOCAL
74 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
75 TYPE(INTERSURFP) :: INTERCEP(3,NINTER)
76 TYPE (NLOCAL_STR_),
TARGET,
INTENT(IN) :: NLOC_DMG
96 INTEGER I, P, N, M, NSN, K, J,
99 . nadmsr, nadmsr_l, ni, nty, ni25, nbddnor, nrtm, ishift,
100 . n1, n2, n3, n4, isbound,
101 . nrtm_l, nbddedg, ii, nb
102 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAG_SM, TAG_MS, ITAG
106 ALLOCATE( ITAG(NUMNOD) )
124 nbddacc = nbddacc + (cpt - 1)
128 nbddkin = nbddkin + 1
130 nbddacc = nbddacc + (cpt - 2)
133 nbddkin = nbddkin + (cpt - 1)
141 IF ((nsubdom>0).AND.(iddom==0))
THEN
142 IF (nloc_dmg%IMOD > 0)
THEN
143 sdd_r2r_elem = 4*(nbddkin + nbddacc)
145 sdd_r2r_elem = 2*(nbddkin + nbddacc)
155 IF(nodlocal(m)/=0.AND.nodlocal(m)<=numnod_l)
THEN
156 nrbykin_l = nrbykin_l + 1
159 IF(nlocal(m,p)==1)
THEN
160 nbddnrb = nbddnrb + 1
177 IF(nodlocal(m)/=0.AND.nodlocal(m)<=numnod_l)
THEN
178 nbddncj = nbddncj + 1
183 IF(nlocal(m,p)==1)
THEN
184 nbddncj = nbddncj + 1
197 IF(nodlocal(m)/=0.AND.nodlocal(m)<=numnod_l)
THEN
200 IF(nlocal(m,p)==1)
THEN
201 nbddnrbm = nbddnrbm + 1
213 IF(mod(front_rm(n,proc),10)==1)
THEN
214 nrbymk_l = nrbymk_l + 1
217 IF(mod(front_rm(n,p),10)==1)
THEN
218 nbddnrbym = nbddnrbym + 1
242 IF(nlocal(n,p)==1)
THEN
243 ifrlag(p) = ifrlag(p) + 1
251 nlagf_l = ifrlag(proc)
253! ------------------------------
281 ALLOCATE(tag_sm(nadmsr),tag_ms(nadmsr))
286 n1 = intbuf_tab(ni)%ADMSR(4*(k-1)+1)
287 n2 = intbuf_tab(ni)%ADMSR(4*(k-1)+2)
288 n3 = intbuf_tab(ni)%ADMSR(4*(k-1)+3)
289 n4 = intbuf_tab(ni)%ADMSR(4*(k-1)+4)
290 IF(intercep(1,ni)%P(k)==proc)
THEN
291 IF(tag_sm(n1)==0)
THEN
295 IF(tag_sm(n2)==0)
THEN
299 IF(tag_sm(n3)==0)
THEN
303 IF(tag_sm(n4)==0)
THEN
317 n = tag_ms(i) + ishift
321 DO j = addcsrect(n), addcsrect(n+1)-1
323 p = intercep(1,ni)%P(k)
325 IF(p /= proc.AND.tagp(p)==0)
THEN
326 nbddnor = nbddnor + 1
331 nbccfr25 = nbccfr25 + nb*isbound
332 nbccnor = nbccnor + nb
336 nbddnor_max =
max(nbddnor_max,nbddnor)
337 nbddnort = nbddnort+nbddnor
340 DEALLOCATE(tag_sm, tag_ms)
367 ALLOCATE(tag_sm(nrtm),tag_ms(nrtm))
372 IF(intercep(1,ni)%P(k)==proc)
THEN
378 nrtmx25 =
max(nrtmx25,nrtm_l)
391 k = intbuf_tab(ni)%MVOISIN(4*(n-1)+j)
393 p = intercep(1,ni)%P(k)
395 nbddedg = nbddedg + 1
401 nbddedg_max =
max(nbddedg_max,nbddedg)
402 nbddedgt = nbddedgt+nbddedg
404 DEALLOCATE(tag_sm,tag_ms)
subroutine c_front(proc, nbddacc, nbddkin, nbddnrb, npby, nrbykin_l, ljoint, nbddncj, ibvel, nbddnrbm, iadll, lll, nlagf_l, front_rm, nrbymk_l, nbddnrbym, sdd_r2r_elem, addcsrect, csrect, nbddnort, nbddnor_max, nbccnor, nbccfr25, nbddedgt, nbddedg_max, nrtmx25, ipari, intbuf_tab, intercep, nodglob, nodlocal, numnod_l, nloc_dmg)