C RCDST     SOURCE    CHAT      05/01/13    02:46:04     5004
       SUBROUTINE RCDST(XE,NSTRS,LRE,DDHOMU,HS4,HS5,HS6,
     1                  REL,BGENE,IOP)
*
*       CALCUL LA MATRICE B ET LA MATRICE DE RIGIDITE
*       RELATIVE AUX CISAILLEMENTS TRANSVERSES
*
************************************************************************
*
* ENTREES :
*
*     XE : COORDONNEES DES NOEUDS
* EPAIST :EPAISSEUR
* NSTRS  :NOMBRE DE COMPOSANTES DE CONTRAINTES
*   LRE  :NOMBRE DE DEGRES DE LIBERTE
* DDHOMU :MATRICE DE HOOKE
*  OP    := 0 LA SORTIE EST LA MATRICE DE RIGIDITE
*         = 1 LA SORTIE EST LA MATRICE B
*
* SORTIES :
*
*  HS4,HS5,HS6 : LES FONCTIONS QUI RELIE LES TERMES (BETA)SK A {U}
*  REL   :MATRICE DE RIGIDITE
*  BGENE :MATRICE DE B
*
* AUTEUR :P.DOWLATYARI JUILLET 91
************************************************************************
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      DIMENSION XE(3,*),DDHOMU(NSTRS,*),HS4(*),HS5(*)
      DIMENSION HS6(*),REL(LRE,*),BGENE(NSTRS,*)
      DIMENSION SX(3),SY(3),RL(3),EXX(3),EYY(3)
      DIMENSION  DCIS(2,2),EKCIS(9,9),BCISA(2,9),HFX(9),HFY(9)
      DIMENSION  ASS(6),BSS(6),AXX(3),BXX(3),AYY(3),BYY(3)
*
*
      DO 10 K=4,6
       IF(K.EQ.4)THEN
         IJ=1
         I=2
         J=3
       ELSEIF(K.EQ.5)THEN
         IJ=2
          I=3
          J=1
        ELSE
         IJ=3
          I=1
          J=2
        ENDIF
       SX(IJ)=XE(1,I)-XE(1,J)
       SY(IJ)=XE(2,I)-XE(2,J)
       RL(IJ)=SQRT(SX(IJ)*SX(IJ)+SY(IJ)*SY(IJ))
       EXX(IJ)=-SX(IJ)/RL(IJ)
       EYY(IJ)=-SY(IJ)/RL(IJ)
  10   CONTINUE
       AIR=ABS(0.5D0*(SX(1)*SY(2)-SX(2)*SY(1)))
*
      CALL CISAF(XE,EXX,EYY,DDHOMU,AIR,ASS,AXX,
     1             AYY,BSS,BXX,BYY)
*
      CALL CISAR(ASS,BSS,AXX,AYY,BXX,BYY,RL,EXX,EYY,
     1             HS4,HS5,HS6,HFX,HFY)
*
        DO 20 IC=1,9
          BCISA(1,IC)=HFX(IC)
          BCISA(2,IC)=HFY(IC)
  20    CONTINUE
*
        IF(IOP.EQ.0)THEN
          DCIS(1,1)=DDHOMU(7,7)
          DCIS(1,2)=DDHOMU(7,8)
          DCIS(2,1)=DDHOMU(8,7)
          DCIS(2,2)=DDHOMU(8,8)
*
          CALL ZERO(EKCIS,9,9)
          CALL BDBST(BCISA,AIR,DCIS,9,2,EKCIS)
*
*     REMPLISSAGE DANS REL
*
           DO 30 IL=1,9
             IL1=(IL-1)/3
             IL2=IL+3*IL1+2
               DO 30 IC=1,9
                 IC1=(IC-1)/3
                 IC2=IC+IC1*3+2
                 REL(IL2,IC2)=EKCIS(IL,IC)
  30        CONTINUE
        ELSE
*
*     REMPLISSAGE DANS BGENE
*
        DO 40 IL=1,2
          IL1=IL+6
          DO 40 IC=1,9
             IC1=(IC-1)/3
             IC2=IC1*3+IC+2
             BGENE(IL1,IC2)=BCISA(IL,IC)
 40     CONTINUE
        ENDIF
*
         RETURN
         END

