C KSDEC     SOURCE    CB215821  25/04/22    21:15:11     12245          
      SUBROUTINE KSDEC  (DR,A,D,S,IES,NS,N,GG,SS)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
C
C Calcul des facteurs de forme en 3D
C Sp appele par KCREPA (decoupage des faces)
C
C     DR        : LONGUEUR DE REFERENCE POUR LE DECOUPAGE
C     A , D , S : SOMMETS, LONGUEURS DES COTES ORDONNES, SURFACES
C     N         : NOMBRE DE SOUS-ELEMENTS
C     GG(IES,N) : CENTRE DE GRAVITE
C     SS(N)     : SURFACE RAPPORTEE A LA SURFACE 'S' DE L'ELEMENT
C
      DIMENSION A(IES,NS),D(NS),GG(IES,1),SS(1)
      DIMENSION X1(3),X2(3)
C     WRITE(6,*) ' KSDEC DR ',DR
C     WRITE(6,*) ' A1 ',A(1,1),A(2,1),A(3,1)
C     WRITE(6,*) ' A2 ',A(1,2),A(2,2),A(3,2)
C     WRITE(6,*) ' A3 ',A(1,3),A(2,3),A(3,3)
      AL = 1./2.
      N = 0
      DT=0.
      N3 = INT(D(3)/DR) + 1
C     WRITE(6,*) ' N3 ',N3
      DO 1 I=1,N3
         X = AL/N3 +(I-1.)/N3
C        WRITE(6,*) ' I X ',I,X
         DI=0.
         DO 11 K=1,IES
         X1(K)= A(K,3)*X +A(K,1)*(1.-X)
         X2(K)= A(K,3)*X +A(K,2)*(1.-X)
C        WRITE(6,*) 'M1 M2',X1(K),X2(K)
         DI = DI + (X1(K)-X2(K))*(X1(K)-X2(K))
 11      CONTINUE
         DI=SQRT(DI)
C        WRITE(6,*) ' DI ',DI
         DT = DT + DI

         NI = INT(DI/DR) + 1
C        WRITE(6,*) ' NI ',NI
         DO 2 J=1,NI
            N = N + 1
C           WRITE(6,*) ' N ',N
            Y = 1./2/NI +(J-1.)/NI
            DO 21 K=1,IES
            GG(K,N)=X1(K)*(1.-Y) + X2(K)*Y
 21         CONTINUE
            SS(N)= DI/NI
C           WRITE(6,*) ' SS ',SS(N)
 2       CONTINUE

 1    CONTINUE

      DO 3 I=1,N
      SS(I)=SS(I)*S/DT
 3    CONTINUE
C     WRITE(6,*) ' NB POINTS ',N
C     WRITE(6,*) ' SURFACES  '
      RETURN
      END
 
