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.  
  26. -INC PPARAM
  27. -INC CCOPTIO
  28. -INC CCREEL
  29. *
  30. * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN)
  31. * -----------
  32. *
  33. * XEL (E) TABLEAU CONTENANT LES COORDONNEES DES NOEUDS
  34. * SHPTOT (E) TABLEAU CONTENANT LES FONCTIONS DE FORME ET
  35. * LEURS DERIVEES AU CENTRE DE L'ELEMENT
  36. * NBSH (E) NOMBRE DE FONCTIONS D'INTERPOLATION
  37. * NBNN (E) NOMBRE DE NOEUDS PAR ELEMENT
  38. * TXR (S) COS.DIRECTEUR DES AXES LOCAUX/REPERE GLOBAL
  39. *
  40. *
  41. * REMARQUE :
  42. *
  43. *
  44. * LA TANGANTE A L'AXE KSI AU CENTRE DE L'ELEMENT FORME L'AXE 1 ,L'AXE 3
  45. * EST OBTENU PAR LE PRODUIT VECTORIEL DE L'AXE 1 ET LA TANGANTE A
  46. * L'AXE ETA AU CENTRE DE L'ELEMENT,L'AXE 2 EST OBTENU PAR LE PRODUIT
  47. * VECTORIEL DES AXES 3 ET 1
  48. *
  49. *
  50. * AUTEUR, DATE DE CREATION:
  51. * -------------------------
  52. *
  53. * P. DOWLATYARI OCT. 1990
  54. *
  55. * LANGAGE:
  56. * --------
  57. * FORTRAN 77 + ESOPE
  58. *
  59. *
  60. ************************************************************************
  61. *
  62. *
  63. DIMENSION TXR(IDIM,IDIM),XEL(3,NBNN),SHPTOT(6,NBSH,1)
  64. *
  65. *
  66. *
  67. DO 10 K=1,IDIM
  68. DO 10 L=1,IDIM
  69. TXR(K,L)=XZERO
  70. 10 CONTINUE
  71. *
  72. * CAS BIDIMENSIONNEL
  73. *
  74. IF(IDIM.EQ.2)THEN
  75. DO 20 INO=1,NBNN
  76. TXR(1,1)=SHPTOT(2,INO,1)*XEL(1,INO)+TXR(1,1)
  77. TXR(2,1)=SHPTOT(2,INO,1)*XEL(2,INO)+TXR(2,1)
  78. 20 CONTINUE
  79. *
  80. * NORMALISATION
  81. *
  82. XNORM=SQRT(TXR(1,1)*TXR(1,1)+TXR(2,1)*TXR(2,1))
  83. IF(XNORM.LE. XPETIT)THEN
  84. * ELEMENT MASSIF DEGENERE ,REPERE LOCAL IMPOSSIBLE A DEFINIR
  85. ** CALL ERREUR (525)
  86. nbsh=-1
  87. RETURN
  88. ENDIF
  89. TXR(1,1)=TXR(1,1)/XNORM
  90. TXR(2,1)=TXR(2,1)/XNORM
  91. TXR(1,2)=-TXR(2,1)
  92. TXR(2,2)=TXR(1,1)
  93. *
  94. ELSEIF(IDIM.EQ.3)THEN
  95. *
  96. DO 30 IC=1,2
  97. DO 30 IL=1,3
  98. DO 30 INO=1,NBNN
  99. TXR(IL,IC)=TXR(IL,IC)+SHPTOT((IC+1),INO,1)*XEL(IL,INO)
  100. 30 CONTINUE
  101. *
  102. *
  103. * NORMALISATION DE L'AXE 1
  104. *
  105. XNORM=SQRT(TXR(1,1)*TXR(1,1)+TXR(2,1)*TXR(2,1)+
  106. . TXR(3,1)*TXR(3,1))
  107. IF(XNORM.LE. XPETIT)THEN
  108. * ELEMENT MASSIF DEGENERE ,REPERE LOCAL IMPOSSIBLE A DEFINIR
  109. ** CALL ERREUR (525)
  110. nbsh=-1
  111. RETURN
  112. ENDIF
  113. TXR(1,1)=TXR(1,1)/XNORM
  114. TXR(2,1)=TXR(2,1)/XNORM
  115. TXR(3,1)=TXR(3,1)/XNORM
  116. *
  117. * CALCUL DES AXES 3 ET 2
  118. *
  119. CALL CROSS2 (TXR(1,1),TXR(1,2),TXR(1,3),IRR)
  120. IF(IRR.EQ.0)THEN
  121. * ELEMENT MASSIF DEGENERE ,REPERE LOCAL IMPOSSIBLE A DEFINIR
  122. ** CALL ERREUR (525)
  123. nbsh=-1
  124. RETURN
  125. ENDIF
  126. CALL CROSS2 (TXR(1,3),TXR(1,1),TXR(1,2),IRR)
  127. ENDIF
  128. *
  129. RETURN
  130. END
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  

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