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.  
  47. -INC PPARAM
  48. -INC CCOPTIO
  49. CBEGININCLUDE SPOGAU
  50. SEGMENT POGAU
  51. CHARACTER*(LNNPG) NOMPG
  52. CHARACTER*(LNTPG) TYPMPG
  53. CHARACTER*(LNFPG) FORLPG
  54. INTEGER NORDPG
  55. REAL*8 XCOPG(NDLPG,NBPG)
  56. REAL*8 XPOPG(NBPG)
  57. ENDSEGMENT
  58. SEGMENT POGAUS
  59. POINTEUR LISPG(0).POGAU
  60. ENDSEGMENT
  61. CENDINCLUDE SPOGAU
  62. POINTEUR PGCOUR.POGAU
  63. *
  64. INTEGER NOPG,DIMSRF
  65. REAL*8 XCOR(DIMSRF+1)
  66. REAL*8 POIDS
  67. INTEGER IMPR,IRET
  68. *
  69. REAL*8 XA,XB,XC
  70. *
  71. * Executable statements
  72. *
  73. IF (IMPR.GT.6) WRITE(IOIMP,*) 'Entrée dans gt3f10'
  74. IF (DIMSRF.NE.3) THEN
  75. WRITE(IOIMP,*) 'DIMSRF doit etre égal à 3...'
  76. GOTO 9999
  77. ENDIF
  78. XA=XCOR(1)
  79. XB=XCOR(3)
  80. XC=XCOR(4)
  81. * (a,a,b,c) ; (a,b,a,c) ; (a,b,c,a)
  82. NOPG=NOPG+1
  83. PGCOUR.XCOPG(1,NOPG)= XA
  84. PGCOUR.XCOPG(2,NOPG)= XA
  85. PGCOUR.XCOPG(3,NOPG)= XB
  86. PGCOUR.XPOPG(NOPG)=POIDS
  87. NOPG=NOPG+1
  88. PGCOUR.XCOPG(1,NOPG)= XA
  89. PGCOUR.XCOPG(2,NOPG)= XB
  90. PGCOUR.XCOPG(3,NOPG)= XA
  91. PGCOUR.XPOPG(NOPG)=POIDS
  92. NOPG=NOPG+1
  93. PGCOUR.XCOPG(1,NOPG)= XA
  94. PGCOUR.XCOPG(2,NOPG)= XB
  95. PGCOUR.XCOPG(3,NOPG)= XC
  96. PGCOUR.XPOPG(NOPG)=POIDS
  97. * (b,a,c,a) ; (b,c,a,a) ; (b,a,a,c)
  98. NOPG=NOPG+1
  99. PGCOUR.XCOPG(1,NOPG)= XB
  100. PGCOUR.XCOPG(2,NOPG)= XA
  101. PGCOUR.XCOPG(3,NOPG)= XC
  102. PGCOUR.XPOPG(NOPG)=POIDS
  103. NOPG=NOPG+1
  104. PGCOUR.XCOPG(1,NOPG)= XB
  105. PGCOUR.XCOPG(2,NOPG)= XC
  106. PGCOUR.XCOPG(3,NOPG)= XA
  107. PGCOUR.XPOPG(NOPG)=POIDS
  108. NOPG=NOPG+1
  109. PGCOUR.XCOPG(1,NOPG)= XB
  110. PGCOUR.XCOPG(2,NOPG)= XA
  111. PGCOUR.XCOPG(3,NOPG)= XA
  112. PGCOUR.XPOPG(NOPG)=POIDS
  113. C (a,a,c,b) ; (a,c,a,b) ; (a,c,b,a)
  114. NOPG=NOPG+1
  115. PGCOUR.XCOPG(1,NOPG)= XA
  116. PGCOUR.XCOPG(2,NOPG)= XA
  117. PGCOUR.XCOPG(3,NOPG)= XC
  118. PGCOUR.XPOPG(NOPG)=POIDS
  119. NOPG=NOPG+1
  120. PGCOUR.XCOPG(1,NOPG)= XA
  121. PGCOUR.XCOPG(2,NOPG)= XC
  122. PGCOUR.XCOPG(3,NOPG)= XA
  123. PGCOUR.XPOPG(NOPG)=POIDS
  124. NOPG=NOPG+1
  125. PGCOUR.XCOPG(1,NOPG)= XA
  126. PGCOUR.XCOPG(2,NOPG)= XC
  127. PGCOUR.XCOPG(3,NOPG)= XB
  128. PGCOUR.XPOPG(NOPG)=POIDS
  129. C (c,a,b,a) ; (c,b,a,a) ; (c,a,a,b)
  130. NOPG=NOPG+1
  131. PGCOUR.XCOPG(1,NOPG)= XC
  132. PGCOUR.XCOPG(2,NOPG)= XA
  133. PGCOUR.XCOPG(3,NOPG)= XB
  134. PGCOUR.XPOPG(NOPG)=POIDS
  135. NOPG=NOPG+1
  136. PGCOUR.XCOPG(1,NOPG)= XC
  137. PGCOUR.XCOPG(2,NOPG)= XB
  138. PGCOUR.XCOPG(3,NOPG)= XA
  139. PGCOUR.XPOPG(NOPG)=POIDS
  140. NOPG=NOPG+1
  141. PGCOUR.XCOPG(1,NOPG)= XC
  142. PGCOUR.XCOPG(2,NOPG)= XA
  143. PGCOUR.XCOPG(3,NOPG)= XA
  144. PGCOUR.XPOPG(NOPG)=POIDS
  145. *
  146. * Normal termination
  147. *
  148. IRET=0
  149. RETURN
  150. *
  151. * Format handling
  152. *
  153. *
  154. * Error handling
  155. *
  156. 9999 CONTINUE
  157. IRET=1
  158. WRITE(IOIMP,*) 'An error was detected in subroutine gt3f10'
  159. RETURN
  160. *
  161. * End of subroutine GT3F10
  162. *
  163. END
  164.  
  165.  
  166.  
  167.  

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