C TCOND2    SOURCE    CB215821  24/04/12    21:17:19     11897          

C=======================================================================
C=                            T C O N D 2                              =
C=                            -----------                              =
C=                                                                     =
C=  Fonction :                                                         =
C=  ----------                                                         =
C=  Ce sous-programme remplit le segment DESCRipteur de la matrice de  =
C=  CONDUCTIVITE/CAPACITE (RIGIDITE) dans le cas d'un modele THERMIQUE =
C=                                                                     =
C=  Parametres :  (E)=Entree   (S)=Sortie                              =
C=  ------------                                                       =
C=   NBNN    (E)  Nombre de NOEUDS dans le type d'element considere    =
C=   ICOQ    (E)  = 0 si element MASSIF, sinon element COQUE           =
C=   IDESCR  (S)  Pointeur sur le segment DESCR                        =
C=                                                                     =
C=  Remarques :                                                        =
C=  -----------                                                        =
C=  - L'inconnue PRIMALE est la temperature 'T   ' pour les elements   =
C=    MASSIFs et 'TINF', 'TSUP' et 'T   ' dans le cas d'element COQUE. =
C=  - L'inconnue DUALE est la chaleur 'Q   ' pour les elements MASSIFs =
C=    et 'QINF', 'QSUP' et 'Q   ' dans le cas d'elements COQUEs.       =
C=  - Ces noms de composantes pourraient figurer dans BDATA.           =
C=                                                                     =
C=  Denis ROBERT, le 6 janvier 1988.                                   =
C=  Mise a jour pour les coques, P. DOWLATYARI, juin 1990.             =
C=======================================================================

      SUBROUTINE TCOND2 (ICOQ,NBNN,IDESCR,NOMPRI,NOMDUA)

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

-INC PPARAM
-INC SMRIGID
-INC SMMODEL
      POINTEUR NOMID1.NOMID,NOMID2.NOMID
      
      NOMID1=NOMPRI
      NOMID2=NOMDUA
      SEGACT,NOMID1,NOMID2

C  1 - Cas des elements COQUES
C =============================
      IF (ICOQ.NE.0) THEN
C       Verification de la TAILLE des noms des INCONNUES
        IF (NOMID1.LESOBL(/2).NE.3 .AND. NOMID2.LESOBL(/2).NE.3)THEN
          CALL ERREUR(21)
          RETURN
        ENDIF
        
        NLIGRP = 3*NBNN
        NLIGRD = 3*NBNN
        SEGINI,DESCR
        NBNN2 = 2*NBNN
        DO i = 1, NLIGRP
          IF (i.LE.NBNN) THEN
            LISINC(i) = NOMID1.LESOBL(1)
            LISDUA(i) = NOMID2.LESOBL(1)
            NOELEP(i) = i
            NOELED(i) = i
          ELSE IF (i.LE.NBNN2) THEN
            LISINC(i) = NOMID1.LESOBL(2)
            LISDUA(i) = NOMID2.LESOBL(2)
            j = i-NBNN
            NOELEP(i) = j
            NOELED(i) = j
          ELSE
            LISINC(i) = NOMID1.LESOBL(3)
            LISDUA(i) = NOMID2.LESOBL(3)
            j = i-NBNN2
            NOELEP(i) = j
            NOELED(i) = j
          ENDIF
        ENDDO

C  2 - Cas des elements MASSIFS
C ==============================
      ELSE
C       Verification de la TAILLE des noms des INCONNUES
        IF (NOMID1.LESOBL(/2).NE.1 .AND. NOMID2.LESOBL(/2).NE.1)THEN
          CALL ERREUR(21)
          RETURN
        ENDIF

        NLIGRP = NBNN
        NLIGRD = NBNN
        SEGINI,DESCR
        DO i = 1, NLIGRP
          LISINC(i) = NOMID1.LESOBL(1)
          LISDUA(i) = NOMID2.LESOBL(1)
          NOELEP(i) = i
          NOELED(i) = i
        ENDDO
      ENDIF

      SEGDES,DESCR
C      SEGDES,NOMID1,NOMID2
      IDESCR = DESCR

      END

 
 
 
