C INPGS     SOURCE    GOUNAND   21/06/02    21:16:54     11022          
      SUBROUTINE INPGS(MYPGS,IMPR,IRET)
      IMPLICIT REAL*8 (A-H,O-Z)
      IMPLICIT INTEGER (I-N)
C***********************************************************************
C NOM         : INPGS
C PROJET      : Noyau linéaire NLIN
C DESCRIPTION : Initialise le segment contenant les informations sur
C               l'ensemble des méthodes d'intégration (type Gauss).
C
C LANGAGE     : ESOPE
C AUTEUR      : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
C               mél : gounand@semt2.smts.cea.fr
C***********************************************************************
C APPELES          : INGASE, INGJ10, INGJ20, INGATR, INGAQU, INGATE,
C                    INGAPR, INGACU
C APPELES (E/S)    : PRPG
C APPELE PAR       : KALPBG
C***********************************************************************
C ENTREES            : -
C ENTREES/SORTIES    : -
C SORTIES            : MYPGS
C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
C***********************************************************************
C VERSION    : v2, 19/10/99, version initiale
C HISTORIQUE : v1, 21/07/99, création
C HISTORIQUE : v2, 19/10/99, remaniement (chgt du segment POGAUS)
C                    nbses méthodes de cubatures en plus...
C                    Cf. répertoire gauss_doc
C HISTORIQUE :
C***********************************************************************
C Prière de PRENDRE LE TEMPS de compléter les commentaires
C en cas de modification de ce sous-programme afin de faciliter
C la maintenance !
C***********************************************************************

-INC PPARAM
-INC CCOPTIO
-INC TNLIN      
*-INC SPOGAU
      POINTEUR MYPGS.POGAUS
      POINTEUR PGCOUR.POGAU
*
      INTEGER IMPR,IRET
*
      INTEGER INBDPG,NBDPG
*
* Executable statements
*
      IF (IMPR.GT.6) WRITE(IOIMP,*) 'Entrée dans inpgs'
*
* Initialisation du segment contenant toutes les méthodes
* d'intégration type gauss
* L'ordre d'initialisation à une importance car certaines
* méthodes d'intégration sont des méthodes produit construites
* à partir d'autres méthodes.
*
      SEGINI MYPGS
*
* On initialise les méthodes d'intégration numérique de
* Gauss à une dimension (Ordre 1 à 11).
*
      CALL INGASE(MYPGS,IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
*
* On initialise les méthodes d'intégration numérique de
* Gauss-Jacobi pour \alpha=1 \beta=0 à une dimension (Ordre 1 à 11).
*
      CALL INGJ10(MYPGS,IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
*
* On initialise les méthodes d'intégration numérique de
* Gauss-Jacobi pour \alpha=2 \beta=0 à une dimension (Ordre 1 à 11).
*
      CALL INGJ20(MYPGS,IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
*
* On initialise les méthodes d'intégration numérique de
* cubature (type Gauss) pour le triangle (Ordre 1 à 7).
*
      CALL INGATR(MYPGS,IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
*
* On initialise les méthodes d'intégration numérique de
* cubature (type Gauss) pour le carré (Ordre 1 à 7).
*
      CALL INGAQU(MYPGS,IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
*
* On initialise les méthodes d'intégration numérique de
* cubature (type Gauss) pour le tétraèdre (Ordre 1 à 6).
*
      CALL INGATE(MYPGS,IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
*
* On initialise les méthodes d'intégration numérique de
* cubature (type Gauss) pour la pyramide (Ordre 1 à 6).
*
      CALL INGAPY(MYPGS,IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
*
* On initialise les méthodes d'intégration numérique de
* cubature (type Gauss) pour le prisme à base triangulaire
* (Ordre 1 à 5).
*
      CALL INGAPR(MYPGS,IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
*
* On initialise les méthodes d'intégration numérique de
* cubature (type Gauss) pour le cube (Ordre 1 à 5).
*
      CALL INGACU(MYPGS,IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
*
* Impression finale
*
      NBDPG=MYPGS.LISPG(/1)
      IF (IMPR.GT.1) THEN
*!      WRITE(IOIMP,*) 'Nom ','Type ','Dom. int. ','ordre ','nb. points'
         DO 1 INBDPG=1,NBDPG
            WRITE(IOIMP,*) 'Méthode d''intégration ',INBDPG
            PGCOUR=MYPGS.LISPG(INBDPG)
            CALL PRPG(PGCOUR,IMPR,IRET)
            IF (IRET.NE.0) GOTO 9999
 1       CONTINUE
      ENDIF
      SEGDES MYPGS
*
* Normal termination
*
      IRET=0
      RETURN
*
* Format handling
*
*
* Error handling
*
 9999 CONTINUE
      IRET=1
      WRITE(IOIMP,*) 'An error was detected in subroutine inpgs'
      RETURN
*
* End of subroutine INPGS
*
      END



 
