Télécharger newmar.eso

Retour à la liste

Numérotation des lignes :

newmar
  1. C NEWMAR SOURCE CHAT 05/01/13 01:56:51 5004
  2. SUBROUTINE NEWMAR(XL,DT,XL0,XL1,XL2, DPI,NT, XN)
  3. C
  4. C CALCUL DE LA DISTRIBUTION DE NEWMARK
  5. C
  6. C L'INTEGRATION EST REALISEE PAR UNE METHODE DES TRAPEZES
  7. C
  8. C 29/1/91 BLINDAGE CONTRE DES ZERO
  9. C
  10. IMPLICIT INTEGER(I-N)
  11. IMPLICIT REAL*8(A-H,O-Z)
  12. DIMENSION XL0(NT),XL1(NT),XL2(NT)
  13. C
  14. ALFA=0.D0
  15. C<<ON EXCLUT LE PREMIER POINT QUI NORMALEMENT CONDUIT A DES MOMENTS NULS>>
  16. C<<SAUF SI NT=1, CAS OU L'ON FAIT UN CALCUL STATIQUE >>
  17. DO 1 IT=2-1/NT,NT
  18. IF(XL0(IT).EQ.0.D0)THEN
  19. ALF=0.D0
  20. XB=1.D0
  21. ELSE
  22. Q=SQRT(1-XL1(IT)**2/XL0(IT)/XL2(IT))
  23. OG2=SQRT(XL2(IT)/XL0(IT))
  24. EXPMR2=EXP(-XL**2/2/XL0(IT))
  25. XNU2=2*OG2*EXPMR2/DPI
  26. QSQPL0=Q**1.2D0*SQRT(DPI/4/XL0(IT))
  27. XA=1-EXP(-XL*QSQPL0)
  28. XB=1-EXPMR2
  29. C
  30. ALF=XNU2*XA/XB
  31. ENDIF
  32. C
  33. ALFA=ALFA+ALF
  34. 1 CONTINUE
  35. C<<ON CORRIGE L'INTEGRATION AU DERNIER POINT>>
  36. C<<SI NT N'EST PAS EGAL A 1 >>
  37. C<<ON MULTIPLIE XN PAR "A(=XB)" SI NT+1 >>
  38. IF (NT.EQ.1)THEN
  39. XN=EXP(-ALFA*DT) * XB
  40. ELSE
  41. ALFA=ALFA-(1-1/NT)*ALF/2
  42. XN=EXP(-ALFA*DT)
  43. ENDIF
  44. RETURN
  45. END
  46.  
  47.  
  48.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales