C TRIHR2    SOURCE    CHAT      05/01/13    03:47:25     5004
      SUBROUTINE TRIHR2(XGENE,DJAC,VKL1,VKL2,LRE,NST,NBNO,IFOU,REL)
C=======================================================================
C
C      INTEGRE LE PRODUIT NT KL N
C          POUR LES ELEMENTS HOMOGENEISES TRIH ET TRH6
C
C      ROUTINE FORTRAN PUR
C
C=======================================================================
C     NBDL = NOMBRE DE DDL PAR NOEUD
C INPUT
C     XGENE(NBNO,NST)=MATRICE N
C     DJAC =JACOBIEN
C     VKL1=(COEFPR**2)/(RHO*C**2)*SFLU/SCEL
C     VKL2= EI/((EPS**2)*SCEL)
C     LRE=TAILLE DE LA MATRICE DE RIGIDITE
C     NST=NOMBRE DE COLONNES DE LA MATRICE XGENE
C     NBNO=NOMBRE DE NOEUDS DE L ELEMENT CONSIDERE
C     IFOU=IFOUR DE CCOPTIO
C OUTPUT
C     REL=MATRICE DE RIGIDITE
C=======================================================================
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
      DIMENSION REL(LRE,*),XGENE(NBNO,*)
      NBDL=LRE/NBNO
C
C     TERMES EN P*P
C
      IX1=0
      IY1=0
      DO   300 IX=1,LRE ,NBDL
      IX1=IX1 + 1
      DO   400 IY=1,IX  ,NBDL
      IY1=IY1 + 1
      REL(IX,IY) = REL(IX,IY) + DJAC*VKL1*XGENE(IX1,1)*XGENE(IY1,1)
      REL(IY,IX) = REL(IX,IY)
  400 CONTINUE
      IY1=0
  300 CONTINUE
C
C     CAS     PLAN    ( NST  = 1 )
C
      IF(NST.EQ.1) THEN
C
C     TERMES EN (UX,UY)*(UX,UY)
C
      IX1=0
      IY1=0
      DO   301 IX=3,LRE ,NBDL
      IX1=IX1 + 1
      DO   401 IY=3,IX  ,NBDL
      IY1=IY1 + 1
      REL(IX,IY) = REL(IX,IY) + DJAC*VKL2*XGENE(IX1,1)*XGENE(IY1,1)
      REL(IY,IX) = REL(IX,IY)
      REL(IX+1,IY+1) = REL(IX,IY)
      REL(IY+1,IX+1) = REL(IX,IY)
  401 CONTINUE
      IY1=0
  301 CONTINUE
C
      ELSE
C
C     CAS     AXISYMETRIQUE  OU  FOURIER   (  NST  = 3  )
C
C     TERMES EN (UR,RT )*(UR,RT )
C
      IX1=0
      IY1=0
      DO   302 IX=3,LRE ,NBDL
      IX1=IX1 + 1
      DO   402 IY=3,IX  ,NBDL
      IY1=IY1 + 1
      REL(IX,IY) = REL(IX,IY) + DJAC*VKL2*XGENE(IX1,2)*XGENE(IY1,2)
      REL(IX+1,IY) = REL(IX+1,IY) + DJAC*VKL2*XGENE(IX1,3)*XGENE(IY1,2)
      REL(IX,IY+1) = REL(IX,IY+1) + DJAC*VKL2*XGENE(IX1,2)*XGENE(IY1,3)
      REL(IX+1,IY+1) = REL(IX+1,IY+1) + DJAC*VKL2*XGENE(IX1,3)*
     #XGENE(IY1,3)
      REL(IY,IX) = REL(IX,IY)
      REL(IY,IX+1) = REL(IX+1,IY)
      REL(IY+1,IX) = REL(IX,IY+1)
      REL(IY+1,IX+1) = REL(IX+1,IY+1)
  402 CONTINUE
      IY1=0
  302 CONTINUE
C
      IF(IFOU.EQ.1)  THEN
C
C     TERMES EN (UT,RR )*(UT,RR )
C     NON  NULS  QUE  DANS LE  CAS  FOURIER
C
      DO   303 IX=5,LRE ,NBDL
      DO   403 IY=5,LRE ,NBDL
      REL(IX,IY) = REL(IX-2,IY-2)
      REL(IX+1,IY) = REL(IX-1,IY-2)
      REL(IX,IY+1) = REL(IX-2,IY-1)
      REL(IX+1,IY+1) = REL(IX-1,IY-1)
  403 CONTINUE
  303 CONTINUE
      ENDIF
      ENDIF
      RETURN
      END


