43 1 DD_IAD ,IPARI ,IB ,NPBY ,
44 2 LPBY ,IXRI ,IBVEL ,LBVEL ,
45 3 IPARG ,CEL ,IXS ,IXS10 ,IXS20 ,
46 4 IXS16 ,IXQ ,IXC ,IXT ,IXP ,
47 5 IXR ,IXTG ,IXTG6 ,T_MONVOL,
48 6 IGRSURF,ADDCNE ,LCNE ,GEO ,
49 7 NPRW ,LPRW ,LCNI2 ,ADSKYI2,CEPI2,
50 8 CELI2 ,I2NSNT ,ISKN ,ISKWP,NSKWP ,
51 9 ISENSP ,NSENSP ,IACCP ,NACCP ,
52 A LACCELM,IBCV ,IRBE3 ,LRBE3 ,FRONT_RM,
53 B IRBYM ,LCRBYM ,CEP ,IBCR ,IRBE2 ,
54 C LRBE2 ,CEPSP ,CELSPH ,ILOADP,LLOADP,
55 D LGAUGE ,IGAUP ,NGAUP ,INTBUF_TAB,IBFFLUX,
56 E ICNDS10,ITAGND ,IGEO ,TAG_SKN,MULTIPLE_SKEW,
57 F IBFV ,IBCSCYC,LBCSCYC,R_SKEW,IPM ,
58 G SENSORS, LEN_CEP,EBCS_TAB,LOADS,IFRAME,
59 H NICONV ,NIRADIA ,NITFLUX,NUMCONV,NUMRADIA,NFXFLUX,
76 use element_mod ,
only : nixs,nixq,nixc,nixp,nixt,nixr,nixtg
80#include "implicit_f.inc"
91 INTEGER ,
INTENT(IN) :: NICONV
92 INTEGER ,
INTENT(IN) :: NIRADIA
93 INTEGER ,
INTENT(IN) :: NITFLUX
94 INTEGER ,
INTENT(IN) :: NUMCONV
95 INTEGER ,
INTENT(IN) :: NUMRADIA
96 INTEGER ,
INTENT(IN) :: NFXFLUX
97 INTEGER IPARI(NPARI,NINTER),
98 . DD_IAD(NSPMD+1,NSPGROUP), NPRW(*), LPRW(*),
99 . NPBY(NNPBY,*), LPBY(*), IXRI(4,*),
100 . IBVEL(NBVELP,*), LBVEL(*), IPARG(NPARG,*), CEL(*),
101 . IXS(NIXS,*),IXQ(NIXQ,*),IXC(,*),IXTG(NIXTG,*),
102 . IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),
103 . IXS10(6,*),IXS20(12,*),IXS16(8,*),IXTG6(4,*),IB(NIBCLD,*),
104 . I2NSNT,ISKN(LISKN,*),ISKWP(*),NSKWP(*),
105 . ADDCNE(0:*), LCNE, LCNI2, ADSKYI2(0:*),CEPI2(*),CELI2(*),
106 . ISENSP(2,*), NSENSP(*), IACCP(*), NACCP(*),
107 . LACCELM(3,*),IBCV(NICONV, *),IRBE3(NRBE3L,*), LRBE3(*),
108 . FRONT_RM(NRBYM,NSPMD), IRBYM(NIRBYM,*) ,LCRBYM(*), CEP(LEN_CEP),
109 . ibcr(niradia,*),irbe2(nrbe2l,*), lrbe2(*),
110 . cepsp(numsph), celsph(numsph),iloadp(sizloadp,*),lloadp(*),
111 . lgauge(3,*), igaup(*), ngaup(*), ibfflux(nitflux,*),
112 . icnds10(3,*),itagnd(*),ibfv(nifv,*),ibcscyc(4,*),lbcscyc(2,*),
113 . r_skew(*),ipm(npropmi,*),len_cep
114 INTEGER,
DIMENSION(NPROPGI,*),
INTENT(IN) :: IGEO
115 INTEGER,
DIMENSION(NUMSKW+NSUBMOD+1),
INTENT(INOUT) :: TAG_SKN
116 TYPE(PLIST_SKEW_),
DIMENSION(NUMSKW+1),
INTENT(INOUT) :: MULTIPLE_SKEW
127 my_real :: GEO(NPROPG,*)
129 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
130 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
131 TYPE(MONVOL_STRUCT_),
DIMENSION(NVOLU),
INTENT(IN) :: T_MONVOL
132 TYPE(sensors_) ,
INTENT(IN) :: SENSORS
133 TYPE(t_ebcs_tab),
INTENT(INOUT) :: EBCS_TAB
134 TYPE (LOADS_),
INTENT(INOUT) :: LOADS
135 INTEGER ,
DIMENSION(LISKN,NUMFRAM+1) ,
INTENT(IN) :: IFRAME
136 LOGICAL IS_EBCS_PARALLEL
137 TYPE(SENSOR_USER_STRUCT_) ,
INTENT(INOUT) :: SENSOR_USER_STRUCT
146 INTEGER IP,IPROC,, IF2, TYP,
147 . insnmax, ipmax, sum, insnp, lastm,
148 . k, i, is, nn_s, iad, j, k1, k3, nn,
nl,nl_l,
149 . nsn,nmn,p,n,n1,n2,n3,n4,nty,ngrou,nel,ng,l,m,nir,
150 . imain,kk,nrts,nrtm,pm,
151 . off, proc, nin, ity_old, ity, msr, nsl_l, nsl,
152 . iels(nspmd), p_sph, int2flag,int2frplus,
153 . ilev,cnt,offset,fingeo,iad1,iad2,numloadp,ite2frplus
158 INTEGER :: SURF_ID,,NODE_ID
159 INTEGER :: NUMBER_PROC,NUMBER_SEGMENT
174 DO isens=1,sensors%NSENSOR
179 IF (sensors%SENSOR_TAB(isens)%TYPE==15)
THEN
182 n1 = sensors%SENSOR_TAB(isens)%IPARAM(1)
187 IF(sensors%SENSOR_TAB(isens)%IPARAM(2)==0)
THEN
190 n1 = sensors%SENSOR_TAB(isens)%IPARAM(3+i-1)
202 IF(sensor_user_struct%IS_USED)
THEN
205 IF(sensor_user_struct%POINTER_NODE>0)
THEN
206 DO i=1,sensor_user_struct%NUMBER_NODE
207 n1 = sensor_user_struct%NODE_LIST(i)
222 IF(n2d==0 .AND. len_cep > 0)
THEN
223 offset = numels + numelq + numelc + numelt + numelp
225 CALL check_skew(ixr,igeo,iskn,cep,iskwp,nskwp,tag_skn,multiple_skew,
230 IF(tag_skn(i+1) > 0) cycle
253 nskwp(imain) = nskwp(imain)+1
276 nskwp(imain) = nskwp(imain)+1
293 IF(nlocal(nn,p)==1)
THEN
311 IF(n4/=-1.AND.n2d==0.AND.n4/=0)
THEN
313 IF(nlocal(n1,p)==1.AND.
314 + nlocal(n2,p)==1.AND.
315 + nlocal(n3,p)==1.AND.
316 + nlocal(n4,p)==1)
THEN
321 IF(n4/=-1.AND.n2d==0)
THEN
323 IF(nlocal(n1,p)==1.AND.
324 + nlocal(n2,p)==1.AND.
325 + nlocal(n3,p)==1)
THEN
335 IF(nlocal(n1,p)==1.AND.
336 + nlocal(n2,p)==1)
THEN
337 IF(n2d==0.AND.n4/=0)
THEN
348 IF(nlocal(n1,p)==1)
THEN
349 IF(n2d==0.AND.n4/=0.AND.n4/=-1)
THEN
352 IF(n2d==0.AND.n4/=-1)
THEN
361 IF(n4/=0.AND.n4/=0.AND.n4/=-1)
THEN
364 IF(n2d==0.AND.n4/=-1)
THEN
381 IF(n2d==0.AND.n4/=0)
THEN
383 IF(nlocal(n1,p)==1.AND.
384 + nlocal(n2,p)==1.AND.
385 + nlocal(n3,p)==1.AND.
386 + nlocal(n4,p)==1)
THEN
393 IF(nlocal(n1,p)==1.AND.
394 + nlocal(n2,p)==1.AND.
395 + nlocal(n3,p)==1)
THEN
404 IF(nlocal(n1,p)==1.AND.
405 + nlocal(n2,p)==1)
THEN
406 IF(n2d==0.AND.n4/=0)
THEN
416 IF(nlocal(n1,p)==1)
THEN
417 IF(n2d==0.AND.n4/=0)
THEN
446 IF(n2d==0.AND.n4/=0)
THEN
448 IF(nlocal(n1,p)==1.AND.
449 + nlocal(n2,p)==1.AND.
450 + nlocal(n3,p)==1.AND.
451 + nlocal(n4,p)==1)
THEN
458 IF(nlocal(n1,p)==1.AND.
459 + nlocal(n2,p)==1.AND.
460 + nlocal(n3,p)==1)
THEN
469 IF(nlocal(n1,p)==1.AND.
470 + nlocal(n2,p)==1)
THEN
471 IF(n2d==0.AND.n4/=0)
THEN
481 IF(nlocal(n1,p)==1)
THEN
482 IF(n2d==0.AND.n4/=0)
THEN
506 IF(ibfflux(10,n) == 1) cycle
511 IF(n2d==0.AND.n4/=0)
THEN
513 IF(nlocal(n1,p)==1.AND.
514 + nlocal(n2,p)==1.AND.
515 + nlocal(n3,p)==1.AND.
516 + nlocal(n4,p)==1)
GOTO 9193
521 IF(nlocal(n1,p)==1.AND.
522 + nlocal(n2,p)==1.AND.
523 + nlocal(n3,p)==1)
THEN
530 IF(nlocal(n1,p)==1.AND.nlocal(n2,p)==1)
THEN
537 IF(nlocal(n1,p)==1)
THEN
554 DO i = 1,iloadp(1,n)/4
555 n1=lloadp(iloadp(4,n)+4*(i-1))
556 n2=lloadp(iloadp(4,n)+4*(i-1)+1)
557 n3=lloadp(iloadp(4,n)+4*(i-1)+2)
558 n4=lloadp(iloadp(4,n)+4*(i-1)+3)
559 IF(n4/=-1.AND.n2d==0.AND.n4/=0)
THEN
561 IF(nlocal(n1,p)==1.AND.
562 + nlocal(n2,p)==1.AND.
563 + nlocal(n3,p)==1.AND.
564 + nlocal(n4,p)==1)
THEN
569 IF(n4/=-1.AND.n2d==0)
THEN
571 IF(nlocal(n1,p)==1.AND.
572 + nlocal(n2,p)==1.AND.
573 + nlocal(n3,p)==1)
THEN
583 IF(nlocal(n1,p)==1.AND.
584 + nlocal(n2,p)==1)
THEN
585 IF(n2d==0.AND.n4/=0)
THEN
596 IF(nlocal(n1,p)==1)
THEN
597 IF(n2d==0.AND.n4/=0.AND.n4/=-1)
THEN
600 IF(n2d==0.AND.n4/=-1)
THEN
609 IF(n4/=0.AND.n4/=0.AND.n4/=-1)
THEN
612 IF(n2d==0.AND.n4/=-1)
THEN
628 if1 = nlocal(ixri(2,j),p)
629 if2 = nlocal(ixri(3,j),p)
630 IF (if1==1.OR.if2==1)
THEN
641 IF (nrbe2>0.AND.nspmd>1)
THEN
647 IF (nlocal(m,p)==0)
THEN
651 IF(nlocal(l,p)/=0)
THEN
673 IF(nlocal(m,p)/=0)
THEN
680 IF(nlocal(l,p)/=0)
THEN
684 IF (insnp>insnmax)
THEN
695 ELSEIF(insnmax==0)
THEN
703 IF(nlocal(l,p)/=0)
THEN
717 IF (nrbe3>0.AND.nspmd>1)
THEN
724 IF (nlocal(k,p)/=0)
THEN
733 IF (nlocal(kk,p)/=0)
THEN
743 IF (nlocal(k,p)==0)
THEN
749 IF (nlocal(kk,p)==0)
THEN
764 IF (nrbykin>0.AND.nspmd>1)
THEN
775 IF (nlocal(m,p)/=
GOTO
783 IF(nlocal(l,p)/=0)
GOTO 87
796 IF(nlocal(m,p)==0)
THEN
800 IF(nlocal(l,p)/=0)
THEN
823 IF(nlocal(m,p)/=0)
THEN
830 IF(nlocal(l,p)/=0)
THEN
834 IF (insnp>insnmax)
THEN
847 ELSEIF(insnmax==0)
THEN
855 IF(nlocal(l,p)/=0)
THEN
872 IF(nfxvel > 0 .AND. nspmd > 1)
THEN
883 IF (iad1 == -1 .AND. iad2 == -1)
THEN
908 IF (nibvel>0.AND.nspmd>1)
THEN
914 IF (nlocal(m,p)==0)
THEN
918 IF(nlocal(l,p)/=0)
THEN
941 IF(nlocal(m,p)/=0)
THEN
948 IF(nlocal(l,p)/=0)
THEN
952 IF (insnp>insnmax)
THEN
963 ELSEIF(insnmax==0)
THEN
971 IF(nlocal(l,p)/=0)
THEN
986 IF (irigid_mat>0.AND.nspmd>1)
THEN
994 IF(nlocal(l,p)/=0)
THEN
1016 IF(front_rm(m,p)/=0.AND.front_rm(m,p)/=100)
THEN
1023 IF(nlocal(l,p)/=0)
THEN
1027 IF (insnp>insnmax)
THEN
1040 ELSEIF(insnmax==0)
THEN
1048 IF(nlocal(l,p)/=0)
THEN
1058 ELSEIF(irigid_mat > 0)
THEN
1073 IF(nlocal(n1,p)==1 .AND. nlocal(n2,p)==0)
CALL ifrontplus(n2,p)
1074 IF(nlocal(n2,p)==1 .AND. nlocal(n1,p)==0)
CALL ifrontplus(n1,p)
1081 IF (ns10e>0.AND.nspmd>1)
THEN
1082 CALL c_doms10(icnds10,itagnd,ite2frplus)
1083 IF (ite2frplus > 0 )
GOTO 5000
1088 IF (ninter>0.AND.nspmd>1)
THEN
1102 IF (ilev == 25 .or. ilev == 26 .or. ilev == 27 .or. ilev == 28) int2flag=1
1104 l = intbuf_tab(n)%IRTLM(i)
1105 k = intbuf_tab(n)%NSV(i)
1109 IF (nlocal(k,p)/=0)
THEN
1116 kk = intbuf_tab(n)%IRECTM((l-1)*4+j)
1118 IF (nlocal(kk,p)/=0)
THEN
1130 IF (nlocal(k,p)==0)
THEN
1135 kk = intbuf_tab(n)%IRECTM((l-1)*4+j)
1136 IF (nlocal(kk,p)==0)
THEN
1148 IF (int2frplus /= 0 .AND. int2flag/=0)
GOTO 5000
1156 IF(
ifront%IENTRY(i)==-1)
THEN
1160 iproc = mod(iproc,nspmd)+1
1166 IF(sensors%NSENSOR>0)
THEN
1170 DO i=1,sensors%NSENSOR
1171 typ = sensors%SENSOR_TAB(i)%TYPE
1181 n1 = sensors%SENSOR_TAB(i)%IPARAM(1)
1183 IF(nlocal(n1,p)==1)
THEN
1185 nsensp(p) = nsensp(p)+1
1190 n2 = sensors%SENSOR_TAB(i)%IPARAM(2)
1192 IF(nlocal(n2,p)==1)
THEN
1194 nsensp(p) = nsensp(p)+1
1207 n1 = sensors%SENSOR_TAB(i)%IPARAM(1)
1209 IF (nlocal(n1,p)==1)
THEN
1211 nsensp(p) = nsensp(p)+1
1215 n2 = sensors%SENSOR_TAB(i)%IPARAM(2)
1218 IF (nlocal(n2,p)==1)
THEN
1220 nsensp(p) = nsensp(p)+1
1227 ELSEIF(typ>=29.AND.typ<=31)
THEN
1244 IF(nlocal(n1,p)==1)
THEN
1246 naccp(p) = naccp(p)+1
1265 IF(nlocal(n1,p)==1)
THEN
1267 ngaup(p) = ngaup(p)+1
1276 ngaup(p) = ngaup(p) + 1
1301 ngrou = ngrou + dd_iad(p,i)
1304 IF (ngrou/=ngroup)
THEN
1310 . anmode=aninfo_blind_1,
1325 addcne(n) = addcne(n) + 1
1333 addcne(n) = addcne(n) + 1
1341 addcne(n) = addcne(n) + 1
1350 addcne(n) = addcne(n) + 1
1358 addcne(n) = addcne(n) + 1
1366 addcne(n) = addcne(n) + 1
1373 addcne(n) = addcne(n) + 1
1380 addcne(n) = addcne(n) + 1
1388 addcne(n) = addcne(n) + 1
1393 IF(igeo(11,ixr(1,i))/=12) n = 0
1394 addcne(n) = addcne(n) + 1
1400 addcne(n) = addcne(n) + 1
1408 addcne(n) = addcne(n) + 1
1417 k3 = 1 + nimv * nvolu + nicbag * nvolu * nvolu
1420 is = t_monvol(n)%EXT_SURFID
1421 nn_s = igrsurf(is)%NSEG
1423 ity=igrsurf(is)%ELTYP(j)
1424 i = igrsurf(is)%ELEM(j)
1428 addcne(nn) = addcne(nn) + 1
1433 addcne(nn) = addcne(nn) + 1
1450 addcne(nn) = addcne(nn) + 1
1453 addcne(nn) = addcne(nn) + 1
1456 addcne(nn) = addcne(nn) + 1
1459 addcne(nn) = addcne(nn) + 1
1475 addcne(nn) = addcne(nn) + 1
1478 addcne(nn) = addcne(nn) + 1
1481 addcne(nn) = addcne(nn) + 1
1484 addcne(nn) = addcne(nn) + 1
1500 addcne(nn) = addcne(nn) + 1
1502 addcne(nn) = addcne(nn) + 1
1505 addcne(nn) = addcne(nn) + 1
1508 addcne(nn) = addcne(nn) + 1
1518 IF(ibfflux(10,
nl) == 1) cycle
1524 addcne(nn) = addcne(nn) + 1
1527 addcne(nn) = addcne(nn) + 1
1530 addcne(nn) = addcne(nn) + 1
1533 addcne(nn) = addcne(nn) + 1
1544 DO i = 1,iloadp(1,
nl)/4
1545 n1=lloadp(iloadp(4,
nl)+4*(i-1))
1546 n2=lloadp(iloadp(4,
nl)+4*(i-1)+1)
1547 n3=lloadp(iloadp(4,
nl)+4*(i-1)+2)
1548 n4=lloadp(iloadp(4,
nl)+4*(i-1)+3)
1550 addcne(nn) = addcne(nn) + 1
1553 addcne(nn) = addcne(nn) + 1
1556 addcne(nn) = addcne(nn) + 1
1559 addcne(nn) = addcne(nn) + 1
1573 is_ebcs_parallel = .false.
1574 IF(ebcs_tab%tab(i)%poly%type == 10 .or. ebcs_tab%tab(i)%poly%type == 11)is_ebcs_parallel=.true.
1575 IF(is_ebcs_parallel)
THEN
1576 surf_id = ebcs_tab%tab(i)%poly%surf_id
1578 IF(n2d/=0) number_node = 2
1581 DO j=1,ebcs_tab%tab(i)%poly%nb_elem
1583 DO ijk=1,number_node
1584 node_id = igrsurf(surf_id)%NODES(j,ijk) + 1
1585 addcne(node_id) = addcne(node_id) + 1
1596 DO i=1,loads%NLOAD_CYL
1597 number_segment = loads%LOAD_CYL(i)%NSEG
1599 DO j=1,number_segment
1601 node_id = loads%LOAD_CYL(i)%SEGNOD(j,k) + 1
1603 IF(node_id/=0) addcne(node_id) = addcne(node_id) + 1
1608! -------------------------------------
1615 addcne(i)=addcne(i)+addcne(i-1)
1618 lcne = addcne(numnod+1)-1
1634 IF (ity/=ity_old)
THEN
1658 p_sph = cepsp(j) + 1
1659 iels(p_sph) = iels(p_sph) + 1
1660 celsph(j) = iels(p_sph)
1673 IF(cel(off+
nl)==0)
THEN
1681 IF(nlocal(n1,proc)==1.AND.
1682 + nlocal(n2,proc)==1.AND.
1683 + nlocal(n3,proc)==1.AND.
1684 + nlocal(n4,proc)==1)
THEN
1689 IF(nlocal(n1,proc)==1.AND.
1690 + nlocal(n2,proc)==1.AND.
1691 + nlocal(n3,proc)==1)
THEN
1697 IF(nlocal(n1,proc)==1.AND.
1698 + nlocal(n2,proc)==1)
THEN
1704 IF(nlocal(n1,proc)==1)
THEN
1726 IF(cel(off+
nl)==0)
THEN
1731 IF(ibcv(7,
nl) == 1)
THEN
1732 IF(proc-1 == cep(ibcv(8,
nl)))
THEN
1739 IF(nlocal(n1,proc)==1.AND.
1740 + nlocal(n2,proc)==1.AND.
1741 + nlocal(n3,proc)==1.AND.
1742 + nlocal(n4,proc)==1)
THEN
1747 IF(nlocal(n1,proc)==1.AND.
1748 + nlocal(n2,proc)==1.AND.
1749 + nlocal(n3,proc)==1)
THEN
1755 IF(nlocal(n1,proc)==1.AND.
1756 + nlocal(n2,proc)==1)
THEN
1778 IF(cel(off+
nl)==0)
THEN
1783 IF(ibcr(7,
nl) == 1)
THEN
1784 IF(proc-1== cep(ibcr(8,
nl)))
THEN
1791 IF(nlocal(n1,proc)==1.AND.
1792 + nlocal(n2,proc)==1.AND.
1793 + nlocal(n3,proc)==1.AND.
1794 + nlocal(n4,proc)==1)
THEN
1799 IF(nlocal(n1,proc)==1.AND.
1800 + nlocal(n2,proc)==1.AND.
1801 + nlocal(n3,proc)==1)
THEN
1807 IF(nlocal(n1,proc)==1.AND.
1808 + nlocal(n2,proc)==1)
THEN
1817 off = off + numradia
1830 IF(ibfflux(10,
nl) == 1) cycle
1831 IF(cel(off+
nl)==0)
THEN
1838 IF(nlocal(n1,proc)==1.AND.
1839 + nlocal(n2,proc)==1.AND.
1840 + nlocal(n3,proc)==1.AND.
1841 + nlocal(n4,proc)==1)
THEN
1846 IF(nlocal(n1,proc)==1.AND.
1847 + nlocal(n2,proc)==1.AND.
1848 + nlocal(n3,proc)==1)
THEN
1854 IF(nlocal(n1,proc)==1.AND.nlocal(n2,proc)==1)
THEN
1870 DO i = 1,iloadp(1,
nl)/4
1871 cel(off+numloadp+i) = 0
1873 numloadp=numloadp+iloadp(1,
nl)/4
1880 DO i = 1,iloadp(1,
nl)/4
1881 IF(cel(off+numloadp+i)==0)
THEN
1882 n1=lloadp(iloadp(4,
nl)+4*(i-1))
1883 n2=lloadp(iloadp(4,
nl)+4*(i-1)+1)
1884 n3=lloadp(iloadp(4,
nl)+4*(i-1)+2)
1885 n4=lloadp(iloadp(4,
nl)+4*(i-1)+3)
1889 IF(nlocal(n1,proc)==1.AND.
1890 + nlocal(n2,proc)==1.AND.
1891 + nlocal(n3,proc)==1.AND.
1892 + nlocal(n4,proc)==1)
THEN
1894 cel(off+numloadp+i) = nl_l
1897 IF(nlocal(n1,proc)==1.AND.
1898 + nlocal(n2,proc)==1.AND.
1899 + nlocal(n3,proc)==1)
THEN
1901 cel(off+numloadp+i) = nl_l
1905 IF(nlocal(n1,proc)==1.AND.
1906 + nlocal(n2,proc)==1)
THEN
1908 cel(off+numloadp+i) = nl_l
1912 IF(nlocal(n1,proc)==1)
THEN
1914 cel(off+numloadp+i) = nl_l
1919 numloadp=numloadp+iloadp(1,
nl)/4
1922 off = off + numloadp
1949 l = intbuf_tab(n)%IRTLM(i)
1950 k = intbuf_tab(n)%NSV(i)
1953 adskyi2(kk) = adskyi2(kk) + 1
1963 adskyi2(i)=adskyi2(i)+adskyi2(i-1)
1965 lcni2 = adskyi2(numnod+1)-1
1978 l = intbuf_tab(n)%IRTLM(i)
1979 k = intbuf_tab(n)%NSV(i)
1982 IF(nlocal(k,p)==1)
THEN
2006 l = intbuf_tab(n)%IRTLM(i)
2007 k = intbuf_tab(n)%NSV(i)
2008 IF(celi2(off+i)==0)
THEN
2009 IF(nlocal(k,p)==1)
THEN
2034 1 CNE ,LCNE ,IXS ,IXS10 ,IXS20 ,
2035 2 IXS16 ,IXQ ,IXC ,IXT ,IXP ,
2036 3 IXR ,IXTG ,IXTG6 ,T_MONVOL ,
2037 4 IGRSURF,IB ,ADDCNE ,CEP ,
2038 5 ILEN ,GEO ,IBCV ,IBCR ,IBFFLUX,
2039 6 ILOADP ,LLOADP ,CEL ,EBCS_TAB,LOADS,
2040 7 NICONV ,NIRADIA ,NITFLUX,NUMCONV,NUMRADIA,NFXFLUX)
2049 use element_mod ,
only : nixs,nixq,nixc,nixp,nixt,nixr,nixtg
2053#include "implicit_f.inc"
2057#include "com01_c.inc"
2058#include "com04_c.inc"
2059#include "param_c.inc"
2063 INTEGER ,
INTENT(IN) :: NICONV
2064 INTEGER ,
INTENT(IN) :: NIRADIA
2065 INTEGER ,
INTENT(IN) :: NITFLUX
2066 INTEGER ,
INTENT(IN) :: NUMCONV
2067 INTEGER ,
INTENT(IN) :: NUMRADIA
2068 INTEGER ,
INTENT(IN) :: NFXFLUX
2069 INTEGER IXS(NIXS,*),IXQ(NIXQ,*),IXC(,*),IXTG(NIXTG,*),
2070 . ixt(nixt,*),ixp(nixp,*),ixr(nixr,*),cep(*),
2071 . ixs10(6,*),ixs20(12,*),ixs16(8,*),ixtg6(4,*),
2073 . addcne(0:*), cne(*), lcne, ilen,
2074 . ibcv(niconv,*), ibcr(niradia,*),ibfflux(nitflux,*),
2075 . iloadp(sizloadp,*),lloadp(*)
2079 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
2080 TYPE(MONVOL_STRUCT_),
DIMENSION(NVOLU),
INTENT(IN) :: T_MONVOL
2081 TYPE(T_EBCS_TAB),
INTENT(INOUT) :: EBCS_TAB
2082 TYPE (LOADS_),
INTENT(INOUT) :: LOADS
2091 INTEGER I, J, K, N, IDEB, OFF, OFFC, OFFTG, K1, K3, NL, NUMLOADP,
2092 . n1, n2, n3, n4, nn, p, nl_l, is, nn_s, iad, ity,
2095 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ADSKY, ITRI, INDEX
2096 INTEGER :: IJK,NUMBER_NODE
2097 INTEGER :: NELEM,ELEM_ID,NODE_ID
2099 INTEGER :: LOCAL_SEGMENT,NUMBER_SEGMENT
2107 ALLOCATE(adsky(0:numnod+1))
2108 ALLOCATE(itri(ilen))
2109 ALLOCATE(index(2*ilen))
2111 adsky(i) = addcne(i)
2120 CALL my_orders(0,work,itri,index,numels8,1)
2123 .
CALL my_orders(0,work,itri(ideb),index(ideb),numels10,1)
2129 ideb = ideb + numels10
2131 .
CALL my_orders(0,work,itri(ideb),index(ideb),numels20,1)
2134 index(ideb+j-1) = index(ideb+j-1)+numels8+numels10
2137 ideb = ideb + numels20
2139 .
CALL my_orders(0,work,itri(ideb),index(ideb),numels16,1)
2142 index(ideb+j-1) = index(ideb+j-1)+numels8+numels10+numels20
2151 adsky(n) = adsky(n) + 1
2158 i = index(numels8+j)
2160 n = ixs10(k,i-numels8)
2163 adsky(n) = adsky(n) + 1
2170 i = index(numels8+numels10+j)
2172 n = ixs20(k,i-numels8-numels10)
2175 adsky(n) = adsky(n) + 1
2183 i = index(numels8+numels10+numels20+j)
2185 n = ixs16(k,i-numels8-numels10-numels20)
2188 adsky(n) = adsky(n) + 1
2199 CALL my_orders(0,work,itri,index,numelq,1)
2204 cne(adsky(n)) = i+off
2205 adsky(n) = adsky(n) + 1
2215 CALL my_orders(0,work,itri,index,numelc,1)
2220 cne(adsky(n)) = i+off
2221 adsky(n) = adsky(n) + 1
2230 CALL my_orders(0,work,itri,index,numelt,1)
2235 cne(adsky(n)) = i+off
2236 adsky(n) = adsky(n) + 1
2244 CALL my_orders(0,work,itri,index,numelp,1)
2249 cne(adsky(n)) = i+off
2250 adsky(n) = adsky(n) + 1
2258 CALL my_orders(0,work,itri,index,numelr,1)
2263 cne(adsky(n)) = i+off
2264 adsky(n) = adsky(n) + 1
2266 IF(nint(geo(12,ixr(1,i)))==12)
THEN
2268 cne(adsky(n)) = i+off
2269 adsky(n) = adsky(n) + 1
2278 CALL my_orders(0,work,itri,index,numeltg-numeltg6,1)
2279 ideb = numeltg-numeltg6+1
2281 .
CALL my_orders(0,work,itri(ideb),index(ideb),numeltg6,1)
2283 index(ideb+j-1) = index(ideb+j-1)+numeltg-numeltg6
2290 cne(adsky(n)) = i+off
2291 adsky(n) = adsky(n) + 1
2297 i = index(numeltg-numeltg6+j)
2299 n = ixtg6(k,i-numeltg+numeltg6)
2302 adsky(n) = adsky(n) + 1
2317 is = t_monvol(n)%EXT_SURFID
2318 nn_s= igrsurf(is)%NSEG
2320 ity= igrsurf(is)%ELTYP(j)
2321 i = igrsurf(is)%ELEM(j)
2325 cne(adsky(nn)) = i+offc
2326 adsky(nn) = adsky(nn) + 1
2331 cne(adsky(nn)) = i+offtg
2332 adsky(nn) = adsky(nn) + 1
2349 cne(adsky(nn)) = nl+off
2350 adsky(nn) = adsky(nn) + 1
2353 cne(adsky(nn)) = nl+off
2354 adsky(nn) = adsky(nn) + 1
2357 cne(adsky(nn)) = nl+off
2358 adsky(nn) = adsky(nn) + 1
2361 cne(adsky(nn)) = nl+off
2362 adsky(nn) = adsky(nn) + 1
2381 IF(nlocal(n1,p)==1.AND.
2382 + nlocal(n2,p)==1.AND.
2383 + nlocal(n3,p)==1.AND.
2384 + nlocal(n4,p)==1)
THEN
2392 IF(nlocal(n1,p)==1.AND.
2393 + nlocal(n2,p)==1.AND.
2394 + nlocal(n3,p)==1)
THEN
2403 IF(nlocal(n1,p)==1.AND.
2404 + nlocal(n2,p)==1)
THEN
2413 IF(nlocal(n1,p)==1)
THEN
2434 cne(adsky(nn)) = nl+off
2435 adsky(nn) = adsky(nn) + 1
2438 cne(adsky(nn)) = nl+off
2439 adsky(nn) = adsky(nn) + 1
2442 cne(adsky(nn)) = nl+off
2443 adsky(nn) = adsky(nn) + 1
2446 cne(adsky(nn)) = nl+off
2447 adsky(nn) = adsky(nn) + 1
2463 IF(ibcv(7,nl) == 1)
THEN
2470 IF(nlocal(n1,p)==1.AND.
2471 + nlocal(n2,p)==1.AND.
2472 + nlocal(n3,p)==1.AND.
2473 + nlocal(n4,p)==1)
THEN
2481 IF(nlocal(n1,p)==1.AND.
2482 + nlocal(n2,p)==1.AND.
2483 + nlocal(n3,p)==1)
THEN
2492 IF(nlocal(n1,p)==1.AND.
2493 + nlocal(n2,p)==1)
THEN
2515 cne(adsky(nn)) = nl+off
2516 adsky(nn) = adsky(nn) + 1
2518 cne(adsky(nn)) = nl+off
2519 adsky(nn) = adsky(nn) + 1
2522 cne(adsky(nn)) = nl+off
2523 adsky(nn) = adsky(nn) + 1
2526 cne(adsky(nn)) = nl+off
2527 adsky(nn) = adsky(nn) + 1
2541 IF(ibcr(7,nl) == 1)
THEN
2548 IF(nlocal(n1,p)==1.AND.
2549 + nlocal(n2,p)==1.AND.
2550 + nlocal(n3,p)==1.AND.
2551 + nlocal(n4,p)==1)
THEN
2559 IF(nlocal(n1,p)==1.AND.
2560 + nlocal(n2,p)==1.AND.
2561 + nlocal(n3,p)==1)
THEN
2570 IF(nlocal(n1,p)==1.AND.
2571 + nlocal(n2,p)==1)
THEN
2580 off = off + numradia
2587 IF(ibfflux(10,nl) == 1) cycle
2593 cne(adsky(nn)) = nl+off
2594 adsky(nn) = adsky(nn) + 1
2597 cne(adsky(nn)) = nl+off
2598 adsky(nn) = adsky(nn) + 1
2601 cne(adsky(nn)) = nl+off
2602 adsky(nn) = adsky(nn) + 1
2605 cne(adsky(nn)) = nl+off
2606 adsky(nn) = adsky(nn) + 1
2618 IF(ibfflux(10,nl) == 0)
THEN
2627 IF(nlocal(n1,p)==1.AND.
2628 + nlocal(n2,p)==1.AND.
2629 + nlocal(n3,p)==1.AND.
2630 + nlocal(n4,p)==1)
THEN
2638 IF(nlocal(n1,p)==1.AND.
2639 + nlocal(n2,p)==1.AND.
2640 + nlocal(n3,p)==1)
THEN
2649 IF(nlocal(n1,p)==1.AND.nlocal(n2,p)==1)
THEN
2657 ELSEIF(ibfflux(10,nl) == 1)
THEN
2662 ibfflux(1,nl) = cel(n1)
2663 ibfflux(2,nl) = cep(n1)
2665 cep(nl+off) = cep(n1)
2676 DO i = 1,iloadp(1,nl)/4
2677 n1=lloadp(iloadp(4,nl)+4*(i-1))
2678 n2=lloadp(iloadp(4,nl)+4*(i-1)+1)
2679 n3=lloadp(iloadp(4,nl)+4*(i-1)+2)
2680 n4=lloadp(iloadp(4,nl)+4*(i-1)+3)
2682 cne(adsky(nn)) = off+numloadp+i
2683 adsky(nn) = adsky(nn) + 1
2686 cne(adsky(nn)) = off+numloadp+i
2687 adsky(nn) = adsky(nn) + 1
2690 cne(adsky(nn)) = off+numloadp+i
2691 adsky(nn) = adsky(nn) + 1
2694 cne(adsky(nn)) = off+numloadp+i
2695 adsky(nn) = adsky(nn) + 1
2700 numloadp=numloadp+iloadp(1,nl)/4
2708 DO i = 1,iloadp(1,nl)/4
2709 n1=lloadp(iloadp(4,nl)+4*(i-1))
2710 n2=lloadp(iloadp(4,nl)+4*(i-1)+1)
2711 n3=lloadp(iloadp(4,nl)+4*(i-1)+2)
2712 n4=lloadp(iloadp(4,nl)+4*(i-1)+3)
2717 IF(nlocal(n1,p)==1.AND.
2718 + nlocal(n2,p)==1.AND.
2719 + nlocal(n3,p)==1.AND.
2720 + nlocal(n4,p)==1)
THEN
2728 IF(nlocal(n1,p)==1.AND.
2729 + nlocal(n2,p)==1.AND.
2730 + nlocal(n3,p)==1)
THEN
2739 IF(nlocal(n1,p)==1.AND.
2740 + nlocal(n2,p)==1)
THEN
2749 IF(nlocal(n1,p)==1)
THEN
2757 off = off + iloadp(1,nl)/4
2766 is_ebcs_parallel = .false.
2767 IF(ebcs_tab%tab(i)%poly%type == 10 .or. ebcs_tab%tab(i)%poly%type == 11)is_ebcs_parallel=.true.
2768 IF(is_ebcs_parallel)
THEN
2769 surf_id = ebcs_tab%tab(i)%poly%surf_id
2771 IF(n2d /= 0) number_node = 2
2775 DO j=1,ebcs_tab%tab(i)%poly%nb_elem
2777 elem_id = ebcs_tab%tab(i)%poly%ielem(j)
2778 DO ijk=1,number_node
2779 node_id = igrsurf(surf_id)%NODES(j,ijk)
2780 cne(adsky(node_id)) = elem_id
2781 adsky(node_id) = adsky(node_id) + 1
2795 DO i=1,loads%NLOAD_CYL
2796 number_segment = loads%LOAD_CYL(i)%NSEG
2799 DO j=1,number_segment
2800 proc_id = loads%CYL_RESTART(i)%SEGMENT_TO_PROC(j)
2802 node_id = loads%LOAD_CYL(i)%SEGNOD(j,k)
2804 cep(off+local_segment+j) = proc_id - 1
2805 cne(adsky(node_id)) = off+local_segment+j
2806 adsky(node_id) = adsky(node_id) + 1
2810 local_segment = local_segment + number_segment
subroutine domdec2(dd_iad, ipari, ib, npby, lpby, ixri, ibvel, lbvel, iparg, cel, ixs, ixs10, ixs20, ixs16, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg6, t_monvol, igrsurf, addcne, lcne, geo, nprw, lprw, lcni2, adskyi2, cepi2, celi2, i2nsnt, iskn, iskwp, nskwp, isensp, nsensp, iaccp, naccp, laccelm, ibcv, irbe3, lrbe3, front_rm, irbym, lcrbym, cep, ibcr, irbe2, lrbe2, cepsp, celsph, iloadp, lloadp, lgauge, igaup, ngaup, intbuf_tab, ibfflux, icnds10, itagnd, igeo, tag_skn, multiple_skew, ibfv, ibcscyc, lbcscyc, r_skew, ipm, sensors, len_cep, ebcs_tab, loads, iframe, niconv, niradia, nitflux, numconv, numradia, nfxflux, sensor_user_struct)