C KENTR     SOURCE    CB215821  19/07/30    21:17:05     10273          
      SUBROUTINE KENTR
C
C***********************************************************************
C                                                                      *
C                                                                      *
C      FABRICATION DES MATRICES DE RAIDEUR CENTRIFUGE ET D'EULER       *
C      (CALCUL DANS LE REPERE TOURNANT                                 *
C  Syntaxe :                                                           *
C  --------                                                            *
C                                                                      *
C    RIG1 = KCEN MODL1 MAT1 VEC1 (FLAM)                                *
C                                                                      *
C  RIG1 : matrice de raideur centrifuge  (TYPE rigidité)               *
C  MODL1: objet MMODEL, modèle                                         *
C  MAT1 : objet MCHAML, caractéristiques matériau                      *
C  VEC1 : objet de type POINT, vecteur vitesse de rotation             *
C  FLAM : mot clé si on se sert de la matrice pour faire du flambage   *
C                                                                      *
C            Didier COMBESCURE       Mars 2003                         *
C                                                                      *
C***********************************************************************
C
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)

-INC PPARAM
-INC CCOPTIO
-INC SMCHAML
-INC CCHAMP
c
*
      CHARACTER*4 LPARA1(2), LPARA2(1)
*
      DATA LPARA1/'CENT','EULE'/
      DATA LPARA2/'FLAM'/
      NPARA1 = 2
*
*********************************************
*
*    Matrice de raideur centrifuge et d'Euler
*
**********************************************
C
      CALL LIRMOT(LPARA1,NPARA1,INDIC1,0)
C
      IF (INDIC1 .NE. 0) THEN
        IPCHE1=0
        IRET=0
C
C Test flambage
        CALL LIRMOT(LPARA2,1,IFLAM,0)
        IF (IERR.NE.0) RETURN
C
C  lecture du point vecteur de rotation
C
          IF (IFOUR.NE.1) THEN
            CALL LIROBJ('POINT',IPROTA,1,IRT1)
            IF(IERR .NE. 0) RETURN
          ELSE
            CALL LIROBJ('POINT',IPROTA,0,IRT1)
            IF (IRT1.EQ.0) IPROTA =0
          ENDIF
C
C  lecture du modèle
C
           CALL LIROBJ('MMODEL  ',IPMODL,1,IRT2)
           CALL ACTOBJ('MMODEL  ',IPMODL,1)
           IF(IERR .NE. 0) RETURN
C
C  lecture du mchaml de caractéristiques matériau
C
           CALL LIROBJ('MCHAML  ',IPIN,1,IRT3)
           CALL ACTOBJ('MCHAML  ',IPIN,1)
           IF(IERR .NE. 0) RETURN
           CALL REDUAF(IPIN,IPMODL,IPCHE1,0,IR,KER)
           IF(IR   .NE. 1) CALL ERREUR(KER)
           IF(IERR .NE. 0) RETURN
C
        IF (INDIC1.EQ.1) THEN
C
C         Matrice de raideur centrifuge
          CALL KCENT1(IPMODL,IPCHE1,IPROTA,IPRIG,IFLAM,IRET)
          IF(IERR .NE. 0) RETURN
C
        ELSEIF (INDIC1.EQ.2) THEN
C
C    Matrice de raideur d'Euler
          CALL KEULE1(IPMODL,IPCHE1,IPROTA,IPRIG,IFLAM,IRET)
          IF(IERR .NE. 0) RETURN

        ELSE
          IRET = 0
        ENDIF
C
        IF (IRET.EQ.1) CALL ECROBJ('RIGIDITE',IPRIG)
      ENDIF

      END

 
