35 integer jcs(*),l,j,ics(*),nodef(8),ifacetet(*),
36 & nrcg(*),node,ncsnodes,id,ifaceq(8,6),ifacet(6,4),
37 & ifacew1(4,5),iface(8,6),nodelem(20),nnodelem,nzcg(*),
38 & itrifac3(3,1),itrifac4(3,2),itrifac6(3,4),itrifac8(3,6),
39 & itrifac(3,6),ifacew2(8,5),lcs(*),inodface(*),nnodface,
40 & k,kflag,i,ne,ipkon(*),kon(*),indexe,nope,nface,nodface,jface,
41 & netri,ntrifac,kontri(3,*),m
43 real*8 straight(9,*),zcscg(*),rcscg(*),zcs0cg(*),
44 & rcs0cg(*),cgl(2),col(2,3),rcs0(*),zcs0(*)
48 data ifaceq /4,3,2,1,11,10,9,12,
49 & 5,6,7,8,13,14,15,16,
51 & 2,3,7,6,10,19,14,18,
52 & 3,4,8,7,11,20,15,19,
53 & 4,1,5,8,12,17,16,20/
57 data ifacet /1,3,2,7,6,5,
64 data ifacew1 /1,3,2,0,
72 data ifacew2 /1,3,2,9,8,7,0,0,
84 data itrifac4 /1,2,4,2,3,4/
88 data itrifac6 /1,4,6,4,2,5,6,5,3,4,5,6/
92 data itrifac8 /1,5,8,5,2,6,7,6,3,8,7,4,8,5,7,5,6,7/
106 call isortii(jcs,lcs,ncsnodes,kflag)
114 if(lakon(i)(4:4).eq.
'2')
then 118 elseif(lakon(i)(4:4).eq.
'8')
then 122 elseif(lakon(i)(4:5).eq.
'10')
then 126 elseif(lakon(i)(4:4).eq.
'4')
then 130 elseif(lakon(i)(4:5).eq.
'15')
then 134 elseif(lakon(i)(4:4).eq.
'6')
then 148 call nident(jcs,node,ncsnodes,id)
150 if(jcs(id).ne.node) cycle
154 if(nnodelem.eq.0) cycle
159 iface(k,j)=ifacet(k,j)
162 elseif(nface.eq.5)
then 166 iface(k,j)=ifacew1(k,j)
169 elseif(nope.eq.15)
then 172 iface(k,j)=ifacew2(k,j)
176 elseif(nface.eq.6)
then 179 iface(k,j)=ifaceq(k,j)
194 if(iface(k,m).eq.0)
then 198 if(nodelem(iface(k,m)).eq.0) cycle loop
208 nodef(k)=nodelem(iface(k,jface))
209 inodface(nnodface+k)=nodef(k)
211 nnodface=nnodface+nnodelem
215 if(nnodelem.eq.3)
then 219 itrifac(k,j)=itrifac3(k,j)
222 elseif(nnodelem.eq.4)
then 226 itrifac(k,j)=itrifac4(k,j)
229 elseif(nnodelem.eq.6)
then 233 itrifac(k,j)=itrifac6(k,j)
236 elseif(nnodelem.eq.8)
then 240 itrifac(k,j)=itrifac8(k,j)
254 node=nodef(itrifac(k,j))
256 call nident(jcs,node,ncsnodes,id)
257 col(1,k)=rcs0(lcs(id))
258 col(2,k)=zcs0(lcs(id))
260 cgl(l)=cgl(l)+col(l,k)
266 rcscg(netri)=cgl(1)/3.d0
267 zcscg(netri)=cgl(2)/3.d0
274 ifacetet(netri)=nnodface
281 write(*,*)
'*ERROR in triangulate: no faces found on the' 282 write(*,*)
' independent side' 296 call dsort(rcscg,nrcg,netri,kflag)
297 call dsort(zcscg,nzcg,netri,kflag)
subroutine straighteq2d(col, straight)
Definition: straighteq2d.f:20
subroutine isortii(ix, iy, n, kflag)
Definition: isortii.f:6
subroutine nident(x, px, n, id)
Definition: nident.f:26
subroutine dsort(dx, iy, n, kflag)
Definition: dsort.f:6