Télécharger inpgs.eso

Retour à la liste

Numérotation des lignes :

inpgs
  1. C INPGS SOURCE GOUNAND 21/06/02 21:16:54 11022
  2. SUBROUTINE INPGS(MYPGS,IMPR,IRET)
  3. IMPLICIT REAL*8 (A-H,O-Z)
  4. IMPLICIT INTEGER (I-N)
  5. C***********************************************************************
  6. C NOM : INPGS
  7. C PROJET : Noyau linéaire NLIN
  8. C DESCRIPTION : Initialise le segment contenant les informations sur
  9. C l'ensemble des méthodes d'intégration (type Gauss).
  10. C
  11. C LANGAGE : ESOPE
  12. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  13. C mél : gounand@semt2.smts.cea.fr
  14. C***********************************************************************
  15. C APPELES : INGASE, INGJ10, INGJ20, INGATR, INGAQU, INGATE,
  16. C INGAPR, INGACU
  17. C APPELES (E/S) : PRPG
  18. C APPELE PAR : KALPBG
  19. C***********************************************************************
  20. C ENTREES : -
  21. C ENTREES/SORTIES : -
  22. C SORTIES : MYPGS
  23. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  24. C***********************************************************************
  25. C VERSION : v2, 19/10/99, version initiale
  26. C HISTORIQUE : v1, 21/07/99, création
  27. C HISTORIQUE : v2, 19/10/99, remaniement (chgt du segment POGAUS)
  28. C nbses méthodes de cubatures en plus...
  29. C Cf. répertoire gauss_doc
  30. C HISTORIQUE :
  31. C***********************************************************************
  32. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  33. C en cas de modification de ce sous-programme afin de faciliter
  34. C la maintenance !
  35. C***********************************************************************
  36.  
  37. -INC PPARAM
  38. -INC CCOPTIO
  39. -INC TNLIN
  40. *-INC SPOGAU
  41. POINTEUR MYPGS.POGAUS
  42. POINTEUR PGCOUR.POGAU
  43. *
  44. INTEGER IMPR,IRET
  45. *
  46. INTEGER INBDPG,NBDPG
  47. *
  48. * Executable statements
  49. *
  50. IF (IMPR.GT.6) WRITE(IOIMP,*) 'Entrée dans inpgs'
  51. *
  52. * Initialisation du segment contenant toutes les méthodes
  53. * d'intégration type gauss
  54. * L'ordre d'initialisation à une importance car certaines
  55. * méthodes d'intégration sont des méthodes produit construites
  56. * à partir d'autres méthodes.
  57. *
  58. SEGINI MYPGS
  59. *
  60. * On initialise les méthodes d'intégration numérique de
  61. * Gauss à une dimension (Ordre 1 à 11).
  62. *
  63. CALL INGASE(MYPGS,IMPR,IRET)
  64. IF (IRET.NE.0) GOTO 9999
  65. *
  66. * On initialise les méthodes d'intégration numérique de
  67. * Gauss-Jacobi pour \alpha=1 \beta=0 à une dimension (Ordre 1 à 11).
  68. *
  69. CALL INGJ10(MYPGS,IMPR,IRET)
  70. IF (IRET.NE.0) GOTO 9999
  71. *
  72. * On initialise les méthodes d'intégration numérique de
  73. * Gauss-Jacobi pour \alpha=2 \beta=0 à une dimension (Ordre 1 à 11).
  74. *
  75. CALL INGJ20(MYPGS,IMPR,IRET)
  76. IF (IRET.NE.0) GOTO 9999
  77. *
  78. * On initialise les méthodes d'intégration numérique de
  79. * cubature (type Gauss) pour le triangle (Ordre 1 à 7).
  80. *
  81. CALL INGATR(MYPGS,IMPR,IRET)
  82. IF (IRET.NE.0) GOTO 9999
  83. *
  84. * On initialise les méthodes d'intégration numérique de
  85. * cubature (type Gauss) pour le carré (Ordre 1 à 7).
  86. *
  87. CALL INGAQU(MYPGS,IMPR,IRET)
  88. IF (IRET.NE.0) GOTO 9999
  89. *
  90. * On initialise les méthodes d'intégration numérique de
  91. * cubature (type Gauss) pour le tétraèdre (Ordre 1 à 6).
  92. *
  93. CALL INGATE(MYPGS,IMPR,IRET)
  94. IF (IRET.NE.0) GOTO 9999
  95. *
  96. * On initialise les méthodes d'intégration numérique de
  97. * cubature (type Gauss) pour la pyramide (Ordre 1 à 6).
  98. *
  99. CALL INGAPY(MYPGS,IMPR,IRET)
  100. IF (IRET.NE.0) GOTO 9999
  101. *
  102. * On initialise les méthodes d'intégration numérique de
  103. * cubature (type Gauss) pour le prisme à base triangulaire
  104. * (Ordre 1 à 5).
  105. *
  106. CALL INGAPR(MYPGS,IMPR,IRET)
  107. IF (IRET.NE.0) GOTO 9999
  108. *
  109. * On initialise les méthodes d'intégration numérique de
  110. * cubature (type Gauss) pour le cube (Ordre 1 à 5).
  111. *
  112. CALL INGACU(MYPGS,IMPR,IRET)
  113. IF (IRET.NE.0) GOTO 9999
  114. *
  115. * Impression finale
  116. *
  117. NBDPG=MYPGS.LISPG(/1)
  118. IF (IMPR.GT.1) THEN
  119. *! WRITE(IOIMP,*) 'Nom ','Type ','Dom. int. ','ordre ','nb. points'
  120. DO 1 INBDPG=1,NBDPG
  121. WRITE(IOIMP,*) 'Méthode d''intégration ',INBDPG
  122. PGCOUR=MYPGS.LISPG(INBDPG)
  123. CALL PRPG(PGCOUR,IMPR,IRET)
  124. IF (IRET.NE.0) GOTO 9999
  125. 1 CONTINUE
  126. ENDIF
  127. SEGDES MYPGS
  128. *
  129. * Normal termination
  130. *
  131. IRET=0
  132. RETURN
  133. *
  134. * Format handling
  135. *
  136. *
  137. * Error handling
  138. *
  139. 9999 CONTINUE
  140. IRET=1
  141. WRITE(IOIMP,*) 'An error was detected in subroutine inpgs'
  142. RETURN
  143. *
  144. * End of subroutine INPGS
  145. *
  146. END
  147.  
  148.  
  149.  
  150.  
  151.  

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