C KAPCU1    SOURCE    CB215821  16/04/21    21:17:25     8920
      SUBROUTINE  KAPCU1(NES,X,A,NR,XR,IFACE,KFACE,KAC)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
      DIMENSION X(NES),A(NES),XA(3),XR(NES),KFACE(2)
C
C Calcul des facteurs de forme en 3D
C Sp appele par KPROJA
C     CAS DE 2 FACES PARALLELES: DIRECTION KAC
C
C
      NR2 = NR/2
      EPS=1E-5
      XAB = -EPS
      A1 = -1E-10

        DO 1  IES = 1,NES
         XA(IES) = X(IES)-A(IES)
         A2=ABS(XA(IES))
         IF(A2.GT.A1) THEN
           A1 = A2
           I = IES
         ENDIF
 1      CONTINUE
C

      IF (I.EQ.KAC) THEN
       DO 2 IES = 1,NES
         A2 = ABS(XA(IES))
         ERR = ABS(1.-A2/A1)
         IF (IES.NE.I.AND.ERR.LT.0.01) THEN
         I = IES
         GOTO 3
         ENDIF
 2     CONTINUE
      ENDIF
C
 3    CONTINUE
C
      KS = KSIG(XA(I),EPS)
C
      IF (I.EQ.1) THEN
           XR(2) = XA(2)/A1
           XR(3) = XA(3)/A1
           I1 = 1 + INT(NR2*(1+XR(2)))
           I2 = 1 + INT(NR2*(1+XR(3)))
           KFACE(1) = MIN0(NR,I1)
           KFACE(2) = MIN0(NR,I2)
           IF(KS.EQ.1) THEN
           IFACE= 1
           XR(1) = 1.
           ELSE
           IFACE = 2
           XR(1) = -1.
           ENDIF
           RETURN
      ENDIF
      IF (I.EQ.2) THEN
           XR(1) = XA(1)/A1
           XR(3) = XA(3)/A1
           I1 = 1 + INT(NR2*(1+XR(1)))
           I2 = 1 + INT(NR2*(1+XR(3)))
           KFACE(1) = MIN0(NR,I1)
           KFACE(2) = MIN0(NR,I2)
           IF(KS.EQ.1) THEN
           IFACE    = 3
           XR(2) =  1.
           ELSE
           IFACE    = 4
           XR(2) = -1.
           ENDIF
           RETURN
      ENDIF
      IF (I.EQ.3) THEN
           XR(1) = XA(1)/A1
           XR(2) = XA(2)/A1
           I1 = 1 + INT(NR2*(1+XR(1)))
           I2 = 1 + INT(NR2*(1+XR(2)))
           KFACE(1) = MIN0(NR,I1)
           KFACE(2) = MIN0(NR,I2)
           IF(KS.EQ.1) THEN
           IFACE    = 5
           XR(3) =  1.
           ELSE
           IFACE    = 6
           XR(3) = -1.
           ENDIF
           RETURN
      ENDIF
      END





