C BLMAST    SOURCE    CHAT      05/01/12    21:40:59     5004
      SUBROUTINE BLMAST(IGAU,MFR,NBNO,LRE,IFOU,NDDL,NN,XEL,
     1                     SHPTOT,SHP,BLX,BLY,BLZ,BLT,DJAC)
C=======================================================================
C
C    CALCULE LES MATRICES BL POUR LES ELEMENTS LIQUIDES
C
C          ROUTINE FORTRAN PUR
C=======================================================================
C  INPUT
C     IGAU=NUMERO DU POINT DE GAUSS
C     MFR =NUMERO DE LA FORMULATION
C     NBNO=NOMBRE DE NOEUDS
C     LRE =NOMBRE DE COLONNES DE LA MATRICE B
C     IFOU=IFOUR DE CCOPTIO
C     NDDL=NOMBRE DE DEGRES DE LIBERTE
C     NN  =NUMERO DU MODE DE FOURIER
C     XEL =COORDONNEES LOCALES DE L ELEMENT
C     SHPTOT(6,NBNO,NBGAU)=FONCTIONS DE FORMES ET DERIVEES
C  ZONE DE TRAVAIL
C     SHP(6,NBNO)=TABLEAU DE TRAVAIL
C  OUTPUT
C     DJAC=JACOBIEN
C     BLX = MATRICE CONTENANT LES DERIVEES DES FONCTIONS DE FORME / X
C     BLY = MATRICE CONTENANT LES DERIVEES DES FONCTIONS DE FORME / Y
C     BLZ = MATRICE CONTENANT LES DERIVEES DES FONCTIONS DE FORME / Z
C     BLT = MATRICE CONTENANT LES DERIVEES DES FONCTIONS DE FORME / TETA
C=======================================================================
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      DIMENSION XEL(3,1),SHP(6,1),SHPTOT(6,NBNO,1)
      DIMENSION BLX(NDDL,1),BLY(NDDL,1),BLZ(NDDL,1),BLT(NDDL,1)
      CALL ZERO(BLX,NDDL,LRE)
      CALL ZERO(BLY,NDDL,LRE)
      CALL ZERO(BLZ,NDDL,LRE)
      CALL ZERO(BLT,NDDL,LRE)
      IFR=IFOU+4
      DIM3=1.D0
      RR=0.D0
      GOTO (666,10,10,20,30,40) ,IFR
C
C     ELEMENTS LIQUIDES BIDIM   CONTRAINTES PLANES OU DEFRMTNS PLANES
C
  10  CONTINUE
      DO 101 NP=1,NBNO
      SHP(2,NP)=SHPTOT(2,NP,IGAU)
      SHP(3,NP)=SHPTOT(3,NP,IGAU)
  101 CONTINUE
      CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,2,DIM3,RR,DJAC)
      K=1
      DO 102 NP=1,NBNO
      BLX(2,K+1)=SHP(2,NP)
      BLY(2,K+1)=SHP(3,NP)
  102 K=K+2
      GOTO  666
C
C     ELEMENTS LIQUIDES BIDIM AXISYMETRIQUE
C
  20  CONTINUE
      DO 201 NP=1,NBNO
      SHP(1,NP)=SHPTOT(1,NP,IGAU)
      SHP(2,NP)=SHPTOT(2,NP,IGAU)
      SHP(3,NP)=SHPTOT(3,NP,IGAU)
  201 CONTINUE
      CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,2,DIM3,RR,DJAC)
      K=1
      DO 202 NP=1,NBNO
      BLX(2,K+1)=SHP(2,NP)
      BLY(2,K+1)=SHP(3,NP)
  202 K=K+2
      GOTO  666
C
C     ELEMENTS LIQUIDES BIDIM FOURIER
C
  30  CONTINUE
      DO 301 NP=1,NBNO
      SHP(1,NP)=SHPTOT(1,NP,IGAU)
      SHP(2,NP)=SHPTOT(2,NP,IGAU)
      SHP(3,NP)=SHPTOT(3,NP,IGAU)
  301 CONTINUE
      CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,2,DIM3,RR,DJAC)
      K=1
      DO 302 NP=1,NBNO
      BLX(2,K+1)= SHP(2,NP)
      BLY(2,K+1)= SHP(3,NP)
      BLT(2,K+1)= -SHP(1,NP)*NN/RR
  302 K=K+2
      GOTO  666
C
C     ELEMENTS LIQUIDES TRIDIM
C
  40  CONTINUE
      DO 401 NP=1,NBNO
      SHP(2,NP)=SHPTOT(2,NP,IGAU)
      SHP(3,NP)=SHPTOT(3,NP,IGAU)
      SHP(4,NP)=SHPTOT(4,NP,IGAU)
  401 CONTINUE
      CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,3,DIM3,RR,DJAC)
      K=1
      DO 402 NP=1,NBNO
      BLX(2,K+1)=SHP(2,NP)
      BLY(2,K+1)=SHP(3,NP)
      BLZ(2,K+1)=SHP(4,NP)
  402 K=K+2
      GOTO 666
C
 666  CONTINUE
      RETURN
      END



