32 integer nset,istartset(*),iendset(*),ialset(*),
33 & nblk,i,j,k,neighbor(8,8,8),iel,ii,indexe,ifreenei,ifour,
34 & iaux,iset,j2,index,indexold,ifree,
nodes(4),ipkon(*),kon(*),
35 & kflag,ielfa(4,*),nodface(5,*),neiel(*),neij(*),neifa(*),
36 & ipoface(*),ipnei(*),ifaceq(8,6),ifreenei2,iel2,ifa,
37 & kon2(8),kon3(8),kon4(8),kon5(8),kon6(8),nactdohinv(*),
38 & kon7(8),kon8(8),ielsav,ifasav,jopposite8(6),
39 & konf(*),nef,indexet,indexeet,indexze,indexeze,ifaf,
40 & indexe2,istartblk(*),iendblk(*),nactdoh(*),nblket(*),
41 & nblkze(*),nblketl,nblkzel,neielsize,ielblk(*),nk
45 data ifaceq /4,3,2,1,11,10,9,12,
46 & 5,6,7,8,13,14,15,16,
48 & 2,3,7,6,10,19,14,18,
49 & 3,4,8,7,11,20,15,19,
50 & 4,1,5,8,12,17,16,20/
51 data jopposite8 /2,1,5,6,3,4/
52 data kon2 /2,3,4,1,6,7,8,5/
53 data kon3 /3,4,1,2,7,8,5,6/
54 data kon4 /4,1,2,3,8,5,6,7/
55 data kon5 /5,8,7,6,1,4,3,2/
56 data kon6 /6,5,8,7,2,1,4,3/
57 data kon7 /7,6,5,8,3,2,1,4/
58 data kon8 /8,7,6,5,4,3,2,1/
62 if(set(iset)(1:10).eq.
'FLUIDBLOCK')
then 135 if(set(iset)(1:10).ne.
'FLUIDBLOCK') cycle
137 iel=ialset(istartset(iset))
162 do ii=istartset(iset),iendset(iset)
171 nodes(k)=kon(indexe+ifaceq(k,j))
175 index=ipoface(
nodes(1))
182 nodface(1,ifree)=
nodes(2)
183 nodface(2,ifree)=
nodes(3)
186 nodface(5,ifree)=ipoface(
nodes(1))
187 ipoface(
nodes(1))=ifree
190 neifa(ifreenei)=ifree
200 if((nodface(1,index).eq.
nodes(2)).and.
201 & (nodface(2,index).eq.
nodes(3)))
then 206 neifa(ifreenei)=index
222 ifreenei2=ipnei(iel2)+j2
228 index=nodface(5,index)
241 if(neiel(index+ifa).eq.0)
then 242 if((ifa.eq.1).or.(ifa.eq.2))
then 244 elseif((ifa.eq.3).or.(ifa.eq.5))
then 260 if(neiel(index+ifa).eq.0)
then 261 if((ifa.eq.1).or.(ifa.eq.2))
then 263 elseif((ifa.eq.3).or.(ifa.eq.5))
then 282 if(neiel(index+ifa).eq.0)
then 298 if(neiel(index+j).eq.0)
then 305 if(iexternal(1).and.iexternal(6).and.iexternal(3))
then 307 konf(indexe+j)=kon(indexe+j)
309 elseif(iexternal(1).and.iexternal(3).and.iexternal(4))
then 311 konf(indexe+j)=kon(indexe+kon2(j))
313 elseif(iexternal(1).and.iexternal(4).and.iexternal(5))
then 315 konf(indexe+j)=kon(indexe+kon3(j))
317 elseif(iexternal(1).and.iexternal(5).and.iexternal(6))
then 319 konf(indexe+j)=kon(indexe+kon4(j))
321 elseif(iexternal(2).and.iexternal(3).and.iexternal(6))
then 323 konf(indexe+j)=kon(indexe+kon5(j))
325 elseif(iexternal(2).and.iexternal(3).and.iexternal(6))
then 327 konf(indexe+j)=kon(indexe+kon5(j))
329 elseif(iexternal(2).and.iexternal(3).and.iexternal(4))
then 331 konf(indexe+j)=kon(indexe+kon6(j))
333 elseif(iexternal(2).and.iexternal(4).and.iexternal(5))
then 335 konf(indexe+j)=kon(indexe+kon7(j))
337 elseif(iexternal(2).and.iexternal(5).and.iexternal(6))
then 339 konf(indexe+j)=kon(indexe+kon8(j))
345 if((ifasav.eq.1).or.(ifasav.eq.2))
then 347 elseif((ifasav.eq.3).or.(ifasav.eq.5))
then 355 if(neiel(index+ifa).eq.0)
then 372 if(neiel(index+j).eq.0)
then 379 if(iexternal(1).and.iexternal(6).and.iexternal(3))
then 381 konf(indexe+j)=kon(indexe+j)
383 elseif(iexternal(1).and.iexternal(3).and.iexternal(4))
then 385 konf(indexe+j)=kon(indexe+kon2(j))
387 elseif(iexternal(1).and.iexternal(4).and.iexternal(5))
then 389 konf(indexe+j)=kon(indexe+kon3(j))
391 elseif(iexternal(1).and.iexternal(5).and.iexternal(6))
then 393 konf(indexe+j)=kon(indexe+kon4(j))
395 elseif(iexternal(2).and.iexternal(3).and.iexternal(6))
then 397 konf(indexe+j)=kon(indexe+kon5(j))
399 elseif(iexternal(2).and.iexternal(3).and.iexternal(6))
then 401 konf(indexe+j)=kon(indexe+kon5(j))
403 elseif(iexternal(2).and.iexternal(3).and.iexternal(4))
then 405 konf(indexe+j)=kon(indexe+kon6(j))
407 elseif(iexternal(2).and.iexternal(4).and.iexternal(5))
then 409 konf(indexe+j)=kon(indexe+kon7(j))
411 elseif(iexternal(2).and.iexternal(5).and.iexternal(6))
then 413 konf(indexe+j)=kon(indexe+kon8(j))
416 write(*,*)
'*ERROR in blockanalysis' 417 write(*,*)
' no block structure' 418 write(*,*)
' no corner element found' 423 istartblk(nblk)=nef+1
437 if(nblkzel.ne.0)
then 438 if(nblkze(nblk).eq.0)
then 440 elseif(nblkze(nblk).ne.nblkzel)
then 441 write(*,*)
'*ERROR in blockanalysis' 442 write(*,*)
' block ',set(iset)
443 write(*,*)
' is no block' 453 if(nblketl.ne.0)
then 454 if(nblket(nblk).eq.0)
then 456 elseif(nblket(nblk).ne.nblketl)
then 457 write(*,*)
'*ERROR in blockanalysis' 458 write(*,*)
' block ',set(iset)
459 write(*,*)
' is no block' 473 call identifyface(konf(indexe+1),kon(indexe+1),ifaf,ifa)
491 & kon(indexe2+1),konf(indexe2+1),neighbor)
499 iel=neiel(indexet+ifa)
504 & kon(indexe2+1),konf(indexe2+1),neighbor)
512 iel=neiel(indexze+ifa)
517 & kon(indexe2+1),konf(indexe2+1),neighbor)
subroutine isortii(ix, iy, n, kflag)
Definition: isortii.f:6
subroutine nodes(inpc, textpart, co, nk, nk_, set, istartset, iendset, ialset, nset, nset_, nalset, nalset_, istep, istat, n, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: nodes.f:22
subroutine identifyface(konl1, konl2, iface1, iface2)
Definition: identifyface.f:20
subroutine adaptconnectivity(konl1, iface, konl2, konl2f, neighbor)
Definition: adaptconnectivity.f:21