C GFLEX4    SOURCE    CB215821  17/11/30    21:16:20     9639           
C
C     GFLEX4    SOURCE    VACE      30/11/88
C
      SUBROUTINE GFLEX4(AB,DLL,RF,CTC,DELTAT,LANBN,FREQ1,FREQ2,BETA)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      integer p
C
C
C  =====================================================================
C                     MODELE DE TIMOSHENKO
C                     --------------------
C
C
C  SOUS-PROGRAMME FORTRAN APPELE PAR GREEN1 POUR CALCULER EN FLEXION
C  LES FONCTIONS DE GREEN FILTREES DE TIMOSHENKO
C
C  LA FONCTION DE GREEN EST DEFINI PAR :
C  ------------------------------------
C     G(O,T) = INTEGRALE SUR K ENTRE AK1 ET AK2 DE :
C              SIN(OM*T)/(1+(K/(1+R))**2)*OM
C     G(L,T) = INTEGRALE SUR K ENTRE AK1 ET AK2 DE :
C              SIN(OM*T)*COS(K*XI)/(1+(K/(1+R))**2)*OM
C
C     OM = 2*XPI*FREQ*RF/C
C     OM = SQRT((B-D)/2)  AVEC  B = BETA + (1+BETA)*K**2
C                               D = SQRT(B**2 - 4*BETA*K**4)
C     R = (K**2 -OM**2)/BETA
C
C  DEFINITION DES ARGUMENTS :
C  --------------------------
C     AB     : TABLEAU 10*LANBN DONNANT LES INTEGRALES DES FONCTIONS
C              DE GREEN ET DE LEURS DERIVEES A CHAQUE PAS DE TEMPS
C     DLL    : LONGUEUR DE LA POUTRE
C     RF     : DIMENSION TRANSVERSE DE LA POUTRE
C     CTC    : TEMPS DE CALCUL
C     DELTAT : PAS DE TEMPS
C     LANBN  : NOMBRE DE PAS DE TEMPS
C     FREQ1  : FREQUENCE BASSE DU FILTRE
C     FREQ2  : FREQUENCE HAUTE DU FILTRE
C     BETA   : COEFFICIENT DE FORME
C
C  CREATION    : 30/11/88
C  PROGRAMMEUR : VACELET
C  =====================================================================
C
C     DEFINITION DES VARIABLES :
C     GREEI  : INTEGRALE DONNANT LA DERIVEE IEME DE GREEN EN 0
C     GREELI : INTEGRALE DONNANT LA DERIVEE IEME DE GREEN EN L
C

-INC PPARAM
-INC CCOPTIO
-INC CCREEL
      DIMENSION AB(10,*)
C
C---- CALCUL DE QUELQUES CONSTANTES
      DT=CTC*DELTAT/RF
      DTPI=DT/XPI
      XI=DLL/RF
      DK2=XPI/(8.*XI)
C
C---- CALCUL DE AK1 ET AK2
      OM12=(2.*XPI*RF*FREQ1/CTC)**2
      OM22=(2.*XPI*RF*FREQ2/CTC)**2
      SQ1=SQRT( (1.-BETA)**2*OM12**2 + 4.*BETA**2*OM12)
      SQ2=SQRT( (1.-BETA)**2*OM22**2 + 4.*BETA**2*OM22)
      AK1=SQRT( ((1.+BETA)*OM12 + SQ1)/(2.*BETA) )
      AK2=SQRT( ((1.+BETA)*OM22 + SQ2)/(2.*BETA) )
C
C
C============================================
C        BOUCLE SUR LES PAS DE TEMPS
C=============================================
C
      DO 40 L=1,LANBN
        T=L*DELTAT*CTC/RF
C
C    1- CALCUL DES FONCTIONS DE GREEN POUR X=0
C       ======================================
C
C------ CALCUL DU PAS D INTEGRATION DK0 ET DU NOMBRE DE PAS NP0
        DK0=XPI/(16.*T*AK2)
        NP0=INT((AK2-AK1)/DK0)
C
C------ INITIALISATION DES GREEI
        GREE0 = 0.D0
        GREE2 = 0.D0
        GREE4 = 0.D0
C
C------ INTEGRATION SUR K
C
        DO 10 P=0,NP0
          AK=AK1+P*DK0
          U=AK**2
          BU=BETA+(1.+BETA)*U
          DU=SQRT(BU**2-4.*BETA*(U**2))
          WU=SQRT((BU-DU)/2.)
          RU=(U-WU**2)/BETA
          EXPU=SIN(WU*T)/(WU*(1.+U/(1.+RU)**2))
          GREE0 = GREE0 + DK0*EXPU
          GREE2 = GREE2 + DK0*EXPU*U
          GREE4 = GREE4 + DK0*EXPU*U*U
  10    CONTINUE
C
        GREE0 = GREE0
        GREE2 = GREE2
        GREE4 = GREE4
C
C    2- CALCUL DES FONCTIONS DE GREEN POUR X=L
C       ======================================
C
C------ CALCUL DU PAS D INTEGRATION DKL ET DU NOMBRE DE PAS NPL
        DKL=MIN(DK0,DK2)
        NPL=INT((AK2-AK1)/DKL)
C
C------ INITIALISATION DES GREELI
        GREEL0 = 0.D0
        GREEL1 = 0.D0
        GREEL2 = 0.D0
        GREEL3 = 0.D0
        GREEL4 = 0.D0
C
C------ INTEGRATION SUR K
C
        DO 20 P=0,NPL
          AK=AK1+P*DKL
          U=AK*AK
          BU=BETA+(1.+BETA)*U
          DU=SQRT(BU**2-4.*BETA*(U**2))
          WU=SQRT((BU-DU)/2.)
          RU=(U-WU**2)/BETA
          EXPU1=SIN(WU*T)*COS(AK*XI)/(WU*(1.+U/(1+RU)**2))
          EXPU2=SIN(WU*T)*SIN(AK*XI)/(WU*(1.+U/(1+RU)**2))
          GREEL0 = GREEL0 + DKL*EXPU1
          GREEL1 = GREEL1 + DKL*EXPU2*AK
          GREEL2 = GREEL2 + DKL*EXPU1*U
          GREEL3 = GREEL3 + DKL*EXPU2*AK*U
          GREEL4 = GREEL4 + DKL*EXPU1*U*U
  20    CONTINUE
C
        GREEL0 = GREEL0
        GREEL1 = GREEL1
        GREEL2 = GREEL2
        GREEL3 = GREEL3
        GREEL4 = GREEL4
C
C    3- CALCUL DES AB
C       =============
C
        AB(1,L)  =  DTPI*GREE0
        AB(2,L)  =  0.D0
        AB(3,L)  = -DTPI*GREE2
        AB(4,L)  =  0.D0
        AB(5,L)  =  DTPI*GREE4
        AB(6,L)  =  DTPI*GREEL0
        AB(7,L)  = -DTPI*GREEL1
        AB(8,L)  = -DTPI*GREEL2
        AB(9,L)  =  DTPI*GREEL3
        AB(10,L) =  DTPI*GREEL4
C
  40  CONTINUE
C
      RETURN
C
      END




 
