33 1 ADDCNE ,CNE ,LCNE ,NUMNOD_L ,NODGLOB ,
34 2 LCNE_L ,CEP ,CEL ,IXS ,IXS10 ,
35 3 IXS20 ,IXS16 ,IXQ ,IXC ,IXT ,
36 4 IXP ,IXR ,IXTG ,MONVOL ,
37 5 IB ,GEO ,IGEO ,PROC ,
38 6 NUMELS_L ,NUMELS8_L,NUMELS10_L,NUMELS16_L,NUMELS20_L,
39 7 NUMELQ_L ,NUMELC_L ,NUMELT_L ,NUMELP_L ,NUMELR_L ,
40 8 NUMELTG_L,NSKYRW_L ,NPRW ,LPRW ,
41 9 NSKYRBK_L,NPBY ,LPBY ,DD_RBY2 ,
42 A I2NSNT ,I2NSN_L ,IPARI ,NIR ,
43 B LCNI2_L ,NISKYI2_L,CEPI2 ,CELI2 ,CNI2 ,
44 C ADDCNI2 ,NBDDI2M ,NCONLD_L ,IXTG6 ,NUMELTG6_L,
45 D NNMV_L ,NNMVC_L ,NSKYLL_L ,NNLINK ,LLLINK ,
46 E NSKYRBM_L,DD_RBM2 ,IBVEL ,LBVEL ,NBI18_L ,
47 F NSKYI18_L,LEN_IA ,NCONV_L ,IBCV ,NSKYRBE3_L,
48 G IRBE3 ,LRBE3 ,NSKYRBMK_L, IRBYM , LCRBYM ,
49 H FRONT_RM ,DD_RBYM2,IBCR ,NRADIA_L ,ADDCNE_PXFEM,
50 I CNE_PXFEM ,CEL_PXFEM ,LCNEPXFEM_L,INOD_PXFEM,IEL_PXFEM,
51 J NUMELCPXFEM_L,NUMNODPXFEM_L ,LLOADP ,ILOADP ,
52 K LLLOADP_L,ADDCNE_CRKXFEM,CNE_CRKXFEM,CEL_CRKXFEM,
53 L LCNECRKXFEM_L,INOD_CRKXFEM,IEL_CRKXFEM,NUMELCCRKXFE_L,
54 M NUMNODCRKXFE_L,NUMELTGCRKXFE_L,CEP_CRKXFEM,INOD_CRK_L,
55 N CRKNODIAD, INTBUF_TAB,NUMELIG3D_L,KXIG3D,IXIG3D,
56 O IBFFLUX ,NFXFLUX_L ,CEPCND ,CELCND ,ADDCNCND ,
57 P CNCND ,NS10E_L ,ICNDS10 ,LCNCND_L ,ITAGND ,IGRSURF,
58 Q IGRSURF_PROC ,LOCAL_NEBCS, EBCS_TAB_LOC_2,
59 R NUMBER_LOAD_CYL,LOADS,LOADS_PER_PROC,GLOB_THERM)
71#include "implicit_f.inc"
72#include "tabsiz_c.inc"
79#include "com_xfem1.inc"
83 type (glob_therm_) ,
intent(in) :: glob_therm
84 INTEGER LCNE, NUMNOD_L, LCNE_L, PROC, I2NSNT, I2NSN_L, NIR,
85 . LCNI2_L, NISKYI2_L, NBDDI2M, NSKYLL_L, NBI18_L,NSKYI18_L,
86 . NUMELS_L ,NUMELS8_L ,NUMELS10_L,NUMELS16_L,NUMELS20_L,
87 . NUMELC_L ,NUMELT_L ,NUMELP_L ,NUMELR_L ,NUMELTG_L,
88 . NUMELQ_L , NSKYRW_L, NSKYRBK_L, NCONLD_L,
89 . NUMELTG6_L, NNMV_L, NNMVC_L, ,
90 . addcne(0:numnod+1), cne(*), nodglob(*), cep(*), cel(*),
91 . ixs(nixs,*),ixs10(6,*),ixs20(12,*),ixs16(8,*),
92 . ixq(nixq,*),ixc(nixc,*),ixt(nixt,*),ixp(nixp,*),
93 . ixr(nixr,*),ixtg(nixtg,*),ixtg6(4,*),
94 . ib(nibcld,*),monvol(*), nprw(*),
95 . lprw(*), npby(nnpby,*), lpby(*),
96 . dd_rby2(3,nrbykin), ipari(npari,*),
97 . cepi2(*), celi2(*), cni2(*), addcni2(0:numnod+1),
98 . nnlink(10,*), lllink(*),
99 . dd_rbm2(3,nibvel), ibvel(nbvelp,*), lbvel(*),len_ia,
100 . nconv_l ,ibcv(glob_therm%NICONV,*),nskyrbe3_l,
101 . irbe3(nrbe3l,*),lrbe3(*),nskyrbmk_l,
102 . irbym(nirbym,*) , lcrbym(*) ,front_rm(nrbym,*),
103 . dd_rbym2(3,nrbym), ibcr(glob_therm%NIRADIA,*), nradia_l,
104 . cne_pxfem(*),addcne_pxfem(0:nplyxfe + 1),cel_pxfem(*),
105 . numelcpxfem_l,numnodpxfem_l,inod_pxfem(*),iel_pxfem(*),
106 . lcnepxfem_l,lloadp(*),iloadp(sizloadp,*),llloadp_l,
107 . cne_crkxfem(*),addcne_crkxfem(0:ncrkxfe+1),
108 . cel_crkxfem(*),numelccrkxfe_l,numnodcrkxfe_l,
109 . inod_crkxfem(*),iel_crkxfem(*),lcnecrkxfem_l,
110 . numeltgcrkxfe_l,cep_crkxfem(*),inod_crk_l(*),
111 . crknodiad(*),numelig3d_l,kxig3d(nixig3d,*),ixig3d(*),
112 . cepcnd(*),celcnd(*),addcncnd(0:*),cncnd(*),ns10e_l
113 . lcncnd_l,itagnd(*),igeo(npropgi,*)
114 INTEGER NFXFLUX_L,IBFFLUX(GLOB_THERM%NITFLUX,*)
117 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
118 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
120 TYPE(SURF_),
DIMENSION(NSURF,NSPMD),
INTENT(IN) :: IGRSURF_PROC
128 INTEGER,
INTENT(IN) ::
129 TYPE(T_EBCS_TAB),
INTENT(INOUT) :: EBCS_TAB_LOC_2
131 INTEGER,
INTENT(IN) :: NUMBER_LOAD_CYL
132 TYPE(LOADS_),
INTENT(IN) :: LOADS
133 TYPE(LOADS_),
INTENT(INOUT) :: LOADS_PER_PROC
142 INTEGER N, I, PROC_L, CC, CC_L, N1, N2, N3, N4,
143 . K, K0, K1, K6, NV, KN, JJ, INACTI,NG,NUMG0,
144 . is,nn,iad,j,ity,cload,numl,numg, ii,
main,j_l,ipvent,
145 . nsl, nsl_l, kk, p,k_ l, msr, pmain, nty, nrts,nl_l,n0,
146 . nrtm, nsn, nmn, k10, k11, k12, k13, k14, l, nsn_l, offtg,
147 . offc,ityp,nvent,iv,iadhol,kibhol,kibjet,k2,nnc,kad,nav,j0,
148 . nrtm_fe, nrts_fe, n_l
149 INTEGER :: IDEBRBK(NSPMD)
150 INTEGER :: PROCNE_PXFEM(LCNEPXFEM_L)
151 INTEGER :: IADC_PXFEM(4,NUMELCPXFEM_L)
152 INTEGER :: ADDCNEPXFEM_L(NUMNODPXFEM_L+1)
153 INTEGER :: PROCNE_CRKXFEM(LCNECRKXFEM_L)
154 INTEGER :: ADDCNECRKXFEM_L(NUMNODCRKXFE_L+1)
155 INTEGER :: IADC_CRKXFEM(4,NUMELCCRKXFE_L)
156 INTEGER :: (LCNECRKXFEM_L)
157 INTEGER :: IADTG_CRKXFEM(3,NUMELTGCRKXFE_L)
158 INTEGER :: CEL_CRKXFEM_L(LCNECRKXFEM_L)
159 INTEGER :: CRKNODIAD_L(LCNECRKXFEM_L)
161 INTEGER,
ALLOCATABLE :: PROCNE(:)
162 INTEGER,
ALLOCATABLE :: ITAGIB(:)
163 INTEGER,
ALLOCATABLE :: IADMV(:,:)
164 INTEGER,
ALLOCATABLE :: IADMV2(:)
165 INTEGER,
ALLOCATABLE :: IADMV3(:)
166 INTEGER,
ALLOCATABLE :: IADWAL(:)
167 INTEGER,
ALLOCATABLE :: IADRBK(:)
168 INTEGER,
ALLOCATABLE :: IADI2(:,:)
169 INTEGER,
ALLOCATABLE :: I2TMP(:,:)
170 INTEGER,
ALLOCATABLE :: IADLL(:)
171 INTEGER,
ALLOCATABLE :: PROCNI2(:)
172 INTEGER,
ALLOCATABLE :: IADRBM(:)
173 INTEGER,
ALLOCATABLE :: IADI18(:)
174 INTEGER,
ALLOCATABLE :: IADIBCV(:,:)
175 INTEGER,
ALLOCATABLE :: IADIBFX(:,:)
176 INTEGER,
ALLOCATABLE :: IADRBMK(:)
177 INTEGER,
ALLOCATABLE :: IADIBCR(:,:)
178 INTEGER,
ALLOCATABLE :: ITAGLOADP(:)
179 INTEGER,
ALLOCATABLE :: IADLOAD(:,:)
180 INTEGER,
ALLOCATABLE :: ICNDTMP(:,:)
181 INTEGER,
ALLOCATABLE :: PROCNCND(:)
182 INTEGER,
ALLOCATABLE :: IADCND(:,:)
185 INTEGER IUN,EMPL,COORD,SHFT,TESTVAL,KD(50),
186 INTEGER,
DIMENSION(:),
ALLOCATABLE :: SOLTAG,SOL10TAG,
187 . SOL20TAG,SOL16TAG,QUADTAG,SHTAG,TTAG,PTAG,RTAG,TGTAG,TG6TAG,
188 . ibtag,ibcvtag,ibcrtag,ibfxtag,iltag,tagig3d
189 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITAGC, ITAGTG,ADDCNE_L,ADDCNI2_L,
191 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IADS,IADS10,
192 . iads16,iads20,iadq,iadc,iadt,
193 . iadp,iadr,iadtg,iadib,
195 TYPE(ebcs_parith_on),
DIMENSION(:),
ALLOCATABLE :: EBCS_PARITHON_L
196 LOGICAL,
DIMENSION(:),
ALLOCATABLE :: EBCS_TAG
197 INTEGER :: LOCAL_NODE_ID,ELEM_ID,NUMG_SAVE
200 INTEGER :: GLOBAL_SEGMENT_ID
201 INTEGER :: LOCAL_PROC_ID
202 INTEGER :: LOCAL_SEGMENT_ID
203 INTEGER :: GLOBAL_LOAD_ID,LOCAL_LOAD_ID
206 ALLOCATE(procne(lcne_l))
207 ALLOCATE(itagib(nconld))
208 ALLOCATE(iadmv(4, nnmv_l))
209 ALLOCATE(iadmv2(nnmv_l))
210 ALLOCATE(iadmv3(nnmvc_l))
211 ALLOCATE(iadwal(nskyrw_l))
212 ALLOCATE(iadrbk(nskyrbk_l))
213 ALLOCATE(iadi2(nir, i2nsn_l))
214 ALLOCATE(i2tmp(nir, i2nsn_l))
215 ALLOCATE(iadll(nskyll_l))
216 ALLOCATE(procni2(lcni2_l))
217 ALLOCATE(iadrbm(nskyrbm_l))
218 ALLOCATE(iadi18(nskyi18_l))
219 ALLOCATE(iadibcv(4, nconv_l))
220 ALLOCATE(iadibfx(4, nfxflux_l))
221 ALLOCATE(iadrbmk(nskyrbmk_l))
222 ALLOCATE(iadibcr(4, nradia_l))
223 ALLOCATE(itagloadp(slloadp))
224 ALLOCATE(iadload(4, llloadp_l))
225 ALLOCATE(icndtmp(3, ns10e_l))
226 ALLOCATE(procncnd(lcncnd_l))
227 ALLOCATE(iadcnd(2, ns10e_l))
230 ALLOCATE(soltag(numels))
233 ALLOCATE(sol10tag(numels10))
234 sol10tag(1:numels10)=0
236 ALLOCATE(sol20tag(numels20))
237 sol20tag(1:numels20)=0
239 ALLOCATE(sol16tag(numels16))
240 sol16tag(1:numels16)=0
242 ALLOCATE(quadtag(numelq))
245 ALLOCATE(shtag(numelc))
248 ALLOCATE(ttag(numelt))
251 ALLOCATE(ptag(numelp))
254 ALLOCATE(rtag(numelr))
257 ALLOCATE(tgtag(numeltg))
260 ALLOCATE(tg6tag(numeltg6))
263 ALLOCATE(ibtag(nconld))
266 ALLOCATE(ibcvtag(glob_therm%NUMCONV))
267 ibcvtag(1:glob_therm%NUMCONV)=0
269 ALLOCATE(ibcrtag(glob_therm%NUMRADIA))
270 ibcrtag(1:glob_therm%NUMRADIA)=0
272 ALLOCATE(ibfxtag(glob_therm%NFXFLUX))
273 ibfxtag(1:glob_therm%NFXFLUX)=0
275 ALLOCATE(iltag(slloadp/4))
278 ALLOCATE(tagig3d(numelig3d))
279 tagig3d(1:numelig3d)=0
282 ALLOCATE( itagc(numelc),itagtg(numeltg) )
283 ALLOCATE( addcne_l(numnod_l+1),addcni2_l(numnod_l+1))
284 addcne_l(1:numnod_l + 1) = 0
285 ALLOCATE( addcncnd_l(numnod_l+1))
287 ALLOCATE( iads(8,numels_l),iads10(6,numels10_l) )
288 ALLOCATE( iads16(8,numels16_l),iads20(12,numels20_l) )
289 ALLOCATE( iadq(4,numelq_l),iadc(4,numelc_l) )
290 ALLOCATE( iadt(2,numelt_l),iadp(2,numelp_l) )
291 ALLOCATE( iadr(3,numelr_l),iadtg(3,numeltg_l) )
292 iadr(1:3,1:numelr_l) = 0
293 iadtg(1:3,1:numeltg_l) = 0
294 ALLOCATE(iadib(4,nconld_l) )
295 if(nconld_l >0) iadib(1:4,1:nconld_l) = -huge(i)
296 ALLOCATE( iadtg1(3,numeltg6_l),iadig3d(100,numelig3d_l) )
336 kibhol = kibjet + libagjet
339 offtg =numels+numelq+ numelc+numelt+numelp+numelr
345 nvent = monvol(k1+10)
346 nn = igrsurf(is)%NSEG
347 iadhol= kibhol+monvol(k1+11)
350 ity = igrsurf(is)%ELTYP(j)
351 i = igrsurf(is)%ELEM(j)
354 IF(cep(i+offc)==proc-1)
THEN
362 IF(cep(i+offtg)==proc-1)
THEN
374 IF(ityp==3.OR.ityp==4.OR.ityp==5.OR.ityp==7.OR.ityp==9)
THEN
376 ipvent = monvol(iadhol+nibhol*(iv-1)+2-1)
378 nnc=igrsurf(ipvent)%NSEG
380 ity = igrsurf(ipvent)%ELTYP(j)
381 i = igrsurf(ipvent)%ELEM(j)
383 IF(cep(i+offc)==proc-1)
THEN
386 iadmv3(k0) = itagc(i)
389 IF(cep(i+offtg)==proc-1)
THEN
392 iadmv3(k0) = itagtg(i)
399 IF(ityp==4.OR.ityp==5.OR.ityp==7.OR.ityp==9)
THEN
401 ipvent = monvol(k2+nicbag*(iv-1)+2-1)
403 nnc=igrsurf(ipvent)%NSEG
405 ity = igrsurf(ipvent)%ELTYP(j)
406 i = igrsurf(ipvent)%ELEM(j)
408 IF(cep(i+offc)==proc-1)
THEN
411 iadmv3(k0) = itagc(i)
414 IF(cep(i+offtg)==proc-1)
THEN
417 iadmv3(k0) = itagtg(i)
425 k2 = k2 + nicbag * nav
448 ALLOCATE( ebcs_tag(numels+numelq+numeltg) )
449 ebcs_tag(1:numels+numelq+numeltg) = .false.
450 ALLOCATE(ebcs_parithon_l(local_nebcs))
451 IF(local_nebcs>0)
THEN
456 ALLOCATE( ebcs_parithon_l(i)%ELEM_ADRESS(4,ebcs_tab_loc_2%tab(i)%poly%nb_elem) )
457 ebcs_parithon_l(i)%ELEM_ADRESS(1:4,1:ebcs_tab_loc_2%tab(i)%poly%nb_elem) = 0
459 IF(ebcs_tab_loc_2%tab(i)%poly%surf_id>0)
THEN
462 DO j=1,ebcs_tab_loc_2%tab(i)%poly%nb_elem
463 elem_id = ebcs_tab_loc_2%tab(i)%poly%global_ielem(j)
465 IF(elem_id>numels+numelq)
THEN
466 elem_id = elem_id - (numelc+numelt+numelp+numelr)
469 ebcs_tag(elem_id) = .true.
497 addcne_l(i+1) = addcne_l(i) + n2-n1
505 procne(cc_l) = proc_l
509 IF (proc==proc_l)
THEN
511 IF (numg<=numels)
THEN
513 shft = ishft(iun,k-1)
514 testval = iand(soltag(numg),shft
515 IF (ixs(k+1,numg)==n.AND.testval==0)
THEN
517 soltag(numg)=soltag(numg)+shft
522 IF(numels10>0.AND.numg>numels8.AND.
523 + numg<=numels8+numels10)
THEN
526 shft = ishft(iun,k-1)
527 testval = iand(sol10tag(numg),shft)
528 IF (ixs10(k,numg)==n.AND.testval==0)
THEN
529 iads10(k,numl-numels8_l) = cc_l
530 sol10tag(numg)=sol10tag(numg)+shft
534 ELSEIF(numels20>0.AND.numg>numels8+numels10.AND.
535 + numg<=numels8+numels10+numels20)
THEN
536 numg=numg-numels8-numels10
538 shft = ishft(iun,k-1)
539 testval = iand(sol20tag(numg),shft)
540 IF (ixs20(k,numg)==n.AND.testval==0 )
THEN
541 iads20(k,numl-numels8_l-numels10_l) = cc_l
542 sol20tag(numg)=sol20tag(numg)+shft
546 ELSEIF(numels16>0.AND.
547 + numg>numels8+numels10+numels20)
THEN
548 numg=numg-numels8-numels10-numels20
550 shft = ishft(iun,k-1)
551 testval =iand(sol16tag(numg),shft)
552 IF (ixs16(k,numg)==n.AND.testval==0 )
THEN
553 iads16(k,numl-numels8_l-numels10_l-numels20_l) = cc_l
554 sol16tag(numg)=sol16tag(numg)+shft
562 IF(ebcs_tag(numg_save))
THEN
565 IF(ebcs_tab_loc_2%tab(ii)%poly%surf_id>0)
THEN
568 DO j=1,ebcs_tab_loc_2%tab(ii)%poly%nb_elem
569 elem_id = ebcs_tab_loc_2%tab(ii)%poly%global_ielem(j)
578 IF(elem_id==numg_save)
THEN
580 local_node_id = ebcs_tab_loc_2%tab(ii)%poly%elem_list(k,j)
581 local_node_id = ebcs_tab_loc_2%tab(ii)%poly%node_list(local_node_id)
582 IF(n==nodglob(local_node_id))
THEN
583 IF(ebcs_parithon_l(ii)%ELEM_ADRESS(k,j)==0)
THEN
584 ebcs_parithon_l(ii)%ELEM_ADRESS(k,j) = cc_l
599 ELSEIF(numg<=numels+numelq)
THEN
601 shft = ishft(iun,k-1)
602 testval =iand(quadtag(numg),shft)
603 IF (ixq(k+1,numg)==n.AND.testval==0)
THEN
605 quadtag(numg)=quadtag(numg)+shft
611 IF(ebcs_tag(numg_save))
THEN
614 IF(ebcs_tab_loc_2%tab(ii)%poly%surf_id>0)
THEN
617 DO j=1,ebcs_tab_loc_2%tab(ii)%poly%nb_elem
618 elem_id = ebcs_tab_loc_2%tab(ii)%poly%global_ielem(j)
627 IF(elem_id==numg_save)
THEN
629 local_node_id = ebcs_tab_loc_2%tab(ii)%poly%elem_list(k,j)
630 local_node_id = ebcs_tab_loc_2%tab(ii)%poly%node_list(local_node_id)
632 IF(ebcs_parithon_l(ii)%ELEM_ADRESS(k,j)==0)
THEN
633 ebcs_parithon_l(ii)%ELEM_ADRESS(k,j) = cc_l
647 ELSEIF(numg<=numels+numelq+numelc)
THEN
648 numg = numg - (numels+numelq)
650 shft = ishft(iun,k-1)
651 testval =iand(shtag(numg),shft)
652 IF (ixc(k+1,numg)==n.AND.testval==0)
THEN
654 shtag(numg) = shtag(numg)+shft
660 IF(itagc(numg)>0)
THEN
665 nn = igrsurf_proc(is,proc)%NSEG
668 ity = igrsurf_proc(is,proc)%ELTYP(j)
669 ii = igrsurf_proc(is,proc)%ELEM(j)
671 IF(cep(offc+ii)==proc-1)
THEN
677 iadmv(k-1,k6+jj) = cc_l
684 IF(cep(offtg+ii)==proc-1)
THEN
696 numg = numg - (numels+numelq+numelc)
698 shft = ishft(iun,k-1)
699 testval =iand(ttag(numg),shft)
700 IF (ixt(k+1,numg)==n.AND.testval==0)
THEN
702 ttag(numg)=ttag(numg)+shft
707 numg = numg - (numels+numelq+numelc+numelt)
709 shft = ishft(iun,k-1)
710 testval =iand(ptag(numg),shft)
711 IF (ixp(k+1,numg)==n.AND.testval==0)
THEN
713 ptag(numg)=ptag(numg)+shft
717 ELSEIF(numg<=numels+numelq+numelc+numelt+numelp+
719 numg = numg - (numels+numelq+numelc+numelt+numelp)
721 shft = ishft(iun,k-1)
722 testval =iand(rtag(numg),shft)
723 IF (ixr(k+1,numg)==n.AND.testval==0)
THEN
725 rtag(numg)=rtag(numg)+shft
729 IF(igeo(11,ixr(1,numg))==12)
THEN
731 testval =iand(rtag(numg),shft)
732 IF (ixr(4,numg)==n.AND.testval==0)
THEN
738 ELSEIF(numg<=numels+numelq+numelc+numelt+numelp+
739 . numelr+numeltg)
THEN
740 numg = numg - (numels+numelq+numelc+numelt+numelp+numelr)
742 shft = ishft(iun,k-1)
743 testval =iand(tgtag(numg),shft)
744 IF (ixtg(k+1,numg)==n.AND.testval==0)
THEN
746 tgtag(numg)=tgtag(numg)+shft
752 . numg>numels+numelq+numelc+numelt+numelp+
753 . numelr+numeltg-numeltg6.AND.
754 . numg<=numels+numelq+numelc+numelt+numelp+
755 . numelr+numeltg)
THEN
756 numg=numg-numeltg+numeltg6
758 shft = ishft(iun,k-1)
759 testval =iand(tg6tag(numg),shft)
760 IF (ixtg6(k,numg)==n.AND.testval==0)
THEN
761 iadtg1(k,numl-numeltg_l+numeltg6_l) = cc_l
762 tg6tag(numg)=tg6tag(numg
770 IF(itagtg(numg)>0)
THEN
775 nn = igrsurf_proc(is,proc)%NSEG
778 ity = igrsurf_proc(is,proc)%ELTYP(j)
779 ii = igrsurf_proc(is,proc)%ELEM(j)
781 IF(cep(offtg+ii)==proc-1)
THEN
785 IF(ixtg(k,ii)==n.AND.
786 . iadmv(k-1,k6+jj)==0)
THEN
787 iadmv(k-1,k6+jj) = cc_l
794 IF(cep(offc+ii)==proc-1)
THEN
807 IF(ebcs_tag(numg_save-(numelc+numelt+numelp+numelr)))
THEN
810 IF(ebcs_tab_loc_2%tab(ii)%poly%surf_id>0)
THEN
813 DO j=1,ebcs_tab_loc_2%tab(ii)%poly%nb_elem
814 elem_id = ebcs_tab_loc_2%tab(ii)%poly%global_ielem(j)
824 IF(elem_id==numg_save)
THEN
826 local_node_id = ebcs_tab_loc_2%tab(ii)%poly%elem_list(k,j)
827 IF(local_node_id>0)
THEN
828 IF(n==nodglob(local_node_id))
THEN
829 IF(ebcs_parithon_l(ii)%ELEM_ADRESS(k,j)==0)
THEN
830 ebcs_parithon_l(ii)%ELEM_ADRESS(k,j) = cc_l
845 ELSEIF(numg<=numels+numelq+numelc+numelt+numelp+
846 . numelr+numeltg+numelx+nconld)
THEN
847 numg = numg - (numels+numelq+numelc+numelt+numelp+numelr+
849 IF(itagib(numg)==0.AND.n2d==0)
THEN
851 ELSEIF(itagib(numg)==0.AND.n2d/=0)
THEN
857 shft = ishft(iun,k-1)
858 testval =iand(ibtag(numg),shft)
859 IF (ib(k,numg)==n.AND.testval==0)
THEN
861 ibtag(numg)=ibtag(numg)+shft
867 ELSEIF(numg<=numels+numelq+numelc+numelt+numelp+
868 . numelr+numeltg+numelx+ nconld + glob_therm%NUMCONV)
THEN
869 numg = numg - (numels+numelq+numelc+numelt+numelp+numelr+
870 + numeltg+numelx+nconld)
879 shft = ishft(iun,k-1)
880 testval =iand(ibcvtag(numg),shft)
881 IF (ibcv(k,numg)==n.AND.testval==0)
THEN
882 iadibcv(k,numl) = cc_l
883 ibcvtag(numg)=ibcvtag(numg)+shft
889 ELSEIF(numg<=numels+numelq+numelc+numelt+numelp+
890 . numelr+numeltg+numelx+ nconld + glob_therm%NUMCONV +
891 . glob_therm%NUMRADIA)
THEN
892 numg = numg - (numels+numelq+numelc+numelt+numelp+numelr+
893 + numeltg+numelx+nconld+glob_therm%NUMCONV)
902 shft = ishft(iun,k-1)
903 testval =iand(ibcrtag(numg),shft)
904 IF (ibcr(k,numg)==n.AND.testval==0)
THEN
905 iadibcr(k,numl) = cc_l
906 ibcrtag(numg)= ibcrtag(numg)+shft
912 ELSEIF(numg<=numels+numelq+numelc+numelt+numelp+
913 . numelr+numeltg+numelx+ nconld + glob_therm%NUMCONV +
914 . glob_therm%NUMRADIA+glob_therm%NFXFLUX)
THEN
915 numg = numg - (numels+numelq+numelc+numelt+numelp+numelr+
916 + numeltg+numelx+nconld+glob_therm%NUMCONV+glob_therm%NUMRADIA)
925 shft = ishft(iun,k-1)
926 testval =iand(ibfxtag(numg),shft)
927 IF (ibfflux(k,numg)==n.AND.testval==0)
THEN
928 iadibfx(k,numl) = cc_l
929 ibfxtag(numg)= ibfxtag(numg)+shft
935 ELSEIF(numg<=numels+numelq+numelc+numelt+numelp+
936 . numelr+numeltg+numelx+ nconld + glob_therm%NUMCONV +
937 . glob_therm%NUMRADIA+glob_therm%NFXFLUX+slloadp/4)
THEN
938 numg = numg - (numels+numelq+numelc+numelt+numelp+numelr+
939 . numeltg+numelx+nconld+glob_therm%NUMCONV+
940 . glob_therm%NUMRADIA+glob_therm%NFXFLUX)
941 IF(itagloadp(numg)==0.AND.n2d==0)
THEN
943 ELSEIF(itagloadp(numg)==0.AND.n2d/=0)
THEN
949 shft = ishft(iun,k-1)
950 testval =iand(iltag(numg),shft)
951 IF (lloadp(4*(numg-1)+k)==n.AND.testval==0)
THEN
952 iadload(k,numl) = cc_l
953 iltag(numg)=iltag(numg)+shft
959 ELSEIF(numg<=numels+numelq+numelc+numelt+numelp+
960 . numelr+numeltg+numelx+ nconld + glob_therm%NUMCONV +
961 . glob_therm%NUMRADIA+glob_therm%NFXFLUX+slloadp/4+numelig3d)
THEN
962 numg = numg - (numels+numelq+numelc+numelt+numelp+numelr+
963 . numeltg+numelx+nconld+glob_therm%NUMCONV+
964 . glob_therm%NUMRADIA+glob_therm%NFXFLUX+slloadp/4)
966 shft = ishft(iun,k-1)
967 testval = iand(tagig3d(numg),shft)
968 IF (ixig3d(kxig3d(4,numg)+k-1)==n.AND.testval==0)
THEN
969 iadig3d(k,numl) = cc_l
970 tagig3d(numg)=tagig3d(numg)+shft
976 ELSEIF(numg<=numels+numelq+numelc+numelt+numelp+
977 . numelr+numeltg+numelx+ nconld + glob_therm%NUMCONV +
978 . glob_therm%NUMRADIA+glob_therm%NFXFLUX+slloadp/4+numelig3d+number_load_cyl)
THEN
982 global_segment_id = numg - (numels+numelq+numelc+numelt+numelp+
983 . numelr+numeltg+numelx+ nconld + glob_therm%NUMCONV +
984 . glob_therm%NUMRADIA+glob_therm%NFXFLUX+slloadp/4+numelig3d)
985 local_proc_id = loads%GLOBAL_SEGMENT_ID(global_segment_id,1)
986 local_segment_id = loads%GLOBAL_SEGMENT_ID(global_segment_id,2)
987 global_load_id = loads%GLOBAL_SEGMENT_ID(global_segment_id,3)
988 local_load_id = loads_per_proc%INDEX_LOAD(global_load_id,2)
992 IF(n==loads_per_proc%LOAD_CYL(local_load_id)%SEGNOD(local_segment_id,j))
THEN
993 loads_per_proc%LOAD_CYL(local_load_id)%SEGMENT_ADRESS(j,local_segment_id) = cc_l
1000 print *,
'**error assadd2 unknown elem type'
1014 IF(iplyxfem > 0)
THEN
1015 addcnepxfem_l(1) = 1
1024 n1 = addcne_pxfem(n)
1025 n2 = addcne_pxfem(n+1)
1026 addcnepxfem_l(nl_l + 1) = addcnepxfem_l(nl_l) + n2 - n1
1028 numg0 = cne_pxfem(cc)
1029 n0 = iel_pxfem(numg0)
1030 numl = cel_pxfem(n0)
1031 numg = numg0 + numels + numelq
1032 proc_l = cep(numg)+1
1035 procne_pxfem(cc_l) = proc_l
1039 IF (proc==proc_l)
THEN
1041 IF(numg<=numels+numelq+numelc)
THEN
1042 numg = numg - (numels+numelq)
1044 shft = ishft(iun,k-1)
1045 testval =iand(shtag(numg),shft)
1046 IF (ixc(k+1,numg)==ng.AND.testval/=0)
THEN
1047 iadc_pxfem(k,numl) = cc_l
1048 shtag(numg)=shtag(numg)-shft
1064 IF (icrack3d > 0)
THEN
1067 addcnecrkxfem_l(1) = 1
1074 IF (inod_crk_l(i) > 0)
THEN
1075 n = inod_crkxfem(ng)
1076 n1 = addcne_crkxfem(n)
1077 n2 = addcne_crkxfem(n+1)
1080 addcnecrkxfem_l(nl_l+1) = addcnecrkxfem_l(nl_l) + n2 - n1
1083 numg0 = cne_crkxfem(cc)
1084 n0 = iel_crkxfem(numg0)
1085 numl = cel_crkxfem(n0)
1088 proc_l = cep_crkxfem(n0) + 1
1091 procne_crkxfem(cc_l) = proc_l
1095 IF (proc == proc_l)
THEN
1096 IF (n0 <= ecrkxfec)
THEN
1099 shft = ishft(iun,k-1)
1100 testval = iand(shtag(numg),shft)
1101 IF (ixc(k+1,numg) == ng .AND. testval /= 0)
THEN
1102 iadc_crkxfem(k,numl) = cc_l
1104 cne_crkxfem_l(cc_l) = numl
1105 crknodiad_l(cc_l) = crknodiad(cc)
1106 shtag(numg) = shtag(numg)-shft
1109 ELSEIF (n0 > ecrkxfec .AND. n0 <= ecrkxfec+ecrkxfetg)
THEN
1110 numg = numg0 -numelc
1113 testval = iand(tgtag(numg),shft)
1114 IF (ixtg(k+1,numg) == ng .AND. testval /= 0)
THEN
1115 iadtg_crkxfem(k,numl) = cc_l
1117 cne_crkxfem_l(cc_l) = numl + numelccrkxfe_l
1118 crknodiad_l(cc_l) = crknodiad(cc)
1119 tgtag(numg)=tgtag(numg)-shft
1138 IF(nlocal(msr,proc)==1)
THEN
1142 IF(nlocal(nn,proc)==1)
THEN
1146 IF(nlocal(nn,p)==1)
THEN
1151 200
IF(
main==1)
THEN
1152 iadwal(k_l+nsl_l) = kk
1154 iadwal(k_l+nsl_l) = 0
1175 pmain = abs(dd_rby2(3,n))
1176 IF(nlocal(msr,proc)==1)
THEN
1179 IF(nlocal(nn,proc)==1)
THEN
1183 IF(nlocal(nn,p)==1)
THEN
1188 300
IF(
main==1)
THEN
1190 iadrbk(nsl_l) = kk+idebrbk(pmain)
1198 idebrbk(pmain) = idebrbk(pmain) + nsl
1205 IF(nskyrbmk_l>0)
THEN
1214 pmain = abs(dd_rbym2(3,n))
1215 IF(mod(front_rm(msr,proc),10)==1)
THEN
1218 IF(nlocal(nn,proc)==1)
THEN
1222 IF(nlocal(nn,p)==1)
THEN
1227 333
IF(
main==1)
THEN
1229 iadrbmk(nsl_l) = kk+idebrbk(pmain)
1237 idebrbk(pmain) = idebrbk(pmain) + nsl
1256 l = intbuf_tab(n)%IRTLM(i)
1257 k = intbuf_tab(n)%NSV(i)
1258 IF(nlocal(k,proc)==1)
THEN
1260 IF(nlocal(k,p)==1)
GO TO 202
1264 kk = intbuf_tab(n)%IRECTM((l-1)*4+j)
1273 if(nsn_l/=i2nsn_l)print *,
'error decomp i2 p/on'
1281 addcni2_l(i+1) = addcni2_l(i) + n2-n1
1285 proc_l = cepi2(numg)+1
1287 procni2(cc_l) = proc_l
1291 IF (proc==proc_l)
THEN
1293 IF(i2tmp(k,numl)==n)
THEN
1294 iadi2(k,numl) = cc_l
1314 IF (nlocal(n,proc)==1)
THEN
1316 iadll(k_l+nsl_l) = j
1334 pmain = abs(dd_rbm2(3,n))
1335 IF(nlocal(msr,proc)==1)
THEN
1338 IF(nlocal(nn,proc)==1)
THEN
1342 IF(nlocal(nn,p)==1)
THEN
1347 3000
IF(
main==1)
THEN
1349 iadrbm(nsl_l) = kk+idebrbk(pmain)
1357 idebrbk(pmain) = idebrbk(pmain) + nsl
1363 IF(nskyrbe3_l>0)
THEN
1378 IF(nlocal(k,proc)==1.AND.itagnd(k)<=ns10e)
THEN
1381 IF(nlocal(k,p)==1)
GO TO 332
1385 icndtmp(1,nsn_l) = n1
1386 icndtmp(2,nsn_l) = n2
1387 icndtmp(3,nsn_l) = n_l
1392 if(n_l/=ns10e_l)print *,
'error decomp Itet2of S10 p/on',n_l,ns10e_l
1395 iadcnd(1:2,1:ns10e_l) = 0
1402 addcncnd_l(i+1) = addcncnd_l(i) + n2-n1
1407 proc_l = cepcnd(numg)+1
1413 IF (proc==proc_l)
THEN
1415 IF(icndtmp(k,numl)==n)
THEN
1416 n_l = icndtmp(3,numl)
1417 iadcnd(k,n_l) = cc_l
1418 icndtmp(k,numl) = -n
1434 inacti = ipari(22,n)
1435 IF((ity==7.OR.ity==22).AND.inacti==7)
THEN
1440 n1 = intbuf_tab(n)%IRECTM(4*(k-1)+1)
1441 n2 = intbuf_tab(n)%IRECTM(4*(k-1)+2)
1442 n3 = intbuf_tab(n)%IRECTM(4*(k-1)+3)
1443 n4 = intbuf_tab(n)%IRECTM(4*(k-1)+4)
1444 IF(nlocal(n1,proc)==1.AND.
1445 . nlocal(n2,proc)==1.AND.
1446 . nlocal(n3,proc)==1.AND.
1447 . nlocal(n4,proc)==1)
THEN
1449 IF(nlocal(n1,p)==1.AND.
1450 . nlocal(n2,p)==1.AND.
1451 . nlocal(n3,p)==1.AND.
1452 . nlocal(n4,p)==1)
THEN
1470 len_ia = len_ia + numnod_l+1
1472 len_ia = len_ia + lcne_l
1476 len_ia = len_ia + numnod_l+1
1479 len_ia = len_ia + lcni2_l
1483 len_ia = len_ia + numnod_l+1
1486 len_ia = len_ia + lcncnd_l
1489 len_ia = len_ia + 8*numels_l
1491 len_ia = len_ia + 6*numels10_l
1493 len_ia = len_ia +12*numels20_l
1495 len_ia = len_ia + 8*numels16_l
1497 len_ia = len_ia + 4*numelq_l
1499 len_ia = len_ia + 4*numelc_l
1501 len_ia = len_ia + 2*numelt_l
1503 len_ia = len_ia + 2*numelp_l
1505 len_ia = len_ia + 3*numelr_l
1507 len_ia = len_ia + 3*numeltg_l
1509 len_ia = len_ia + 3*numeltg6_l
1511 len_ia = len_ia + 4*nnmv_l
1513 len_ia = len_ia + 4*nconld_l
1515 len_ia = len_ia + 4*nconv_l
1517 len_ia = len_ia + 4*nradia_l
1519 len_ia = len_ia + 4*nfxflux_l
1521 len_ia = len_ia + llloadp_l
1524 len_ia = len_ia + nskyrw_l
1527 len_ia = len_ia + nskyrbk_l
1530 len_ia = len_ia + niskyi2_l
1533 len_ia = len_ia + 2*ns10e_l
1536 len_ia = len_ia + nnmv_l
1539 len_ia = len_ia + nnmvc_l
1542 len_ia = len_ia + nskyll_l
1545 len_ia = len_ia + nskyrbm_l
1550 len_ia = len_ia + nskyi18_l
1553 len_ia = len_ia + nskyrbmk_l
1556 IF(iplyxfem > 0 )
THEN
1557 CALL write_i_c(addcnepxfem_l,numnodpxfem_l+1)
1558 len_ia = len_ia + numnodpxfem_l+1
1559 CALL write_i_c(procne_pxfem,lcnepxfem_l)
1560 len_ia = len_ia + lcnepxfem_l
1561 CALL write_i_c(iadc_pxfem,4*numelcpxfem_l)
1562 len_ia = len_ia + 4*numelcpxfem_l
1567 IF (icrack3d > 0)
THEN
1568 CALL write_i_c(addcnecrkxfem_l,numnodcrkxfe_l
1569 len_ia = len_ia + numnodcrkxfe_l+1
1570 CALL write_i_c(cne_crkxfem_l,lcnecrkxfem_l)
1571 len_ia = len_ia + lcnecrkxfem_l
1572 CALL write_i_c(procne_crkxfem,lcnecrkxfem_l)
1573 len_ia = len_ia + lcnecrkxfem_l
1574 CALL write_i_c(iadc_crkxfem,4*numelccrkxfe_l)
1575 len_ia = len_ia + 4*numelccrkxfe_l
1576 CALL write_i_c(iadtg_crkxfem,3*numeltgcrkxfe_l)
1577 len_ia = len_ia + 3*numeltgcrkxfe_l
1578 CALL write_i_c(crknodiad_l,lcnecrkxfem_l)
1579 len_ia = len_ia + lcnecrkxfem_l
1584 IF(local_nebcs>0)
THEN
1586 CALL write_i_c(ebcs_parithon_l(i)%ELEM_ADRESS,4*ebcs_tab_loc_2%tab(i
1587 len_ia = len_ia + 4*ebcs_tab_loc_2%tab(i)%poly%nb_elem
1593 DEALLOCATE (sol10tag)
1594 DEALLOCATE (sol20tag)
1595 DEALLOCATE (sol16tag)
1596 DEALLOCATE (quadtag)
1604 DEALLOCATE (ibcvtag)
1605 DEALLOCATE (ibcrtag)
1606 DEALLOCATE (ibfxtag)
1608 DEALLOCATE (tagig3d)
1611 DEALLOCATE( itagc,itagtg )
1612 DEALLOCATE( addcne_l,addcni2_l,addcncnd_l )
1614 DEALLOCATE( iads,iads10 )
1615 DEALLOCATE( iads16,iads20 )
1616 DEALLOCATE( iadq,iadc )
1617 DEALLOCATE( iadt,iadp )
1618 DEALLOCATE( iadr,iadtg )
1620 DEALLOCATE( iadtg1,iadig3d )
1623 DEALLOCATE( ebcs_tag )
1624 IF(local_nebcs>0)
THEN
1626 DEALLOCATE( ebcs_parithon_l(i)%ELEM_ADRESS )
1629 DEALLOCATE(ebcs_parithon_l)
1647 DEALLOCATE(itagloadp)
1650 DEALLOCATE(procncnd)