C RIGI      SOURCE    OF166741  24/10/07    21:15:46     12016          

*---------------------------------------------------------------------*
*        __________________________                                   *
*        |                        |                                   *
*        |   OPERATEUR RIGIDITE   |                                   *
*        |________________________|                                   *
*                                                                     *
*---------------------------------------------------------------------*
*                                                                     *
*   NOUVELLE SYNTAXE :                                                *
*   __________________                                                *
*                                                                     *
*                                                                     *
*           RIG1 =  RIGI  MOD1 | CAR1          ;                      *
*                              | HOO1 ( CAR1 ) ;                      *
*                                                                     *
*   ENTREES :                                                         *
*                                                                     *
*       MOD1     OBJET  MODELE                                        *
*       CAR1     CHAMELEM DE CARACTERISTIQUES                         *
*                GEOMETRIQUES ET MATERIELLES                          *
*                                                                     *
*       EVENTUELLEMENT,                                               *
*                                                                     *
*       HOO1     CHAMELEM REPRESENTANT UNE MATRICE DE HOOKE           *
*                                                                     *
*                                                                     *
*   CHRISTIAN LE BRETON , DECEMBRE 1989                               *
* CONVERSION AU NOUVEAU CHAMELEM  I. MONNIER AVRIL 90                 *
*                                                                     *
*                                                                     *
*  ANALYSE MODALE :                                                   *
*  ________________                                                   *
*                                                                     *
*      SYNTAXES POSSIBLES :  RIG2 = RIGI M ;                          *
*                            RIG3 = RIGI P S ;                        *
*                            RIG4 = RIGI M P S ;                      *
*                            RIG5 = RIGI B ;                          *
*                            RIG6 = RIGI A ;                          *
*                                                                     *
*     M : OBJET SOLUTION DE SOUS TYPE MODE                            *
*     P : OBJET SOLUTION DE SOUS TYPE SOLU STAT                       *
*     S : OBJET STRUCTURE                                             *
*     B : OBJET BASE MODALE                                           *
*     A : OBJET ATTACHE                                               *
*                                                                     *
*  RIG2 : RIGIDITE DUE AUX MODES SEULS ( KN )                         *
*  RIG3 : RIGIDITE DUE AU COUPLAGE DES SOLUTIONS STATIQUES            *
*                  SUR UNE STRUCTURE .                                *
*  RIG4 : RIGIDITE DUE AU COUPLAGE DES SOLUTIONS STATIQUES            *
*                  ET DES MODES .                                     *
*  RIG5 : CALCUL AUTOMATIQUE DE RIG2, RIG3 ET RIG4.                   *
*  RIG6 : RIGIDITE DUE AUX LIAISONS MIXTES                            *
*                                                                     *
*---------------------------------------------------------------------*

      SUBROUTINE RIGI

      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)

-INC PPARAM
-INC CCOPTIO
-INC SMCOORD

      character*4 mcle(2)
      data mcle/'NOER','DIVE'/
      CHARACTER*4 CMOT

C     On a besoin du MCOORD plus loin
      SEGACT,MCOORD

      NOER = 0
* lecture eventuelle de 'NOER'
      call lirmot(mcle,2,NOER,0)
      if (ierr.ne.0) returN

* -------------------------------------------------*
*      ON RECUPERE EVENTUELLEMENT UN OBJET MODELE
* -------------------------------------------------*
      IPMODL = 0
      CALL LIROBJ('MMODEL  ',IPMODL,0,IRET)
      if (ierr.ne.0) return
      IF (IRET.EQ.0) GO TO 700

      CALL ACTOBJ('MMODEL  ',IPMODL,1)

      IPCHE1 = 0
      IPCHE2 = 0
      IPCHA1 = 0
      IPCHA2 = 0
*
* ON LIT UN 1-ER MCHAML
*
      CALL LIROBJ('MCHAML  ',IPCHA1,1,IRET1)
      IF (IERR.NE.0) RETURN
      CALL ACTOBJ('MCHAML  ',IPCHA1,1)
*
* ON LIT EVENTUELLEMENT UN 2EME MCHAML
*
      CALL LIROBJ('MCHAML',IPCHA2,0,IRET1)
      IF (IERR.NE.0) RETURN
      IF (IRET1 .NE. 0)CALL ACTOBJ('MCHAML  ',IPCHA2,1)
*
* RANGEMENT DES POINTEURS :  'CARACTERISTIQUES' DANS IPCHE1
*                            'MATRICE DE HOOKE' DANS IPCHE2
*
      CALL RNGCHA(IPCHA1,IPCHA2,'CARACTERISTIQUES','MATRICE DE HOOKE',
     &            IPCHE1,IPCHE2)
      IF (IERR.NE.0) RETURN

      IF (IPCHE2.NE.0) THEN
        IMAT = 2
      ELSE IF (IPCHE1.NE.0) THEN
        IMAT = 1
      ELSE
        IPCHE1=IPCHA1
        IMAT = 1
      ENDIF

*   APPEL AU CALCUL DES RIGIDITES ELEMENTAIRES

C     Les REDUAF sont faits dans RIGI1 sur la partie utile du MMODEL

      CALL RIGI1(IPMODL,IPCHE1,IPCHE2,IMAT,IPOI6,IRET,noer)

      IF (noer.EQ.195) then
        CALL ECRent(noer)
        call soucis(195)
        return
      endif
      IF (IRET.EQ.1) CALL ECROBJ('RIGIDITE',IPOI6)
      RETURN
C
C -------------------------------------------------*
C  **** RAIDEURS ADDITIONNELLES
C -------------------------------------------------*
  700 CONTINUE
      CALL LIRCHA(CMOT,0,IRET)
      IF (IERR.NE.0) RETURN
      IF (IRET.EQ.0) GOTO 800

      CALL REFUS
      CALL APPUI(1)
      RETURN
C
C -------------------------------------------------*
C  **** ANALYSE MODALE
C -------------------------------------------------*
  800 CONTINUE
      CALL RIGIMO
      RETURN

      END

 
