C TUYCAR    SOURCE    AM        13/12/16    21:16:11     7825
      SUBROUTINE TUYCAR(CARAC,CISA,VX,VY,VZ,KERRE,ICAS)
C-----------------------------------------------------------------------
C  ROUTINE DE CALCUL DES CARACTERISTIQUES GEOMETRIQUES DE L ELEMENT DE
C  TUYAU DROIT OU COUDE
C
C  ENTREE
C          CARAC   TABLEAU DE CARACTERISTIQUES GEOMETRIQUES
C                  DONNEES PAR L UTILISATEUR
C    AM  11/12/13  ON PASSE AUSSI LE COEFF DE CISAILLEMENT
C                  ET LES COMPOSANTES DU VECTEUR
C                  POUR POUVOIR UTILISER TUYCAR DANS DIFFERENTES
C                  SITUATIONS
C          ICAS    ON CALCULE PLUS OU MOINS DE CARACTERISTIQUES
C                  SELON LES CAS :
C                  0 = VECTEUR LOCAL
C                  1 = 0 + SECTION + INERTIES NON MODIFIEES
C                  2 = 0 + SECTION + INERTIES MODIFIEES
C
C  SORTIE
C          CARAC   CARACTERISTIQUES DE LA POUTRE EQUIVALENTE AU TUYAU
C          KERRE   CODE D ERREUR  O SI PAS DE PB
C
C    JUIN 85  MILLARD
C-----------------------------------------------------------------------
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
-INC CCREEL

-INC PPARAM
-INC CCOPTIO
*
      DIMENSION CARAC(*)
      KERRE=0
C
C  SI 'RACO' EST PRESENT, IL FAUT UN VECTEUR
C
      IF(CARAC(3).GT.1.D-9.AND.ABS(VX).LT.1.D-9.AND.
     1     ABS(VY).LT.1.D-9.AND.ABS(VZ).LT.1.D-9) THEN
         MOTERR(1:4)='VECT'
         MOTERR(5:8)='CARA'
         KERRE=77
         RETURN
      ENDIF
C
C  VECTEUR LOCAL
C
      CARAC(7)=VX
      CARAC(8)=VY
      CARAC(9)=VZ
      IF(ICAS.EQ.0) RETURN
C
C  CALCUL DES SECTION ET INERTIES
C
C  AM  11/12/13  ON INTRODUIT LE COEFFICIENT CISA COMME DANS TUYKAR
C
      EPAIS=CARAC(1)
      REXT=CARAC(2)
      RINT=REXT-EPAIS
      RACO=CARAC(3)
      XIN=XPI*(REXT**4-RINT**4)*0.25D00
      CARAC(4)=XPI*(REXT**2-RINT**2)
      CARAC(5)=CARAC(4)*0.5D0*CISA
      CARAC(6)=CARAC(5)
      CARAC(1)=2.D00*XIN
      IF(ICAS.EQ.2) GO TO 20
      CARAC(2)=XIN
      CARAC(3)=XIN
      RETURN
 20   CONTINUE
      XK=1.D00
      IF(RACO.EQ.0.D00) GO TO 10
      XLAM=EPAIS*RACO*4.D00/(REXT+RINT)**2
      IF(XLAM.EQ.0.D00) GO TO 999
      XK=1.65D00/XLAM
      IF(XK.LT.1.D00) XK=1.D00
 10   CONTINUE
      CARAC(2)=XIN/XK
      CARAC(3)=CARAC(2)
      RETURN
 999  KERRE=1
      RETURN
      END






