30 character*81 tieset(3,*),slavset,set(*),noset
33 & itietri(2,ntie),node,neigh(1),kneigh,i,j,k,l,m,isol,iset,
34 & idummy,itri,ll,kflag,n,nx(*),ny(*),istep,iinc,mi(*),
35 & nz(*),nstart,iit,imastop(3,*),itriangle(100),ntriangle,
36 & ntriangle_,itriold,itrinew,id,nslavnode(*),islavnode(*),
37 & ipos,nset,istartset(*),iendset(*),ialset(*),iclear,
38 & istart,ilength,nope,nopes,nelems,jj,ifaces,itiefac(2,*),
39 & jfaces,islavsurf(2,*),ifaceq(8,6),ifacet(6,4),ifacew1(4,5),
40 & ifacew2(8,5),ipkon(*),kon(*)
42 real*8 cg(3,*),straight(16,*),co(3,*),vold(0:mi(2),*),p(3),
43 &
dist,xo(*),yo(*),zo(*),x(*),y(*),z(*),tietol(3,*),adjust,
44 & clearini(3,9,*),clearslavnode(3,*),clear
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,
79 if(tieset(1,i)(81:81).ne.
'C') cycle
86 if((tietol(3,i).gt.1.2357111316d0).and.
87 & (tietol(3,i).lt.1.2357111318d0))
then 99 if(tieset(1,i)(1:1).ne.
' ')
then 100 noset(1:80)=tieset(1,i)(1:80)
102 ipos=index(noset,
' ')
105 if(set(iset).eq.noset)
exit 108 call isortii(ialset(istartset(iset)),idummy,
109 & iendset(iset)-istartset(iset)+1,kflag)
116 nstart=itietri(1,i)-1
117 n=itietri(2,i)-nstart
118 if(n.lt.kneigh) kneigh=n
131 call dsort(x,nx,n,kflag)
132 call dsort(y,ny,n,kflag)
133 call dsort(z,nz,n,kflag)
135 do j=nslavnode(i)+1,nslavnode(i+1)
146 call near3d(xo,yo,zo,x,y,z,nx,ny,nz,p(1),p(2),p(3),
152 itri=neigh(1)+itietri(1,i)-1
159 dist=straight(ll,itri)*p(1)+
160 & straight(ll+1,itri)*p(2)+
161 & straight(ll+2,itri)*p(3)+
162 & straight(ll+3,itri)
163 if(
dist.gt.1.d-6)
then 164 itrinew=imastop(l,itri)
165 if(itrinew.eq.0)
then 168 elseif(itrinew.eq.itriold)
then 173 call nident(itriangle,itrinew,ntriangle,id)
175 if(itriangle(id).eq.itrinew)
then 180 ntriangle=ntriangle+1
181 if(ntriangle.gt.ntriangle_)
then 185 do k=ntriangle,id+2,-1
186 itriangle(k)=itriangle(k-1)
188 itriangle(id+1)=itrinew
204 dist=straight(13,itri)*p(1)+
205 & straight(14,itri)*p(2)+
206 & straight(15,itri)*p(3)+
218 call nident(ialset(istartset(iset)),node,
219 & iendset(iset)-istartset(iset)+1,id)
221 if(ialset(istartset(iset)+id-1).eq.node)
then 223 co(k,node)=co(k,node)-
224 &
dist*straight(12+k,itri)
229 elseif(dabs(tietol(1,i)).ge.2.d0)
then 233 adjust=dabs(tietol(1,i))-2.d0
235 if(
dist.le.adjust)
then 237 co(k,node)=co(k,node)-
238 &
dist*straight(12+k,itri)
249 clearslavnode(k,j)=(clear-
dist)*straight(12+k,itri)
259 do jj=itiefac(1,i), itiefac(2,i)
260 ifaces=islavsurf(1,jj)
261 nelems=int(ifaces/10)
262 jfaces=ifaces - nelems*10
264 if(lakon(nelems)(4:5).eq.
'8R')
then 267 elseif(lakon(nelems)(4:4).eq.
'8')
then 270 elseif(lakon(nelems)(4:6).eq.
'20R')
then 273 elseif(lakon(nelems)(4:5).eq.
'20')
then 276 elseif(lakon(nelems)(4:5).eq.
'10')
then 279 elseif(lakon(nelems)(4:4).eq.
'4')
then 285 elseif(lakon(nelems)(4:4).eq.
'6')
then 292 elseif(lakon(nelems)(4:5).eq.
'15')
then 304 istart=nslavnode(i)+1
305 ilength=nslavnode(i+1)-nslavnode(i)
308 if((nope.eq.20).or.(nope.eq.8))
then 309 node=kon(ipkon(nelems)+ifaceq(m,jfaces))
310 elseif((nope.eq.10).or.(nope.eq.4).or.(nope.eq.14))
312 node=kon(ipkon(nelems)+ifacet(m,jfaces))
313 elseif(nope.eq.15)
then 314 node=kon(ipkon(nelems)+ifacew2(m,jfaces))
316 node=kon(ipkon(nelems)+ifacew1(m,jfaces))
318 call nident(islavnode(istart),node,ilength,id)
321 & clearslavnode(k,nslavnode(i)+id)
subroutine near3d(xo, yo, zo, x, y, z, nx, ny, nz, xp, yp, zp, n, neighbor, k)
Definition: near3d.f:20
subroutine isortii(ix, iy, n, kflag)
Definition: isortii.f:6
static double * dist
Definition: radflowload.c:42
subroutine nident(x, px, n, id)
Definition: nident.f:26
subroutine dsort(dx, iy, n, kflag)
Definition: dsort.f:6