Télécharger dyne21.eso

Retour à la liste

Numérotation des lignes :

dyne21
  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.  
  28. -INC PPARAM
  29. -INC CCOPTIO
  30. -INC SMTABLE
  31. *
  32. SEGMENT,MTRA
  33. INTEGER IPLA(NTRA)
  34. ENDSEGMENT
  35. *
  36. LOGICAL L0,L1
  37. CHARACTER*8 TYPRET,CHARRE
  38. CHARACTER*40 CMOT,CMOT2
  39. *
  40. * Boucle sur le nombre de liaisons
  41. *
  42. NXPALA = 0
  43. NIPALA = 20
  44. cbp, indices NIPALA=4,20 reserves pour liaisons conditionelles
  45. cbp -> incompatible avec convolution
  46. NPLAA = 0
  47. NLIAA = 0
  48. IL = 0
  49. 10 CONTINUE
  50. IL = IL + 1
  51. TYPRET = ' '
  52. CALL ACCTAB(ITLA,'ENTIER',IL,X0,' ',L0,IP0,
  53. & TYPRET,I0,X0,CHARRE,L1,ITLIAI)
  54. IF (IERR.NE.0) RETURN
  55. IF (ITLIAI.NE.0) THEN
  56. NLIAA = NLIAA + 1
  57. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'TYPE_LIAISON',L0,IP0,
  58. & 'MOT',I1,X0,CMOT,L1,IP1)
  59. IF (IERR.NE.0) RETURN
  60. c write(*,*) 'DYNE21: liaison A ',IL,' de type ',CMOT
  61. *
  62. * ------ liaison elementaire POINT_PLAN_FLUIDE
  63. *
  64. IF (CMOT(1:17).EQ.'POINT_PLAN_FLUIDE') THEN
  65. IPLA(IL) = 0
  66. KIPALA = 3
  67. KXPALA = 6
  68. KPLAA = 1
  69. NXPALA = MAX(NXPALA,KXPALA)
  70. NIPALA = MAX(NIPALA,KIPALA)
  71. NPLAA = MAX(NPLAA,KPLAA)
  72. *
  73. * ------ liaison elementaire POINT_PLAN
  74. *
  75. ELSE IF (CMOT(1:10).EQ.'POINT_PLAN') THEN
  76. IPLA(IL) = 0
  77. TYPRET = ' '
  78. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'AMORTISSEMENT',L0,IP0,
  79. & TYPRET,I1,XAMO,CHARRE,L1,IP1)
  80. IF (IERR.NE.0) RETURN
  81. IF (TYPRET.EQ.'FLOTTANT') THEN
  82. KXPALA = 3
  83. ELSE
  84. KXPALA = 2
  85. ENDIF
  86. KIPALA = 3
  87. KPLAA = 1
  88. NXPALA = MAX(NXPALA,KXPALA)
  89. NIPALA = MAX(NIPALA,KIPALA)
  90. NPLAA = MAX(NPLAA,KPLAA)
  91. *
  92. * ------ liaison elementaire de couplage en vitesse
  93. *
  94. ELSE IF (CMOT(1:16).EQ.'COUPLAGE_VITESSE') THEN
  95. IPLA(IL) = 0
  96. KXPALA = 1
  97. KPLAA = 2
  98. KIPALA = 3
  99. NXPALA = MAX(NXPALA,KXPALA)
  100. NIPALA = MAX(NIPALA,KIPALA)
  101. NPLAA = MAX(NPLAA,KPLAA)
  102. *
  103. * ------ liaison elementaire de couplage en deplacement
  104. *
  105. ELSE IF (CMOT(1:20).EQ.'COUPLAGE_DEPLACEMENT') THEN
  106. IPLA(IL) = 0
  107. cbp KXPALA = 1
  108. KXPALA = 2
  109. KPLAA = 2
  110. KIPALA = 3
  111. cbp on a besoin de savoir si FONCTION_CONVOLUTION ou pas
  112. TYPRET=' '
  113. CALL ACCTAB(ITLIAI,'MOT',I0,X0,'FONCTION_CONVOLUTION',L0,IP0
  114. & ,TYPRET,I1,X1,CMOT2,L1,IP1)
  115. IF (IERR.NE.0) RETURN
  116. IF(TYPRET.EQ.'LISTREEL') THEN
  117. IPLA(IL) = 2
  118. KIPALA = 6
  119. ELSEIF(TYPRET.EQ.'MOT') THEN
  120. IF (CMOT2.EQ.'GRANGER_PAIDOUSSIS') THEN
  121. IPLA(IL) = 2
  122. KIPALA = 6
  123. KXPALA = 3
  124. ENDIF
  125. ENDIF
  126. NXPALA = MAX(NXPALA,KXPALA)
  127. NIPALA = MAX(NIPALA,KIPALA)
  128. NPLAA = MAX(NPLAA,KPLAA)
  129. *+*
  130. * ------ liaison elementaire POLYNOMIALE
  131. *
  132. ELSE IF (CMOT(1:11).EQ.'POLYNOMIALE') THEN
  133. IPLA(IL) = 1
  134. CALL DYPOL0(ITLIAI,PDT,NX,NI)
  135. IF (IERR.NE.0) RETURN
  136. KXPALA = NX
  137. KPLAA = NI
  138. KIPALA = 3
  139. NXPALA = MAX(NXPALA,KXPALA)
  140. NIPALA = MAX(NIPALA,KIPALA)
  141. NPLAA = MAX(NPLAA,KPLAA)
  142. *
  143. * ------ liaison elementaire ...
  144. *
  145. * ELSE IF (CMOT(1: ).EQ.' ') THEN
  146. * IPLA(IL) = 0
  147. * KXPALA = ...
  148. * KIPALA = ...
  149. * KPLAA = ...
  150. * NXPALA = MAX(NXPALA,KXPALA)
  151. * NIPALA = MAX(NIPALA,KIPALA)
  152. * NPLAA = MAX(NPLAA,KPLAA)
  153. ELSE
  154. CALL ERREUR(490)
  155. RETURN
  156. ENDIF
  157. GOTO 10
  158. ENDIF
  159. *
  160. END
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  

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