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)
49#include "implicit_f.inc"
59 INTEGER NSVOIS,NQVOIS,NTGVOIS,NRCVVOIS,NSNDVOIS,ILAW11,PROC,NUMEL,
60 . NERVOIS,NESVOIS,NUMNOD_L,NUMEL_L,
61 . NSEGFL_L,IPARG(NPARG,*),CEP(*),NODLOCAL(*),
62 . IXS(NIXS,*), IXQ(NIXQ,*), IXTG(NIXTG, *),
64 TYPE(multi_fvm_struct) :: MULTI_FVM
65 INTEGER,
INTENT(IN) :: SIZE_ALE_ELM
66 TYPE(split_cfd_type),
INTENT(IN) :: ALE_ELM
67 TYPE(t_ale_connectivity),
INTENT(INOUT) :: ALE_CONNECTIVITY
76 INTEGER I, J, K, N, NG, IE_LOC,
77 . ISOLNOD,ILAW,JTUR,JTHE,ITY,IE,NFT,NEL,IV,PROC2, P,
78 . L,NSOL,NS,ISILENT,IJK
80 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGE,TAG
81 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: TAGE_L,TAG_L,TAGS
83 INTEGER IAD, IAD1, LGTH
86 ALLOCATE( tage(numel),tag(numnod) )
88 ALLOCATE( tage_l(nspmd,numel_l),tag_l(nspmd,numnod_l) )
89 ALLOCATE( tags(nspmd,segindx) )
99 tage_l(1:nspmd,1:numel_l) = 0
100 tag_l(1:nspmd,1:numnod_l) = 0
118 isilent = iparg(64,ng)
119 IF(ilaw==11 .OR. isilent==1) ilaw11 = 1
122 IF(iparg(32,ng)==proc)
THEN
127 isolnod = iparg(28,ng)
132 iad1 = ale_connectivity%ee_connect%iad_connect(ie)
133 lgth = ale_connectivity%ee_connect%iad_connect(ie+1)-ale_connectivity%ee_connect%iad_connect(ie)
136 iv = ale_connectivity%ee_connect%connected(iad1 + j - 1)
145 IF(tage_l(proc2+1,ie_loc)==0)
THEN
147 tage_l(proc2+1,ie_loc)=1
150 ELSEIF(proc/=0.AND.iv<0)
THEN
152 IF(tags(1,-iv)==0)
THEN
153 nsegfl_l = nsegfl_l + 1
164 iad1 = ale_connectivity%ee_connect%iad_connect(ie)
165 lgth = ale_connectivity%ee_connect%iad_connect(ie+1)-ale_connectivity%ee_connect%iad_connect(ie)
167 iv = ale_connectivity%ee_connect%connected(iad1 + j - 1)
176 IF(tage_l(proc2+1,ie_loc)==0)
THEN
178 tage_l(proc2+1,ie_loc)=1
184 ELSEIF (ity == 7 .AND. (n2d /= 0 .AND. multi_fvm%IS_USED))
THEN
189 iad1 = ale_connectivity%ee_connect%iad_connect(ie)
190 lgth = ale_connectivity%ee_connect%iad_connect(ie+1)-ale_connectivity%ee_connect%iad_connect(ie)
192 iv = ale_connectivity%ee_connect%connected(iad1 + j - 1)
195 IF (proc2 /= proc)
THEN
196 IF(tage(iv) == 0)
THEN
198 ntgvois = ntgvois + 1
199 nervois = nervois + 1
201 IF(tage_l(proc2 + 1, ie_loc) == 0)
THEN
202 nesvois = nesvois + 1
203 tage_l(proc2 + 1, ie_loc) = 1
211 ELSEIF(segindx>0.AND.proc==0)
THEN
217 isolnod = iparg(28,ng)
222 iad1 = ale_connectivity%ee_connect%iad_connect(ie)
223 lgth = ale_connectivity%ee_connect%iad_connect(ie+1)-ale_connectivity%ee_connect%iad_connect(ie)
225 iv = ale_connectivity%ee_connect%connected(iad1 + j - 1)
228 IF(tags(p,-iv)==0)
THEN
229 nsegfl_l = nsegfl_l + 1
243 iad1 = ale_connectivity%ee_connect%iad_connect(i)
244 lgth = ale_connectivity%ee_connect%iad_connect(i+1)-iad1
247 IF(nlocal(ns,proc+1)==1)
THEN
249 ie = ale_connectivity%ee_connect%connected(iad1 + j - 1)
254 IF (nodlocal(n)==0)
THEN
255 nrcvvois = nrcvvois + 1
257 nodlocal(n)=numnod_l+nrcvvois
267 DO ijk=1,size_ale_elm
268 i = ale_elm%SOL_ID(ijk)
269 iad1 = ale_connectivity%ee_connect%iad_connect(i)
270 lgth = ale_connectivity%ee_connect%iad_connect(i+1)-ale_connectivity%ee_connect%iad_connect
274 ie = ale_connectivity%ee_connect%connected(iad1 + j - 1)
278 IF(nodlocal(n)>0 .AND. nodlocal(n) <= numnod_l)
THEN
279 IF(
ifront%IENTRY(n) /=0)
THEN
284 IF(iad <= 0) psearch = .false.
287 IF(tag_l(p,nodlocal(n))==0.AND.p/=proc+1)
THEN
288 IF(nlocal(n,p)==0)
THEN
289 nsndvois = nsndvois + 1
290 tag_l(p,nodlocal(n)) = 1
292 ENDIF ! tag_l(p) == 0 .and. ...
293 IF(
ifront%P(2,iad)==0) psearch = .false.
305 iad1 = ale_connectivity%ee_connect%iad_connect(i)
306 lgth = ale_connectivity%ee_connect%iad_connect(i+1)-iad1
309 IF(nlocal(ns,proc+1)==1)
THEN
311 ie = ale_connectivity%ee_connect%connected(iad1 + j
316 IF (nodlocal(n)==0)
THEN
317 nrcvvois = nrcvvois + 1
319 nodlocal(n)=numnod_l+nrcvvois
331 ie = ale_connectivity%ee_connect%connected(iad1 + j - 1)
335 IF(nodlocal(n)>0 .AND. nodlocal(n) <= numnod_l)
THEN
337 IF(nlocal(n,proc2)==1)
GOTO 1112
340 IF(tag_l(p,nodlocal(n))==0.AND.p/=proc+1)
THEN
341 IF(nlocal(nsol,p)==1)
THEN
342 IF(nlocal(n,p)==0)
THEN
343 nsndvois = nsndvois + 1
344 tag_l(p,nodlocal(n)) = 1
359 IF (n2d /= 0 .AND. multi_fvm%IS_USED)
THEN
361 iad1 = ale_connectivity%ee_connect%iad_connect(i)
362 lgth = ale_connectivity%ee_connect%iad_connect(i+1)-iad1
365 IF(nlocal(ns,proc+1)==1)
THEN
367 ie = ale_connectivity%ee_connect%connected(iad1 + j - 1)
372 IF (nlocal(n,proc+1)==0)
THEN
373 nrcvvois = nrcvvois + 1
375 nodlocal(n)=numnod_l+nrcvvois
387 ie = ale_connectivity%ee_connect%connected(iad1 + j - 1)
391 IF(nlocal(n,proc+1)==1)
THEN
393 IF(nlocal(n,proc2)==1)
GOTO 1113
396 IF(tag_l(p,nodlocal(n))==0.AND.p/=proc
THEN
397 IF(nlocal(nsol,p)==1)
THEN
398 IF(nlocal(n,p)==0)
THEN
399 nsndvois = nsndvois + 1
400 tag_l(p,nodlocal(n)) = 1
416 DEALLOCATE( tage,tag )
418 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)