Télécharger dyne21.eso

Retour à la liste

Numérotation des lignes :

  1. C DYNE21 SOURCE BP208322 18/01/10 21:15:57 9684
  2. SUBROUTINE DYNE21(ITLA,PDT,MTRA,NLIAA,NXPALA,NPLAA,NIPALA)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8(A-H,O-Z)
  5. *--------------------------------------------------------------------*
  6. * *
  7. * Operateur DYNE : *
  8. * ________________________________________________ *
  9. * *
  10. * Determination des parametres de liaison pour la base A. *
  11. * *
  12. * Parametres: *
  13. * *
  14. * e ITLA Table rassemblant la description des liaisons *
  15. * e PDT Valeur du pas de temps *
  16. * es MTRA Segment de travail temporaire (indique si liaison POL) *
  17. * s NLIAA Nombre total de liaisons. *
  18. * s NXPALA Maxi du nombre de parametres definissant une liaison. *
  19. * s NPLAA Maxi du nombre de points intervenant dans une liaison. *
  20. * s NIPALA Maxi du nombre de parametres definissant une liaison. *
  21. * *
  22. * Auteur, date de creation: *
  23. * *
  24. * Lionel VIVAN, le 24 aout 1989. *
  25. * *
  26. *--------------------------------------------------------------------*
  27. -INC CCOPTIO
  28. -INC SMTABLE
  29. *
  30. SEGMENT,MTRA
  31. INTEGER IPLA(NTRA)
  32. ENDSEGMENT
  33. *
  34. LOGICAL L0,L1
  35. CHARACTER*8 TYPRET,CHARRE
  36. CHARACTER*40 CMOT,CMOT2
  37. *
  38. * Boucle sur le nombre de liaisons
  39. *
  40. NXPALA = 0
  41. NIPALA = 20
  42. cbp, indices NIPALA=4,20 reserves pour liaisons conditionelles
  43. cbp -> incompatible avec convolution
  44. NPLAA = 0
  45. NLIAA = 0
  46. IL = 0
  47. 10 CONTINUE
  48. IL = IL + 1
  49. TYPRET = ' '
  50. CALL ACCTAB(ITLA,'ENTIER',IL,X0,' ',L0,IP0,
  51. & TYPRET,I0,X0,CHARRE,L1,ITLIAI)
  52. IF (IERR.NE.0) RETURN
  53. IF (ITLIAI.NE.0) THEN
  54. NLIAA = NLIAA + 1
  55. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'TYPE_LIAISON',L0,IP0,
  56. & 'MOT',I1,X0,CMOT,L1,IP1)
  57. IF (IERR.NE.0) RETURN
  58. c write(*,*) 'DYNE21: liaison A ',IL,' de type ',CMOT
  59. *
  60. * ------ liaison elementaire POINT_PLAN_FLUIDE
  61. *
  62. IF (CMOT(1:17).EQ.'POINT_PLAN_FLUIDE') THEN
  63. IPLA(IL) = 0
  64. KIPALA = 3
  65. KXPALA = 6
  66. KPLAA = 1
  67. NXPALA = MAX(NXPALA,KXPALA)
  68. NIPALA = MAX(NIPALA,KIPALA)
  69. NPLAA = MAX(NPLAA,KPLAA)
  70. *
  71. * ------ liaison elementaire POINT_PLAN
  72. *
  73. ELSE IF (CMOT(1:10).EQ.'POINT_PLAN') THEN
  74. IPLA(IL) = 0
  75. TYPRET = ' '
  76. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'AMORTISSEMENT',L0,IP0,
  77. & TYPRET,I1,XAMO,CHARRE,L1,IP1)
  78. IF (IERR.NE.0) RETURN
  79. IF (TYPRET.EQ.'FLOTTANT') THEN
  80. KXPALA = 3
  81. ELSE
  82. KXPALA = 2
  83. ENDIF
  84. KIPALA = 3
  85. KPLAA = 1
  86. NXPALA = MAX(NXPALA,KXPALA)
  87. NIPALA = MAX(NIPALA,KIPALA)
  88. NPLAA = MAX(NPLAA,KPLAA)
  89. *
  90. * ------ liaison elementaire de couplage en vitesse
  91. *
  92. ELSE IF (CMOT(1:16).EQ.'COUPLAGE_VITESSE') THEN
  93. IPLA(IL) = 0
  94. KXPALA = 1
  95. KPLAA = 2
  96. KIPALA = 3
  97. NXPALA = MAX(NXPALA,KXPALA)
  98. NIPALA = MAX(NIPALA,KIPALA)
  99. NPLAA = MAX(NPLAA,KPLAA)
  100. *
  101. * ------ liaison elementaire de couplage en deplacement
  102. *
  103. ELSE IF (CMOT(1:20).EQ.'COUPLAGE_DEPLACEMENT') THEN
  104. IPLA(IL) = 0
  105. cbp KXPALA = 1
  106. KXPALA = 2
  107. KPLAA = 2
  108. KIPALA = 3
  109. cbp on a besoin de savoir si FONCTION_CONVOLUTION ou pas
  110. TYPRET=' '
  111. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'FONCTION_CONVOLUTION',L0,IP0
  112. & ,TYPRET,I1,X1,CMOT2,L1,IP1)
  113. IF (IERR.NE.0) RETURN
  114. IF(TYPRET.EQ.'LISTREEL') THEN
  115. IPLA(IL) = 2
  116. KIPALA = 6
  117. ELSEIF(TYPRET.EQ.'MOT') THEN
  118. IF (CMOT2.EQ.'GRANGER_PAIDOUSSIS') THEN
  119. IPLA(IL) = 2
  120. KIPALA = 6
  121. KXPALA = 3
  122. ENDIF
  123. ENDIF
  124. NXPALA = MAX(NXPALA,KXPALA)
  125. NIPALA = MAX(NIPALA,KIPALA)
  126. NPLAA = MAX(NPLAA,KPLAA)
  127. *+*
  128. * ------ liaison elementaire POLYNOMIALE
  129. *
  130. ELSE IF (CMOT(1:11).EQ.'POLYNOMIALE') THEN
  131. IPLA(IL) = 1
  132. CALL DYPOL0(ITLIAI,PDT,NX,NI)
  133. IF (IERR.NE.0) RETURN
  134. KXPALA = NX
  135. KPLAA = NI
  136. KIPALA = 3
  137. NXPALA = MAX(NXPALA,KXPALA)
  138. NIPALA = MAX(NIPALA,KIPALA)
  139. NPLAA = MAX(NPLAA,KPLAA)
  140. *
  141. * ------ liaison elementaire ...
  142. *
  143. * ELSE IF (CMOT(1: ).EQ.' ') THEN
  144. * IPLA(IL) = 0
  145. * KXPALA = ...
  146. * KIPALA = ...
  147. * KPLAA = ...
  148. * NXPALA = MAX(NXPALA,KXPALA)
  149. * NIPALA = MAX(NIPALA,KIPALA)
  150. * NPLAA = MAX(NPLAA,KPLAA)
  151. ELSE
  152. CALL ERREUR(490)
  153. RETURN
  154. ENDIF
  155. GOTO 10
  156. ENDIF
  157. *
  158. END
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales