Télécharger evorig.eso

Retour à la liste

Numérotation des lignes :

evorig
  1. C EVORIG SOURCE BP208322 22/09/09 21:15:04 11448
  2. SUBROUTINE EVORIG(IROT,ICDG,IBOO,ILEX,ITYP,ILEXRO,ILEXVI,IDEFO)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8(A-H,O-Z)
  5. *-----------------------------------------------------------------------*
  6. * *
  7. * Sous-programme appelé par EVRECO de l'opérateur EVOL option RECO *
  8. * *
  9. * Pour les rotations de corps rigides, recombine les déplacements * *
  10. * les vitesses ou les accélérations . *
  11. * *
  12. * *
  13. * Paramètres *
  14. * *
  15. * e IROT Position du mode de rotation *
  16. * e ICDG Numéro du point centre de gravité *
  17. * e IDEFO Numéro de la déformée modale de rotation *
  18. * e ITYP = 0 si on recombine les déplacements *
  19. * = 1 pour les vitesses *
  20. * =-1 pour les accélérations *
  21. * = 2 pour les contraintes *
  22. * es IBOO Segment des résultats *
  23. * e ILEX Suite des chpoints des contributions modales *
  24. * e ILEXRO Suite des chpoints des déplacements modaux *
  25. * (sert pour les vitesses et accélérations)*
  26. * e ILEXVI Suite des chpoints des vitessess modales *
  27. * (sert pour les accélérations) *
  28. * *
  29. * *
  30. * Auteur, date de création: *
  31. * *
  32. * Samuel DURAND : le 14 Octobre 1996 : Création *
  33. * *
  34. *-----------------------------------------------------------------------*
  35. -INC PPARAM
  36. -INC CCOPTIO
  37. -INC SMLENTI
  38. -INC SMLREEL
  39. -INC SMCHPOI
  40. -INC SMELEME
  41. -INC SMCOORD
  42. *
  43. SEGMENT NUMOO
  44. INTEGER NUMO(N),KLIST(N)
  45. CHARACTER*(LOCHPO) NUDDL(N)
  46. ENDSEGMENT
  47. *
  48. CHARACTER*4 MOTCOM
  49. CHARACTER*4 NOMTRI(3)
  50. REAL*8 XAXROT(3),XROTA(2,6)
  51. *
  52. DATA NOMTRI/'UX ','UY ','UZ '/
  53. *
  54. segact mcoord
  55. *
  56. * Création d'un listréel composé des valeurs du mode
  57. * de rotation au cours du temps
  58. *
  59. MLENTI=ILEX
  60. SEGACT MLENTI
  61. LTEMP=LECT(/1)
  62. * Recherche de la position du mode de rotation, dans le premier
  63. * chpoint des variables généralisées
  64. MCHPOI=LECT(1)
  65. SEGACT MCHPOI
  66. NSOUP=IPCHP(/1)
  67. KT=0
  68. 15 CONTINUE
  69. KT=KT+1
  70. MSOUPO=IPCHP(KT)
  71. SEGACT MSOUPO
  72. MELEME = IGEOC
  73. SEGACT MELEME
  74. NE = NUM(/2)
  75. IE=0
  76. 16 CONTINUE
  77. IE=IE+1
  78. IF ((NUM(1,IE).EQ.IROT)) THEN
  79. * RIEN
  80. SEGDES MELEME,MSOUPO
  81. ELSE
  82. IF (IE.NE.NE) THEN
  83. GOTO 16
  84. ELSE
  85. SEGDES MELEME,MSOUPO
  86. GOTO 15
  87. ENDIF
  88. ENDIF
  89. SEGDES MCHPOI
  90. *
  91. * Boucle sur tous les instants pour remplir le listréel
  92. JG = LTEMP
  93. SEGINI,MLREEL
  94. DO 20 JT=1,LTEMP
  95. MCHPOI=LECT(JT)
  96. SEGACT MCHPOI
  97. MSOUPO=IPCHP(KT)
  98. SEGACT MSOUPO
  99. MPOVAL=IPOVAL
  100. SEGACT MPOVAL
  101. MLREEL.PROG(JT)=VPOCHA(IE,1)
  102. SEGDES MPOVAL,MSOUPO,MCHPOI
  103. 20 CONTINUE
  104. SEGDES MLENTI
  105. IF (ITYP.EQ.1.OR.ITYP.EQ.-1) THEN
  106. * Récupération des angles de rotation à chaque pas de temps
  107. JG=LTEMP
  108. SEGINI MLREE2
  109. MLENTI=ILEXRO
  110. SEGACT MLENTI
  111. DO 21 JT=1,LTEMP
  112. MCHPOI=LECT(JT)
  113. SEGACT MCHPOI
  114. MSOUPO=IPCHP(KT)
  115. SEGACT MSOUPO
  116. MPOVAL=IPOVAL
  117. SEGACT MPOVAL
  118. MLREE2.PROG(JT)=VPOCHA(IE,1)
  119. SEGDES MPOVAL,MSOUPO,MCHPOI
  120. 21 CONTINUE
  121. SEGDES MLENTI
  122. IF (ITYP.EQ.-1) THEN
  123. * Récupération des vitesses de rotation à chaque pas de temps
  124. JG=LTEMP
  125. SEGINI MLREE3
  126. MLENTI=ILEXVI
  127. SEGACT MLENTI
  128. DO 22 JT=1,LTEMP
  129. MCHPOI=LECT(JT)
  130. SEGACT MCHPOI
  131. MSOUPO=IPCHP(KT)
  132. SEGACT MSOUPO
  133. MPOVAL=IPOVAL
  134. SEGACT MPOVAL
  135. MLREE3.PROG(JT)=VPOCHA(IE,1)
  136. SEGDES MPOVAL,MSOUPO,MCHPOI
  137. 22 CONTINUE
  138. SEGDES MLENTI
  139. *
  140. else
  141. * rien
  142. ENDIF
  143. else
  144. * rien
  145. ENDIF
  146. NUMOO = IBOO
  147. SEGACT NUMOO
  148. N=NUMO(/1)
  149. *
  150. *
  151. * Boucle sur tous les points de recombinaison
  152. **
  153. IF (IDIM.EQ.3) THEN
  154. IDIMB=6
  155. ELSE
  156. IDIMB=3
  157. ENDIF
  158. DO 10 IPOINT=1,N
  159. MERR=0
  160. * Recherche de l axe de rotation
  161. MCHPOI=IDEFO
  162. SEGACT,MCHPOI
  163. NSO=IPCHP(/1)
  164. ISOU=0
  165. 11 CONTINUE
  166. ISOU=ISOU+1
  167. MSOUPO=IPCHP(ISOU)
  168. SEGACT,MSOUPO
  169. MELEME=IGEOC
  170. SEGACT,MELEME
  171. MPOVAL=IPOVAL
  172. SEGACT,MPOVAL
  173. NEL=NUM(/2)
  174. IE=0
  175. 12 CONTINUE
  176. IE=IE+1
  177. IF (NUM(1,IE).EQ.NUMO(IPOINT)) THEN
  178. DO 13 ID=(IDIM+1),IDIMB
  179. XAXROT(ID-IDIM)=VPOCHA(IE,ID)
  180. 13 CONTINUE
  181. SEGDES MPOVAL,MELEME,MSOUPO
  182. ELSE
  183. IF (IE.NE.NEL) THEN
  184. GOTO 12
  185. ELSE
  186. SEGDES MPOVAL,MELEME,MSOUPO
  187. GOTO 11
  188. ENDIF
  189. ENDIF
  190. SEGDES MCHPOI
  191. *
  192. CALL DYNE41(XAXROT,MERR,IDIM)
  193. * Calcul des fausses déformées modales de rotation
  194. CALL DYNE42(XROTA,XAXROT,NUMO(IPOINT),ICDG,IDIMB,MERR)
  195. MOTCOM=NUDDL(IPOINT)
  196. CALL PLACE5(NOMTRI,IDIM,IPOSI,MOTCOM)
  197. IF (IPOSI.NE.0) THEN
  198. * Boucle sur tous les instants
  199. *
  200. MLREE1=KLIST(IPOINT)
  201. SEGACT MLREE1*MOD
  202. DO 30 IT=1,LTEMP
  203. XVAL=MLREEL.PROG(IT)
  204. IF (ITYP.EQ.0) THEN
  205. MLREE1.PROG(IT)=MLREE1.PROG(IT)+(XROTA(1,IPOSI)*
  206. &(COS(XVAL)-1) + XROTA(2,IPOSI)*SIN(XVAL))
  207. ELSE
  208. XANG=MLREE2.PROG(IT)
  209. MLREE1.PROG(IT)=MLREE1.PROG(IT)+XVAL*
  210. &(COS(XANG)*XROTA(2,IPOSI)-SIN(XANG)*XROTA(1,IPOSI))
  211. IF (ITYP.EQ.-1) THEN
  212. XVIT=MLREE3.PROG(IT)
  213. MLREE1.PROG(IT)=MLREE1.PROG(IT)-XVIT*XVIT*
  214. &(COS(XANG)*XROTA(1,IPOSI)+SIN(XANG)*XROTA(2,IPOSI))
  215. else
  216. * rien
  217. ENDIF
  218. ENDIF
  219. 30 CONTINUE
  220. SEGDES MLREE1
  221. else
  222. * rien
  223. ENDIF
  224. 10 CONTINUE
  225. SEGSUP,MLREEL
  226. IF (ITYP.EQ.1.OR.ITYP.EQ.-1) THEN
  227. SEGSUP MLREE2
  228. IF (ITYP.EQ.-1) SEGSUP MLREE3
  229. else
  230. * rien
  231. ENDIF
  232. END
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  

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