5 &(ip,xp,yp,x,y,np,npoin,ikle,nelem,nelmax)
85 INTEGER,
INTENT(IN) :: NP,NPOIN,NELEM,NELMAX
86 INTEGER,
INTENT(INOUT) :: IP(np)
87 INTEGER,
INTENT(IN) :: IKLE(nelmax,3)
89 DOUBLE PRECISION,
INTENT(IN) :: XP(np),YP(np),X(npoin),Y(npoin)
94 DOUBLE PRECISION X1,Y1,X2,Y2,X3,Y3,A31,A12,A23,DIST2,D2
95 DOUBLE PRECISION XX,YY
117 a31=xp(k)*y3-yp(k)*x3+x3*y1-x1*y3+x1*yp(k)-xp(k)*y1
118 a12=xp(k)*y1-yp(k)*x1+x1*y2-x2*y1+x2*yp(k)-xp(k)*y2
119 a23=xp(k)*y2-yp(k)*x2+x2*y3-x3*y2+x3*yp(k)-xp(k)*y3
120 IF(a31.GT.-1.d-6.AND.a12.GT.-1.d-6.AND.a23.GT.-1.d-6)
THEN 123 d2=(xp(k)-x(ikle(ielem,i)))**2+(yp(k)-y(ikle(ielem,i)))**2
138 IF(ncsize.GT.1) i=
p_max(i)
142 WRITE(
lu,*)
'SPECTRUM OR SOURCE POINT ',k,
' OUTSIDE DOMAIN' 151 IF(dist2.NE.
p_min(dist2))
THEN 162 IF(x(i).EQ.x1.AND.y(i).EQ.y1) ip(k)=i
166 WRITE(
lu,*)
'SOURCE POINT ',k,
'PUT ON POINT' 167 WRITE(
lu,*) x1,
' AND ',y1
168 d2 = sqrt(
p_min(dist2))
169 WRITE(
lu,*)
'LOCATED AT ',d2,
' METRES' 171 IF(k.EQ.np)
WRITE(
lu,*)
subroutine proxim(IP, XP, YP, X, Y, NP, NPOIN, IKLE, NELEM, NELMAX)