Télécharger gt3f10.eso

Retour à la liste

Numérotation des lignes :

  1. C GT3F10 SOURCE GOUNAND 05/12/21 21:28:52 5281
  2. SUBROUTINE GT3F10(PGCOUR,NOPG,DIMSRF,XCOR,POIDS,
  3. $ IMPR,IRET)
  4. IMPLICIT REAL*8 (A-H,O-Z)
  5. IMPLICIT INTEGER (I-N)
  6. C***********************************************************************
  7. C NOM : GT3F10
  8. C PROJET : Noyau linéaire NLIN
  9. C DESCRIPTION : Rajoute des points à une méthode d'intégration type
  10. C Gauss (PGCOUR).
  11. C Domaine de type [ Simplex ] de dimension 3
  12. C i.e. tétrahèdre.
  13. C Générateur de type [ Fully symmetric ].
  14. C Rule structure of index 10 i.e.
  15. C XCOR=(a,a,b,c)
  16. C XCOR=xi sont les coordonnées barycentriques...
  17. C
  18. C le nombre de points générés est 12 (car le nombre de
  19. C permutations distinctes de (a,a,b,c) est 4!/2! :
  20. C (a,a,b,c) ; (a,b,a,c) ; (a,b,c,a)
  21. C (b,a,c,a) ; (b,c,a,a) ; (b,a,a,c)
  22. C (a,a,c,b) ; (a,c,a,b) ; (a,c,b,a)
  23. C (c,a,b,a) ; (c,b,a,a) ; (c,a,a,b)
  24. C
  25. C LANGAGE : ESOPE
  26. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  27. C mél : gounand@semt2.smts.cea.fr
  28. C***********************************************************************
  29. C APPELES : -
  30. C APPELE PAR : INGATE
  31. C***********************************************************************
  32. C ENTREES : DIMSRF, XCOR, POIDS
  33. C ENTREES/SORTIES : PGCOUR (actif en *MOD), NOPG
  34. C SORTIES : MYPGS
  35. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  36. C***********************************************************************
  37. C VERSION : v1, 29/05/00, version initiale
  38. C HISTORIQUE : v1, 29/05/00, création
  39. C HISTORIQUE :
  40. C HISTORIQUE :
  41. C***********************************************************************
  42. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  43. C en cas de modification de ce sous-programme afin de faciliter
  44. C la maintenance !
  45. C***********************************************************************
  46. -INC CCOPTIO
  47. CBEGININCLUDE SPOGAU
  48. SEGMENT POGAU
  49. CHARACTER*(LNNPG) NOMPG
  50. CHARACTER*(LNTPG) TYPMPG
  51. CHARACTER*(LNFPG) FORLPG
  52. INTEGER NORDPG
  53. REAL*8 XCOPG(NDLPG,NBPG)
  54. REAL*8 XPOPG(NBPG)
  55. ENDSEGMENT
  56. SEGMENT POGAUS
  57. POINTEUR LISPG(0).POGAU
  58. ENDSEGMENT
  59. CENDINCLUDE SPOGAU
  60. POINTEUR PGCOUR.POGAU
  61. *
  62. INTEGER NOPG,DIMSRF
  63. REAL*8 XCOR(DIMSRF+1)
  64. REAL*8 POIDS
  65. INTEGER IMPR,IRET
  66. *
  67. REAL*8 XA,XB,XC
  68. *
  69. * Executable statements
  70. *
  71. IF (IMPR.GT.6) WRITE(IOIMP,*) 'Entrée dans gt3f10'
  72. IF (DIMSRF.NE.3) THEN
  73. WRITE(IOIMP,*) 'DIMSRF doit etre égal à 3...'
  74. GOTO 9999
  75. ENDIF
  76. XA=XCOR(1)
  77. XB=XCOR(3)
  78. XC=XCOR(4)
  79. * (a,a,b,c) ; (a,b,a,c) ; (a,b,c,a)
  80. NOPG=NOPG+1
  81. PGCOUR.XCOPG(1,NOPG)= XA
  82. PGCOUR.XCOPG(2,NOPG)= XA
  83. PGCOUR.XCOPG(3,NOPG)= XB
  84. PGCOUR.XPOPG(NOPG)=POIDS
  85. NOPG=NOPG+1
  86. PGCOUR.XCOPG(1,NOPG)= XA
  87. PGCOUR.XCOPG(2,NOPG)= XB
  88. PGCOUR.XCOPG(3,NOPG)= XA
  89. PGCOUR.XPOPG(NOPG)=POIDS
  90. NOPG=NOPG+1
  91. PGCOUR.XCOPG(1,NOPG)= XA
  92. PGCOUR.XCOPG(2,NOPG)= XB
  93. PGCOUR.XCOPG(3,NOPG)= XC
  94. PGCOUR.XPOPG(NOPG)=POIDS
  95. * (b,a,c,a) ; (b,c,a,a) ; (b,a,a,c)
  96. NOPG=NOPG+1
  97. PGCOUR.XCOPG(1,NOPG)= XB
  98. PGCOUR.XCOPG(2,NOPG)= XA
  99. PGCOUR.XCOPG(3,NOPG)= XC
  100. PGCOUR.XPOPG(NOPG)=POIDS
  101. NOPG=NOPG+1
  102. PGCOUR.XCOPG(1,NOPG)= XB
  103. PGCOUR.XCOPG(2,NOPG)= XC
  104. PGCOUR.XCOPG(3,NOPG)= XA
  105. PGCOUR.XPOPG(NOPG)=POIDS
  106. NOPG=NOPG+1
  107. PGCOUR.XCOPG(1,NOPG)= XB
  108. PGCOUR.XCOPG(2,NOPG)= XA
  109. PGCOUR.XCOPG(3,NOPG)= XA
  110. PGCOUR.XPOPG(NOPG)=POIDS
  111. C (a,a,c,b) ; (a,c,a,b) ; (a,c,b,a)
  112. NOPG=NOPG+1
  113. PGCOUR.XCOPG(1,NOPG)= XA
  114. PGCOUR.XCOPG(2,NOPG)= XA
  115. PGCOUR.XCOPG(3,NOPG)= XC
  116. PGCOUR.XPOPG(NOPG)=POIDS
  117. NOPG=NOPG+1
  118. PGCOUR.XCOPG(1,NOPG)= XA
  119. PGCOUR.XCOPG(2,NOPG)= XC
  120. PGCOUR.XCOPG(3,NOPG)= XA
  121. PGCOUR.XPOPG(NOPG)=POIDS
  122. NOPG=NOPG+1
  123. PGCOUR.XCOPG(1,NOPG)= XA
  124. PGCOUR.XCOPG(2,NOPG)= XC
  125. PGCOUR.XCOPG(3,NOPG)= XB
  126. PGCOUR.XPOPG(NOPG)=POIDS
  127. C (c,a,b,a) ; (c,b,a,a) ; (c,a,a,b)
  128. NOPG=NOPG+1
  129. PGCOUR.XCOPG(1,NOPG)= XC
  130. PGCOUR.XCOPG(2,NOPG)= XA
  131. PGCOUR.XCOPG(3,NOPG)= XB
  132. PGCOUR.XPOPG(NOPG)=POIDS
  133. NOPG=NOPG+1
  134. PGCOUR.XCOPG(1,NOPG)= XC
  135. PGCOUR.XCOPG(2,NOPG)= XB
  136. PGCOUR.XCOPG(3,NOPG)= XA
  137. PGCOUR.XPOPG(NOPG)=POIDS
  138. NOPG=NOPG+1
  139. PGCOUR.XCOPG(1,NOPG)= XC
  140. PGCOUR.XCOPG(2,NOPG)= XA
  141. PGCOUR.XCOPG(3,NOPG)= XA
  142. PGCOUR.XPOPG(NOPG)=POIDS
  143. *
  144. * Normal termination
  145. *
  146. IRET=0
  147. RETURN
  148. *
  149. * Format handling
  150. *
  151. *
  152. * Error handling
  153. *
  154. 9999 CONTINUE
  155. IRET=1
  156. WRITE(IOIMP,*) 'An error was detected in subroutine gt3f10'
  157. RETURN
  158. *
  159. * End of subroutine GT3F10
  160. *
  161. END
  162.  
  163.  
  164.  
  165.  

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