C RELMOD    SOURCE    CB215821  25/06/20    21:15:06     12290          
      SUBROUTINE RELMOD(IMODEL)
C***********************************************************************
C   cet operateur impose des relation linéaire entre les inconnes
C   d'un modele pour le cas particulier des modelel SURE et XFEM
C
C   syntaxe :
C    rig1 = rela   mod1
C
C    mod1 modele pouvant eventuellement contenit des sous
C           modeles avec des relations linéaires à imposer :
C
C           MODELE de SURE :
C                           elements géométrique  itypel= 48
C                           elements du modeles   nefmod = 259
C                           formulation           mfr=1
C
C           MODELE de XFEM (XQ4R):
C                           elements géométrique  itypel= 8
C                           elements du modeles   nefmod = 263
C                           formulation           mfr=63
C           MODELE de XFEM (XC8R):
C                           elements géométrique  itypel= 14
C                           elements du modeles   nefmod = 264
C                           formulation           mfr=63
C
C
C   ENTREES :
C   ________
C
C        IMODEL   pointeur sur le modele
C   ENTREES/SORTIE :
C   ________
C
C        Rigidité sortie via ecrobj
C---------------------------------------------------------------------
C***********************************************************************

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

-INC PPARAM
-INC CCOPTIO
-INC CCGEOME
-INC SMELEME
-INC SMCOORD
-INC SMRIGID
-INC SMMODEL
-INC CCHAMP

      MMODEL= IMODEL
      SEGACT MMODEL

      NSOUS = MMODEL.KMODEL(/1)
C--------------------------------------------------------------------*
C       initialisation de la rigidité a sortir
C--------------------------------------------------------------------*
      NRIGEL= 0
      SEGINI RI1
      RI1.IFORIG = IFOUR
      RI1.MTYMAT = 'RIGIDITE'

C--------------------------------------------------------------------*
C
C       BOUCLE SUR LES ZONES ELEMENTAIRES ( MEME TYPE D'EF )
C
C--------------------------------------------------------------------*

      DO 1 ISOUS=1,NSOUS
            IMODE1=MMODEL.KMODEL(ISOUS)
            SEGACT IMODE1
C
C    INITIALISATIONS
C
            MELE   = IMODE1.NEFMOD
            IPT1 = IMODE1.IMAMOD
            SEGACT IPT1
            ITYP1 = IPT1.ITYPEL
c            write(*,*) 'MELE', MELE
c            write(*,*) 'ITYP1', ITYP1

            IF (MELE.eq.263.or.MELE.eq.264) then

c          ajout d'une matrice élémentaire de rigidité pour les ddl xfem
c          a désactiver.

              CALL RELXFE(IMODE1 , RI1 )
            ENDIF
            IF (MELE.eq.259) then

c          ajout d'une matrice élémentaire de rigidité pour chaque
c          composantes du modele de SURE

              CALL RELSUR(IMODE1 , RI1 )
            ENDIF
C            SEGSUP IMODE1
  1   CONTINUE

      CALL ACTOBJ('RIGIDITE', RI1,1 )
      CALL ECROBJ('RIGIDITE', RI1   )

      END
 
