30 integer nneigh,j,nodef(8),nodei,nrcg(*),
31 & nzcg(*),nterms,ineigh(20),itrimax,i,netri,
32 & itri,ifirst,ilast,ifacetet(*),inodface(*),noded,ier
34 real*8 co(3,*),csab(7),rp,zp,xi,et,xn,yn,zn,rp1,zp1,rp2,zp2,
35 & straight(9,*),zcscg(*),rcscg(*),zcs0cg(*),rcs0cg(*),distmax,
36 &
dist,ratio(9),pneigh(3,9),pnode(3),xap,yap,zap,
37 & x12,y12,z12,x13,y13,z13,area,typdist
44 call near2d(rcs0cg,zcs0cg,rcscg,zcscg,nrcg,nzcg,rp,zp,
45 & netri,ineigh,nneigh)
51 dist=
max(rp*straight(1,itri)+zp*straight(2,itri)+
52 & straight(3,itri),0.d0)+
53 &
max(rp*straight(4,itri)+zp*straight(5,itri)+
54 & straight(6,itri),0.d0)+
55 &
max(rp*straight(7,itri)+zp*straight(8,itri)+
56 & straight(9,itri),0.d0)
62 if(
dist.lt.distmax)
then 77 if(ifacetet(itri).ne.ilast)
then 86 nodef(i)=inodface(ifirst+i)
88 pneigh(j,i)=co(j,nodef(i))
99 zp1=xap*xn+yap*yn+zap*zn
100 rp1=dsqrt((xap-zp1*xn)**2+(yap-zp1*yn)**2+(zap-zp1*zn)**2)
103 nodef(i)=inodface(ifirst+i)
105 xap=co(1,nodef(i))-csab(1)
106 yap=co(2,nodef(i))-csab(2)
107 zap=co(3,nodef(i))-csab(3)
109 zp1=xap*xn+yap*yn+zap*zn
112 & dsqrt((xap-zp1*xn)**2+(yap-zp1*yn)**2+(zap-zp1*zn)**2)
121 call attach(pneigh,pnode,nterms,ratio,
dist,xi,et)
129 zp2=xap*xn+yap*yn+zap*zn
130 rp2=dsqrt((xap-zp2*xn)**2+(yap-zp2*yn)**2+(zap-zp2*zn)**2)
139 co(j,nodei)=co(j,nodei)+ratio(i)*co(j,nodef(i))
157 x12=pneigh(1,2)-pneigh(1,1)
158 y12=pneigh(2,2)-pneigh(2,1)
159 z12=pneigh(3,2)-pneigh(3,1)
160 x13=pneigh(1,3)-pneigh(1,1)
161 y13=pneigh(2,3)-pneigh(2,1)
162 z13=pneigh(3,3)-pneigh(3,1)
163 area=dsqrt((y12*z13-y13*z12)**2+
164 & (x12*z13-x13*z12)**2+
165 & (x12*y13-x13*y12)**2)
168 if(multistage)
dist=dsqrt((rp2-rp1)**2+(zp2-zp1)**2)
169 if(
dist.ge.typdist/10.d0)
then 170 write(*,*)
'*WARNING in linkdissimilar: no suitable partner' 171 write(*,*)
' face found for node', noded,
'.' 173 &
' Nodes belonging to the best partner face:' 174 write(*,*) (nodef(i),i=1,nterms)
175 write(*,*)
' Euclidean distance within ' 176 write(*,*)
' a radial plane: ',
dist #define max(a, b)
Definition: cascade.c:32
static double * dist
Definition: radflowload.c:42
subroutine near2d(xo, yo, x, y, nx, ny, xp, yp, n, neighbor, k)
Definition: near2d.f:20
subroutine attach(pneigh, pnode, nterms, ratio, dist, xil, etl)
Definition: attach.f:20