Télécharger d2vcoi.eso

Retour à la liste

Numérotation des lignes :

  1. C D2VCOI SOURCE CHAT 05/01/12 22:35:10 5004
  2. C DEVCOI SOURCE LAVARENN 96/11/05 21:21:28 2357
  3. C DEVCOI SOURCE IANIS 93/2/22 21:12:00
  4. SUBROUTINE D2VCOI(Q1,Q2,XDT,NA1,XPTB,NPLB,XPHILB,NSB,NPLSB,
  5. & NA2,IDIMB,IBASB,IPLSB,INMSB,IORSB,IND,
  6. & IAROTA)
  7. IMPLICIT INTEGER(I-N)
  8. IMPLICIT REAL*8(A-H,O-Z)
  9. *--------------------------------------------------------------------*
  10. * *
  11. * Opérateur DYNE : algorithme de Fu - de Vogelaere *
  12. * ________________________________________________ *
  13. * *
  14. * Recombinaison des déplacements et des vitesses *
  15. * aux points de choc pour calculer XPTB pour le 1er pas *
  16. * *
  17. * *
  18. * Paramètres: *
  19. * *
  20. * e Q1 Tableau des déplacements généralisés. *
  21. * e Q2 Tableau des vitesses generalises *
  22. * e NA1 Nombre total d'inconnues en base A. *
  23. * s XPTB Tableau des déplacements des points sur base B. *
  24. * e NPLB Nombre total de points intervenant dans les liaisons. *
  25. * e XPHILB Tableau des vecteurs propres aux points de liaisons. *
  26. * e NSB Nombre de sous base. *
  27. * e NPLSB Nombre total de points intervenant dans les liaisons *
  28. * dans une sous base. *
  29. * e NA2 Nombre total d'inconnues dans une sous base. *
  30. * e IDIMB Nombre total de ddl retenus. *
  31. * e IBASB Indique dans quelle sous base appartient le point de *
  32. * liaison. *
  33. * e INMSB Indique le nombre d'inconnues de la sous base. *
  34. * e IORSB Donne l'indice du premier mode dans l'ensemble des *
  35. * modes. *
  36. * e IPLSB Dans une sous base, indique la position du point de *
  37. * liaison. *
  38. * e IAROTA Indique la position des modes de rotation *
  39. * e IND Indice du pas. *
  40. * e XDT Valeur des pas de temps *
  41. * *
  42. * Auteur, date de création: *
  43. * *
  44. * Ianis Politopoulos 22/02/93 *
  45. * *
  46. *--------------------------------------------------------------------*
  47. *
  48. INTEGER IBASB(*),INMSB(*),IORSB(*),IPLSB(*),IAROTA(*)
  49. REAL*8 XPHILB(NSB,NPLSB,NA2,*),Q1(NA1,*),Q2(NA1,*)
  50. REAL*8 XPTB(NPLB,4,*),XDT(*)
  51. *
  52. PDT = XDT(1)
  53. PDTS2 = PDT
  54. IND2 = IND + 1
  55. DO 10 IP = 1,NPLB
  56. ISB = IBASB(IP)
  57. NA3 = INMSB(ISB)
  58. INA1 = IORSB(ISB) - 1
  59. IPLB = IPLSB(IP)
  60. IROT = IAROTA(ISB)
  61. DO 20 ID = 1,IDIMB
  62. XRET = 0.D0
  63. XRETV = 0.D0
  64. DO 30 IN = 1,NA3
  65. INN = INA1 + IN
  66. XRET = XRET + XPHILB(ISB,IPLB,IN,ID) * Q1(INN,IND)
  67. XRETV = XRETV + XPHILB(ISB,IPLB,IN,ID) * Q2(INN,IND)
  68. 30 CONTINUE
  69. * Prise en compte des effets de rotation pour les corps rigides
  70. IF (IROT.NE.0) THEN
  71. XANGLE=Q1(IROT,IND)
  72. VITROT=Q2(IROT,IND)
  73. * Déplacements dus à la rotation
  74. XRET =XRET + XPHILB(ISB,IPLB,NA3+1,ID)*
  75. &(COS(XANGLE)-1)
  76. XRET =XRET + XPHILB(ISB,IPLB,NA3+2,ID)* SIN(XANGLE)
  77. * Vitesse due à la rotation
  78. XRETV=XRETV+VITROT*(COS(XANGLE)*
  79. &XPHILB(ISB,IPLB,NA3+2,ID)-SIN(XANGLE)*XPHILB(ISB,IPLB,NA3+1,ID))
  80. ENDIF
  81. * end do
  82. XPTB(IP,IND,ID) = XRET
  83. XPTB(IP,IND2,ID) = XRET - (XRETV * PDTS2)
  84. 20 CONTINUE
  85. * end do
  86. 10 CONTINUE
  87. * end do
  88. *
  89. END
  90.  
  91.  
  92.  
  93.  

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