C NEWMAR    SOURCE    CHAT      05/01/13    01:56:51     5004
      SUBROUTINE NEWMAR(XL,DT,XL0,XL1,XL2, DPI,NT, XN)
C
C     CALCUL DE LA DISTRIBUTION DE NEWMARK
C
C     L'INTEGRATION EST REALISEE PAR UNE METHODE DES TRAPEZES
C
C     29/1/91 BLINDAGE CONTRE DES ZERO
C
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      DIMENSION XL0(NT),XL1(NT),XL2(NT)
C
      ALFA=0.D0
C<<ON EXCLUT LE PREMIER POINT QUI NORMALEMENT CONDUIT A DES MOMENTS NULS>>
C<<SAUF SI NT=1, CAS OU L'ON FAIT UN CALCUL STATIQUE                    >>
      DO 1 IT=2-1/NT,NT
            IF(XL0(IT).EQ.0.D0)THEN
        ALF=0.D0
        XB=1.D0
            ELSE
        Q=SQRT(1-XL1(IT)**2/XL0(IT)/XL2(IT))
        OG2=SQRT(XL2(IT)/XL0(IT))
        EXPMR2=EXP(-XL**2/2/XL0(IT))
        XNU2=2*OG2*EXPMR2/DPI
        QSQPL0=Q**1.2D0*SQRT(DPI/4/XL0(IT))
        XA=1-EXP(-XL*QSQPL0)
        XB=1-EXPMR2
C
        ALF=XNU2*XA/XB
            ENDIF
C
        ALFA=ALFA+ALF
 1      CONTINUE
C<<ON CORRIGE L'INTEGRATION AU DERNIER POINT>>
C<<SI NT N'EST PAS EGAL A 1                 >>
C<<ON MULTIPLIE XN PAR "A(=XB)" SI NT+1     >>
        IF (NT.EQ.1)THEN
      XN=EXP(-ALFA*DT) * XB
        ELSE
      ALFA=ALFA-(1-1/NT)*ALF/2
      XN=EXP(-ALFA*DT)
        ENDIF
      RETURN
      END


