C GCPASY    SOURCE    GOUNAND   21/06/02    21:16:03     11022          
      SUBROUTINE GCPASY(PGCOUR,NOPG,DIMSRF,XCOR,POIDS,
     $     IMPR,IRET)
      IMPLICIT REAL*8 (A-H,O-Z)
      IMPLICIT INTEGER (I-N)
C***********************************************************************
C NOM         : GCPASY
C PROJET      : Noyau linéaire NLIN
C DESCRIPTION : Rajoute un point et son image par une symétrie par
C               rapport à l'axe des x en 2D dans une méthode
C               d'intégration type Gauss (PGCOUR).
C               Domaine de type [ Fully symmetric region ]
C                       i.e. segment, carré et cube pour nous.
C               Générateur de type [ Partial symmetry ].
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          : -
C APPELE PAR       : INGAQU
C***********************************************************************
C ENTREES            : DIMSRF, XCOR, POIDS
C ENTREES/SORTIES    : PGCOUR (actif en *MOD), NOPG
C SORTIES            : MYPGS
C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
C***********************************************************************
C VERSION    : v1, 20/10/99, version initiale
C HISTORIQUE : v1, 20/10/99, création
C HISTORIQUE :
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 PGCOUR.POGAU
*
      INTEGER NOPG,DIMSRF
      REAL*8 XCOR(DIMSRF)
      REAL*8 POIDS
      INTEGER IMPR,IRET
*
* Executable statements
*
      IF (IMPR.GT.6) WRITE(IOIMP,*) 'Entrée dans gcpasy'
      IF (DIMSRF.NE.2) THEN
         WRITE(IOIMP,*) 'DIMSRF doit etre égal à 2...'
         GOTO 9999
      ENDIF
*
* On ajoute le point...
*
      NOPG=NOPG+1
      PGCOUR.XCOPG(1,NOPG)= XCOR(1)
      PGCOUR.XCOPG(2,NOPG)= XCOR(2)
      PGCOUR.XPOPG(NOPG)=POIDS
*
* ...et son image par la symétrie / à l'axe des x
*
      NOPG=NOPG+1
      PGCOUR.XCOPG(1,NOPG)= XCOR(1)
      PGCOUR.XCOPG(2,NOPG)=-XCOR(2)
      PGCOUR.XPOPG(NOPG)=POIDS
*
* Normal termination
*
      IRET=0
      RETURN
*
* Format handling
*
*
* Error handling
*
 9999 CONTINUE
      IRET=1
      WRITE(IOIMP,*) 'An error was detected in subroutine gcpasy'
      RETURN
*
* End of subroutine GCPASY
*
      END



 
