C COUPEJ    SOURCE    PV        20/03/24    21:16:12     10554          
      SUBROUTINE COUPEJ(XYZ1,XYZ2,XYZ3,XYZ4,DIS1,DIS2,DIS3,DIS4,
     >                  MELEME,IELEM,JCOLOR)
C
C     Esclave de COUPE
C     Ajout de 2 elements correspondant a la coupe par un cote
C           du tetraedre par un plan. XYZ1, DIS1 et 2 sont les ccordonnees
C           de la pointe et la distance au plan pour les points du premier
C           segment. 3 et 4  correspondent aux autres points
C
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)

-INC PPARAM
-INC CCOPTIO
-INC SMCOORD
-INC SMELEME
C
      DIMENSION XYZ1(4),XYZ2(4),XYZ3(4),XYZ4(4)
C
      segact mcoord*mod
      NBPTI=nbpts
      NBPTS=NBPTI+4
      SEGADJ,MCOORD
C
      COEFF=ABS(DIS1)/(ABS(DIS1)+ABS(DIS3))
      NBPTI=NBPTI+1
      IREF=(NBPTI-1)*4
      DO IE1=1,4
        XCOOR(IREF+IE1)=XYZ1(IE1)+COEFF*(XYZ3(IE1)-XYZ1(IE1))
      ENDDO
C
      COEFF=ABS(DIS1)/(ABS(DIS1)+ABS(DIS4))
      NBPTI=NBPTI+1
      IREF=(NBPTI-1)*4
      DO IE1=1,4
        XCOOR(IREF+IE1)=XYZ1(IE1)+COEFF*(XYZ4(IE1)-XYZ1(IE1))
      ENDDO
C
      COEFF=ABS(DIS2)/(ABS(DIS2)+ABS(DIS3))
      NBPTI=NBPTI+1
      IREF=(NBPTI-1)*4
      DO IE1=1,4
        XCOOR(IREF+IE1)=XYZ2(IE1)+COEFF*(XYZ3(IE1)-XYZ2(IE1))
      ENDDO
C
      COEFF=ABS(DIS2)/(ABS(DIS2)+ABS(DIS4))
      NBPTI=NBPTI+1
      IREF=(NBPTI-1)*4
      DO IE1=1,4
        XCOOR(IREF+IE1)=XYZ2(IE1)+COEFF*(XYZ4(IE1)-XYZ2(IE1))
      ENDDO
C
      NBPTI=NBPTI-4
      IELEM=IELEM+1
      NUM(1,IELEM)=NBPTI+1
      NUM(2,IELEM)=NBPTI+2
      NUM(3,IELEM)=NBPTI+4
      ICOLOR(IELEM)=JCOLOR
      IELEM=IELEM+1
      NUM(1,IELEM)=NBPTI+1
      NUM(2,IELEM)=NBPTI+4
      NUM(3,IELEM)=NBPTI+3
      ICOLOR(IELEM)=JCOLOR
C
      RETURN
      END


 
