Télécharger pourea.eso

Retour à la liste

Numérotation des lignes :

pourea
  1. C POUREA SOURCE PV090527 24/04/04 21:15:24 11875
  2. SUBROUTINE POUREA(XX,YY,ZZ,XDDL,WORK,P,VECT,KERRE)
  3. C-----------------------------------------------------------------------
  4. C ROUTINE DE REACTUALISATION DU VECTEUR VECT
  5. C-----------------------------------------------------------------------
  6. C ENTREE
  7. C XX,YY,ZZ LES COORDONNEES DES 2 NOEUDS
  8. C XDDL LES DEPLACEMENTS EN AXES GLOBAUX
  9. C WORK TABLEAU DE TRAVAIL
  10. C P MATRICE DE PASSAGE
  11. C
  12. C SORTIE
  13. C VECT NOUVEAU VECTEUR
  14. C KERRE INDICE D'ERREUR ( 0 SI TOUT EST OK )
  15. C
  16. C-----------------------------------------------------------------------
  17. IMPLICIT INTEGER(I-N)
  18. IMPLICIT REAL*8(A-H,O-Z)
  19. DIMENSION WORK(*),P(3,*),VECT(*),VN(3),VNP(3),XDDL(*)
  20. DIMENSION OMEG(3),PP(3,3),XX(*),YY(*),ZZ(*)
  21. -INC CCREEL
  22.  
  23. C Initialisation à ZERO sinon SIGSEV parfois car utilisation de termes non initialises
  24. CALL ZERO(PP,3,3)
  25. C
  26. C CALCUL DE VNP
  27. C
  28. VNP(1)=XX(2)+XDDL(7)-XX(1)-XDDL(1)
  29. VNP(2)=YY(2)+XDDL(8)-YY(1)-XDDL(2)
  30. VNP(3)=ZZ(2)+XDDL(9)-ZZ(1)-XDDL(3)
  31. RLVNP=SQRT(VNP(1)*VNP(1)+VNP(2)*VNP(2)+VNP(3)*VNP(3))+XPETIT
  32. IF(RLVNP.LT.2*XPETIT) THEN
  33. KERRE=1
  34. RETURN
  35. ENDIF
  36. DO 1 I=1,3
  37. VNP(I)=VNP(I)/RLVNP
  38. OMEG(I)=VNP(I)
  39. 1 continue
  40. C
  41. C CALCUL DE LA MATRICE DE PASSAGE
  42. C
  43. CALL POUPAS(XX,YY,ZZ,OMEG,PP,KERRE)
  44. IOMEG=KERRE
  45. KERRE=0
  46. C
  47. C PASSAGE DES DEPLACEMENTS EN AXES LOCAUX - ROTATION PSI
  48. C
  49. CALL POUVEC(XDDL,WORK,P,1)
  50. PSI=(WORK(4)+WORK(10))*0.5D0
  51. C2=PP(1,1)*VNP(1)+PP(1,2)*VNP(2)+PP(1,3)*VNP(3)
  52. S2=PP(2,1)*VNP(1)+PP(2,2)*VNP(2)+PP(2,3)*VNP(3)
  53. C3=COS(PSI)
  54. S3=SIN(PSI)
  55. C
  56. C REACTUALISATION DU VECTEUR
  57. C
  58. IF(IOMEG.EQ.0) THEN
  59. DO I=1,3
  60. VN(I)=0.D0
  61. DO J=1,3
  62. VN(I)=VN(I)+PP(I,J)*VECT(J)
  63. enddo
  64. enddo
  65. OMEG(1)=C2*VN(1)-S2*C3*VN(2)+S2*S3*VN(3)
  66. OMEG(2)=S2*VN(1)+C2*C3*VN(2)-C2*S3*VN(3)
  67. OMEG(3)=S3*VN(2)+C3*VN(3)
  68. DO I=1,3
  69. VECT(I)=0.D0
  70. DO J=1,3
  71. VECT(I)=VECT(I)+PP(J,I)*OMEG(J)
  72. enddo
  73. enddo
  74. ELSE
  75. VN(1)=0.D0
  76. VN(2)=C3
  77. VN(3)=S3
  78. DO I=1,3
  79. VECT(I)=0.D0
  80. DO J=1,3
  81. VECT(I)=VECT(I)+P(J,I)*VN(J)
  82. enddo
  83. enddo
  84. ENDIF
  85. END
  86.  
  87.  
  88.  
  89.  

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