58 logical triangulation,calcangle,nodesonaxis,check,exist
60 character*1 inpc(*),depkind,indepkind
62 character*20 labmpc(*)
64 character*81 set(*),depset,indepset,tieset(3,*),elset
65 character*132 textpart(16),jobnamec(*)
67 integer istartset(*),iendset(*),ialset(*),ipompc(*),ifaces,
68 & nodempc(3,*),itiecyc,ntiecyc,iaxial,nopes,nelems,m,indexe,
69 & nset,istep,istat,n,key,i,j,k,nk,nmpc,nmpc_,mpcfree,ics(*),
70 & nr(*),nz(*),jdep,jindep,l,noded,ikmpc(*),ilmpc(*),lcs(*),
71 & kflag,node,ncsnodes,ncs_,iline,ipol,inl,ipoinp(2,*),nneigh,
72 & inp(3,*),itie,iset,ipos,mcs,lprev,ntie,ithermal,ncounter,
73 & nrcg(*),nzcg(*),jcs(*),kontri(3,*),ne,ipkon(*),kon(*),nodei,
74 & ifacetet(*),inodface(*),ipoinpc(0:*),maxsectors,id,jfaces,
75 & noden(2),ntrans,ntrans_,cfd,mi(*),ifaceq(8,6),ifacet(6,4),
76 & ifacew1(4,5),ifacew2(8,5),idof
78 real*8 tolloc,co(3,*),coefmpc(*),rcs(*),zcs(*),rcs0(*),zcs0(*),
79 & csab(7),xn,yn,zn,dd,xap,yap,zap,tietol(3,*),cs(17,*),xsectors,
80 & gsectors,x3,y3,z3,phi,rcscg(*),rcs0cg(*),zcscg(*),zcs0cg(*),
81 & straight(9,*),
x1,y1,
z1,x2,y2,z2,zp,rp,
dist,trab(7,*),
82 & vold(0:mi(2),*),calculated_angle,user_angle
86 data ifaceq /4,3,2,1,11,10,9,12,
87 & 5,6,7,8,13,14,15,16,
89 & 2,3,7,6,10,19,14,18,
90 & 3,4,8,7,11,20,15,19,
91 & 4,1,5,8,12,17,16,20/
95 data ifacet /1,3,2,7,6,5,
102 data ifacew1 /1,3,2,0,
110 data ifacew2 /1,3,2,9,8,7,0,0,
111 & 4,5,6,10,11,12,0,0,
112 & 1,2,5,4,7,14,10,13,
113 & 2,3,6,5,8,15,11,14,
114 & 3,1,4,6,9,13,12,15/
117 write(*,*)
'*ERROR reading *CYCLIC SYMMETRY MODEL:' 118 write(*,*)
' *CYCLIC SYMMETRY MODEL should' 119 write(*,*)
' be placed before all step definitions' 130 if(textpart(i)(1:2).eq.
'N=')
then 131 read(textpart(i)(3:22),
'(f20.0)',iostat=istat) xsectors
132 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
133 &
"*CYCLIC SYMMETRY MODEL%")
134 elseif(textpart(i)(1:8).eq.
'CHECK=NO')
then 136 elseif(textpart(i)(1:7).eq.
'NGRAPH=')
then 137 read(textpart(i)(8:27),
'(f20.0)',iostat=istat) gsectors
138 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
139 &
"*CYCLIC SYMMETRY MODEL%")
140 elseif(textpart(i)(1:4).eq.
'TIE=')
then 141 read(textpart(i)(5:84),
'(a80)',iostat=istat) tie
142 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
143 &
"*CYCLIC SYMMETRY MODEL%")
144 elseif(textpart(i)(1:6).eq.
'ELSET=')
then 145 read(textpart(i)(7:86),
'(a80)',iostat=istat) elset
146 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
147 &
"*CYCLIC SYMMETRY MODEL%")
149 ipos=index(elset,
' ')
153 &
'*WARNING reading *CYCLIC SYMMETRY MODEL:' 154 write(*,*)
' parameter not recognized:' 156 & textpart(i)(1:index(textpart(i),
' ')-1)
158 &
"*CYCLIC SYMMETRY MODEL%")
162 if(xsectors.le.0)
then 163 write(*,*)
'*ERROR reading *CYCLIC SYMMETRY MODEL:' 164 write(*,*)
' the required parameter N' 165 write(*,*)
' is lacking on the *CYCLIC SYMMETRY MODEL' 166 write(*,*)
' keyword card or has a value <=0' 169 if(gsectors.lt.1)
then 170 write(*,*)
'*WARNING reading *CYCLIC SYMMETRY MODEL:' 171 write(*,*)
' cannot plot less than' 172 write(*,*)
' one sector: one sector will be plotted' 175 if(gsectors.gt.xsectors)
then 176 write(*,*)
'*WARNING reading *CYCLIC SYMMETRY MODEL:' 177 write(*,*)
' cannot plot more than' 178 write(*,*)
' ',xsectors,
'sectors;',
179 & xsectors,
' sectors will' 180 write(*,*)
' be plotted' 184 maxsectors=
max(maxsectors,int(xsectors+0.5d0))
196 if((tieset(1,i)(1:80).eq.tie).and.
197 & (tieset(1,i)(81:81).eq.
'P'))
then 202 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
203 & ipoinp,inp,ipoinpc)
209 read(textpart(j)(1:20),
'(f20.0)',iostat=istat)
217 indepset=tieset(3,itie)
219 if(set(j).eq.indepset)
exit 224 cs(4,mcs)=(iendset(j)-istartset(j)+1)*8+0.5d0
226 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
227 & ipoinp,inp,ipoinpc)
230 elseif((tieset(1,i)(1:80).eq.tie).and.
231 & (tieset(1,i)(81:81).eq.
'Z'))
then 236 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
237 & ipoinp,inp,ipoinpc)
243 read(textpart(j)(1:20),
'(f20.0)',iostat=istat)
252 indepset=tieset(3,itie)
254 if(set(j).eq.indepset)
exit 259 cs(4,mcs)=(iendset(j)-istartset(j)+1)*8+0.5d0
261 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
262 & ipoinp,inp,ipoinpc)
265 elseif((tieset(1,i)(1:80).eq.tie).and.
266 & (tieset(1,i)(81:81).ne.
'C').and.
267 & (tieset(1,i)(81:81).ne.
'T'))
then 270 elseif((tieset(1,i)(81:81).ne.
'C').and.
271 & (tieset(1,i)(81:81).ne.
'T'))
then 277 if(ntiecyc.eq.1)
then 281 &
'*ERROR reading *CYCLIC SYMMETRY MODEL:' 282 write(*,*)
' tie constraint is nonexistent' 284 &
"*CYCLIC SYMMETRY MODEL%")
289 cs(5,mcs)=gsectors+0.5
291 depset=tieset(2,itie)
292 indepset=tieset(3,itie)
293 tolloc=tietol(1,itie)
298 if(elset.eq.
' ')
then 299 write(*,*)
'*INFO reading *CYCLIC SYMMETRY MODEL:' 300 write(*,*)
' no element set given' 302 &
"*CYCLIC SYMMETRY MODEL%")
305 if(set(i).eq.elset)
then 311 write(*,*)
'*ERROR reading *CYCLIC SYMMETRY MODEL:' 312 write(*,*)
' element set does not' 313 write(*,*)
' exist; ' 315 &
"*CYCLIC SYMMETRY MODEL%")
320 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
321 & ipoinp,inp,ipoinpc)
323 if((istat.lt.0).or.(key.eq.1))
then 324 write(*,*)
'*ERROR reading *CYCLIC SYMMETRY MODEL:' 325 write(*,*)
' definition of the cyclic' 326 write(*,*)
' symmetry model is not complete' 331 if(ntrans.gt.ntrans_)
then 332 write(*,*)
'*ERROR reading *CYCLIC SYMMETRY MODEL:' 333 write(*,*)
' increase ntrans_' 338 read(textpart(i)(1:20),
'(f20.0)',iostat=istat) csab(i)
339 trab(i,ntrans)=csab(i)
340 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
341 &
"*CYCLIC SYMMETRY MODEL%")
355 ipos=index(depset,
' ')
357 depset(ipos:ipos)=depkind
359 if(set(i).eq.depset)
exit 363 depset(ipos:ipos)=depkind
365 if(set(i).eq.depset)
exit 368 write(*,*)
'*ERROR reading *CYCLIC SYMMETRY MODEL:' 369 write(*,*)
' surface ',depset
370 write(*,*)
' has not yet been defined.' 376 ipos=index(indepset,
' ')
378 indepset(ipos:ipos)=indepkind
380 if(set(i).eq.indepset)
exit 384 indepset(ipos:ipos)=indepkind
386 if(set(i).eq.indepset)
exit 389 write(*,*)
'*ERROR reading *CYCLIC SYMMETRY MODEL:' 390 write(*,*)
' surface ',indepset
391 write(*,*)
' has not yet been defined.' 402 dd=dsqrt(xn*xn+yn*yn+zn*zn)
413 do j=istartset(jindep),iendset(jindep)
414 if(ialset(j).gt.0)
then 415 if(indepkind.eq.
'T')
then 420 nelems=int(ifaces/10)
421 jfaces=ifaces - nelems*10
424 if(lakon(nelems)(4:5).eq.
'20')
then 426 elseif(lakon(nelems)(4:4).eq.
'2')
then 428 elseif(lakon(nelems)(4:4).eq.
'8')
then 430 elseif(lakon(nelems)(4:5).eq.
'10')
then 432 elseif(lakon(nelems)(4:4).eq.
'4')
then 436 if(lakon(nelems)(4:4).eq.
'6')
then 443 if(lakon(nelems)(4:5).eq.
'15')
then 455 if(indepkind.eq.
'T')
then 456 if((lakon(nelems)(4:4).eq.
'2').or.
457 & (lakon(nelems)(4:4).eq.
'8'))
then 458 node=kon(indexe+ifaceq(m,jfaces))
459 elseif((lakon(nelems)(4:4).eq.
'4').or.
460 & (lakon(nelems)(4:5).eq.
'10'))
then 461 node=kon(indexe+ifacet(m,jfaces))
462 elseif(lakon(nelems)(4:4).eq.
'6')
then 463 node=kon(indexe+ifacew1(m,jfaces))
464 elseif(lakon(nelems)(4:5).eq.
'15')
then 465 node=kon(indexe+ifacew2(m,jfaces))
467 call nident(ics,node,l,id)
470 if(ics(id).eq.node)
then 476 if(lprev+l.gt.ncs_)
then 477 write(*,*)
'*ERROR reading *CYCLIC SYMMETRY MODEL:' 478 write(*,*)
' increase ncs_' 487 xap=co(1,node)-csab(1)
488 yap=co(2,node)-csab(2)
489 zap=co(3,node)-csab(3)
492 zcs(id+1)=xap*xn+yap*yn+zap*zn
493 rcs(id+1)=dsqrt((xap-zcs(id+1)*xn)**2+
494 & (yap-zcs(id+1)*yn)**2+
495 & (zap-zcs(id+1)*zn)**2)
498 if(lprev+l.gt.ncs_)
then 499 write(*,*)
'*ERROR reading *CYCLIC SYMMETRY MODEL:' 500 write(*,*)
' increase ncs_' 505 xap=co(1,node)-csab(1)
506 yap=co(2,node)-csab(2)
507 zap=co(3,node)-csab(3)
510 zcs(l)=xap*xn+yap*yn+zap*zn
511 rcs(l)=dsqrt((xap-zcs(l)*xn)**2+
512 & (yap-zcs(l)*yn)**2+
513 & (zap-zcs(l)*zn)**2)
520 if(k.ge.ialset(j-1))
exit 523 write(*,*)
'*ERROR reading *CYCLIC SYMMETRY MODEL:' 524 write(*,*)
' increase ncs_' 529 xap=co(1,node)-csab(1)
530 yap=co(2,node)-csab(2)
531 zap=co(3,node)-csab(3)
534 zcs(l)=xap*xn+yap*yn+zap*zn
535 rcs(l)=dsqrt((xap-zcs(l)*xn)**2+
536 & (yap-zcs(l)*yn)**2+
537 & (zap-zcs(l)*zn)**2)
553 call dsort(rcs,nr,ncsnodes,kflag)
554 call dsort(zcs,nz,ncsnodes,kflag)
560 if(tolloc.lt.0.d0)
then 566 xap=co(1,nodei)-csab(1)
567 yap=co(2,nodei)-csab(2)
568 zap=co(3,nodei)-csab(3)
570 zp=xap*xn+yap*yn+zap*zn
571 rp=dsqrt((xap-zp*xn)**2+(yap-zp*yn)**2+(zap-zp*zn)**2)
573 call near2d(rcs0,zcs0,rcs,zcs,nr,nz,rp,zp,ncsnodes,noden,
576 dist=
dist+dsqrt((co(1,nodei)-co(1,noden(2)))**2+
577 & (co(2,nodei)-co(2,noden(2)))**2+
578 & (co(3,nodei)-co(3,noden(2)))**2)
580 tolloc=1.d-10*
dist/ncsnodes
581 write(*,*)
'*INFO reading *CYCLIC SYMMETRY MODEL:' 582 write(*,*)
' no tolerance was defined' 583 write(*,*)
' in the *TIE option; a tolerance of ',
585 write(*,*)
' will be used' 608 loop1:
do i=istartset(jdep),iendset(jdep)
609 if(ialset(i).gt.0)
then 614 if(depkind.eq.
'T')
then 616 nelems=int(ifaces/10)
617 jfaces=ifaces - nelems*10
620 if(lakon(nelems)(4:5).eq.
'20')
then 622 elseif(lakon(nelems)(4:4).eq.
'2')
then 624 elseif(lakon(nelems)(4:4).eq.
'8')
then 626 elseif(lakon(nelems)(4:5).eq.
'10')
then 628 elseif(lakon(nelems)(4:4).eq.
'4')
then 632 if(lakon(nelems)(4:4).eq.
'6')
then 639 if(lakon(nelems)(4:5).eq.
'15')
then 651 if(depkind.eq.
'T')
then 652 if((lakon(nelems)(4:4).eq.
'2').or.
653 & (lakon(nelems)(4:4).eq.
'8'))
then 654 noded=kon(indexe+ifaceq(m,jfaces))
655 elseif((lakon(nelems)(4:4).eq.
'4').or.
656 & (lakon(nelems)(4:5).eq.
'10'))
then 657 noded=kon(indexe+ifacet(m,jfaces))
658 elseif(lakon(nelems)(4:4).eq.
'6')
then 659 noded=kon(indexe+ifacew1(m,jfaces))
660 elseif(lakon(nelems)(4:5).eq.
'15')
then 661 noded=kon(indexe+ifacew2(m,jfaces))
664 if(i.gt.istartset(jdep))
then 665 if(ialset(i).eq.ialset(i-1)) cycle loop1
671 xap=co(1,noded)-csab(1)
672 yap=co(2,noded)-csab(2)
673 zap=co(3,noded)-csab(3)
675 zp=xap*xn+yap*yn+zap*zn
676 rp=dsqrt((xap-zp*xn)**2+(yap-zp*yn)**2+(zap-zp*zn)**2)
678 if((.not.calcangle).and.(rp.gt.1.d-10))
then 684 call near2d(rcs0,zcs0,rcs,zcs,nr,nz,rp,zp,ncsnodes,node,
689 if(nodei.eq.noded)
then 695 xap=co(1,nodei)-csab(1)
696 yap=co(2,nodei)-csab(2)
697 zap=co(3,nodei)-csab(3)
699 zp=xap*xn+yap*yn+zap*zn
700 rp=dsqrt((xap-zp*xn)**2+(yap-zp*yn)**2+(zap-zp*zn)**2)
702 if((.not.calcangle).and.(rp.gt.1.d-10))
then 711 phi=(
x1*xn+y1*yn+
z1*zn)/dabs(
x1*xn+y1*yn+
z1*zn)*
712 & dacos(x2*x3+y2*y3+z2*z3)
714 calculated_angle=dacos(x2*x3+y2*y3+z2*z3)
715 user_angle=6.28318531d0/cs(1,mcs)
716 if(dabs(calculated_angle-user_angle)/
717 & calculated_angle.gt.0.01d0)
then 719 &
'*ERROR reading *CYCLIC SYMMETRY MODEL' 720 write(*,*)
' number of segments does not' 721 write(*,*)
' agree with the geometry' 722 write(*,*)
' angle based on N:',
723 & user_angle*57.29577951d0
724 write(*,*)
' angle based on the geometry:',
725 & calculated_angle*57.29577951d0
729 write(*,*)
'*INFO in cyclicsymmetrymodels: angle' 730 write(*,*)
' check is deactivated by the user;' 731 write(*,*)
' the real geometry is used for' 732 write(*,*)
' the calculation of the segment' 744 if(k.ge.ialset(i-1))
exit 747 xap=co(1,noded)-csab(1)
748 yap=co(2,noded)-csab(2)
749 zap=co(3,noded)-csab(3)
751 zp=xap*xn+yap*yn+zap*zn
752 rp=dsqrt((xap-zp*xn)**2+(yap-zp*yn)**2+(zap-zp*zn)**2)
754 if((.not.calcangle).and.(rp.gt.1.d-10))
then 760 call near2d(rcs0,zcs0,rcs,zcs,nr,nz,rp,zp,ncsnodes,node,
765 if(nodei.eq.noded)
then 771 xap=co(1,nodei)-csab(1)
772 yap=co(2,nodei)-csab(2)
773 zap=co(3,nodei)-csab(3)
775 zp=xap*xn+yap*yn+zap*zn
776 rp=dsqrt((xap-zp*xn)**2+(yap-zp*yn)**2+(zap-zp*zn)**2)
778 if((.not.calcangle).and.(rp.gt.1.d-10))
then 787 phi=(
x1*xn+y1*yn+
z1*zn)/dabs(
x1*xn+y1*yn+
z1*zn)*
788 & dacos(x2*x3+y2*y3+z2*z3)
790 calculated_angle=dacos(x2*x3+y2*y3+z2*z3)
791 user_angle=6.28318531d0/cs(1,mcs)
792 if(dabs(calculated_angle-user_angle)
793 & /calculated_angle.gt.0.01d0)
then 795 &
'*ERROR reading *CYCLIC SYMMETRY MODEL' 796 write(*,*)
' number of segments does not' 797 write(*,*)
' agree with the geometry' 798 write(*,*)
' angle based on N:',
799 & user_angle*57.29577951d0
800 write(*,*)
' angle based on the geometry:' 801 & ,calculated_angle*57.29577951d0
816 triangulation=.false.
820 open(40,file=
'WarnNodeMissCyclicSymmetry.nam',status=
'unknown')
821 write(40,*)
'*NSET,NSET=WarnNodeCyclicSymmetry' 822 write(*,*)
'*INFO in cyclicsymmetrymodels:' 823 write(*,*)
' failed nodes (if any) are stored in file' 824 write(*,*)
' WarnNodeMissCyclicSymmetry.nam' 825 write(*,*)
' This file can be loaded into' 826 write(*,*)
' an active cgx-session by typing' 828 &
' read WarnNodeMissCyclicSymmetry.nam inp' 831 loop2:
do i=istartset(jdep),iendset(jdep)
832 if(ialset(i).gt.0)
then 837 if(depkind.eq.
'T')
then 839 nelems=int(ifaces/10)
840 jfaces=ifaces - nelems*10
843 if(lakon(nelems)(4:5).eq.
'20')
then 845 elseif(lakon(nelems)(4:4).eq.
'2')
then 847 elseif(lakon(nelems)(4:4).eq.
'8')
then 849 elseif(lakon(nelems)(4:5).eq.
'10')
then 851 elseif(lakon(nelems)(4:4).eq.
'4')
then 855 if(lakon(nelems)(4:4).eq.
'6')
then 862 if(lakon(nelems)(4:5).eq.
'15')
then 874 if(depkind.eq.
'T')
then 875 if((lakon(nelems)(4:4).eq.
'2').or.
876 & (lakon(nelems)(4:4).eq.
'8'))
then 877 noded=kon(indexe+ifaceq(m,jfaces))
878 elseif((lakon(nelems)(4:4).eq.
'4').or.
879 & (lakon(nelems)(4:5).eq.
'10'))
then 880 noded=kon(indexe+ifacet(m,jfaces))
881 elseif(lakon(nelems)(4:4).eq.
'6')
then 882 noded=kon(indexe+ifacew1(m,jfaces))
883 elseif(lakon(nelems)(4:5).eq.
'15')
then 884 noded=kon(indexe+ifacew2(m,jfaces))
887 if(i.gt.istartset(jdep))
then 888 if(ialset(i).eq.ialset(i-1)) cycle loop2
899 call nident(ikmpc,idof,nmpc,id)
901 if(ikmpc(id).eq.idof)
then 902 if(labmpc(ilmpc(id))(1:6).eq.
'CYCLIC') cycle
907 & coefmpc,nmpc,ikmpc,ilmpc,mpcfree,rcs,zcs,ics,
908 & nr,nz,rcs0,zcs0,labmpc,
909 & mcs,triangulation,csab,xn,yn,zn,phi,noded,
910 & ncsnodes,rcscg,rcs0cg,zcscg,zcs0cg,nrcg,
911 & nzcg,jcs,lcs,kontri,straight,ne,ipkon,kon,lakon,
912 & ifacetet,inodface,ncounter,jobnamec,vold,cfd,mi,
920 if(k.ge.ialset(i-1))
exit 928 call nident(ikmpc,idof,nmpc,id)
930 if(ikmpc(id).eq.idof)
then 931 if(labmpc(ilmpc(id))(1:6).eq.
'CYCLIC') cycle
936 & coefmpc,nmpc,ikmpc,ilmpc,mpcfree,rcs,zcs,ics,
937 & nr,nz,rcs0,zcs0,labmpc,
938 & mcs,triangulation,csab,xn,yn,zn,phi,noded,
939 & ncsnodes,rcscg,rcs0cg,zcscg,zcs0cg,nrcg,
940 & nzcg,jcs,lcs,kontri,straight,ne,ipkon,kon,lakon,
941 & ifacetet,inodface,ncounter,jobnamec,vold,cfd,mi,
950 if(ncounter.ne.0)
then 951 write(*,*)
'*WARNING reading *CYCLIC SYMMETRY MODEL:' 952 write(*,*)
' for at least one dependent' 953 write(*,*)
' node in a cyclic symmetry definition no ' 954 write(*,*)
' independent counterpart was found.' 955 write(*,*)
' Failed nodes are stored in file ' 956 write(*,*)
' WarnNodeMissCyclicSymmetry.nam' 965 call isortii(ics,nr,ncsnodes,kflag)
966 cs(4,mcs)=ncsnodes+0.5
973 csab(4)=2.d0*csab(1)-csab(4)
974 csab(5)=2.d0*csab(2)-csab(5)
975 csab(6)=2.d0*csab(3)-csab(6)
982 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
983 & ipoinp,inp,ipoinpc)
subroutine generatecycmpcs(tolloc, co, nk, ipompc, nodempc, coefmpc, nmpc, ikmpc, ilmpc, mpcfree, rcs, zcs, ics, nr, nz, rcs0, zcs0, labmpc, mcs, triangulation, csab, xn, yn, zn, phi, noded, ncsnodes, rcscg, rcs0cg, zcscg, zcs0cg, nrcg, nzcg, jcs, lcs, kontri, straight, ne, ipkon, kon, lakon, ifacetet, inodface, ncounter, jobnamec, vold, cfd, mi, indepset)
Definition: generatecycmpcs.f:26
static double * z1
Definition: filtermain.c:48
#define max(a, b)
Definition: cascade.c:32
static double * x1
Definition: filtermain.c:48
subroutine isortii(ix, iy, n, kflag)
Definition: isortii.f:6
static double * dist
Definition: radflowload.c:42
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21
subroutine nident(x, px, n, id)
Definition: nident.f:26
subroutine dsort(dx, iy, n, kflag)
Definition: dsort.f:6
subroutine near2d(xo, yo, x, y, nx, ny, xp, yp, n, neighbor, k)
Definition: near2d.f:20