Télécharger rotvec.eso

Retour à la liste

Numérotation des lignes :

rotvec
  1. C ROTVEC SOURCE CB215821 26/10/26 21:16:04 12682
  2. SUBROUTINE ROTVEC(VECT,OMEG,IDIM,KERRE)
  3. C-----------------------------------------------------------------------
  4. C ROUTINE DE ROTATION D'UN VECTEUR DANS L'HYPOTHESE DES PETITES
  5. C ROTATIONS
  6. C-----------------------------------------------------------------------
  7. C ENTREE
  8. C ------ VECT LE VECTEUR A REACTUALISER ( QUELCONQUE )
  9. C OMEG LE VECTEUR ROTATION
  10. C IDIM INDICE DE LA DIMENSION ( 2 OU 3 )
  11. C SORTIE
  12. C ------ VECT LE VECTEUR REACTUALISE ( NORME )
  13. C KERRE INDICE D'ERREUR ( 0 SI TOUT EST OK )
  14. C-----------------------------------------------------------------------
  15. IMPLICIT INTEGER(I-N)
  16. IMPLICIT REAL*8(A-H,O-Z)
  17. DIMENSION VECT(*),U(3),OMEG(*)
  18. C
  19. KERRE=0
  20. DO 1 I=1,IDIM
  21. U(I)=VECT(I)
  22. 1 CONTINUE
  23. C
  24. IF(IDIM.EQ.3) THEN
  25. VECT(1)=OMEG(2)*U(3)-OMEG(3)*U(2)+U(1)
  26. VECT(2)=OMEG(3)*U(1)-OMEG(1)*U(3)+U(2)
  27. VECT(3)=OMEG(1)*U(2)-OMEG(2)*U(1)+U(3)
  28. C
  29. ELSE IF (IDIM.EQ.2) THEN
  30. VECT(1)=-OMEG(1)*U(2)+U(1)
  31. VECT(2)= OMEG(1)*U(1)+U(2)
  32. ENDIF
  33. C
  34. XNOR=0.D0
  35. DO 2 I=1,IDIM
  36. XNOR=XNOR+VECT(I)*VECT(I)
  37. 2 CONTINUE
  38. IF(XNOR.EQ.0.D0) THEN
  39. KERRE=3
  40. RETURN
  41. ENDIF
  42. XNOR=1.D0/SQRT(XNOR)
  43. DO 3 I=1,IDIM
  44. VECT(I)=VECT(I)*XNOR
  45. 3 CONTINUE
  46. RETURN
  47. END
  48.  
  49.  
  50.  

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