Télécharger caljqb.eso

Retour à la liste

Numérotation des lignes :

caljqb
  1. C CALJQB SOURCE CHAT 05/01/12 21:46:53 5004
  2. SUBROUTINE CALJQB(XYZ,P,IES,NP)
  3. C***********************************************************************
  4. C CE SP CALCULE
  5. C LA MATRICE DE ROTATION DU REPERE GLOBALE VERS LE REPERE LOCAL
  6. C DEFINI PAR DEUX OU TROIS POINTS PRIS DANS XYZ SUIVANT QU'ON EST
  7. C EN 2D OU EN 3D
  8. C ON PREND P1 P2 ET PNP
  9. C
  10. C U TEL QUE T SOIT DIRIGE SUIVANT P1P2 V TOURNE VERS
  11. C . .V P1PNP ET U = T VECTORIEL V
  12. C . .
  13. C . . __ __
  14. C (P1). . . . .T (P2) | tx ty tz |
  15. C | |
  16. C ON A ALORS WL= P WG P = | vx vy vz |
  17. C | |
  18. C | ux uy uz |
  19. C |__ __|
  20. C***********************************************************************
  21. IMPLICIT INTEGER(I-N)
  22. IMPLICIT REAL*8 (A-H,O-Z)
  23.  
  24. REAL*8 XYZ(IES,NP),P(IES,IES)
  25.  
  26. C***
  27.  
  28. IF(IES.EQ.2)GO TO 200
  29.  
  30. TX=XYZ(1,2)-XYZ(1,1)
  31. TY=XYZ(2,2)-XYZ(2,1)
  32. TZ=XYZ(3,2)-XYZ(3,1)
  33. TT=TX*TX+TY*TY+TZ*TZ
  34. TT=1.D0/SQRT(TT)
  35. TX=TX*TT
  36. TY=TY*TT
  37. TZ=TZ*TT
  38. C WRITE(6,*)'TX= TY= TZ= TT=',TX,TY,TZ,TT
  39. UX=(XYZ(2,NP)-XYZ(2,1))*TZ-(XYZ(3,NP)-XYZ(3,1))*TY
  40. UY=(XYZ(3,NP)-XYZ(3,1))*TX-(XYZ(1,NP)-XYZ(1,1))*TZ
  41. UZ=(XYZ(1,NP)-XYZ(1,1))*TY-(XYZ(2,NP)-XYZ(2,1))*TX
  42. UU=UX*UX+UY*UY+UZ*UZ
  43. UU=1.D0/SQRT(UU)
  44. UX=-UX*UU
  45. UY=-UY*UU
  46. UZ=-UZ*UU
  47. C WRITE(6,*)'UX,UY,UZ,UU',UX,UY,UZ,UU
  48. VX=+UY*TZ-UZ*TY
  49. VY=+UZ*TX-UX*TZ
  50. VZ=+UX*TY-UY*TX
  51. C WRITE(6,*)'VX= VY= VZ=',VX,VY,VZ
  52. P(1,1)=TX
  53. P(1,2)=TY
  54. P(1,3)=TZ
  55. P(2,1)=VX
  56. P(2,2)=VY
  57. P(2,3)=VZ
  58. P(3,1)=UX
  59. P(3,2)=UY
  60. P(3,3)=UZ
  61. C
  62. RETURN
  63.  
  64. 200 CONTINUE
  65.  
  66. TX=XYZ(1,2)-XYZ(1,1)
  67. TY=XYZ(2,2)-XYZ(2,1)
  68. TT=TX*TX+TY*TY
  69. TT=SQRT(TT)
  70. TX=TX/TT
  71. TY=TY/TT
  72.  
  73. VX=-TY
  74. VY= TX
  75.  
  76. P(1,1)=TX
  77. P(1,2)=TY
  78. P(2,1)=VX
  79. P(2,2)=VY
  80.  
  81. RETURN
  82. END
  83.  
  84.  

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