Télécharger inosc1.eso

Retour à la liste

Numérotation des lignes :

inosc1
  1. C INOSC1 SOURCE PV090527 24/01/19 21:15:05 11827
  2. CAP +AMAX en argument
  3. SUBROUTINE INOSC1(IPT,IPG,DFREQ,XSI,RMAX,TMAX,AMAX)
  4. CAP
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8(A-H,O-Z)
  7. C
  8. C =====================================================
  9. C =
  10. C CALCUL DU MAXIMUM DE LA REPONSE A UN SIGNAL D'UN =
  11. C OSCILLATEUR AVEC CONDITIONS INITIALES EN VITESSE =
  12. C ET EN DEPLACEMENT NULLES. =
  13. C =
  14. C CREATION : 03/06/87 =
  15. C PROGRAMMEUR : MALAVAL =
  16. C =
  17. C =====================================================
  18. C
  19.  
  20. -INC PPARAM
  21. -INC CCOPTIO
  22. -INC SMLREEL
  23. -INC CCREEL
  24. LOGICAL PASCON
  25. MLREE1=IPT
  26. SEGACT MLREE1
  27. MLREE2=IPG
  28. SEGACT MLREE2
  29. NN=MLREE1.PROG(/1)
  30. C
  31. C LE SIGNAL EST-IL A PAS CONSTANT ?
  32. C
  33. PASCON=.TRUE.
  34. H=MLREE1.PROG(2)-MLREE1.PROG(1)
  35. DO 10 J=1,NN-2
  36. H1=MLREE1.PROG(J+2)-MLREE1.PROG(J+1)
  37. TEST=H1-H
  38. IF (TEST.GT.(1.E-6*H)) THEN
  39. PASCON=.FALSE.
  40. GOTO 11
  41. ENDIF
  42. 10 CONTINUE
  43. C
  44. C CALCUL DE CONSTANTES UTILES
  45. C
  46. 11 W=2*XPI*DFREQ
  47. W2=W*W
  48. A=W*SQRT(1-XSI*XSI)
  49. B=2*XSI/W
  50. C=(2*XSI*XSI-1)/A
  51. D=XSI*W
  52. E=W2/A
  53. F=D/A
  54. VITEP=0.D0
  55. DEPP=0.D0
  56. RMAX=0.D0
  57. CAP
  58. ACCP=0.D0
  59. AMAX=0.D0
  60. CAP
  61. C TMAX=0.D0
  62. C CREATION DE LA BOUCLE
  63. C
  64. S=MLREE2.PROG(1)
  65. H1=MLREE1.PROG(1)
  66. DO 100 I=1,NN-1
  67. C
  68. C DIFFERENCE ENTRE 2 ACCELERATIONS SUCCESSIVES : G
  69. C
  70. T=MLREE2.PROG(I+1)
  71. G=T-S
  72. IF (PASCON.AND.I.NE.1) GOTO 12
  73. C
  74. C DIFFERENCE ENTRE 2 TEMPS SUCCESSIFS : H
  75. C
  76. H2=MLREE1.PROG(I+1)
  77. H=H2-H1
  78. P=EXP(-D*H)
  79. WH=A*H
  80. Q=COS(WH)
  81. R=SIN(WH)
  82. C
  83. C CALCUL EXPLICITE DU DEPLACEMENT
  84. C
  85. PSA=P/A
  86. UNSW2=1/W2
  87. QPFR=Q+F*R
  88. *
  89. 12 O=G/H
  90. DEP=PSA*((A*Q+D*R)*DEPP+R*VITEP)
  91. |+UNSW2*(P*(O*(B*Q+C*R)-S*QPFR)+T-B*O)
  92. VITEP=PSA*((-W2)*R*DEPP+((-D)*R+A*Q)*
  93. |VITEP)+UNSW2*(P*((-O)*QPFR+S*E*R)+O)
  94.  
  95. IF(abs(dep).lt.xpetit/xzprec) dep=xpetit/xzprec
  96. DEPP=DEP
  97. CAP
  98. ACCP=-W2*DEP-2*D*VITEP
  99. ABSO1=ABS(ACCP)
  100. IF (ABSO1.GT.AMAX) AMAX=ABSO1
  101. CAP
  102. ABSO=ABS(DEPP)
  103. IF (ABSO.GT.RMAX) THEN
  104. RMAX=ABSO
  105. TMAX=MLREE1.PROG(I)
  106. ENDIF
  107. S=T
  108. H1=H2
  109. C
  110. 100 CONTINUE
  111. SEGDES MLREE1
  112. SEGDES MLREE2
  113. RETURN
  114. END
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  

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