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,ADSKY ,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,
79#include "implicit_f.inc"
90 INTEGER ,
INTENT(IN) :: NICONV
91 INTEGER ,
INTENT(IN) :: NIRADIA
92 INTEGER ,
INTENT(IN) :: NITFLUX
93 INTEGER ,
INTENT(IN) :: NUMCONV
94 INTEGER ,
INTENT(IN) :: NUMRADIA
95 INTEGER ,
INTENT(IN) :: NFXFLUX
96 INTEGER IPARI(NPARI,NINTER),
97 . DD_IAD(NSPMD+1,NSPGROUP), NPRW(*), LPRW(*),
98 . NPBY(NNPBY,*), LPBY(*), IXRI(4,*),
99 . IBVEL(NBVELP,*), LBVEL(*), IPARG(NPARG,*), CEL(*),
100 . IXS(NIXS,*),IXQ(NIXQ,*),IXC(NIXC,*),IXTG(NIXTG,*),
101 . IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),
102 . IXS10(6,*),IXS20(12,*),IXS16(8,*),IXTG6(4,*),IB(NIBCLD,*),
103 . I2NSNT,ISKN(LISKN,*),ISKWP(*),NSKWP(*),
104 . ADSKY(0:*), LCNE, LCNI2, (0:*),CEPI2(*),CELI2(*),
105 . ISENSP(2,*), NSENSP(*), IACCP(*), NACCP(*),
106 . LACCELM(3,*),IBCV(NICONV, *),IRBE3(NRBE3L,*), LRBE3(*),
107 . FRONT_RM(NRBYM,NSPMD), IRBYM(NIRBYM,*) ,LCRBYM(*), CEP(LEN_CEP),
108 . ibcr(niradia,*),irbe2(nrbe2l,*), lrbe2(*),
109 . cepsp(numsph), celsph(numsph),iloadp(sizloadp,*),lloadp(*),
110 . lgauge(3,*), igaup(*), ngaup(*), ibfflux(nitflux,*),
111 . icnds10(3,*),itagnd(*),ibfv(nifv,*),ibcscyc(4,*),lbcscyc(2,*),
112 . r_skew(*),ipm(npropmi,*),len_cep
113 INTEGER,
DIMENSION(NPROPGI,*),
INTENT(IN) :: IGEO
114 INTEGER,
DIMENSION(NUMSKW+NSUBMOD+1),
INTENT(INOUT) :: TAG_SKN
115 TYPE(),
DIMENSION(NUMSKW+1),
INTENT(INOUT) :: MULTIPLE_SKEW
120! tag array=1 -->
the skew is used by one spring
128 TYPE(intbuf_struct_) INTBUF_TAB(*)
129 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
130 TYPE(MONVOL_STRUCT_),
DIMENSION(NVOLU),
INTENT(IN) :: T_MONVOL
131 TYPE(sensors_) ,
INTENT(IN) :: SENSORS
132 TYPE(t_ebcs_tab),
INTENT(INOUT) :: EBCS_TAB
133 TYPE (LOADS_),
INTENT(INOUT) :: LOADS
134 INTEGER ,
DIMENSION(LISKN,NUMFRAM+1) ,
INTENT(IN) :: IFRAME
135 LOGICAL IS_EBCS_PARALLEL
136 TYPE(SENSOR_USER_STRUCT_) ,
INTENT(INOUT) :: SENSOR_USER_STRUCT
145 INTEGER IP,IPROC,IF1, IF2, TYP,
146 . insnmax, ipmax, sum, insnp, lastm,
147 . k, i, is, nn_s, iad, j, k1, k3, nn,
nl,nl_l,
148 . nsn,nmn,p,n,n1,n2,n3,n4,nty,ngrou,nel,ng,l,m,nir,
149 . imain,kk,nrts,nrtm,pm,
150 . off, proc, nin, ity_old, ity, msr, nsl_l, nsl,
151 . iels(nspmd), p_sph, int2flag,int2frplus,
152 . ilev,cnt,offset,fingeo,iad1,iad2,numloadp,ite2frplus
157 INTEGER :: SURF_ID,NUMBER_NODE,NODE_ID
158 INTEGER :: NUMBER_PROC,NUMBER_SEGMENT
173 DO isens=1,sensors%NSENSOR
178 IF (sensors%SENSOR_TAB(isens)%TYPE==15)
THEN
181 n1 = sensors%SENSOR_TAB(isens)%IPARAM(1)
186 IF(sensors%SENSOR_TAB(isens)%IPARAM(2)==0)
THEN
189 n1 = sensors%SENSOR_TAB(isens)%IPARAM(3+i-1)
200 ! check
if a user sensor is used
201 IF(sensor_user_struct%IS_USED)
THEN
204 IF(sensor_user_struct%POINTER_NODE>0)
THEN
205 DO i=1,sensor_user_struct%NUMBER_NODE
206 n1 = sensor_user_struct%NODE_LIST(i)
221 IF(n2d==0 .AND. len_cep > 0)
THEN
222 offset = numels + numelq + numelc + numelt + numelp
229 IF(tag_skn(i+1) > 0) cycle
252 nskwp(imain) = nskwp(imain)+1
275 nskwp(imain) = nskwp(imain)+1
292 IF(nlocal(nn,p)==1)
THEN
310 IF(n4/=-1.AND.n2d==0.AND.n4/=0)
THEN
312 IF(nlocal(n1,p)==1.AND.
313 + nlocal(n2,p)==1.AND.
314 + nlocal(n3,p)==1.AND.
315 + nlocal(n4,p)==1)
THEN
320 IF(n4/=-1.AND.n2d==0)
THEN
322 IF(nlocal(n1,p)==1.AND.
323 + nlocal(n2,p)==1.AND.
324 + nlocal(n3,p)==1)
THEN
334 IF(nlocal(n1,p)==1.AND.
335 + nlocal(n2,p)==1)
THEN
336 IF(n2d==0.AND.n4/=0)
THEN
347 IF(nlocal(n1,p)==1)
THEN
348 IF(n2d==0.AND.n4/=0.AND.n4/=-1)
THEN
351 IF(n2d==0.AND.n4/=-1)
THEN
360 IF(n4/=0.AND.n4/=0.AND.n4/=-1)
THEN
363 IF(n2d==0.AND.n4/=-1)
THEN
380 IF(n2d==0.AND.n4/=0)
THEN
382 IF(nlocal(n1,p)==1.AND.
383 + nlocal(n2,p)==1.AND.
384 + nlocal(n3,p)==1.AND.
385 + nlocal(n4,p)==1)
THEN
392 IF(nlocal(n1,p)==1.AND.
393 + nlocal(n2,p)==1.AND.
394 + nlocal(n3,p)==1)
THEN
403 IF(nlocal(n1,p)==1.AND.
404 + nlocal(n2,p)==1)
THEN
405 IF(n2d==0.AND.n4/=0)
THEN
415 IF(nlocal(n1,p)==1)
THEN
416 IF(n2d==0.AND.n4/=0)
THEN
445 IF(n2d==0.AND.n4/=0)
THEN
447 IF(nlocal(n1,p)==1.AND.
448 + nlocal(n2,p)==1.AND.
449 + nlocal(n3,p)==1.AND.
450 + nlocal(n4,p)==1)
THEN
457 IF(nlocal(n1,p)==1.AND.
458 + nlocal(n2,p)==1.AND.
459 + nlocal(n3,p)==1)
THEN
468 IF(nlocal(n1,p)==1.AND.
469 + nlocal(n2,p)==1)
THEN
470 IF(n2d==0.AND.n4/=0)
THEN
480 IF(nlocal(n1,p)==1)
THEN
481 IF(n2d==0.AND.n4/=0)
THEN
505 IF(ibfflux(10,n) == 1) cycle
510 IF(n2d==0.AND.n4/=0)
THEN
512 IF(nlocal(n1,p)==1.AND.
513 + nlocal(n2,p)==1.AND.
514 + nlocal(n3,p)==1.AND.
515 + nlocal(n4,p)==1)
GOTO 9193
520 IF(nlocal(n1,p)==1.AND.
521 + nlocal(n2,p)==1.AND.
522 + nlocal(n3,p)==1)
THEN
529 IF(nlocal(n1,p)==1.AND.nlocal(n2,p)==1)
THEN
536 IF(nlocal(n1,p)==1)
THEN
553 DO i = 1,iloadp(1,n)/4
554 n1=lloadp(iloadp(4,n)+4*(i-1))
555 n2=lloadp(iloadp(4,n)+4*(i-1)+1)
556 n3=lloadp(iloadp(4,n)+4*(i-1)+2)
557 n4=lloadp(iloadp(4,n)+4*(i-1)+3)
558 IF(n4/=-1.AND.n2d==0.AND.n4/=0)
THEN
560 IF(nlocal(n1,p)==1.AND.
561 + nlocal(n2,p)==1.AND.
562 + nlocal(n3,p)==1.AND.
563 + nlocal(n4,p)==1)
THEN
568 IF(n4/=-1.AND.n2d==0)
THEN
570 IF(nlocal(n1,p)==1.AND.
571 + nlocal(n2,p)==1.AND.
572 + nlocal(n3,p)==1)
THEN
582 IF(nlocal(n1,p)==1.AND.
583 + nlocal(n2,p)==1)
THEN
584 IF(n2d==0.AND.n4/=0)
THEN
595 IF(nlocal(n1,p)==1)
THEN
596 IF(n2d==0.AND.n4/=0.AND.n4/=-1)
THEN
599 IF(n2d==0.AND.n4/=-1)
THEN
608 IF(n4/=0.AND.n4/=0.AND.n4/=-1)
THEN
611 IF(n2d==0.AND.n4/=-1)
THEN
627 if1 = nlocal(ixri(2,j),p)
628 if2 = nlocal(ixri(3,j),p)
629 IF (if1==1.OR.if2==1)
THEN
640 IF (nrbe2>0.AND.nspmd>1)
THEN
646 IF (nlocal(m,p)==0)
THEN
650 IF(nlocal(l,p)/=0)
THEN
672 IF(nlocal(m,p)/=0)
THEN
679 IF(nlocal(l,p)/=0)
THEN
683 IF (insnp>insnmax)
THEN
694 ELSEIF(insnmax==0)
THEN
702 IF(nlocal(l,p)/=0)
THEN
716 IF (nrbe3>0.AND.nspmd>1)
THEN
723 IF (nlocal(k,p)/=0)
THEN
732 IF (nlocal(kk,p)/=0)
THEN
742 IF (nlocal(k,p)==0)
THEN
748 IF (nlocal(kk,p)==0)
THEN
763 IF (nrbykin>0.AND.nspmd>1)
THEN
774 IF (nlocal(m,p)/=0)
GOTO 86
782 IF(nlocal(l,p)/=0)
GOTO 87
795 IF(nlocal(m,p)==0)
THEN
799 IF(nlocal(l,p)/=0)
THEN
822 IF(nlocal(m,p)/=0)
THEN
829 IF(nlocal(l,p)/=0)
THEN
833 IF (insnp>insnmax)
THEN
846 ELSEIF(insnmax==0)
THEN
854 IF(nlocal(l,p)/=0)
THEN
871 IF(nfxvel > 0 .AND. nspmd > 1)
THEN
882 IF (iad1 == -1 .AND. iad2 == -1)
THEN
907 IF (nibvel>0.AND.nspmd>1)
THEN
913 IF (nlocal(m,p)==0)
THEN
917 IF(nlocal(l,p)/=0)
THEN
940 IF(nlocal(m,p)/=0)
THEN
947 IF(nlocal(l,p)/=0)
THEN
951 IF (insnp>insnmax)
THEN
962 ELSEIF(insnmax==0)
THEN
970 IF(nlocal(l,p)/=0)
THEN
985 IF (irigid_mat>0.AND.nspmd>1)
THEN
993 IF(nlocal(l,p)/=0)
THEN
1015 IF(front_rm(m,p)/=0.AND.front_rm(m,p)/=100)
THEN
1022 IF(nlocal(l,p)/=0)
THEN
1026 IF (insnp>insnmax)
THEN
1039 ELSEIF(insnmax==0)
THEN
1047 IF(nlocal(l,p)/=0)
THEN
1057 ELSEIF(irigid_mat > 0)
THEN
1072 IF(nlocal(n1,p)==1 .AND. nlocal(n2,p)==0)
CALL ifrontplus(n2,p)
1073 IF(nlocal(n2,p)==1 .AND. nlocal(n1,p)==0)
CALL ifrontplus(n1,p)
1080 IF (ns10e>0.AND.nspmd>1)
THEN
1081 CALL c_doms10(icnds10,itagnd,ite2frplus)
1082 IF (ite2frplus > 0 )
GOTO 5000
1087 IF (ninter>0.AND.nspmd>1)
THEN
1101 IF (ilev == 25 .or. ilev == 26 .or. ilev == 27 .or. ilev == 28) int2flag=1
1103 l = intbuf_tab(n)%IRTLM(i)
1104 k = intbuf_tab(n)%NSV(i)
1108 IF (nlocal(k,p)/=0)
THEN
1115 kk = intbuf_tab(n)%IRECTM((l-1)*4+j)
1117 IF (nlocal(kk,p)/=0)
THEN
1129 IF (nlocal(k,p)==0)
THEN
1134 kk = intbuf_tab(n)%IRECTM((l-1)*4+j)
1135 IF (nlocal(kk,p)==0)
THEN
1147 IF (int2frplus /= 0 .AND. int2flag/=0)
GOTO 5000
1155 IF(
ifront%IENTRY(i)==-1)
THEN
1159 iproc = mod(iproc,nspmd)+1
1165 IF(sensors%NSENSOR>0)
THEN
1169 DO i=1,sensors%NSENSOR
1170 typ = sensors%SENSOR_TAB(i)%TYPE
1180 n1 = sensors%SENSOR_TAB(i)%IPARAM(1)
1182 IF(nlocal(n1,p)==1)
THEN
1184 nsensp(p) = nsensp(p)+1
1189 n2 = sensors%SENSOR_TAB(i)%IPARAM(2)
1191 IF(nlocal(n2,p)==1)
THEN
1193 nsensp(p) = nsensp(p)+1
1206 n1 = sensors%SENSOR_TAB(i)%IPARAM(1)
1208 IF (nlocal(n1,p)==1)
THEN
1210 nsensp(p) = nsensp(p)+1
1214 n2 = sensors%SENSOR_TAB(i)%IPARAM(2)
1217 IF (nlocal(n2,p)==1)
THEN
1219 nsensp(p) = nsensp(p)+1
1226 ELSEIF(typ>=29.AND.typ<=31)
THEN
1243 IF(nlocal(n1,p)==1)
THEN
1245 naccp(p) = naccp(p)+1
1264 IF(nlocal(n1,p)==1)
THEN
1266 ngaup(p) = ngaup(p)+1
1275 ngaup(p) = ngaup(p) + 1
1300 ngrou = ngrou + dd_iad(p,i)
1303 IF (ngrou/=ngroup)
THEN
1309 . anmode=aninfo_blind_1,
1324 adsky(n) = adsky(n) + 1
1332 adsky(n) = adsky(n) + 1
1340 adsky(n) = adsky(n) + 1
1349 adsky(n) = adsky(n) + 1
1357 adsky(n) = adsky(n) + 1
1372 adsky(n) = adsky(n) + 1
1379 adsky(n) = adsky(n) + 1
1387 adsky(n) = adsky(n) + 1
1392 IF(igeo(11,ixr(1,i))/=12) n = 0
1393 adsky(n) = adsky(n) + 1
1399 adsky(n) = adsky(n) + 1
1407 adsky(n) = adsky(n) + 1
1416 k3 = 1 + nimv * nvolu + nicbag * nvolu * nvolu
1419 is = t_monvol(n)%EXT_SURFID
1420 nn_s = igrsurf(is)%NSEG
1422 ity=igrsurf(is)%ELTYP(j)
1423 i = igrsurf(is)%ELEM(j)
1427 adsky(nn) = adsky(nn) + 1
1432 adsky(nn) = adsky(nn) + 1
1449 adsky(nn) = adsky(nn) + 1
1452 adsky(nn) = adsky(nn) + 1
1455 adsky(nn) = adsky(nn) + 1
1458 adsky(nn) = adsky(nn) + 1
1474 adsky(nn) = adsky(nn) + 1
1480 adsky(nn) = adsky(nn) + 1
1483 adsky(nn) = adsky(nn) + 1
1499 adsky(nn) = adsky(nn) + 1
1501 adsky(nn) = adsky(nn) + 1
1504 adsky(nn) = adsky(nn) + 1
1507 adsky(nn) = adsky(nn) + 1
1517 IF(ibfflux(10,
nl) == 1) cycle
1523 adsky(nn) = adsky(nn) + 1
1526 adsky(nn) = adsky(nn) + 1
1529 adsky(nn) = adsky(nn) + 1
1532 adsky(nn) = adsky(nn) + 1
1543 DO i = 1,iloadp(1,
nl)/4
1544 n1=lloadp(iloadp(4,
nl)+4*(i-1))
1545 n2=lloadp(iloadp(4,
nl)+4*(i-1)+1)
1546 n3=lloadp(iloadp(4,
nl)+4*(i-1)+2)
1547 n4=lloadp(iloadp(4,
nl)+4*(i-1)+3)
1549 adsky(nn) = adsky(nn) + 1
1552 adsky(nn) = adsky(nn) + 1
1555 adsky(nn) = adsky(nn) + 1
1558 adsky(nn) = adsky(nn) + 1
1572 is_ebcs_parallel = .false.
1573 IF(ebcs_tab%tab(i)%poly%type == 10 .or. ebcs_tab%tab(i)%poly%type == 11)is_ebcs_parallel=.true.
1574 IF(is_ebcs_parallel)
THEN
1575 surf_id = ebcs_tab%tab(i)%poly%surf_id
1577 IF(n2d/=0) number_node = 2
1579 ! loop over
the elements of
the ebcs
1580 DO j=1,ebcs_tab%tab(i)%poly%nb_elem
1582 DO ijk=1,number_node
1583 node_id = igrsurf(surf_id)%NODES(j,ijk) + 1
1584 adsky(node_id) = adsky(node_id) + 1
1595 DO i=1,loads%NLOAD_CYL
1596 number_segment = loads%LOAD_CYL(i)%NSEG
1598 DO j=1,number_segment
1600 node_id = loads%LOAD_CYL(i)%SEGNOD(j,k) + 1
1602 IF(node_id/=0) adsky(node_id) = adsky(node_id) + 1
1614 adsky(i)=adsky(i)+adsky(i-1)
1617 lcne = adsky(numnod+1)-1
1633 IF (ity/=ity_old)
THEN
1657 p_sph = cepsp(j) + 1
1658 iels(p_sph) = iels(p_sph) + 1
1659 celsph(j) = iels(p_sph)
1672 IF(cel(off+
nl)==0)
THEN
1680 IF(nlocal(n1,proc)==1.AND.
1681 + nlocal(n2,proc)==1.AND.
1682 + nlocal(n3,proc)==1.AND.
1683 + nlocal(n4,proc)==1)
THEN
1688 IF(nlocal(n1,proc)==1.AND.
1689 + nlocal(n2,proc)==1.AND.
1690 + nlocal(n3,proc)==1)
THEN
1696 IF(nlocal(n1,proc)==1.AND.
1697 + nlocal(n2,proc)==1)
THEN
1703 IF(nlocal(n1,proc)==1)
THEN
1725 IF(cel(off+
nl)==0)
THEN
1730 IF(ibcv(7,
nl) == 1)
THEN
1731 IF(proc-1 == cep(ibcv(8,
nl)))
THEN
1738 IF(nlocal(n1,proc)==1.AND.
1739 + nlocal(n2,proc)==1.AND.
1740 + nlocal(n3,proc)==1.AND.
1741 + nlocal(n4,proc)==1)
THEN
1746 IF(nlocal(n1,proc)==1.AND.
1747 + nlocal(n2,proc)==1.AND.
1748 + nlocal(n3,proc)==1)
THEN
1754 IF(nlocal(n1,proc)==1.AND.
1755 + nlocal(n2,proc)==1)
THEN
1777 IF(cel(off+
nl)==0)
THEN
1782 IF(ibcr(7,
nl) == 1)
THEN
1783 IF(proc-1== cep(ibcr(8,
nl)))
THEN
1790 IF(nlocal(n1,proc)==1.AND.
1791 + nlocal(n2,proc)==1.AND.
1792 + nlocal(n3,proc)==1.AND.
1793 + nlocal(n4,proc)==1)
THEN
1798 IF(nlocal(n1,proc)==1.AND.
1800 + nlocal(n3,proc)==1)
THEN
1806 IF(nlocal(n1,proc)==1.AND.
1807 + nlocal(n2,proc)==1)
THEN
1816 off = off + numradia
1829 IF(ibfflux(10,
nl) == 1) cycle
1830 IF(cel(off+
nl)==0)
THEN
1837 IF(nlocal(n1,proc)==1.AND.
1838 + nlocal(n2,proc)==1.AND.
1839 + nlocal(n3,proc)==1.AND.
1840 + nlocal(n4,proc)==1)
THEN
1845 IF(nlocal(n1,proc)==1.AND.
1846 + nlocal(n2,proc)==1.AND.
1847 + nlocal(n3,proc)==1)
THEN
1853 IF(nlocal(n1,proc)==1.AND.nlocal(n2,proc)==1)
THEN
1869 DO i = 1,iloadp(1,
nl)/4
1870 cel(off+numloadp+i) = 0
1872 numloadp=numloadp+iloadp(1,
nl)/4
1879 DO i = 1,iloadp(1,
nl)/4
1880 IF(cel(off+numloadp+i)==0)
THEN
1881 n1=lloadp(iloadp(4,
nl)+4*(i-1))
1882 n2=lloadp(iloadp(4,
nl)+4*(i-1)+1)
1883 n3=lloadp(iloadp(4,
nl)+4*(i-1)+2)
1884 n4=lloadp(iloadp(4,
nl)+4*(i-1)+3)
1888 IF(nlocal(n1,proc)==1.AND.
1889 + nlocal(n2,proc)==1.AND.
1890 + nlocal(n3,proc)==1.AND.
1891 + nlocal(n4,proc)==1)
THEN
1893 cel(off+numloadp+i) = nl_l
1896 IF(nlocal(n1,proc)==1.AND.
1897 + nlocal(n2,proc)==1.AND.
1898 + nlocal(n3,proc)==1)
THEN
1900 cel(off+numloadp+i) = nl_l
1904 IF(nlocal(n1,proc)==1.AND.
1905 + nlocal(n2,proc)==1)
THEN
1907 cel(off+numloadp+i) = nl_l
1911 IF(nlocal(n1,proc)==1)
THEN
1913 cel(off+numloadp+i) = nl_l
1918 numloadp=numloadp+iloadp(1,
nl)/4
1921 off = off + numloadp
1948 l = intbuf_tab(n)%IRTLM(i)
1949 k = intbuf_tab(n)%NSV(i)
1951 kk = intbuf_tab(n)%IRECTM((l-1)*4+j) + 1
1952 adskyi2(kk) = adskyi2(kk) + 1
1962 adskyi2(i)=adskyi2(i)+adskyi2(i-1)
1964 lcni2 = adskyi2(numnod+1)-1
1977 l = intbuf_tab(n)%IRTLM(i)
1978 k = intbuf_tab(n)%NSV(i)
1981 IF(nlocal(k,p)==1)
THEN
2005 l = intbuf_tab(n)%IRTLM(i)
2006 k = intbuf_tab(n)%NSV(i)
2007 IF(celi2(off+i)==0)
THEN
2008 IF(nlocal(k,p)==1)
THEN
2033 1 CNE ,LCNE ,IXS ,IXS10 ,IXS20 ,
2034 2 IXS16 ,IXQ ,IXC ,IXT ,IXP ,
2035 3 IXR ,IXTG ,IXTG6 ,T_MONVOL ,
2036 4 IGRSURF,IB ,ADDCNE ,CEP ,
2037 5 ILEN ,GEO ,IBCV ,IBCR ,IBFFLUX,
2038 6 ILOADP ,LLOADP ,CEL ,EBCS_TAB,LOADS,
2039 7 NICONV ,NIRADIA ,NITFLUX,NUMCONV,NUMRADIA,NFXFLUX)
2051#include "implicit_f.inc"
2055#include "com01_c.inc"
2056#include "com04_c.inc"
2057#include "param_c.inc"
2061 INTEGER ,
INTENT(IN) :: NICONV
2062 INTEGER ,
INTENT(IN) :: NIRADIA
2063 INTEGER ,
INTENT(IN) :: NITFLUX
2064 INTEGER ,
INTENT(IN) :: NUMCONV
2065 INTEGER ,
INTENT(IN) :: NUMRADIA
2066 INTEGER ,
INTENT(IN) :: NFXFLUX
2067 INTEGER IXS(NIXS,*),IXQ(NIXQ,*),IXC(NIXC,*),IXTG(NIXTG,*),
2068 . ixt(nixt,*),ixp(nixp,*),ixr(nixr,*),cep(*),
2069 . ixs10(6,*),ixs20(12,*),ixs16(8,*),ixtg6(4,*),
2071 . addcne(0:*), cne(*), lcne, ilen,
2072 . ibcv(niconv,*), ibcr(niradia,*),ibfflux(nitflux,*),
2073 . iloadp(sizloadp,*),lloadp(*)
2077 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
2078 TYPE(MONVOL_STRUCT_),
DIMENSION(NVOLU),
INTENT(IN) :: T_MONVOL
2079 TYPE(T_EBCS_TAB),
INTENT(INOUT) :: EBCS_TAB
2080 TYPE (LOADS_),
INTENT(INOUT) :: LOADS
2089 INTEGER I, J, K, N, IDEB, OFF, OFFC, OFFTG, K1, K3, NL, NUMLOADP,
2090 . n1, n2, n3, n4, nn, p, nl_l, is, nn_s, iad, ity,
2093 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ADSKY, ITRI, INDEX
2094 INTEGER :: IJK,NUMBER_NODE
2095 INTEGER :: NELEM,ELEM_ID,NODE_ID
2097 INTEGER :: LOCAL_SEGMENT,NUMBER_SEGMENT
2099 LOGICAL :: IS_EBCS_PARALLEL
2105 ALLOCATE(adsky(0:numnod+1))
2106 ALLOCATE(itri(ilen))
2107 ALLOCATE(index(2*ilen))
2109 adsky(i) = addcne(i)
2118 CALL my_orders(0,work,itri,index,numels8,1)
2121 .
CALL my_orders(0,work,itri(ideb),index(ideb),numels10,1)
2124 index(ideb+j-1) = index(ideb+j-1)+numels8
2127 ideb = ideb + numels10
2129 .
CALL my_orders(0,work,itri(ideb),index(ideb),numels20,1)
2132 index(ideb+j-1) = index(ideb+j-1)+numels8+numels10
2135 ideb = ideb + numels20
2137 .
CALL my_orders(0,work,itri(ideb),index(ideb),numels16,1)
2140 index(ideb+j-1) = index(ideb+j-1)+numels8+numels10+numels20
2149 adsky(n) = adsky(n) + 1
2156 i = index(numels8+j)
2158 n = ixs10(k,i-numels8)
2161 adsky(n) = adsky(n) + 1
2168 i = index(numels8+numels10+j)
2170 n = ixs20(k,i-numels8-numels10)
2173 adsky(n) = adsky(n) + 1
2181 i = index(numels8+numels10+numels20+j)
2183 n = ixs16(k,i-numels8-numels10-numels20)
2186 adsky(n) = adsky(n) + 1
2197 CALL my_orders(0,work,itri,index,numelq,1)
2202 cne(adsky(n)) = i+off
2203 adsky(n) = adsky(n) + 1
2213 CALL my_orders(0,work,itri,index,numelc,1)
2218 cne(adsky(n)) = i+off
2219 adsky(n) = adsky(n) + 1
2228 CALL my_orders(0,work,itri,index,numelt,1)
2233 cne(adsky(n)) = i+off
2234 adsky(n) = adsky(n) + 1
2242 CALL my_orders(0,work,itri,index,numelp,1)
2247 cne(adsky(n)) = i+off
2248 adsky(n) = adsky(n) + 1
2256 CALL my_orders(0,work,itri,index,numelr,1)
2261 cne(adsky(n)) = i+off
2262 adsky(n) = adsky(n) + 1
2264 IF(nint(geo(12,ixr(1,i)))==12)
THEN
2266 cne(adsky(n)) = i+off
2267 adsky(n) = adsky(n) + 1
2276 CALL my_orders(0,work,itri,index,numeltg-numeltg6,1)
2277 ideb = numeltg-numeltg6+1
2279 .
CALL my_orders(0,work,itri(ideb),index(ideb),numeltg6,1)
2281 index(ideb+j-1) = index(ideb+j-1)+numeltg-numeltg6
2288 cne(adsky(n)) = i+off
2289 adsky(n) = adsky(n) + 1
2295 i = index(numeltg-numeltg6+j)
2297 n = ixtg6(k,i-numeltg+numeltg6)
2300 adsky(n) = adsky(n) + 1
2315 is = t_monvol(n)%EXT_SURFID
2316 nn_s= igrsurf(is)%NSEG
2318 ity= igrsurf(is)%ELTYP(j)
2319 i = igrsurf(is)%ELEM(j)
2323 cne(adsky(nn)) = i+offc
2324 adsky(nn) = adsky(nn) + 1
2329 cne(adsky(nn)) = i+offtg
2330 adsky(nn) = adsky(nn) + 1
2347 cne(adsky(nn)) = nl+off
2348 adsky(nn) = adsky(nn) + 1
2351 cne(adsky(nn)) = nl+off
2352 adsky(nn) = adsky(nn) + 1
2355 cne(adsky(nn)) = nl+off
2356 adsky(nn) = adsky(nn) + 1
2359 cne(adsky(nn)) = nl+off
2360 adsky(nn) = adsky(nn) + 1
2379 IF(nlocal(n1,p)==1.AND.
2380 + nlocal(n2,p)==1.AND.
2381 + nlocal(n3,p)==1.AND.
2382 + nlocal(n4,p)==1)
THEN
2390 IF(nlocal(n1,p)==1.AND.
2391 + nlocal(n2,p)==1.AND.
2392 + nlocal(n3,p)==1)
THEN
2401 IF(nlocal(n1,p)==1.AND.
2402 + nlocal(n2,p)==1)
THEN
2411 IF(nlocal(n1,p)==1)
THEN
2432 cne(adsky(nn)) = nl+off
2433 adsky(nn) = adsky(nn) + 1
2436 cne(adsky(nn)) = nl+off
2437 adsky(nn) = adsky(nn) + 1
2440 cne(adsky(nn)) = nl+off
2441 adsky(nn) = adsky(nn) + 1
2444 cne(adsky(nn)) = nl+off
2445 adsky(nn) = adsky(nn) + 1
2461 IF(ibcv(7,nl) == 1)
THEN
2468 IF(nlocal(n1,p)==1.AND.
2469 + nlocal(n2,p)==1.AND.
2470 + nlocal(n3,p)==1.AND.
2471 + nlocal(n4,p)==1)
THEN
2479 IF(nlocal(n1,p)==1.AND.
2480 + nlocal(n2,p)==1.AND.
2481 + nlocal(n3,p)==1)
THEN
2490 IF(nlocal(n1,p)==1.AND.
2491 + nlocal(n2,p)==1)
THEN
2513 cne(adsky(nn)) = nl+off
2514 adsky(nn) = adsky(nn) + 1
2516 cne(adsky(nn)) = nl+off
2517 adsky(nn) = adsky(nn) + 1
2520 cne(adsky(nn)) = nl+off
2521 adsky(nn) = adsky(nn) + 1
2524 cne(adsky(nn)) = nl+off
2525 adsky(nn) = adsky(nn) + 1
2539 IF(ibcr(7,nl) == 1)
THEN
2546 IF(nlocal(n1,p)==1.AND.
2547 + nlocal(n2,p)==1.AND.
2548 + nlocal(n3,p)==1.AND.
2549 + nlocal(n4,p)==1)
THEN
2557 IF(nlocal(n1,p)==1.AND.
2558 + nlocal(n2,p)==1.AND.
2559 + nlocal(n3,p)==1)
THEN
2568 IF(nlocal(n1,p)==1.AND.
2569 + nlocal(n2,p)==1)
THEN
2578 off = off + numradia
2585 IF(ibfflux(10,nl) == 1) cycle
2591 cne(adsky(nn)) = nl+off
2592 adsky(nn) = adsky(nn) + 1
2595 cne(adsky(nn)) = nl+off
2596 adsky(nn) = adsky(nn) + 1
2599 cne(adsky(nn)) = nl+off
2600 adsky(nn) = adsky(nn) + 1
2603 cne(adsky(nn)) = nl+off
2604 adsky(nn) = adsky(nn) + 1
2616 IF(ibfflux(10,nl) == 0)
THEN
2625 IF(nlocal(n1,p)==1.AND.
2626 + nlocal(n2,p)==1.AND.
2627 + nlocal(n3,p)==1.AND.
2628 + nlocal(n4,p)==1)
THEN
2636 IF(nlocal(n1,p)==1.AND.
2637 + nlocal(n2,p)==1.AND.
2638 + nlocal(n3,p)==1)
THEN
2647 IF(nlocal(n1,p)==1.AND.nlocal(n2,p)==1)
THEN
2655 ELSEIF(ibfflux(10,nl) == 1)
THEN
2660 ibfflux(1,nl) = cel(n1)
2661 ibfflux(2,nl) = cep(n1)
2663 cep(nl+off) = cep(n1)
2674 DO i = 1,iloadp(1,nl)/4
2675 n1=lloadp(iloadp(4,nl)+4*(i-1))
2676 n2=lloadp(iloadp(4,nl)+4*(i-1)+1)
2677 n3=lloadp(iloadp(4,nl)+4*(i-1)+2)
2678 n4=lloadp(iloadp(4,nl)+4*(i-1)+3)
2680 cne(adsky(nn)) = off+numloadp+i
2681 adsky(nn) = adsky(nn) + 1
2684 cne(adsky(nn)) = off+numloadp+i
2685 adsky(nn) = adsky(nn) + 1
2688 cne(adsky(nn)) = off+numloadp+i
2689 adsky(nn) = adsky(nn) + 1
2692 cne(adsky(nn)) = off+numloadp+i
2693 adsky(nn) = adsky(nn) + 1
2698 numloadp=numloadp+iloadp(1,nl)/4
2706 DO i = 1,iloadp(1,nl)/4
2707 n1=lloadp(iloadp(4,nl)+4*(i-1))
2708 n2=lloadp(iloadp(4,nl)+4*(i-1)+1)
2709 n3=lloadp(iloadp(4,nl)+4*(i-1)+2)
2710 n4=lloadp(iloadp(4,nl)+4*(i-1)+3)
2715 IF(nlocal(n1,p)==1.AND.
2716 + nlocal(n2,p)==1.AND.
2717 + nlocal(n3,p)==1.AND.
2718 + nlocal(n4,p)==1)
THEN
2726 IF(nlocal(n1,p)==1.AND.
2727 + nlocal(n2,p)==1.AND.
2728 + nlocal(n3,p)==1)
THEN
2737 IF(nlocal(n1,p)==1.AND.
2738 + nlocal(n2,p)==1)
THEN
2747 IF(nlocal(n1,p)==1)
THEN
2755 off = off + iloadp(1,nl)/4
2764 is_ebcs_parallel = .false.
2765 IF(ebcs_tab%tab(i)%poly%type == 10 .or. ebcs_tab%tab(i)%poly%type == 11)is_ebcs_parallel=.true.
2766 IF(is_ebcs_parallel)
THEN
2767 surf_id = ebcs_tab%tab(i)%poly%surf_id
2769 IF(n2d /= 0) number_node = 2
2773 DO j=1,ebcs_tab%tab(i)%poly%nb_elem
2775 elem_id = ebcs_tab%tab(i)%poly%ielem(j)
2776 DO ijk=1,number_node
2777 node_id = igrsurf(surf_id)%NODES(j,ijk)
2778 cne(adsky(node_id)) = elem_id
2779 adsky(node_id) = adsky(node_id) + 1
2791 ! loop over
the /load/pcyl
2793 DO i=1,loads%NLOAD_CYL
2794 number_segment = loads%LOAD_CYL(i)%NSEG
2797 DO j=1,number_segment
2798 proc_id = loads%CYL_RESTART(i)%SEGMENT_TO_PROC(j)
2800 node_id = loads%LOAD_CYL(i)%SEGNOD(j,k)
2802 cep(off+local_segment+j) = proc_id - 1
2803 cne(adsky(node_id)) = off+local_segment+j
2804 adsky(node_id) = adsky(node_id) + 1
2808 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, adsky, 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)