34 SUBROUTINE c_vois(NSVOIS ,NQVOIS ,NTGVOIS, NRCVVOIS,NSNDVOIS,ILAW11 ,
35 2 NSEGFL_L,IPARG ,CEP ,ALE_CONNECTIVITY ,NUMEL ,
36 3 PROC ,IXS ,IXQ ,IXTG,
37 4 NERVOIS ,NESVOIS,NODLOCAL,NUMNOD_L,NUMEL_L,
38 5 CEL, MULTI_FVM,ALE_ELM,SIZE_ALE_ELM)
46 use element_mod ,
only : nixs,nixq,nixtg
50#include "implicit_f.inc"
60 INTEGER NSVOIS,NQVOIS,NTGVOIS,NRCVVOIS,NSNDVOIS,ILAW11,PROC,NUMEL,
61 . NERVOIS,NESVOIS,NUMNOD_L,NUMEL_L,
62 . NSEGFL_L,IPARG(NPARG,*),CEP(*),NODLOCAL(*),
63 . IXS(NIXS,*), IXQ(NIXQ,*), IXTG(NIXTG, *),
65 TYPE(multi_fvm_struct) :: MULTI_FVM
66 INTEGER,
INTENT(IN) :: SIZE_ALE_ELM
67 TYPE(split_cfd_type),
INTENT(IN) :: ALE_ELM
68 TYPE(t_ale_connectivity),
INTENT(INOUT) :: ALE_CONNECTIVITY
77 INTEGER I, J, K, N, NG, IE_LOC,
78 . ISOLNOD,ILAW,JTUR,JTHE,ITY,IE,NFT,NEL,IV,PROC2, P,
79 . L,NSOL,NS,ISILENT,IJK
81 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGE,TAG
82 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: TAGE_L,TAG_L,TAGS
84 INTEGER IAD, IAD1, LGTH
87 ALLOCATE( tage(numel),tag(numnod) )
89 ALLOCATE( tage_l(nspmd,numel_l),tag_l(nspmd,numnod_l) )
90 ALLOCATE( tags(nspmd,segindx) )
100 tage_l(1:nspmd,1:numel_l) = 0
101 tag_l(1:nspmd,1:numnod_l) = 0
119 isilent = iparg(64,ng)
120 IF(ilaw==11 .OR. isilent==1) ilaw11 = 1
123 IF(iparg(32,ng)==proc)
THEN
128 isolnod = iparg(28,ng)
133 iad1 = ale_connectivity%ee_connect%iad_connect(ie)
134 lgth = ale_connectivity%ee_connect%iad_connect(ie+1)-ale_connectivity%ee_connect%iad_connect(ie)
137 iv = ale_connectivity%ee_connect%connected(iad1 + j - 1)
146 IF(tage_l(proc2+1,ie_loc)==0)
THEN
148 tage_l(proc2+1,ie_loc)=1
151 ELSEIF(proc/=0.AND.iv<0)
THEN
153 IF(tags(1,-iv)==0)
THEN
154 nsegfl_l = nsegfl_l + 1
165 iad1 = ale_connectivity%ee_connect%iad_connect(ie)
166 lgth = ale_connectivity%ee_connect%iad_connect(ie+1)-ale_connectivity%ee_connect%iad_connect(ie)
168 iv = ale_connectivity%ee_connect%connected(iad1 + j - 1)
177 IF(tage_l(proc2+1,ie_loc)==0)
THEN
179 tage_l(proc2+1,ie_loc)=1
185 ELSEIF (ity == 7 .AND. (n2d /= 0 .AND. multi_fvm%IS_USED))
THEN
190 iad1 = ale_connectivity%ee_connect%iad_connect(ie)
191 lgth = ale_connectivity%ee_connect%iad_connect(ie+1)-ale_connectivity%ee_connect%iad_connect(ie)
193 iv = ale_connectivity%ee_connect%connected(iad1 + j - 1)
196 IF (proc2 /= proc)
THEN
197 IF(tage(iv) == 0)
THEN
199 ntgvois = ntgvois + 1
200 nervois = nervois + 1
202 IF(tage_l(proc2 + 1, ie_loc) == 0)
THEN
203 nesvois = nesvois + 1
204 tage_l(proc2 + 1, ie_loc) = 1
212 ELSEIF(segindx>0.AND.proc==0)
THEN
218 isolnod = iparg(28,ng)
223 iad1 = ale_connectivity%ee_connect%iad_connect(ie)
224 lgth = ale_connectivity%ee_connect%iad_connect(ie+1)-ale_connectivity%ee_connect%iad_connect(ie)
226 iv = ale_connectivity%ee_connect%connected(iad1 + j - 1)
229 IF(tags(p,-iv)==0)
THEN
230 nsegfl_l = nsegfl_l + 1
244 iad1 = ale_connectivity%ee_connect%iad_connect(i)
245 lgth = ale_connectivity%ee_connect%iad_connect(i+1)-iad1
248 IF(nlocal(ns,proc+1)==1)
THEN
250 ie = ale_connectivity%ee_connect%connected(iad1 + j - 1)
255 IF (nodlocal(n)==0)
THEN
256 nrcvvois = nrcvvois + 1
258 nodlocal(n)=numnod_l+nrcvvois
268 DO ijk=1,size_ale_elm
269 i = ale_elm%SOL_ID(ijk)
270 iad1 = ale_connectivity%ee_connect%iad_connect(i)
271 lgth = ale_connectivity%ee_connect%iad_connect(i+1)-ale_connectivity%ee_connect%iad_connect(i)
275 ie = ale_connectivity%ee_connect%connected(iad1 + j - 1)
279 IF(nodlocal(n)>0 .AND. nodlocal(n) <= numnod_l)
THEN
280 IF(
ifront%IENTRY(n) /=0)
THEN
285 IF(iad <= 0) psearch = .false.
288 IF(tag_l(p,nodlocal(n))==0.AND.p/=proc+1)
THEN
289 IF(nlocal(n,p)==0)
THEN
290 nsndvois = nsndvois + 1
291 tag_l(p,nodlocal(n)) = 1
294 IF(
ifront%P(2,iad)==0) psearch = .false.
306 iad1 = ale_connectivity%ee_connect%iad_connect(i)
307 lgth = ale_connectivity%ee_connect%iad_connect(i+1)-iad1
310 IF(nlocal(ns,proc+1)==1)
THEN
312 ie = ale_connectivity%ee_connect%connected(iad1 + j - 1)
317 IF (nodlocal(n)==0)
THEN
318 nrcvvois = nrcvvois + 1
320 nodlocal(n)=numnod_l+nrcvvois
332 ie = ale_connectivity%ee_connect%connected(iad1 + j - 1)
336 IF(nodlocal(n)>0 .AND. nodlocal(n) <= numnod_l)
THEN
338 IF(nlocal(n,proc2)==1)
GOTO 1112
341 IF(tag_l(p,nodlocal(n))==0.AND.p/=proc+1)
THEN
342 IF(nlocal(nsol,p)==1)
THEN
343 IF(nlocal(n,p)==0)
THEN
344 nsndvois = nsndvois + 1
345 tag_l(p,nodlocal(n)) = 1
360 IF (n2d /= 0 .AND. multi_fvm%IS_USED)
THEN
362 iad1 = ale_connectivity%ee_connect%iad_connect(i)
363 lgth = ale_connectivity%ee_connect%iad_connect(i+1)-iad1
366 IF(nlocal(ns,proc+1)==1)
THEN
368 ie = ale_connectivity%ee_connect%connected(iad1 + j - 1)
373 IF (nlocal(n,proc+1)==0)
THEN
374 nrcvvois = nrcvvois + 1
376 nodlocal(n)=numnod_l+nrcvvois
388 ie = ale_connectivity%ee_connect%connected(iad1 + j - 1)
392 IF(nlocal(n,proc+1)==1)
THEN
394 IF(nlocal(n,proc2)==1)
GOTO 1113
397 IF(tag_l(p,nodlocal(n))==0.AND.p/=proc+1)
THEN
398 IF(nlocal(nsol,p)==1)
THEN
399 IF(nlocal(n,p)==0)
THEN
400 nsndvois = nsndvois + 1
401 tag_l(p,nodlocal(n)) = 1
417 DEALLOCATE( tage,tag )
419 DEALLOCATE( tage_l,tag_l )
subroutine c_vois(nsvois, nqvois, ntgvois, nrcvvois, nsndvois, ilaw11, nsegfl_l, iparg, cep, ale_connectivity, numel, proc, ixs, ixq, ixtg, nervois, nesvois, nodlocal, numnod_l, numel_l, cel, multi_fvm, ale_elm, size_ale_elm)