36 SUBROUTINE findele(ALE_CONNECTIVITY, NNODE, NIX, IDSU,ID,NSEG,NUMEL,IX,
37 . ISEG,IELE,ITYPE,IFAC,SURF_NODES,IADD,INVC,PM,X,TYPE,IGEO,ITAB)
43 USE format_mod ,
ONLY : fmw_10i
47#include "implicit_f.inc"
56#include "tabsiz_c.inc"
61 INTEGER NNODE, NIX, IDSU,ID,NSEG,ISEG(*),IELE(*),ITYPE(*),
62 . iadd(*),invc(*),ifac(*),
TYPE,surf_nodes(nseg,4)
63 INTEGER,
INTENT(IN) :: NUMEL
64 INTEGER,
INTENT(IN) :: IX(NIX,NUMEL)
65 INTEGER,
INTENT(IN) :: ITAB(NUMNOD)
66 INTEGER,
INTENT(IN) :: IGEO(NPROPGI,NUMGEO)
67 my_real pm(npropm,nummat),x(3,sx/3)
71 INTEGER II,JJ,J,K,M,PP,NN,KK,NEL,IRECT(4),IAD,N,ALE,NF,IP(NNODE),TURBU,NEIGH,CON(8),IS
72 INTEGER IFACE, IFACE2, IFACE2T, JALE_FROM_MAT, JALE_FROM_PROP,MINUS
74 my_real :: xx1(4), xx2(4),xx3(4),xs1,ys1,zs1,xc,yc,zc
75 EXTERNAL iface, iface2, iface2t
76 DATA con/1,2,3,4,5,6,7,8/
82 IF(ipri>=1)
WRITE(iout,1000)id,idsu
86 irect(k)=surf_nodes(j,k)
88 IF (irect(3) == 0) irect(3) = irect(2)
89 IF(irect(4)==0) irect(4)=irect(3)
92 DO 230 iad=iadd(irect(1)),iadd(irect(1)+1)-1
100 IF(ix(k+1,n)==ii)
THEN
111 IF (ip(1) * ip(3) * ip(6) /= 0)
THEN
113 ELSEIF (ip(1) * ip(3) * ip(5) /= 0)
THEN
115 ELSEIF (ip(3) * ip(6) * ip(5) /= 0)
THEN
117 ELSEIF (ip(6) * ip(5) * ip(1) /= 0)
THEN
120 ELSEIF (nnode == 4)
THEN
123 ELSEIF (nnode == 3)
THEN
125 nf = iface2t(ip, con)
135 WRITE(istdo,*)
' ** ERROR EBCS ',id,
' FACE IS NOT FACING A SOLID ELEMENT, FACE :', itab(irect(1:4))
137 WRITE(istdo,*)
' ** ERROR EBCS ',id,
' SEGMENTS IS NOT FACING A SOLID ELEMENT, SEG :', itab(irect(1:2))
152 xs1=xs1+fourth*x(1,nn)
153 ys1=ys1+fourth*x(2,nn)
154 zs1=zs1+fourth*x(3,nn)
161 ys1=half*(x(2,irect(1)) + x(2,irect(2)))
162 zs1=half*(x(3,irect(1)) + x(3,irect(2)))
170 n3 = -(xx2(2) - xx2(1))
171 area = sqrt(n2 * n2 + n3 * n3)
189 dds=n1*(xc-xs1)+n2*(yc-ys1)+n3*(zc-zs1)
198 IF (
TYPE == 8 .OR. type == 9 .OR.
TYPE == 10 .OR. type == 11 .OR.
TYPE == 12) then
203 jale_from_mat = int(pm(72,m))
204 jale_from_prop = igeo(62,pp)
205 ale = jale_from_mat + jale_from_prop
209 iad = ale_connectivity%ee_connect%iad_connect(nel)
212 ale_connectivity%ee_connect%connected(iad + nf - 1) = -segindx
213 IF(ipri>=1)
WRITE(iout,fmt=fmw_10i)j,ix(nix,nel),nf,iseg(j)
215 IF(ipri>=1)
WRITE(iout,fmt=fmw_10i)j,ix(nix,nel),0,0
217 turbu=
max(turbu,int(pm(70,m)))
223 WRITE(istdo,*)
' ** ERROR EBCS ',id,
' TURBULENCE NOT YET SUPPORTED'
224 WRITE(iout,*)
' ** ERROR EBCS ',id,
' TURBULENCE NOT YET SUPPORTED'
228 WRITE(istdo,*)
' ** ERROR EBCS ',id,neigh,
' FACE IS NOT FACING A SOLID ELEMENT, FACE :', itab(irect(1:4))
230 WRITE(istdo,*)' ** error ebcs
',ID,NEIGH,' segments is not facing a solid element, seg :
', ITAB(IRECT(1:2))
236 1000 FORMAT(//,'elementary bcs
',I10,' surface
',I10,/,
237 . '-----------------------------------------
',/,
238 . ' segment elt face segindx
')
subroutine findele(ale_connectivity, nnode, nix, idsu, id, nseg, numel, ix, iseg, iele, itype, ifac, surf_nodes, iadd, invc, pm, x, type, igeo, itab)