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


*      SUBROUTINE CUB_KSI_KP(IFACE,BKSI)
C                ELEMENT SHB8
C  DEDIEE AU CALCUL DE KP: POUR LES 4 NOEUDS DE LA FACE PRESSION
C
C     ------------------------------------------------------------------
C
C        DERIVEE P/R VARIABLES CANONIQUE AUX POINTS D INTEGRATION
C         POUR LES ELEMENTS CUBES A 8 NOEUDS
C                                                   H. BUNG     03-93
C                                        CORRIGE PAR A. LEGAY POUR 4 NOEUDS
C     ------------------------------------------------------------------
C
C
C   ENTREES
C     IFACE   : =1 FACE INFERIEURE
C              =2 FACE SUPERIEURE
C   SORTIES :
C     BKSI(3,8) : LES DERIVEES
C
*      IMPLICIT NONE
C
C    VARIABLES GLOBALES
C
*      INTEGER IFACE
*      REAL *8 BKSI(3,4)
      DIMENSION BKSI(3,4)
C
C    VARIABLES LOCALES
C
*      REAL *8 XPOINT(4,3),ZI,UNS8
      DIMENSION XPOINT(4,3)
      UNS8=0.125D0
C
      XPOINT(1,1)=-1.
      XPOINT(1,2)=-1.
      XPOINT(2,1)=1.
      XPOINT(2,2)=-1.
      XPOINT(3,1)=1.
      XPOINT(3,2)=1.
      XPOINT(4,1)=-1.
      XPOINT(4,2)=1.
      IF(IFACE.EQ.1)THEN
         XPOINT(1,3)=-1.
         XPOINT(2,3)=-1.
         XPOINT(3,3)=-1.
         XPOINT(4,3)=-1.
         ZI=-1.
      ENDIF
      IF(IFACE.EQ.2)THEN
         XPOINT(1,3)=1.
         XPOINT(2,3)=1.
         XPOINT(3,3)=1.
         XPOINT(4,3)=1.
         ZI=+1.
      ENDIF
      IF(IFACE.NE.1.AND.IFACE.NE.2) THEN
         WRITE(6,*)'******** FACE NON DEFINIE DANS CUB_KSI_KP *******'
         STOP
      ENDIF
C
      BKSI(1,1) = UNS8*(1+XPOINT(1,3)*ZI)*XPOINT(1,1)
      BKSI(1,2) = UNS8*(1+XPOINT(2,3)*ZI)*XPOINT(2,1)
      BKSI(1,3) = UNS8*(1+XPOINT(3,3)*ZI)*XPOINT(3,1)
      BKSI(1,4) = UNS8*(1+XPOINT(4,3)*ZI)*XPOINT(4,1)
C
      BKSI(2,1) = UNS8*(1+XPOINT(1,3)*ZI)*XPOINT(1,2)
      BKSI(2,2) = UNS8*(1+XPOINT(2,3)*ZI)*XPOINT(2,2)
      BKSI(2,3) = UNS8*(1+XPOINT(3,3)*ZI)*XPOINT(3,2)
      BKSI(2,4) = UNS8*(1+XPOINT(4,3)*ZI)*XPOINT(4,2)
C
      BKSI(3,1) = UNS8*XPOINT(1,3)
      BKSI(3,2) = UNS8*XPOINT(2,3)
      BKSI(3,3) = UNS8*XPOINT(3,3)
      BKSI(3,4) = UNS8*XPOINT(4,3)
      RETURN
      END



