Télécharger ingapy.eso

Retour à la liste

Numérotation des lignes :

ingapy
  1. C INGAPY SOURCE GOUNAND 21/06/02 21:16:39 11022
  2. SUBROUTINE INGAPY(MYPGS,IMPR,IRET)
  3. IMPLICIT REAL*8 (A-H,O-Z)
  4. IMPLICIT INTEGER (I-N)
  5. C***********************************************************************
  6. C NOM : INGAPY
  7. C PROJET : Noyau linéaire NLIN
  8. C DESCRIPTION : Remplit le segment des méthodes d'intégration
  9. C avec des méthodes d'intégration numérique de cubature
  10. C type Gauss pour la pyramide.
  11. C
  12. C REFERENCES : Castem donred.eso
  13. C LANGAGE : ESOPE
  14. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  15. C mél : gounand@semt2.smts.cea.fr
  16. C***********************************************************************
  17. C APPELES : INIPG, GTSINO, GTRO3I, GT3FS9, GT3F10,
  18. C FIPG, CPROPG
  19. C APPELE PAR : INPGS
  20. C***********************************************************************
  21. C ENTREES : -
  22. C ENTREES/SORTIES : MYPGS (actif en *MOD)
  23. C SORTIES : -
  24. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  25. C***********************************************************************
  26. C VERSION : v1, 22/10/99, version initiale
  27. C HISTORIQUE : v1, 22/10/99, création
  28. C HISTORIQUE : 29/5/00 rajout ordre 6
  29. C HISTORIQUE :
  30. C***********************************************************************
  31. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  32. C en cas de modification de ce sous-programme afin de faciliter
  33. C la maintenance !
  34. C***********************************************************************
  35.  
  36. -INC PPARAM
  37. -INC CCOPTIO
  38. -INC TNLIN
  39. *-INC SPOGAU
  40. POINTEUR MYPGS.POGAUS
  41. POINTEUR PGCOUR.POGAU
  42. *
  43. INTEGER IMPR,IRET
  44. REAL*8 ZERO,UN,DEUTIE
  45. PARAMETER (ZERO=0.D0)
  46. PARAMETER (UN=1.D0)
  47. PARAMETER (DEUTIE=2.D0/3.D0)
  48. *
  49. * Executable statements
  50. *
  51. IF (IMPR.GT.6) WRITE(IOIMP,*) 'Entrée dans ingapy'
  52. *
  53. * Méthode de nom : NCPY-1-5
  54. * Sur un tétraèdre : cubature d'ordre 0 à 5 points
  55. * espace de référence de dimension 3
  56. *
  57. * In INIPG : SEGINI PGCOUR
  58. CALL INIPG('NCPY-0-5','NEWTON-COTES','PYRAMIDE',
  59. $ 0,5,3,
  60. $ PGCOUR,
  61. $ IMPR,IRET)
  62. IF (IRET.NE.0) GOTO 9999
  63. PGCOUR.XCOPG(1,1)=UN
  64. PGCOUR.XCOPG(2,1)=ZERO
  65. PGCOUR.XCOPG(1,2)=ZERO
  66. PGCOUR.XCOPG(2,2)=UN
  67. PGCOUR.XCOPG(1,3)=-UN
  68. PGCOUR.XCOPG(2,3)=ZERO
  69. PGCOUR.XCOPG(1,4)=ZERO
  70. PGCOUR.XCOPG(2,4)=-UN
  71. DO I=1,4
  72. PGCOUR.XCOPG(3,I)=ZERO
  73. ENDDO
  74. PGCOUR.XCOPG(1,5)=ZERO
  75. PGCOUR.XCOPG(2,5)=ZERO
  76. PGCOUR.XCOPG(3,5)=UN
  77. DO I=1,5
  78. PGCOUR.XPOPG(I)=DEUTIE/5.D0
  79. ENDDO
  80. SEGDES PGCOUR
  81. MYPGS.LISPG(**)=PGCOUR
  82. *
  83. * Méthode de nom : GAPY-1-1
  84. * Sur un tétraèdre : cubature d'ordre 1 à 1 point
  85. * espace de référence de dimension 3
  86. *
  87. * In INIPG : SEGINI PGCOUR
  88. CALL INIPG('GAPY-1-1','GAUSS','PYRAMIDE',
  89. $ 1,1,3,
  90. $ PGCOUR,
  91. $ IMPR,IRET)
  92. IF (IRET.NE.0) GOTO 9999
  93. NBG=1
  94. IELE=25
  95. * In SMI2PG : SEGDES PGCOUR
  96. CALL SMI2PG(IELE,NBG,PGCOUR,IMPR,IRET)
  97. IF (IRET.NE.0) GOTO 9999
  98. MYPGS.LISPG(**)=PGCOUR
  99. *
  100. * Méthode de nom : GAPY-2-5
  101. * Sur un tétraèdre : cubature d'ordre 2 à 5 points
  102. * espace de référence de dimension 3
  103. *
  104. * In INIPG : SEGINI PGCOUR
  105. CALL INIPG('GAPY-2-5','GAUSS','PYRAMIDE',
  106. $ 2,5,3,
  107. $ PGCOUR,
  108. $ IMPR,IRET)
  109. IF (IRET.NE.0) GOTO 9999
  110. NBG=5
  111. IELE=25
  112. * In SMI2PG : SEGDES PGCOUR
  113. CALL SMI2PG(IELE,NBG,PGCOUR,IMPR,IRET)
  114. IF (IRET.NE.0) GOTO 9999
  115. MYPGS.LISPG(**)=PGCOUR
  116. *
  117. * Méthode de nom : GAPY-5-27
  118. * Sur un tétraèdre : cubature d'ordre 5 à 27 points
  119. * espace de référence de dimension 3
  120. *
  121. * In INIPG : SEGINI PGCOUR
  122. CALL INIPG('GAPY-5-27','GAUSS','PYRAMIDE',
  123. $ 5,27,3,
  124. $ PGCOUR,
  125. $ IMPR,IRET)
  126. IF (IRET.NE.0) GOTO 9999
  127. NBG=27
  128. IELE=25
  129. * In SMI2PG : SEGDES PGCOUR
  130. CALL SMI2PG(IELE,NBG,PGCOUR,IMPR,IRET)
  131. IF (IRET.NE.0) GOTO 9999
  132. MYPGS.LISPG(**)=PGCOUR
  133. *
  134. * Normal termination
  135. *
  136. IRET=0
  137. RETURN
  138. *
  139. * Format handling
  140. *
  141. *
  142. * Error handling
  143. *
  144. 9999 CONTINUE
  145. IRET=1
  146. WRITE(IOIMP,*) 'An error was detected in subroutine ingapy'
  147. RETURN
  148. *
  149. * End of subroutine INGAPY
  150. *
  151. END
  152.  
  153.  
  154.  
  155.  
  156.  

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