C DYPOL0    SOURCE    CB215821  18/09/13    21:15:34     9917           
      SUBROUTINE DYPOL0(ITAB1,XPDT,NX,NI)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
*--------------------------------------------------------------------*
*                                                                    *
*     Operateur DYNE : algorithme de Fu - de Vogelaere               *
*     ________________________________________________               *
*                                                                    *
*     Recherche du nombre de parametres d'une liaison POLYNOMIALE    *
*                                                                    *
*     Parametres:                                                    *
*                                                                    *
* e   ITAB1   Table decrivant une liaison POLYNOMIALE                *
* e   XPDT    Valeur du pas de temps                                 *
* s   NX      Nombre de valeurs reelles caracterisant la liaison     *
* s   NI      Nombre de points intervenant dans la liaison           *
*                                                                    *
*     Auteur, date de creation:                                      *
*                                                                    *
*     Denis ROBERT, le 23 avril 1992.                                *
*                                                                    *
*--------------------------------------------------------------------*

-INC PPARAM
-INC CCOPTIO
-INC CCNOYAU
-INC SMTABLE
-INC CCASSIS
*
      LOGICAL L0,L1
      CHARACTER*(8)  TYPIND, TYPOBJ, MONOBJ
      CHARACTER*(18) CHAI1
      CHARACTER*(14) CHAI2
      PARAMETER (XZERO = 0.D0)
*     voir avec DYNE12
      ILC1 = 18
      ILC2 = 14

      DATA CHAI1 /'RETARD_DEPLACEMENT'/
      DATA CHAI2 /'RETARD_VITESSE'/
      NXX = 0
      IPORIG = 0
      NI  = 0
      XPDTS2 = 0.5 * XPDT
*
      MTABLE = ITAB1
      SEGACT MTABLE
      NIND1 = MLOTAB
*     Nombre de points "support" et "origine"
      NI = NIND1 - 3
*
*     Recherche des infos dans la table LIAISON_ELEMENTAIRE
*
      if(nbesc.ne.0) segact ipiloc
      DO 10 I = 1,NIND1
         TYPIND = MTABTI(I)
*
*        Cas d'un point "origine"
*
         IF (TYPIND.EQ.'POINT   ') THEN
            TYPOBJ = MTABTV(I)
            IF (TYPOBJ.EQ.'TABLE   ') THEN
               MTAB1 = MTABIV(I)
               SEGACT,MTAB1
               NIND2 = MTAB1.MLOTAB
               IPORIG = IPORIG + 1
               XRD = XZERO
               XRV = XZERO
*
*              Recherche des termes de retard pour dimensionner la
*              partie variable du tableau XPALA
*
               DO 20 J=1,NIND2
                  TYPIND = MTAB1.MTABTI(J)
                  IF (TYPIND.EQ.'MOT     ') THEN
                     IP = MTAB1.MTABII(J)
                     ID = IPCHAR(IP)
                     IFI = IPCHAR(IP+1)
                     IL1 = IFI - ID
                     IF (IL1.EQ.ILC1) THEN
                        IF (CHAI1.EQ.ICHARA(ID:IFI-1)) THEN
                           TYPOBJ = MTAB1.MTABTV(J)
                           IF (TYPOBJ.EQ.'FLOTTANT') THEN
                              XRD = MTAB1.RMTABV(J)
                           ENDIF
                        ENDIF
                     ELSE IF (IL1.EQ.ILC2) THEN
                        IF (CHAI2.EQ.ICHARA(ID:IFI-1)) THEN
                           TYPOBJ = MTAB1.MTABTV(J)
                           IF (TYPOBJ.EQ.'FLOTTANT') THEN
                              XRV = MTAB1.RMTABV(J)
                           ENDIF
                        ENDIF
                     ENDIF
                  ENDIF
 20            CONTINUE
               XAUX1 = XRD / XPDTS2
               XAUX2 = XAUX1 + (XAUX1 / 1000.)
               ND = INT(XAUX2) + 1
               XAUX3 = XRV / XPDTS2
               XAUX4 = XAUX3 + (XAUX3 / 1000.)
               NV = INT(XAUX4) + 2
               NMAX = MAX(ND,NV)
               NXX = NXX + NMAX
               SEGDES,MTAB1
            ENDIF
         ENDIF
 10   CONTINUE
      if(nbesc.ne.0)SEGDES,IPILOC
      NX = 1 + NXX + (6 * IPORIG)
*
      END



 
 
