5 &(nelbor,nulone,kp1bor,ifabor,nbor,ikle,sizikl,iklbor,nelem,nelmax,
6 & npoin,nptfr,ielm,lihbor,klog,iseg,t1,t2,t3,nelebx,
99 INTEGER,
INTENT(IN) :: KLOG,NELMAX,NELEM,SIZIKL,NELEBX
100 INTEGER,
INTENT(INOUT) :: NELEB
101 INTEGER,
INTENT(IN) :: NPOIN,NPTFR,IELM
102 INTEGER,
INTENT(INOUT) :: NELBOR(nelebx),NULONE(nelebx,2)
103 INTEGER,
INTENT(INOUT) :: KP1BOR(nptfr,2)
104 INTEGER,
INTENT(INOUT) :: NBOR(*)
105 INTEGER,
INTENT(INOUT) :: IFABOR(nelmax,*)
106 INTEGER,
INTENT(IN) :: IKLE(sizikl,*)
107 INTEGER,
INTENT(IN) :: LIHBOR(nptfr)
108 INTEGER,
INTENT(INOUT) :: IKLBOR(nelebx,2)
109 INTEGER,
INTENT(IN) :: ISEG(*)
110 INTEGER,
INTENT(INOUT) :: T1(npoin),T2(npoin),T3(npoin)
114 INTEGER IELEM,NFACE,NPT,KEL,IPOIN
115 INTEGER K,IFACE,I1,I2,N1,N2,IPT,IEL,I,K1,K2
117 INTEGER :: SOMFAC(2,4,2)
118 parameter( somfac = reshape( (/
119 & 1,2 , 2,3 , 3,1 , 0,0 ,
120 & 1,2 , 2,3 , 3,4 , 4,1 /), shape=(/ 2,4,2 /) ) )
124 IF(ielm.EQ.11.OR.ielm.EQ.41.OR.ielm.EQ.51)
THEN 131 901
FORMAT(1x,
'ELEBD: IELM=',1i6,
' UNKNOWN TYPE OF ELEMENT')
150 t1(nbor(k)) = t1(nbor(k)) +1
154 WRITE(
lu,*)
'ELEBD: POINT ',i
155 WRITE(
lu,*)
'APPEARS ON ',t1(i)
156 WRITE(
lu,*)
'DIFFERENT BOUNDARIES' 157 WRITE(
lu,*)
'WRONG MESH' 173 IF(ifabor(ielem,iface).EQ.-1)
THEN 177 i1 = ikle( ielem , somfac(1,iface,kel) )
178 i2 = ikle( ielem , somfac(2,iface,kel) )
184 IF(t3(i1).NE.0.AND.t3(i2).NE.0)
THEN 185 IF(lihbor(t3(i1)).NE.klog.AND.
186 & lihbor(t3(i2)).NE.klog)
THEN 188 ifabor(ielem,iface)=0
192 WRITE(
lu,*)
'POINT ',i1,
' IS ON A BOUNDARY' 195 WRITE(
lu,*)
'POINT ',i2,
' IS ON A BOUNDARY' 197 WRITE(
lu,*)
'BUT NOT IN THE LIST OF BOUNDARY POINTS' 198 WRITE(
lu,*)
'OR THE NUMBER OF LINES IN THE BOUNDARY' 199 WRITE(
lu,*)
'CONDITIONS FILE IS GREATER THAN:',nptfr
200 WRITE(
lu,*)
'NUMBER TAKEN IN THE GEOMETRY FILE' 216 kp1bor(t3(i),1)=t3(t1(i))
218 kp1bor(t3(t1(i)),2)=t3(i)
229 IF(iseg(k1).GT.0)
THEN 234 ELSEIF(iseg(k1).EQ.-9999)
THEN 240 ELSEIF(iseg(k1).LT.0)
THEN 251 IF(iseg(k1).GT.0.OR.iseg(k1).EQ.-9999) cycle
257 IF(k2.LT.0.OR.k2.GT.nptfr) print*,
'K2=',k2,
' K1=',k1
264 IF(ikle(iel,ipt).EQ.n1)
THEN 268 IF(ikle(iel,ipt).EQ.n2)
THEN 274 IF(i1.EQ.0.OR.i2.EQ.0)
THEN 275 WRITE(
lu,811) ipt,k1,iel
276 811
FORMAT(1x,
'ELEBD: ERROR AT POINT:', i10 ,/,
277 & 1x,
' THE BOUNDARY POINT:',i10 ,/,
278 & 1x,
' DOES NOT BELONG TO ELEMENT : ',i10 ,/,
279 & 1x,
' POSSIBLE REASONS:' ,/,
280 & 1x,
' THE BOUNDARY CONDITION FILE IS NOT ' ,/,
281 & 1x,
' RELEVANT TO THE GEOMETRY FILE ' ,/,
282 & 1x,
' OR THE MESH HAS A WRONG TOPOLOGY')
297 iklbor(k,2) = kp1bor(k,1)
310 IF(kp1bor(k,1).NE.k)
THEN 312 nelbor(neleb) =nelbor(k)
313 nulone(neleb,1)=nulone(k,1)
314 nulone(neleb,2)=nulone(k,2)
315 iklbor(neleb,1)=iklbor(k,1)
316 iklbor(neleb,2)=iklbor(k,2)
subroutine elebd(NELBOR, NULONE, KP1BOR, IFABOR, NBOR, IKLE, SIZIKL, IKLBOR, NELEM, NELMAX, NPOIN, NPTFR, IELM, LIHBOR, KLOG, ISEG, T1, T2, T3, NELEBX, NELEB)