5 &(x,y,xr,yr,xmail,ymail,npmax,nbor,kp1bor,nptfr,dm,ok)
60 DOUBLE PRECISION,
INTENT(IN) :: X,Y,XR,YR,DM
61 INTEGER,
INTENT(IN) :: NPTFR,NPMAX
62 DOUBLE PRECISION,
INTENT(IN) :: XMAIL(npmax),YMAIL(npmax)
63 INTEGER,
INTENT(IN) :: NBOR(nptfr),KP1BOR(nptfr)
64 LOGICAL,
INTENT(INOUT) :: OK
70 DOUBLE PRECISION DM2,XA,YA,XB,YB,DET,ALFA,BETA,EPS,DISTA2,DISTB2
85 xb = xmail(nbor(kp1bor(ka)))
86 yb = ymail(nbor(kp1bor(ka)))
88 det = (xr-x)*(ya-yb) - (yr-y)*(xa-xb)
90 IF(abs(det).LT.1.d-6) cycle
92 alfa = ( (xa-x)*(ya-yb) - (ya-y)*(xa-xb) ) / det
93 beta = ( (xr-x)*(ya-y ) - (yr-y)*(xa-x ) ) / det
96 IF(alfa.GE.eps.AND.alfa.LE.1.d0-eps.AND.
97 & beta.GE.eps.AND.beta.LE.1.d0-eps)
THEN 104 dista2 = (xr-xa)**2 + (yr-ya)**2
105 distb2 = (xr-xb)**2 + (yr-yb)**2
106 IF(dista2.LT.dm2.OR.distb2.LT.dm2)
THEN
subroutine crosfr(X, Y, XR, YR, XMAIL, YMAIL, NPMAX, NBOR, KP1BOR, NPTFR, DM, OK)