Download dypol0.eso

Back to the list

   1 : C DYPOL0    SOURCE    CHAT      06/06/01    21:16:30     5450           
   2 :       SUBROUTINE DYPOL0(ITAB1,XPDT,NX,NI)                        
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
   5 : *--------------------------------------------------------------------*   
   6 : *                                                                    *          
   7 : *     Operateur DYNE : algorithme de Fu - de Vogelaere               *          
   8 : *     ________________________________________________               *          
   9 : *                                                                    *          
  10 : *     Recherche du nombre de parametres d'une liaison POLYNOMIALE    *          
  11 : *                                                                    *
  12 : *     Parametres:                                                    *          
  13 : *                                                                    *          
  14 : * e   ITAB1   Table decrivant une liaison POLYNOMIALE                * 
  15 : * e   XPDT    Valeur du pas de temps                                 *         
  16 : * s   NX      Nombre de valeurs reelles caracterisant la liaison     *          
  17 : * s   NI      Nombre de points intervenant dans la liaison           *
  18 : *                                                                    *          
  19 : *     Auteur, date de creation:                                      *          
  20 : *                                                                    *  
  21 : *     Denis ROBERT, le 23 avril 1992.                                *          
  22 : *                                                                    *          
  23 : *--------------------------------------------------------------------*   
  24 : -INC CCOPTIO 
  25 : -INC CCNOYAU     
  26 : -INC SMTABLE
  27 : -INC CCASSIS        
  28 : * 
  29 :       LOGICAL L0,L1                                   
  30 :       CHARACTER*(8)  TYPIND, TYPOBJ, MONOBJ
  31 :       CHARACTER*(18) CHAI1
  32 :       CHARACTER*(14) CHAI2
  33 :       PARAMETER (XZERO = 0.D0)
  34 : *     voir avec DYNE12
  35 :       ILC1 = 18
  36 :       ILC2 = 14
  37 : 
  38 :       DATA CHAI1 /'RETARD_DEPLACEMENT'/ 
  39 :       DATA CHAI2 /'RETARD_VITESSE'/
  40 :       NXX = 0
  41 :       IPORIG = 0
  42 :       NI  = 0
  43 :       XPDTS2 = 0.5 * XPDT        
  44 : *
  45 :       MTABLE = ITAB1                 
  46 :       SEGACT MTABLE
  47 :       NIND1 = MLOTAB
  48 : *     Nombre de points "support" et "origine"
  49 :       NI = NIND1 - 3
  50 : *
  51 : *     Recherche des infos dans la table LIAISON_ELEMENTAIRE
  52 : *                                                               
  53 :       if(nbesc.ne.0) segact ipiloc
  54 :       DO 10 I = 1,NIND1
  55 :          TYPIND = MTABTI(I)
  56 : *
  57 : *        Cas d'un point "origine"
  58 : *
  59 :          IF (TYPIND.EQ.'POINT   ') THEN
  60 :             TYPOBJ = MTABTV(I)
  61 :             IF (TYPOBJ.EQ.'TABLE   ') THEN
  62 :                MTAB1 = MTABIV(I)  
  63 :                SEGACT,MTAB1
  64 :                NIND2 = MTAB1.MLOTAB
  65 :                IPORIG = IPORIG + 1
  66 :                XRD = XZERO
  67 :                XRV = XZERO
  68 : *
  69 : *              Recherche des termes de retard pour dimensionner la
  70 : *              partie variable du tableau XPALA
  71 : *
  72 :                DO 20 J=1,NIND2
  73 :                   TYPIND = MTAB1.MTABTI(J)
  74 :                   IF (TYPIND.EQ.'MOT     ') THEN
  75 :                      IP = MTAB1.MTABII(J)
  76 :                      ID = IPCHAR(IP)
  77 :                      IFI = IPCHAR(IP+1)
  78 :                      IL1 = IFI - ID
  79 :                      IF (IL1.EQ.ILC1) THEN
  80 :                         IF (CHAI1.EQ.ICHARA(ID:IFI-1)) THEN 
  81 :                            TYPOBJ = MTAB1.MTABTV(J)
  82 :                            IF (TYPOBJ.EQ.'FLOTTANT') THEN
  83 :                               XRD = MTAB1.RMTABV(J)
  84 :                            ENDIF
  85 :                         ENDIF   
  86 :                      ELSE IF (IL1.EQ.ILC2) THEN
  87 :                         IF (CHAI2.EQ.ICHARA(ID:IFI-1)) THEN
  88 :                            TYPOBJ = MTAB1.MTABTV(J)
  89 :                            IF (TYPOBJ.EQ.'FLOTTANT') THEN
  90 :                               XRV = MTAB1.RMTABV(J)
  91 :                            ENDIF
  92 :                         ENDIF
  93 :                      ENDIF 
  94 :                   ENDIF
  95 :  20            CONTINUE
  96 :                XAUX1 = XRD / XPDTS2 
  97 :                XAUX2 = XAUX1 + (XAUX1 / 1000.)
  98 :                ND = INT(XAUX2) + 1
  99 :                XAUX3 = XRV / XPDTS2
 100 :                XAUX4 = XAUX3 + (XAUX3 / 1000.)
 101 :                NV = INT(XAUX4) + 2
 102 :                NMAX = MAX(ND,NV)
 103 :                NXX = NXX + NMAX
 104 :                SEGDES,MTAB1
 105 :             ENDIF
 106 :          ENDIF                                                          
 107 :  10   CONTINUE  
 108 :       if(nbesc.ne.0)segdes ipiloc
 109 :       NX = 1 + NXX + (6 * IPORIG)     
 110 : *                                                                             
 111 :       END
 112 :  
 113 :  
 114 :  

© Cast3M 2003 - All rights reserved.
Disclaimer