Télécharger rlocal.eso

Retour à la liste

Numérotation des lignes :

  1. C RLOCAL SOURCE CB215821 16/04/21 21:18:20 8920
  2. SUBROUTINE RLOCAL (XEL,SHPTOT,NBSH,NBNN,TXR)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8(A-H,O-Z)
  5. *
  6. *
  7. * Attention en cas d'erreur, erreur n'est pas appelé, c'est au
  8. * sp appelant à le faire (prob erreur utilise esope)
  9. *
  10. ************************************************************************
  11. *
  12. * R L O C A L
  13. * -------------
  14. *
  15. * FONCTION:
  16. * ---------
  17. *
  18. * CALCUL DES COS-DIR. DES AXES LOCAUX DE L'ELEMENT MASSIF
  19. *
  20. *
  21. *
  22. * MODULES UTILISES:
  23. * -----------------
  24. *
  25. -INC CCOPTIO
  26. -INC CCREEL
  27. *
  28. * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN)
  29. * -----------
  30. *
  31. * XEL (E) TABLEAU CONTENANT LES COORDONNEES DES NOEUDS
  32. * SHPTOT (E) TABLEAU CONTENANT LES FONCTIONS DE FORME ET
  33. * LEURS DERIVEES AU CENTRE DE L'ELEMENT
  34. * NBSH (E) NOMBRE DE FONCTIONS D'INTERPOLATION
  35. * NBNN (E) NOMBRE DE NOEUDS PAR ELEMENT
  36. * TXR (S) COS.DIRECTEUR DES AXES LOCAUX/REPERE GLOBAL
  37. *
  38. *
  39. * REMARQUE :
  40. *
  41. *
  42. * LA TANGANTE A L'AXE KSI AU CENTRE DE L'ELEMENT FORME L'AXE 1 ,L'AXE 3
  43. * EST OBTENU PAR LE PRODUIT VECTORIEL DE L'AXE 1 ET LA TANGANTE A
  44. * L'AXE ETA AU CENTRE DE L'ELEMENT,L'AXE 2 EST OBTENU PAR LE PRODUIT
  45. * VECTORIEL DES AXES 3 ET 1
  46. *
  47. *
  48. * AUTEUR, DATE DE CREATION:
  49. * -------------------------
  50. *
  51. * P. DOWLATYARI OCT. 1990
  52. *
  53. * LANGAGE:
  54. * --------
  55. * FORTRAN 77 + ESOPE
  56. *
  57. *
  58. ************************************************************************
  59. *
  60. *
  61. DIMENSION TXR(IDIM,IDIM),XEL(3,NBNN),SHPTOT(6,NBSH,1)
  62. *
  63. *
  64. *
  65. DO 10 K=1,IDIM
  66. DO 10 L=1,IDIM
  67. TXR(K,L)=XZERO
  68. 10 CONTINUE
  69. *
  70. * CAS BIDIMENSIONNEL
  71. *
  72. IF(IDIM.EQ.2)THEN
  73. DO 20 INO=1,NBNN
  74. TXR(1,1)=SHPTOT(2,INO,1)*XEL(1,INO)+TXR(1,1)
  75. TXR(2,1)=SHPTOT(2,INO,1)*XEL(2,INO)+TXR(2,1)
  76. 20 CONTINUE
  77. *
  78. * NORMALISATION
  79. *
  80. XNORM=SQRT(TXR(1,1)*TXR(1,1)+TXR(2,1)*TXR(2,1))
  81. IF(XNORM.LE. XPETIT)THEN
  82. * ELEMENT MASSIF DEGENERE ,REPERE LOCAL IMPOSSIBLE A DEFINIR
  83. ** CALL ERREUR (525)
  84. nbsh=-1
  85. RETURN
  86. ENDIF
  87. TXR(1,1)=TXR(1,1)/XNORM
  88. TXR(2,1)=TXR(2,1)/XNORM
  89. TXR(1,2)=-TXR(2,1)
  90. TXR(2,2)=TXR(1,1)
  91. *
  92. ELSEIF(IDIM.EQ.3)THEN
  93. *
  94. DO 30 IC=1,2
  95. DO 30 IL=1,3
  96. DO 30 INO=1,NBNN
  97. TXR(IL,IC)=TXR(IL,IC)+SHPTOT((IC+1),INO,1)*XEL(IL,INO)
  98. 30 CONTINUE
  99. *
  100. *
  101. * NORMALISATION DE L'AXE 1
  102. *
  103. XNORM=SQRT(TXR(1,1)*TXR(1,1)+TXR(2,1)*TXR(2,1)+
  104. . TXR(3,1)*TXR(3,1))
  105. IF(XNORM.LE. XPETIT)THEN
  106. * ELEMENT MASSIF DEGENERE ,REPERE LOCAL IMPOSSIBLE A DEFINIR
  107. ** CALL ERREUR (525)
  108. nbsh=-1
  109. RETURN
  110. ENDIF
  111. TXR(1,1)=TXR(1,1)/XNORM
  112. TXR(2,1)=TXR(2,1)/XNORM
  113. TXR(3,1)=TXR(3,1)/XNORM
  114. *
  115. * CALCUL DES AXES 3 ET 2
  116. *
  117. CALL CROSS2 (TXR(1,1),TXR(1,2),TXR(1,3),IRR)
  118. IF(IRR.EQ.0)THEN
  119. * ELEMENT MASSIF DEGENERE ,REPERE LOCAL IMPOSSIBLE A DEFINIR
  120. ** CALL ERREUR (525)
  121. nbsh=-1
  122. RETURN
  123. ENDIF
  124. CALL CROSS2 (TXR(1,3),TXR(1,1),TXR(1,2),IRR)
  125. ENDIF
  126. *
  127. RETURN
  128. END
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  

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