5 &(x,y,som,ikle,indic,nelem,nelmax,npoin,nsom,
projec)
32 INTEGER,
INTENT(INOUT) :: NELEM
33 INTEGER,
INTENT(IN) :: NELMAX,NPOIN,NSOM
34 INTEGER,
INTENT(INOUT) :: IKLE(nelmax,3),INDIC(npoin)
35 DOUBLE PRECISION,
INTENT(INOUT) :: X(npoin),Y(npoin)
36 DOUBLE PRECISION,
INTENT(IN) :: SOM(10,2)
37 LOGICAL,
INTENT(IN) :: PROJEC
41 INTEGER IELEM,IPOIN,ISOM,IDP,I1,I2,I3
42 DOUBLE PRECISION DX,DY,A1,A2,A3
50 dx = som(isom+1,1) - som(isom,1)
51 dy = som(isom+1,2) - som(isom,2)
60 IF (dx*(y(ipoin)-som(isom,2)).GE.dy*(x(ipoin)-som(isom,1)))
66 i1 = indic(ikle(ielem,1))
67 i2 = indic(ikle(ielem,2))
68 i3 = indic(ikle(ielem,3))
69 IF (i1.EQ.0.OR.i2.EQ.0.OR.i3.EQ.0)
THEN 70 IF (i1.EQ.1) indic(ikle(ielem,1)) = 2
71 IF (i2.EQ.1) indic(ikle(ielem,2)) = 2
72 IF (i3.EQ.1) indic(ikle(ielem,3)) = 2
73 ikle(ielem,1) = ikle(nelem,1)
74 ikle(ielem,2) = ikle(nelem,2)
75 ikle(ielem,3) = ikle(nelem,3)
80 IF (ielem.NE.nelem+1)
GOTO 20
97 IF (f1.AND.f2.AND.f3)
THEN 98 ikle(ielem,1) = ikle(nelem,1)
99 ikle(ielem,2) = ikle(nelem,2)
100 ikle(ielem,3) = ikle(nelem,3)
104 IF (dx*(x(i2)-x(i1))+dy*(y(i2)-y(i1)).LE.0.d0)
THEN 110 IF (dx*(x(i3)-x(i2))+dy*(y(i3)-y(i2)).LE.0.d0)
THEN 116 IF (dx*(x(i1)-x(i3))+dy*(y(i1)-y(i3)).LE.0.d0)
THEN 123 IF (ielem.NE.nelem+1)
GOTO 35
132 a1 = 1.d0 / (dx*dx + dy*dy)
133 a2 = a1 * (som(isom,1)*som(isom+1,2) -
134 & som(isom,2)*som(isom+1,1) )
137 ipoin = ikle(ielem,idp)
138 IF (indic(ipoin).EQ.2)
THEN 139 a3 = a1*(x(ipoin)*dx+y(ipoin)*dy)
140 x(ipoin) = dx*a3 + dy*a2
141 y(ipoin) = dy*a3 - dx*a2
subroutine projec(X, Y, ZF, XRELV, YRELV, ZRELV, NBAT, NBOR, NPTFR, NFOND, NBFOND, FOND, DM, FONTRI, CORTRI, MAILLE, NGEO, KP1BOR)