Télécharger devene.eso

Retour à la liste

Numérotation des lignes :

  1. C DEVENE SOURCE BP208322 15/07/22 21:15:15 8586
  2. SUBROUTINE DEVENE (NA1,IND,NPAS,FEXA,Q1,Q2,FTOTA,WEXT,WINT,
  3. & FAMOR,NPC1)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6.  
  7. **************************************************************
  8. *
  9. * Ce sous-programme calcule le travail des differentes forces
  10. * pour chaque mode
  11. *
  12. * e NA1 nombre d'inconnues sur base A
  13. * e IND idice du pas (2 -->1er 1/2 pas, 1 --> 2eme 1/2pas)
  14. * e FEXA forces exterieures sur base A
  15. * e NPAS numero du pas
  16. * e Q1 deplacements generalises
  17. * e Q2 vitesses generalisees
  18. * e FTOTA forces totales sur base A
  19. * e,s WEXT travail des forces exterieures
  20. * e,s WINT travail des forces interieures (rigidite et
  21. * amortissement et forces de liaison )
  22. * e FAMOR force d'amortissements generalises
  23. * e NPC1 Nombre de pas de calcul
  24.  
  25.  
  26. **
  27. ** ce sous-programme n'est pas, peut - etre, compatible avec
  28. ** les liaisons '..._FLUIDE'
  29. *
  30. * I. Politopoulos Mars 1996
  31. ********************************************************************
  32.  
  33. REAL*8 FEXA(NA1,NPC1,*),FTOTA(NA1,*),Q1(NA1,4),Q2(NA1,4)
  34. REAL*8 WEXT(NA1,2),WINT(NA1,2),FAMOR(NA1,*)
  35.  
  36. * decalage du pas de temps car le 1er pas de FEXA est le pas (-1/2 0)
  37. NPASS = NPAS + 1
  38.  
  39. IF (IND.EQ.2) THEN
  40. * 1er demi-pas
  41.  
  42. DO 10 I=1, NA1
  43. DQ1 = Q1(I,2) - Q1(I,3)
  44.  
  45. F1 = FEXA(I,NPAS,1)
  46. F2 = FEXA(I,NPASS,2)
  47. DWEX = (F1 + F2)/2D0 * DQ1
  48.  
  49. F1 = FTOTA(I,3) - F1
  50. F2 = FTOTA(I,2) - F2
  51.  
  52. * on ajoute les forces d'amortissement
  53. c F1 = F1 - XASM(I)*Q2(I,3)
  54. c F2 = F2 - XASM(I)*Q2(I,2)
  55. F1 = F1 - FAMOR(I,3)
  56. F2 = F2 - FAMOR(I,2)
  57. DWIN = -(F1 + F2)/2D0 * DQ1
  58.  
  59. WEXT(I,2) = WEXT(I,1) + DWEX
  60. WINT(I,2) = WINT(I,1) + DWIN
  61.  
  62. 10 CONTINUE
  63.  
  64. ELSE
  65. * 2eme demi-pas
  66.  
  67. DO 20 I=1, NA1
  68. DQ1 = Q1(I,1) - Q1(I,2)
  69.  
  70. F1 = FEXA(I,NPASS,2)
  71. F2 = FEXA(I,NPASS,1)
  72. DWEX = (F1 + F2)/2D0 * DQ1
  73.  
  74. F1 = FTOTA(I,2) - F1
  75. F2 = FTOTA(I,1) - F2
  76.  
  77. * on ajoute les forces d'amortissement
  78. c F1 = F1 - XASM(I)*Q2(I,2)
  79. c F2 = F2 - XASM(I)*Q2(I,1)
  80. F1 = F1 - FAMOR(I,2)
  81. F2 = F2 - FAMOR(I,1)
  82. DWIN = -(F1 + F2)/2D0 * DQ1
  83.  
  84. WEXT(I,1) = WEXT(I,2) + DWEX
  85. WINT(I,1) = WINT(I,2) + DWIN
  86.  
  87. 20 CONTINUE
  88. ENDIF
  89.  
  90. END
  91.  
  92.  
  93.  
  94.  
  95.  

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