Télécharger rlocal.eso

Retour à la liste

Numérotation des lignes :

rlocal
  1. C RLOCAL SOURCE FANDEUR 21/08/30 21:15:04 11087
  2.  
  3. SUBROUTINE RLOCAL (XEL,SHPTOT,NBSH,NBNN,TXR)
  4.  
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8(A-H,O-Z)
  7. *
  8. * Attention en cas d'erreur, erreur n'est pas appelé, c'est au
  9. * sp appelant à le faire (prob erreur utilise esope)
  10. *
  11. ************************************************************************
  12. *
  13. * R L O C A L
  14. * -------------
  15. *
  16. * FONCTION:
  17. * ---------
  18. *
  19. * CALCUL DES COS-DIR. DES AXES LOCAUX DE L'ELEMENT MASSIF
  20. *
  21. * MODULES UTILISES:
  22. * -----------------
  23. *
  24. -INC PPARAM
  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. * REMARQUE :
  39. *
  40. * LA TANGENTE A L'AXE KSI AU CENTRE DE L'ELEMENT FORME L'AXE 1 ,L'AXE 3
  41. * EST OBTENU PAR LE PRODUIT VECTORIEL DE L'AXE 1 ET LA TANGENTE A
  42. * L'AXE ETA AU CENTRE DE L'ELEMENT,L'AXE 2 EST OBTENU PAR LE PRODUIT
  43. * VECTORIEL DES AXES 3 ET 1
  44. *
  45. * AUTEUR, DATE DE CREATION:
  46. * -------------------------
  47. * P. DOWLATYARI OCT. 1990
  48. *
  49. * LANGAGE:
  50. * --------
  51. * FORTRAN 77 + ESOPE
  52. *
  53. ************************************************************************
  54. *
  55. DIMENSION TXR(IDIM,IDIM),XEL(3,NBNN),SHPTOT(6,NBSH,1)
  56.  
  57. * CAS BIDIMENSIONNEL
  58. * ------------------
  59. IF (IDIM.EQ.2) THEN
  60.  
  61. rz_1 = XZERO
  62. rz_2 = XZERO
  63. DO INO=1,NBNN
  64. rz_1 = rz_1 + SHPTOT(2,INO,1)*XEL(1,INO)
  65. rz_2 = rz_2 + SHPTOT(2,INO,1)*XEL(2,INO)
  66. ENDDO
  67.  
  68. * NORMALISATION
  69. XNORM = rz_1*rz_1 + rz_2*rz_2
  70.  
  71. * ELEMENT MASSIF DEGENERE ,REPERE LOCAL IMPOSSIBLE A DEFINIR
  72. IF(XNORM.LE. XPETIT)THEN
  73. nbsh=-1
  74. RETURN
  75. ENDIF
  76. XNORM = SQRT(XNORM)
  77.  
  78. TXR(1,1) = rz_1 / XNORM
  79. TXR(2,1) = rz_2 / XNORM
  80. TXR(1,2) = -TXR(2,1)
  81. TXR(2,2) = TXR(1,1)
  82. *
  83. * CAS TRIDIMENSIONNEL
  84. * -------------------
  85. ELSE IF (IDIM.EQ.3) THEN
  86. *
  87. * DO IL=1,IDIM
  88. DO IL=1,3
  89. r_z1 = XZERO
  90. r_z2 = XZERO
  91. DO INO=1,NBNN
  92. r_z1 = r_z1 + SHPTOT(2,INO,1)*XEL(IL,INO)
  93. r_z2 = r_z2 + SHPTOT(3,INO,1)*XEL(IL,INO)
  94. ENDDO
  95. TXR(IL,1) = r_z1
  96. TXR(IL,2) = r_z2
  97. TXR(IL,3) = XZERO
  98. ENDDO
  99. *
  100. * NORMALISATION DE L'AXE 1
  101. *
  102. XNORM= TXR(1,1)*TXR(1,1)+TXR(2,1)*TXR(2,1)+TXR(3,1)*TXR(3,1)
  103. * ELEMENT MASSIF DEGENERE ,REPERE LOCAL IMPOSSIBLE A DEFINIR
  104. IF(XNORM.LE. XPETIT)THEN
  105. nbsh=-1
  106. RETURN
  107. ENDIF
  108. XNORM=SQRT(XNORM)
  109. TXR(1,1)=TXR(1,1)/XNORM
  110. TXR(2,1)=TXR(2,1)/XNORM
  111. TXR(3,1)=TXR(3,1)/XNORM
  112. *
  113. * CALCUL DES AXES 3 ET 2
  114. *
  115. CALL CROSS2 (TXR(1,1),TXR(1,2),TXR(1,3),IRR)
  116. * ELEMENT MASSIF DEGENERE ,REPERE LOCAL IMPOSSIBLE A DEFINIR
  117. IF(IRR.EQ.0)THEN
  118. nbsh=-1
  119. RETURN
  120. ENDIF
  121. CALL CROSS2 (TXR(1,3),TXR(1,1),TXR(1,2),IRR)
  122.  
  123. * CAS UNIDIMENSIONNEL
  124. * -------------------
  125. ELSE IF (IDIM.EQ.1) THEN
  126. TXR(1,1) = 1.D0
  127. ENDIF
  128. *
  129. RETURN
  130. END
  131.  
  132.  
  133.  

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