C CUCALB    SOURCE    CHAT      07/10/22    21:15:37     5921
      SUBROUTINE CUCALB(BKSIP,XNOE,B,AJAC)
      IMPLICIT REAL*8(A-H,O-Z)
      IMPLICIT INTEGER (I-N)

*
*     ------------------------------------------------------------------
*      CALCUL DE LA MATRICE B AU POINT D INTEGRATION DONNNE
*
*                                                    H. BUNG     06-98
*     ------------------------------------------------------------------
*
*  ENTREES :
*     XNOE(24) : COORDONNEES DES NOEUDS
*     IPINT      : NO DU POINT D INTEGRATION
*     MOT        : NOM DE L ELEMENT FINI
*  SORTIE
*     B(NBLIB,NBN) : MATRICE B
*     AJAC         : JACOBIEN
*
*
      DIMENSION XNOE(24),BKSIP(3,8),B(3,8)

*      REAL *8 XNOE(24),BKSIP(3,8)
*      REAL *8 B(3,8),AJAC
*
*----   VARIABLES LOCALES
*
*      REAL *8 DJ(3,3),UJ(3,3)
*      INTEGER  LRET,I,J,K,NBN
       DIMENSION DJ(3,3),UJ(3,3)
*
*      REAL *8  ZER, UN
*
      NBN=8
      ZER=0D0
      UN=1.D0
*
*---   DJ = BKSIP * TRANSPOSE(XNOE)
*
      DO I=1,3
        DO J=1,3
        DJ(I,J) = 0.
        END DO
      END DO
      DO I=1,3
        DO J=1,3
           DO K=1,NBN
C             DJ(J,I)=DJ(J,I)+BKSIP(J,K)*XNOE(I,K)
             DJ(J,I)=DJ(J,I)+BKSIP(J,K)*XNOE((K-1)*3+I)
           END DO
        END DO
      END DO
*
*-----   UJ(J,I)  MATRICE INVERSE DE DJ(J,I)
*

      CALL INV33(DJ,UJ,AJAC,LRET)
C TEST SI ELEMENT TROP DEFORME: CROISEMENT
      AJAC=ABS(AJAC)
*
*-----   MATRICE ( B ) = UJ * BKSIP
*
      DO I=1,3
         DO J=1,NBN
         B(I,J)=0.
         END DO
      END DO
      DO K=1,3
        DO J=1,3
          DO I=1,NBN
            B(J,I)=B(J,I)+UJ(J,K)*BKSIP(K,I)
          END DO
        END DO
      END DO
*
      END


