C CUBKSI    SOURCE    CHAT      07/10/22    21:15:34     5921
      SUBROUTINE CUBKSI(NPINT,XXG,BKSI)
      implicit real*8(A-H,O-Z)
      implicit integer (I-N)

*      SUBROUTINE CUB_KSI(NPINT,XXG,BKSI)
*
*     ------------------------------------------------------------------
*
*         DERIVEE P/R VARIABLES CANONIQUE AUX POINTS D INTEGRATION
*          POUR LES ELEMENTS CUBES A 8 NOEUDS
*                                                    H. BUNG     03-93
*     ------------------------------------------------------------------
*
*
*   ENTREES
*     NPINT   : NBRE DE  PTS D INTEGRATION
*     XG      : COOR. CANONIQUES DES  PTS D INTEGRATION
*
*   SORTIES :
*     BKSI(3,8,NPINT) : LES DERIVEES
*
*      IMPLICIT NONE
*
*---    VARIABLES GLOBALES
*
*      INTEGER NPINT
*      REAL *8 XG(3,5),XXG(5),GS(8,4)
*      REAL *8 BKSI(3,8,5)
       dimension XG(3,5),XXG(*),GS(8,4),BKSI(3,8,*)

*
*---    VARIABLES LOCALES
*
*      REAL *8 AUX
*      REAL *8 UN,UNS8
*      INTEGER IP,I
       dimension XP(3),XM(3)

      UN=1.D0
      UNS8=0.125D0
*
C MODIF ANTOINE:
C ON REMPLIT LE TABLEAU XG
C
      DO IP=1,NPINT
      XG(1,IP)=0.d0
      XG(2,IP)=0.d0
      XG(3,IP)=XXG(IP)
      END DO
*
*
      DO IP=1,NPINT
*-
        DO  I=1,3
          XP(I) = UN + XG(I,IP)
          XM(I) = UN - XG(I,IP)
        END DO
*-
        AUX= -UNS8*XM(3)
        BKSI(1,1,IP)= AUX*XM(2)
        BKSI(1,2,IP)=-BKSI(1,1,IP)
        BKSI(1,3,IP)=-AUX*XP(2)
        BKSI(1,4,IP)=-BKSI(1,3,IP)
        BKSI(2,1,IP)= AUX*XM(1)
        BKSI(2,2,IP)= AUX*XP(1)
        BKSI(2,3,IP)=-BKSI(2,2,IP)
        BKSI(2,4,IP)=-BKSI(2,1,IP)
        AUX= -UNS8*XP(3)
        BKSI(1,5,IP)= AUX*XM(2)
        BKSI(1,6,IP)=-BKSI(1,5,IP)
        BKSI(1,7,IP)=-AUX*XP(2)
        BKSI(1,8,IP)=-BKSI(1,7,IP)
        BKSI(2,5,IP)= AUX*XM(1)
        BKSI(2,6,IP)= AUX*XP(1)
        BKSI(2,7,IP)=-BKSI(2,6,IP)
        BKSI(2,8,IP)=-BKSI(2,5,IP)
        AUX= -UNS8*XM(2)
        BKSI(3,1,IP)= AUX*XM(1)
        BKSI(3,2,IP)= AUX*XP(1)
        BKSI(3,5,IP)=-BKSI(3,1,IP)
        BKSI(3,6,IP)=-BKSI(3,2,IP)
        AUX= -UNS8*XP(2)
        BKSI(3,3,IP)= AUX*XP(1)
        BKSI(3,4,IP)= AUX*XM(1)
        BKSI(3,7,IP)=-BKSI(3,3,IP)
        BKSI(3,8,IP)=-BKSI(3,4,IP)
*
      END DO
*
      END



