Télécharger inpgs.eso

Retour à la liste

Numérotation des lignes :

  1. C INPGS SOURCE GOUNAND 05/12/21 21:33:15 5281
  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. -INC CCOPTIO
  37. CBEGININCLUDE SPOGAU
  38. SEGMENT POGAU
  39. CHARACTER*(LNNPG) NOMPG
  40. CHARACTER*(LNTPG) TYPMPG
  41. CHARACTER*(LNFPG) FORLPG
  42. INTEGER NORDPG
  43. REAL*8 XCOPG(NDLPG,NBPG)
  44. REAL*8 XPOPG(NBPG)
  45. ENDSEGMENT
  46. SEGMENT POGAUS
  47. POINTEUR LISPG(0).POGAU
  48. ENDSEGMENT
  49. CENDINCLUDE SPOGAU
  50. POINTEUR MYPGS.POGAUS
  51. POINTEUR PGCOUR.POGAU
  52. *
  53. INTEGER IMPR,IRET
  54. *
  55. INTEGER INBDPG,NBDPG
  56. *
  57. * Executable statements
  58. *
  59. IF (IMPR.GT.6) WRITE(IOIMP,*) 'Entrée dans inpgs'
  60. *
  61. * Initialisation du segment contenant toutes les méthodes
  62. * d'intégration type gauss
  63. * L'ordre d'initialisation à une importance car certaines
  64. * méthodes d'intégration sont des méthodes produit construites
  65. * à partir d'autres méthodes.
  66. *
  67. SEGINI MYPGS
  68. *
  69. * On initialise les méthodes d'intégration numérique de
  70. * Gauss à une dimension (Ordre 1 à 11).
  71. *
  72. CALL INGASE(MYPGS,IMPR,IRET)
  73. IF (IRET.NE.0) GOTO 9999
  74. *
  75. * On initialise les méthodes d'intégration numérique de
  76. * Gauss-Jacobi pour \alpha=1 \beta=0 à une dimension (Ordre 1 à 11).
  77. *
  78. CALL INGJ10(MYPGS,IMPR,IRET)
  79. IF (IRET.NE.0) GOTO 9999
  80. *
  81. * On initialise les méthodes d'intégration numérique de
  82. * Gauss-Jacobi pour \alpha=2 \beta=0 à une dimension (Ordre 1 à 11).
  83. *
  84. CALL INGJ20(MYPGS,IMPR,IRET)
  85. IF (IRET.NE.0) GOTO 9999
  86. *
  87. * On initialise les méthodes d'intégration numérique de
  88. * cubature (type Gauss) pour le triangle (Ordre 1 à 7).
  89. *
  90. CALL INGATR(MYPGS,IMPR,IRET)
  91. IF (IRET.NE.0) GOTO 9999
  92. *
  93. * On initialise les méthodes d'intégration numérique de
  94. * cubature (type Gauss) pour le carré (Ordre 1 à 7).
  95. *
  96. CALL INGAQU(MYPGS,IMPR,IRET)
  97. IF (IRET.NE.0) GOTO 9999
  98. *
  99. * On initialise les méthodes d'intégration numérique de
  100. * cubature (type Gauss) pour le tétraèdre (Ordre 1 à 6).
  101. *
  102. CALL INGATE(MYPGS,IMPR,IRET)
  103. IF (IRET.NE.0) GOTO 9999
  104. *
  105. * On initialise les méthodes d'intégration numérique de
  106. * cubature (type Gauss) pour la pyramide (Ordre 1 à 6).
  107. *
  108. CALL INGAPY(MYPGS,IMPR,IRET)
  109. IF (IRET.NE.0) GOTO 9999
  110. *
  111. * On initialise les méthodes d'intégration numérique de
  112. * cubature (type Gauss) pour le prisme à base triangulaire
  113. * (Ordre 1 à 5).
  114. *
  115. CALL INGAPR(MYPGS,IMPR,IRET)
  116. IF (IRET.NE.0) GOTO 9999
  117. *
  118. * On initialise les méthodes d'intégration numérique de
  119. * cubature (type Gauss) pour le cube (Ordre 1 à 5).
  120. *
  121. CALL INGACU(MYPGS,IMPR,IRET)
  122. IF (IRET.NE.0) GOTO 9999
  123. *
  124. * Impression finale
  125. *
  126. NBDPG=MYPGS.LISPG(/1)
  127. IF (IMPR.GT.1) THEN
  128. *! WRITE(IOIMP,*) 'Nom ','Type ','Dom. int. ','ordre ','nb. points'
  129. DO 1 INBDPG=1,NBDPG
  130. WRITE(IOIMP,*) 'Méthode d''intégration ',INBDPG
  131. PGCOUR=MYPGS.LISPG(INBDPG)
  132. CALL PRPG(PGCOUR,IMPR,IRET)
  133. IF (IRET.NE.0) GOTO 9999
  134. 1 CONTINUE
  135. ENDIF
  136. SEGDES MYPGS
  137. *
  138. * Normal termination
  139. *
  140. IRET=0
  141. RETURN
  142. *
  143. * Format handling
  144. *
  145. *
  146. * Error handling
  147. *
  148. 9999 CONTINUE
  149. IRET=1
  150. WRITE(IOIMP,*) 'An error was detected in subroutine inpgs'
  151. RETURN
  152. *
  153. * End of subroutine INPGS
  154. *
  155. END
  156.  
  157.  
  158.  
  159.  

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