Télécharger shpoly.eso

Retour à la liste

Numérotation des lignes :

shpoly
  1. C SHPOLY SOURCE CHAT 05/01/13 03:15:46 5004
  2. C SHAPE SOURCE BALD 96/02/07 21:19:39 2024
  3. SUBROUTINE SHPOLY(QSI,ETA,DZE,NUPT,MELE,SHP,IRET)
  4. C=======================================================================
  5. C
  6. C FONCTIONS DE FORME ET LEUR DERIVEES
  7. C
  8. C=======================================================================
  9. IMPLICIT INTEGER(I-N)
  10. IMPLICIT REAL*8(A-H,O-Z)
  11. C Include contenant quelques constantes dont XPI :
  12. -INC CCREEL
  13. DIMENSION SHP(6,*)
  14. C
  15. C DISTANCE DES POINTS A UN POLYGONE A N COTES
  16. C
  17. REAL*8 DIST(14)
  18. REAL*8 DDISDQ(14)
  19. REAL*8 DDISDE(14)
  20. REAL*8 NUMER(14)
  21. REAL*8 DNUMDQ(14)
  22. REAL*8 DNUMDE(14)
  23. INTEGER NBNO(111:122)
  24. C
  25. C NOMBRE DE NOEUDS EN FONCTION DU NUMERO D'ELEMENT
  26. C
  27. DATA NBNO/3,4,5,6,7,8,9,10,11,12,13,14/
  28. C
  29. C=======================================================================
  30. C QSI ETA DZE COORDONNEES REDUITES DU POINT DE GAUSS
  31. C NUPT NUMERO DU POINT DE GAUSS
  32. C
  33. C SHP FONCTIONS DE FORME SHP(1,INO) FONCTIONS DE FORME DU ND INO
  34. C SHP(2,INO) DERIVEES PR RPPRT A QSI
  35. C SHP(3,INO) DERIVEES PR RPPRT A ETA
  36. C SHP(4,INO) DERIVEES PR RPPRT A DZE
  37. C SHP(5,INO) DERIVEES PR RPPRT A 4
  38. C COORDONNEES BARYCENTRIQUES
  39. C CAS DE DIMENSION 1
  40. C 2 OU 3 NOEUDS LIGNE
  41. C 2 NOEUDS POLYNOME DE HERMITE ET DERIVEES
  42. C CAS DE DIMENSION 2
  43. C 3 OU 6 NOEUDS TRIANGLE
  44. C 4 OU 8 NOEUDS QUADRILATERE
  45. C 9 NOEUDS QUADRILATERE
  46. C N NOEUDS POLYGONE A N COTES
  47. C CAS DE DIMENSION 3 FAIT DANS SHAPE3 ETIQUETTE 50
  48. C 4 OU 10 NOEUDS TETRAEDRE
  49. C 5 OU 13 NOEUDS PYRAMIDE
  50. C 6 OU 15 NOEUDS PRISME
  51. C 8 OU 20 NOEUDS CUBE
  52. C=======================================================================
  53. IRET=1
  54. C
  55. C FONCTIONS DE FORME BIDIMENSIONNELLES
  56. C
  57. C FONCTIONS DE POYGONE A N NOEUDS
  58. C
  59. N = NBNO(MELE)
  60. C
  61. C CALCUL DES DISTANCES ET DES DERIVEES DU POINT AUX COTES DU POLYGONE
  62. C
  63. COPISN = COS (XPI/N)
  64. C
  65. DO 1010, I = 1, N
  66. C
  67. ALPHA = 2*XPI*(I-1)/N
  68. COSIN = COS(ALPHA)
  69. SINUS = SIN(ALPHA)
  70. C
  71. DIST(I) = COPISN - QSI * COSIN - ETA * SINUS
  72. DDISDQ(I) = - COSIN
  73. DDISDE(I) = - SINUS
  74. C
  75. 1010 CONTINUE
  76. C
  77. C CALCUL DES NUMERATEURS ET DENOMINATEUR DES FRACTIONS RATIONNELLES ET DERIVEES
  78. C
  79. DENOM = 0.D0
  80. DDENDQ = 0.D0
  81. DDENDE = 0.D0
  82. C
  83. DO 1020 I = 1, N
  84. C
  85. NUMER(I) = 1.D0
  86. DNUMDQ(I) = 0.D0
  87. DNUMDE(I) = 0.D0
  88. C
  89. DO 1015 J = 1, N
  90. C
  91. IF ((J.NE.I).AND.(J.NE.I+1).AND.((I.NE.N).OR.(J.NE.1))) THEN
  92. C
  93. NUMER(I) = NUMER(I) * DIST(J)
  94. C
  95. C CALCUL DU PRODUIT DES DISTANCES POUR LA DERIVEE
  96. C
  97. PROD = 1.D0
  98. C
  99. DO 1013 K = 1, N
  100. C
  101. IF ((K.NE.I).AND.(K.NE.I+1).AND.((I.NE.N).OR.(K.NE.1
  102. $ )).AND.(K.NE.J)) THEN
  103. C
  104. PROD = PROD * DIST(K)
  105. C
  106. END IF
  107. C
  108. 1013 CONTINUE
  109. C
  110. DNUMDQ(I) = DNUMDQ(I) + PROD * DDISDQ(J)
  111. DNUMDE(I) = DNUMDE(I) + PROD * DDISDE(J)
  112. C
  113. END IF
  114. C
  115. 1015 CONTINUE
  116. C
  117. DENOM = DENOM+NUMER(I)
  118. DDENDQ = DDENDQ + DNUMDQ(I)
  119. DDENDE = DDENDE + DNUMDE(I)
  120. C
  121. 1020 CONTINUE
  122. C
  123. C CALCUL DES FONCTIONS DE FORME ET DE LEURS DERIVEES
  124. C
  125. DO 1030, I = 1, N
  126. C
  127. SHP(1,I) = NUMER(I)/DENOM
  128. SHP(2,I) = (DNUMDQ(I)*DENOM - NUMER(I)*DDENDQ)/(DENOM*DENOM)
  129. SHP(3,I) = (DNUMDE(I)*DENOM - NUMER(I)*DDENDE)/(DENOM*DENOM)
  130. C
  131. 1030 CONTINUE
  132. C
  133. END
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  

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