C KSYM      SOURCE    CHAT      05/01/13    01:09:27     5004
      SUBROUTINE KSYM (IES,IES1,A1,U1,A2,U2,UA,UN)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
C----------------------------------------------------------------------
C     CALCUL DES SYMETRIQUES PAR RAPPORT A UN AXE(2D) OU UN PLAN (3D)
C              A1 : SOMMETS---> A2
C              U1 : NORMALE--->U2
C     L'AXE OU LE PLAN EST DEFINIPAR UN POINT ET UN VECTEUR NORMAL
C     IES1 = IES+1
C     LE NOMBRE DE SOMMETS EN 2D OU 3D EST EGAL A IES
C----------------------------------------------------------------------
C
      DIMENSION A1(IES,IES),A2(IES,IES)
      DIMENSION U1(IES1),U2(IES1),UA(IES),UN(IES)
C
C  VECTEUR NORMAL
C
      VN = 0.
      DO 1 K=1,IES
      VN = VN +U1(K)*UN(K)
 1    CONTINUE
      DO 2 K=1,IES
      U2(K) = U1(K) - 2*VN*UN(K)
 2    CONTINUE
C
C  SOMMETS
C
      DO 30 NS = 1,IES
      VN = 0.
      DO 10 K=1,IES
      VN = VN +(A1(K,NS)-UA(K))*UN(K)
 10   CONTINUE
      DO 20 K=1,IES
      A2(K,NS) = UA(K) + (A1(K,NS)-UA(K)) - 2*VN*UN(K)
 20   CONTINUE

 30   CONTINUE
C
      U2(IES1)=0.
      DO 40 K=1,IES
      U2(IES1) = U2(IES1)- U2(K)*A2(K,1)
 40   CONTINUE
C
C
      RETURN
      END

