C SIMPSN    SOURCE    CHAT      05/01/13    03:18:58     5004
      SUBROUTINE SIMPSN(NNAPPE,NBG,IOP,POIGAU)
*
************************************************************************
*   CALCUL DES POIDS (DES POINTS A TRAVERS L'EPAISSEUR) PAR LA METHODE *
*   D'INTEGRATION DE SIMPSON                                           *
*   MULTIPLICATION PAR LES POIDS DES POINTS DANS LE PLAN               *
************************************************************************
*                                                                      *
*  ENTREE  :                                                           *
*                                                                      *
*  NNAPPE = NOMBRE DE NAPPES DANS L'EPAISSEUR                          *
*  NBG    = NOMBRE DE POINTS DANS LE PLAN                              *
*  IOP    = 1 CALCULE LES POIDS TOTAUX (W(QSI,ETA,ZETA))A PARTIR DES   *
*            POIDS DE SURFACE(W(QSI,ETA)                               *
*         = 2 CALCULE LES POIDS DE SURFACE (W(QSI,ETA)A PARTIR DES     *
*             POIDS TOTAUX(W(QSI,ETA,ZETA))                            *
*  POIGAU = TABLEAU CONTENANT LES POIDS CORRESPONDANT A L'INTEGRATION  *
*           DANS LE PLAN                                               *
*  SORTIE :                                                            *
*                                                                      *
*  POIGAU = POIDS TENANT COMPTE DE L'INTEGRATION DANS L'EPAISSEUR      *
*                                                                      *
************************************************************************
*
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
*
      DIMENSION POIGAU(*),W(100)
*
*
      PAS = 2.D0/(3.D0*(DBLE(NNAPPE)-1.D0))
*
      DO 1 IZ = 1,NNAPPE
           ITS = MOD(IZ,2)
           IF (IZ.EQ.1.OR.IZ.EQ.NNAPPE) THEN
              COEF = 1.D0
           ELSE IF (ITS.NE.0.) THEN
              COEF = 2.D0
           ELSE
              COEF = 4.D0
           ENDIF
           W(IZ) = COEF * PAS
  1   CONTINUE
*
      IF(IOP.EQ.1) THEN
         DO 10 IA=1,NNAPPE
            NP=(IA-1)*NBG
            DO 20 IG=1,NBG
               POIGAU(NP+IG)=POIGAU(NP+IG)*W(IA)
  20        CONTINUE
  10     CONTINUE
      ELSE
         DO 30 IG=1,NBG
               POIGAU(IG) = POIGAU(IG)/W(1)
  30     CONTINUE
      ENDIF
*
*       WRITE(*,*) ' matrice  B  elem =',IB
*       WRITE(*,1191) (POIGAU(IA),IA=1,3)
*1191   FORMAT(12(1X,E8.2))
C
      RETURN
      END



