C TUYCAG    SOURCE    CHAT      05/01/13    03:57:06     5004
      SUBROUTINE TUYCAG(CARAC,KERRE,ICAS)
C-----------------------------------------------------------------------
C  ROUTINE DE CALCUL DES CARACTERISTIQUES GEOMETRIQUES DE L ELEMENT DE
C  TUYAU DROIT OU COUDE - D'APRES TUYCAR (APPELE PAR GYRO2)
C
C  ENTREE
C          CARAC   TABLEAU DE CARACTERISTIQUES GEOMETRIQUES
C                  DONNEES PAR L UTILISATEUR
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    COMBESCURE Didier Mars 2003
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(CARAC(4)).LT.1.D-9.AND.
     1     ABS(CARAC(5)).LT.1.D-9.AND.ABS(CARAC(6)).LT.1.D-9) THEN
         MOTERR(1:4)='VECT'
         MOTERR(5:8)='CARA'
         KERRE=77
         RETURN
      ENDIF
C
C  VECTEUR LOCAL
C
      CARAC(8)=CARAC(5)
      CARAC(9)=CARAC(6)
      CARAC(10)=CARAC(7)
C
C  VITESSE DE ROTATION
C
      CARAC(7)=CARAC(4)
      IF(ICAS.EQ.0) RETURN
C
C  CALCUL DES SECTION ET INERTIES
C  ON MET LES SECTIONS REDUITES A 0.D0
C
      CARAC(5)=0.D00
      CARAC(6)=0.D00
      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(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






