Télécharger mapaex.eso

Retour à la liste

Numérotation des lignes :

mapaex
  1. C MAPAEX SOURCE CB215821 26/08/24 21:17:14 12622
  2. C MAPAEX SOURCE DJ 93/01/12 21:20:55 781
  3. SUBROUTINE MAPAEX(XE,NBNN,WORK,AL,TGL,LRE,KERRE)
  4. C=======================================================================
  5. C RECHERCHE DU REPERE LOCAL DE BAEX ( barre 3D excentre)
  6. C=======================================================================
  7. IMPLICIT INTEGER(I-N)
  8. IMPLICIT REAL*8(A-H,O-Z)
  9. DIMENSION XE(3,NBNN),B(3,3),TGL(2,LRE),WORK(6)
  10. * ---------------------------------------------------
  11. EXCZ=WORK(2)
  12. EXCY=WORK(3)
  13. VX3P=WORK(4)
  14. VY3P=WORK(5)
  15. VZ3P=WORK(6)
  16. C
  17. DO 1000 I=1,2
  18. DO 13 J=1,LRE
  19. TGL(I,J)=0.D0
  20. 13 CONTINUE
  21. 1000 CONTINUE
  22. C
  23. VX1=XE(1,2)-XE(1,1)
  24. VY1=XE(2,2)-XE(2,1)
  25. VZ1=XE(3,2)-XE(3,1)
  26. VL1=SQRT(VX1*VX1+VY1*VY1+VZ1*VZ1)
  27. AL=VL1
  28. C
  29. KERRE=0
  30. IF(AL.EQ.0.D0) THEN
  31. KERRE=1
  32. GO TO 999
  33. ENDIF
  34. C
  35. VX2=VY3P*VZ1-VY1*VZ3P
  36. VY2=VX1*VZ3P-VX3P*VZ1
  37. VZ2=VX3P*VY1-VX1*VY3P
  38. VL2=SQRT(VX2*VX2+VY2*VY2+VZ2*VZ2)
  39. C
  40. * correction 1 BL : passage au repere local seg2
  41. B(1,1)=VX1/VL1
  42. B(1,2)=VY1/VL1
  43. B(1,3)=VZ1/VL1
  44. B(3,1)=-1*VX2/VL2
  45. B(3,2)=-1*VY2/VL2
  46. B(3,3)=-1*VZ2/VL2
  47. B(2,1)=B(3,2)*B(1,3)-B(1,2)*B(3,3)
  48. B(2,2)=B(1,1)*B(3,3)-B(3,1)*B(1,3)
  49. B(2,3)=B(3,1)*B(1,2)-B(1,1)*B(3,2)
  50. * fin correction 1 BL
  51. C
  52. LIB=6
  53. C
  54. DO 20 I=1,2
  55. DO 10 J=1,3
  56. L1=(I-1)*LIB+J
  57. TGL(I,L1)=B(1,J)
  58. IF(LIB.EQ.6) THEN
  59. L2=I*LIB-2
  60. L3=I*LIB-1
  61. L4=I*LIB
  62. * correction 2 BL : prise en compte des 2 excentrements
  63. TGL(I,L2)= B(2,1)*EXCZ-B(3,1)*EXCY
  64. TGL(I,L3)= B(2,2)*EXCZ-B(3,2)*EXCY
  65. TGL(I,L4)= B(2,3)*EXCZ-B(3,3)*EXCY
  66. * fin correction 2 BL
  67. ELSE
  68. L2=I*LIB-1
  69. L3=I*LIB
  70. TGL(I,L2)= B(2,1)*EXCZ
  71. TGL(I,L3)= B(2,2)*EXCZ
  72. ENDIF
  73. 10 CONTINUE
  74. 20 CONTINUE
  75. 999 CONTINUE
  76. C
  77. * WRITE(*,*) ' ======================== calcul TGL ds mapaex '
  78. * WRITE(*,*) ' matrice B elem =',IB
  79. * WRITE(*,1190) ((B(IA,IC),IA=1,3),IC=1,3)
  80. * WRITE(*,*) ' XGENE passage'
  81. * DO 110 I =1,2
  82. * WRITE(*,1199) (TGL(I,IC),IC=1,LRE)
  83. * 110 CONTINUE
  84. *1190 FORMAT(3(3(2X,E10.4),/))
  85. *1199 FORMAT(12(1X,E8.2))
  86. RETURN
  87. END
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  

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